feat: write hyperlinks through the page model

A hyperlink in the page model is what OneNote stores: a hidden field-code
run (U+FDDF HYPERLINK "url") followed by the visible label, both flagged as
hyperlink runs. The text and formatting writers now treat hidden and
hyperlink runs as ordinary text with flags instead of refusing them, and the
page writer lowers the hidden, hyperlink and hyperlink-label flags as run
attributes; equations, embedded objects and runs with associated data stay
refused. Boolean run flags compare as absent-equals-false, so clearing a flag
to an absent value writes false once and a rewritten run does not churn.

corpus/link-edit is the native gate: a Rust-authored page whose paragraph
gained a link, cold-read by OneNote 2010 as an anchor with the URL and label;
tools/test_link_edit.py checks it without a VM.

Assisted-by: claude-fable-5.1
8b4f45b5b7clover caruso committed on 9/13/2026, 12:00:32 AMparent190fb2d
27 files changedLine totals unavailable