Typewriter State
Drives and observes one typewriter reveal. A state reveals each distinct text once: once a text has fully typed in, binding the same text again (recomposition, configuration change) shows it immediately, while a different text types in again.
revealedChars is snapshot state; the library reads it only in the draw phase, so typing redraws the text without recomposing or re-measuring it.