the beat on screen; null for an empty story
whether the last beat is the one on screen
the music the current beat wants, or null for silence
the beat on screen, 0 when empty
turns one page; false when there was no next page
turns back one page; false when already at the first
moves to a beat, clamped to the ends; reports the beat and its music either way
jumps to the last beat, the "skip" a player who has read it before reaches for
The beats of a story screen and where the reader is in them, with no renderer attached - the same split
TabbedListkeeps, so the advance/back/skip rules are testable without a DOM.Music is reported as a signal rather than played: the sequence says what track a beat wants, and the game decides whether to crossfade, loop or ignore it. A beat with no
musicreportsnull, so a reader who turns the page to a silent beat gets the previous track stopped.Example