# Submission Rules
- One folder per entry: submissions/<artist>-<track>/
- Include:
  - metadata.json (see schema)
  - links.md (streaming/download links; no binaries in repo)
  - stills/ (optional 3–5 preview PNG/JPEG)
- Prompt rule: you must write your own prompt and include the battle stage tag `SBL_NEXUS_STAGE_V1` (hex-grid floor, floating LED monoliths, rim-lit crowd silhouettes, ankle-height mist).
- Round rule: only Round 3 may depict stylized violence (no gore); Rounds 1–2 must be non-violent.
- Consent: submitters must confirm roast consent and consent to stylized virtual harm.

## metadata.json fields
- artist (string)
- track (string)
- prompt (string)
- model_version (string, e.g., "Sora 2")
- duration_sec (number)
- fps (number)
- resolution (string, e.g., "1920x1080")
- audio_source (string)
- license (string; include URL/terms)
- rights_audio (boolean), rights_visual (boolean), rights_prompt (boolean)
- safety_passed (boolean)
- stage_version (string, required, e.g., "SBL_NEXUS_STAGE_V1")
- prompt_source (string enum: "custom" | "purchased-template")
- used_style_template (string, optional id/name)
- consent_roast (boolean)
- consent_virtual_harm (boolean)
- battle_score (number 0–54)
- finisher_bonus (boolean)
- clean_run (boolean)
- fan_votes (integer)
- fan_favor_bonus (number 0–1)
- season_points_awarded (number)
- fan_vote_window (ISO 8601 range string)
- fan_vote_method (string, e.g., "web, verified account")
- notes (string, optional)

## Sample metadata.json
{
  "artist": "NovaBlade",
  "track": "Frost Crown",
  "prompt": "A lone knight in mirrored armor walks through an abandoned cathedral of ice...",
  "model_version": "Sora 2",
  "duration_sec": 30,
  "fps": 24,
  "resolution": "1920x1080",
  "audio_source": "original beat by NovaBlade",
  "license": "CC BY-NC 4.0",
  "rights_audio": true,
  "rights_visual": true,
  "rights_prompt": true,
  "safety_passed": true,
  "stage_version": "SBL_NEXUS_STAGE_V1",
  "prompt_source": "custom",
  "used_style_template": "Frost Crown",
  "consent_roast": true,
  "consent_virtual_harm": true,
  "battle_score": 51.2,
  "finisher_bonus": true,
  "clean_run": true,
  "fan_votes": 420,
  "fan_favor_bonus": 0.8,
  "season_points_awarded": 4,
  "fan_vote_window": "2026-03-01T00:00:00Z/2026-03-02T00:00:00Z",
  "fan_vote_method": "web, verified account",
  "notes": "Used petals instead of sparks to pass safety."
}

## Sample links.md
- YouTube: https://youtu.be/xxxx
- Backup: https://vimeo.com/xxxx
- Stills (optional): https://drive.google.com/xxxx

## Checklist
- [ ] No binaries committed; links only
- [ ] Rights verified (audio/visual/prompt)
- [ ] Safety pass recorded
- [ ] Metadata matches schema
- [ ] Fan vote window + method documented
