Code-review fixes: an all-empty paragraph group (a blank line isolated by an alignment split) emitted <p></p>, which the parser collapses — it now emits one <br> per line so blank lines round-trip. The identical span-merge helper that existed in both the parser and RichTextEditing is now a single shared mergeSameValueSpans() in RichText.kt, and the private applyBlock/applyLink drop their never-used default font resolver. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>