Parent
- #403 Keep the list lyrics stage and show supplied romanization
What to build
When lyrics already include Supplied Romanization (sidecar or manual TTML), the existing romanize toggle shows that text. Complete supplied romanization does not run the local romanizer, including after a catalog-language refresh. Incomplete supplied romanization keeps the supplied lines and only fills gaps locally. The list lyrics stage, karaoke fill, audience view, and AirPlay stay. No AGPL player packages. No translation line. No Apple Music center-active layout.
Acceptance criteria
- TTML parse extracts inline
x-roman(not inside background or translation) ontoroman. - iTunes transliteration sidecar text fills
romanby line key; prefer a Latn language; inline wins over sidecar. -
x-translationand ruby are not treated as Supplied Romanization. Backgroundx-romanis ignored. - A Word timing flag on a nested div clears both the div and line timing flags so child word spans are kept.
- Overlay seed maps over kept lines (
romanfirst). Mapping only the companion array is wrong because that array is empty for TTML. - Complete Supplied Romanization skips the local romanizer, including on language refresh.
- Incomplete Supplied Romanization plus an empty companion array still shows supplied text after toggling romanize.
- Companion LRC split still works. Existing word fill still works. No
[@applemusic-like-lyrics](/applemusic-like-lyrics)dependency.
Blocked by
- Ticket 1 (expand
roman/amlltypes)