54f0ba681e
Item 3 of the #351 remainder — resolve the two pinned converter counterexamples, fixtures-first. orderedList.start (genuine P1 loss): the converter always emitted "1." and dropped attrs.start. Now the markdown path emits `${start + index}.` (Number-coerced, guards a stray non-numeric start) and the raw-HTML path emits `<ol start="N">` when start>1; a default (start=1) list is byte-unchanged. tiptap StarterKit reads both forms back. Un-pinned as a passing regression test; orderedList.start is now value-fuzzed. column.width: the "50% churn" counterexample rested on a false premise — the canonical editor (editor-ext column.ts) stores width as a unitless flex-grow NUMBER (parseFloat, `flex:${width}`), never a "%" string, and docmost-schema.ts is a vendored mirror that MUST match it. The original parseFloat was correct parity and already byte-stable for numeric widths. Reverted the mirror to parseFloat, deleted the fabricated counterexample fixture, and now value-fuzz column.width as a number (real type). No src behaviour change for column.width — parity with editor-ext preserved. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>