The host's manifest, applied to the document that was just opened (TYP-909).
A host passes its manifest through host.manifest_data (push) or host.manifest (pull) — for
a theme, the manifest that binds FONT_n to the customer's font families. It used to be applied
in one place only, the Images panel's load, and only when the opened document's own manifest had
no images and the host gave no image list. A converted template always has images, so for the
documents this matters most it was never applied: its fonts never loaded, its FONT_n uuids were
never bound, and runs naming FONT_n were drawn in their placeholder family. The viewer, which has
no Images panel, never applied it at all.
⚠️ After the document, every time. canvas's OpenDocument() replaces the manifest with the
document's own, so a host manifest applied before the open is undone by it.
set_manifest_data() MERGES on top (fonts and swatches by uuid, images by id), loads the fonts, binds their
uuids and re-resolves the runs, so the text follows.
No PHP fallback here: the manifest endpoint stays where it was, in the Images panel, so a legacy
host is not sent an extra request on every open.
The host's manifest, applied to the document that was just opened (TYP-909).
A host passes its manifest through
host.manifest_data(push) orhost.manifest(pull) — for a theme, the manifest that bindsFONT_nto the customer's font families. It used to be applied in one place only, the Images panel's load, and only when the opened document's own manifest had no images and the host gave no image list. A converted template always has images, so for the documents this matters most it was never applied: its fonts never loaded, itsFONT_nuuids were never bound, and runs namingFONT_nwere drawn in their placeholder family. The viewer, which has no Images panel, never applied it at all.⚠️ After the document, every time. canvas's OpenDocument() replaces the manifest with the document's own, so a host manifest applied before the open is undone by it.
set_manifest_data()MERGES on top (fonts and swatches by uuid, images by id), loads the fonts, binds their uuids and re-resolves the runs, so the text follows.No PHP fallback here: the manifest endpoint stays where it was, in the Images panel, so a legacy host is not sent an extra request on every open.