Drop the ':' before captures (for xs (x) / for 0..n (i)); the index
capture becomes the trailing open range (for xs, 0.. (x, i)). 136
headers across 26 files, mechanical.
Five headless tests (banner_layout, hit_test, swipe_commit,
swipe_intent, swipe_reshuffle) also gain a direct
#import "modules/ui/types.sx" — they named Point/Frame through a
transitive import, which bare visibility no longer permits.
Gates: sx build --target ios-sim main.sx links; tools/run_tests.sh
23/23.
Add tests/cascade_cue.sx, a headless logic test that reuses audio.sx's
pure cascade_cue_index / cascade_cue_name (the exact functions
play_cascade calls) to lock the cascade-depth -> combo-cue clamp:
depth <= 1 -> combo1, depth >= COMBO_CLIPS -> combo5, monotonic between.
Covers the escalation logic the audio playback path can't gate-cover,
with no audio. Committed stdout/exit snapshot; suite is now 19 tests.