- audio_formats.py: EA SNR (EA-XMA) stream scanner with block-chain
validation, SPLC bank streams and patch tree (records, layers,
containers; verified on all 20 banks), .grain files (speed-sweep
recordings), loopable speed bands, gain-free 5->2 downmix.
- audio_export.py: decodes only what the engine plays (22 ambience
beds, 14 grains x 6 speed bands, wheel spins, 23 sample banks) to
PCM16 WAV in assets/private/audio with audio_manifest.json (v3,
incl. SPLC patch trees). Decoder: pinned vgmstream r2117
(SHA-256 checked) via the existing dependency() helper.
- Registered as optional asset group `audio` (versions, receipts,
asset_exports, install); a failure records audio-availability.json
and the game runs silent. Other groups' fingerprints unchanged.
- .gitignore: retail audio extensions and *.wav (Skyline mod WAVs
excepted). Tests updated for the new group.