v0.5.0
Completes the block-type matrix: Word now renders every block type natively
(the toc block was the last to degrade), and Excel resolves a cell's semantic
number format to the template's own mask. Brand Profiles from 0.1.x-0.4.0 keep
working unchanged; an absent comprehension is still the deterministic path.
Added
- Word
tocblocks render natively. Thetocblock was the last block type
that degraded instead of rendering; it now authors a real, updateable outline
table-of-contents field. If the shell already carries an outline TOC the block
defers to it (refreshed in place, never a duplicate); otherwise it authors a
native outline TOC field at the block's position, with its visible cache filled
from the generated headings and the field marked dirty +updateFieldsso Word
rebuilds it on open. It defers only to an OUTLINE TOC, so a shell shipping only a
table-of-figures still gets its requested table of contents. Byte-idempotent.
Every Word block type now renders natively. - Excel resolves a cell's semantic number format. The
number_formatresolver
type is now wired end-to-end (previously reserved/staged).extractclassifies
the template's own number-format masks into brand-agnostic families
(currency/percent/date/datetime/time/accounting/decimal/integer/
text/scientific) and emits anumber.<family>role bound to the template's
VERBATIM mask. AGridDocumentnames the intent viaformats: {name: family}
(keyed by the same named-range/cell vocabulary ascells/regions); generation
resolvesnumber.<family>and applies the template's own mask to the filled
cell(s). A format is never fabricated: an intent the template does not carry
degrades loudly (number_format_degraded) and leaves the existing format, and a
resolver whose mask is not in the template's surfaced formats is rejected at
validation.