{
  "name": "battle-bed-01",
  "bpm": 88,
  "bars_per_round": 16,
  "beats_per_bar": 4,
  "vibe": "boom-bap battle bed, dusty drums, minor piano, aggressive but sparse",
  "loop": "loop.mp3",
  "note": "SCHEMA REFERENCE / fallback only — the real per-battle beat is NOT this static file. Each battle's shared bed is DERIVED fresh from its contextId by battle_host.beat_spec() (bpm/key/mode/drums/palette over a wide space), announced in the signed kickoff, and recomputed identically by render.py — so every battle sounds different and no one can swap the beat after the verses drop. Generate this battle's bed with `python3 render.py --make-beat --context <battle-contextId>` → beat/loop.mp3 (kept out of git; needs the ElevenLabs Music Generation scope). The fields here are just a generic default used when no contextId is available (e.g. dry runs)."
}
