sound: the Kid calls it — payload-keyed lines, the key's ratchet, and a mix that stops talking to the engine
Selection is keyed off what actually happened. Every spoken cue now carries a
weight — a chain, a tier, a landmark, whether the shot was called, why the
round ended, what it earned, how many stars — and Lines.pick answers with the
nearest line that has not been used this session, falling back to a used one
rather than ever going silent. One voice source and one queue: a cue that
loses to a line already speaking waits, a cue that outranks it interrupts, and
a line that waited past its moment is dropped instead of arriving stale.
New cues on the new events: the key's ratchet clicks windup at 0.90 / 1.075 /
1.25 across the three notches with a rising ui_tick beside it, the red zone
creaks every 0.20 s for as long as the player holds and speaks a warning line
bought once from audio_gen, a called shot ticks and names the landmark, and
the launch cue's volume and pitch ride the speed the wind bought.
caption.module keeps shown / claimant / listeners in modules.state(), so
editing it no longer unsubscribes a caller — proven with the screens slice's
live Caption.on subscription across two edits. captionTree reads Theme.metrics
for the inset and the bottom band instead of re-deriving both (identical: 37
and 353 at 1080x1440). Lines.byId is gone; game/audio/** is four spaces and
--!strict throughout.
Underneath: the six per-frame Audio writes are dead-banded and the two reads
are gone, measured at 0.007 writes a frame at rest and 2.5 in flight, down
from six unconditionally — process_script_mutations_router.epilogue 1.16 ->
0.90 ms over matched 100 s / 430 s windows on this engine. snd_world's entity
is captured at awake instead of looked up by name per impact. Both beds carry
loadType decompressOnLoad: audio.observe reports streaming false with the
data.zaud bytes untouched, so the streaming pump has nothing left to refill.
Storefront: the star line reads 20,000 / 55,000 / 100,000 to match
Rules.SCORE.stars, and both control tables carry the hold-to-wind and
called-shot rows. 2.2 MB of generated scratch and 4.2 MB of probe shots leave
the world.