Keep the source authoritative.
I kept the raw Markdown in a single TextKit 2 surface. Reading presentation is built with attributes and layout fragments, so formatting never replaces the underlying characters. Selection, copy, and undo remain tied to the source.
The tradeoffHiding syntax requires an explicit map between source positions and what appears on screen. That complexity belongs in the renderer.
Read the implementation