Stage E2: the spec folder describes the genres that actually ship

genre-specs/ was one-directional for its whole life. genre-tool wrote a spec when a genre was born; every later edit happened by hand in the kernel and nothing was ever written back.

• `genre-tool.js export | --all` is the direction that was missing: it reads the LIVE anchor and emits the spec that would produce it.

• 274 specs, one per genre, uniform shape: name label info pos anchor mind 274 targets 274 perc 52 (only genres with a perc style)

• Three of those keys are NEW, and they are what closes the authorability gap the plan measured — the kernel reads 289 anchor paths, specs could express 184: mind the derived theory/pipes/rhythm axes, whose only…

• Four keys are dropped because nothing reads them: clips (GENRE_CLIPS is gone), materials, invented, damp. genre-specs/invented/ is flattened

Verified: genre-specs.test.js is what stops the rot returning: coverage, no orphans, required keys, no retired keys, trailing newline, and the one that matters

▶ Play it: Perforated Afterlife → Smoke Arithmetic → Titration Rapture — the three genres this change names, as one path https://stellate.app/?genre=ragtime&seed=5906&path=753.14457,292.16891,1405.21491&xdur=0.105

712cceb https://github.com/aboard-io/stellate/commit/712cceb2f6d238aa80845da96a9820d25f5b4442