Retire stations/horn/ding onto sampleEvents; keep vox/vocal with reason

Three bespoke sample-event mechanisms ported to the generic state.sampleEvents path genre-by-genre behind A/B equivalence gates, then their engine handlers + toState specials DELETED:

• stations -> buried (hogcore 24 HP names, transitwave 96 metro names): st-main counts A/B-EXACT every seed (128<->128, 96<->96); glitch tail within rng variance on the independent +9091 stream

• horn -> opener (canawave, transitwave): treatment reproduced exactly (canawave amp 0.756 = 0.42x1.8, cut 6000); count collapses to the single true opener per the charter intent + bigbeat precedent.

• ding -> oneShot+cadence (transitwave): n=8 A/B-exact, every treatment number identical (dur 2.20, ppsend 0.7).

• Vocabulary extended zero-rng: treatment.vol/maxDur/glitchBursts + a buried downward-glitch tail; absent keys byte-identical for all pre-existing sampleEvents users.

Verified: verify.sh --full --no-cache PASS: matrix 63/63, margins held (canawave 2, transitwave 3, hogcore 2). Fixtures re-blessed: events drift confined to the 3 migrated genres

▶ Play it: Perihelion Squeal → Rail Replacement Rapture → Loon Referendum — the three genres this change names, as one path https://stellate.app/?genre=hogcore&seed=3012&path=1670.17099,749.12558,1505.3720&xdur=0.056

6080068 https://github.com/aboard-io/stellate/commit/60800684b4ece81c3af9e540bfe4aca28a6787fc