0.3.0
A minor version: new API, a docx4j regeneration closing every loss the fidelity test had found, and a runtime upgrade. ^0.2.x will not pick this up.
Excel's revision identifiers and Word's bibliography version survive a round trip (docx4j 17.2.1, its CR-027). xr:uid, xr2:uid, xr3:uid and xr16:uid are bound on the elements Office writes them on — autoFilter, hyperlink, table, tableColumn, cellStyle, dataValidation, tableStyle, connection, workbookView, pivotCacheDefinition, pivotTableDefinition, comment — and Version on b:Sources. Measured over the fidelity corpus: 69 uid attributes in, 69 out, where 43 were lost before. xcalcf:calcFeatures is typed rather than DOM, so 104 modules, and NAMESPACE_PREFIXES has 136 entries.
Per-call options on the facade (CR-007, needs @docx4j/jsonix 3.4.0). unmarshalString, unmarshalNode, marshalString and marshalNode each take an optional second argument for that call alone: onUnexpectedElement and onUnexpectedAttribute to be told what the model dropped and where, onElement to record what a marshal wrote, namespacePrefixes for one call's table. Nothing touches the shared context. No callback is set by default and none should be — for some callers a drop is the mechanism rather than a fault.
mc:Ignorable keeps a prefix the table cannot produce (CR-006): Excel's mc:Ignorable="x xr10" on slicer, slicer cache and timeline parts survives, with x declared beside the default. New export IGNORABLE_PREFIX_ALIASES.
The package bundles with no bundler configuration (CR-005, in 0.2.0) now also gets @docx4j/jsonix 3.4.0, whose entry points fork on the node condition — so a Node bundle no longer needs globalThis.DOMParser set, and a browser bundle carries no @xmldom/xmldom.
Testing: the round-trip fidelity test (CR-004) now covers 256 parts of thirteen documents Office 365 wrote, 253 checks, five of them with an mc:Choice resolved. Seventeen attributes the model still drops are recorded against docx4j — w:stylePaneFormatFilter's fifteen booleans, and a14:legacySpreadsheetColorIndex with the mc:Ignorable beside it. @docx4j/core-ts, using jsonix 3.4.0's callbacks over a different corpus, independently reports the same seventeen.