# MOG CITY: asset licences (front end `mogcity_frontend.zip`, v4)

Generated 2026-11-07 with `game/tools/licence_ledger.py --doc` from the exact build in the zip (`a/manifest.json` + `build/.cache.json`). 202 asset files + 3 font files. Status counts: OK 92, OK (written approval) 63, OK (Jacob accepted the risk, 2026-11-07) 37, as symbol 10.

## UNVERIFIED: Jacob to decide (0 files)

None: every shipped file is OK, covered by a written approval, or accepted by Jacob (below).

## Accepted by Jacob, 2026-11-07 (37 files)

These were UNVERIFIED; Jacob reviewed the findings below and decided to ship them ("the license stuff is fine", MOG CITY chat, 2026-11-07). Status: OK (Jacob accepted the risk, 2026-11-07). The tile background (`e_tile_bg`) is covered by the same decision.

### Game Studio (style E): backgrounds (1 file)

Provenance found 2026-11-07: every MOG CITY studio image carries embedded XMP `publisher=Meta` + IPTC `trainedAlgorithmicMedia`, so Mai generates them with **Meta AI**, not undocumented local models. Meta's AI Terms (facebook.com/policies/other-policies/ais-terms, effective 13 May 2026; read in the French rendering, the English page did not load) grant no ownership of outputs, set no personal-use or non-commercial limit, make the user responsible for how outputs are used, and bar content "aimed at undertaking other regulated activities" (examples given: election campaigns, lobbying); gambling is not named. Jacob to decide: confirm with Mai which Meta product / terms apply and accept the risk, or replace.

`ui/intro_bg.webp`

### Game Studio (style E): cast sprites, and the icons / portraits cut from them (24 files)

Same provenance (Meta AI via Mai) and the same decision as the backgrounds.

`ch/androgenic.webp`, `ch/androgenic_bald.webp`, `ch/boyfriend.webp`, `ch/drascend.webp`, `ch/fratleader.webp`, `ch/girl_card.webp`, `ch/girl_dancer.webp`, `ch/girl_gym.webp`, `ch/girl_insta.webp`, `ch/girl_ring.webp`, `ch/hexum.webp`, `ch/judge.webp`, `ch/reaper_clippers.webp`, `ch/sniper.webp`, `ui/icon_camp.webp`, `ui/icon_club.webp`, `ui/icon_procedure.webp`, `ui/icon_terachad.webp`, `ui/icon_wwmog.webp`, `ui/portrait_androgenic.webp`, `ui/portrait_fratleader.webp`, `ui/portrait_hexum.webp`, `ui/portrait_judge.webp`, `ui/portrait_reaper_clippers.webp`

### Game Studio: music stems (3 files)

Provenance not recoverable from the files (the studio WAVs carry no metadata). Ask Mai which model made them. Fallback: reuse the stable-audio tracks or a licensed library stem.

`au/music_gauntlet_boss.mp3`, `au/music_gauntlet_fight.mp3`, `au/music_true_adam_finale.mp3`

### stable-audio-2.5 music (6 files)

Read 2026-11-07: Stability ToS §4(a) "you own the Output"; the Acceptable Use Policy (effective 30 Sep 2026, covers third-party hosted platforms) names no gambling restriction; the Community Licence $1M revenue cap is written for Core Models and Stable Audio 2.5 is not on the Core Models list (only Stable Audio 3.0 / Open 1.0), so no published text clearly governs 2.5 via Replicate. Needs Stability's or Replicate's written OK, or Jacob's accept-the-risk call. Fallback: a royalty-free library track.

`au/music_base.mp3`, `au/music_camp.mp3`, `au/music_club.mp3`, `au/music_club_intro.mp3`, `au/music_ring.mp3`, `au/music_terachad.mp3`

### SFX derived from stable-audio-2.5 (3 files)

Same decision as the stable-audio music.

`au/sfx_door_thump.mp3`, `au/sfx_vinyl_scratch.mp3`, `au/sting_drop.mp3`

### Also note (not a licence gap, but a reviewer could raise it)
- ElevenLabs Prohibited Use Policy §3 (impersonating the identity of a living person, no parody exception): the voices are stock, not cloned, and the characters are unnamed caricatures (THE MOGGER, HEXMAN, ANDROMAXX, FRAT LEADER, the Norwood Reaper). Check that Jacob's written approval covers caricature characters, not only real-money gambling.
- THE MOGGER master likeness (`v4m_master1`) was generated with public photos of the real person as likeness references. That is a likeness / publicity-rights question for a parody caricature, not a model-licence one; no real names appear in the game.

## Summary

| Category | Source | Licence / status |
|---|---|---|
| Fonts | Inter (subset `InterTab-500/700.woff2`), Titan One (`TitanOne.woff2`). Shipped: `InterTab-500.woff2`, `InterTab-700.woff2`, `TitanOne.woff2` | Both SIL OFL 1.1: commercial use and embedding allowed; `OFL-Inter.txt` and `OFL-TitanOne.txt` ship next to them in `fonts/`. **OK** |
| AI art, paid tier (Replicate) | `google/nano-banana-pro`: THE MOGGER master likeness (`v4m_master1`) and all 11 reel symbols (`v4s_*`); `google/nano-banana-2.1`: THE MOGGER pose set (`v4p_*`: idle, blink, win, sad, phone, rage, mid, bald, ascended, fawn) and the style-E redraws of the bottle girl and the left-facing Hexman (`v4r_*`) | Replicate Terms §5.1 pass output rights to us, commercial use included; Google's generative-AI terms do not claim the output. No OpenAI models used. **OK** |
| AI art (Jacob's Game Studio, style E) | Backgrounds (`e2_bg_*` / `e_bg_*`, `e_tile_bg`), the supporting cast sprites (`e_*`: HEXMAN, ANDROMAXX, FRAT LEADER, the Norwood Reaper, the judge, the girls, the boyfriend, the sniper, Dr. Ascend) and the buy-menu icons / Gauntlet portraits cut from them | Made with Meta AI (embedded XMP/IPTC provenance in every studio result). Meta's AI Terms: no output grant, no commercial limit, gambling not named. **OK (Jacob accepted the risk, 2026-11-07)** |
| Code-drawn art | Symbol housings, the reel frame, HUD icons, rim lights, the GET RATED wheel icon, every animation (code motion; no AI frame animation ships) | Made here. **OK** |
| Voices | ElevenLabs v3 stock voices via Replicate (all 63 shipped lines; no cloning; the v3.1 recast moved ANDROMAXX from MiniMax to ElevenLabs James) | **OK: written approval obtained by Jacob, 2026-10-23; Jacob holds it.** Keep it on file with `v3/voice/LICENCE_NOTES.md`. |
| Voices (MiniMax) | None ship. The 2 crowd SFX that layered MiniMax stock "woo/ooh" voices were rebuilt from public-domain recordings only on 2026-11-07. | **OK** |
| Music | stability-ai/stable-audio-2.5 (base, camp, club, ring, TRUE ADAM tracks) and the Game Studio stems (Gauntlet fight/boss, finale) | stable-audio-2.5: Stability AI Community Licence / Replicate Additional Terms; Stability ToS: you own the output; AUP names no gambling ban; the $1M Community Licence cap is written for Core Models, which do not include 2.5. Studio stems: model unknown. **OK (Jacob accepted the risk, 2026-11-07)** |
| SFX | Kenney.nl packs (CC0) + original synth layers; crowd cheer / ohh from public-domain pdsounds recordings (Wikimedia Commons) | **OK** |
| Tile (`release/tile/`) | Background: studio job `e_tile_bg`. Foreground: THE MOGGER master (`v4m_master1`, nano-banana-pro). No text. | Background **OK (Jacob accepted the risk, 2026-11-07)**, foreground **OK** |

"as symbol(s)" / "as sources" in the table means a procedural derivative that inherits the licence of the art it is cut from. Icons and portraits in `ui/` are crops of the cast / symbol art and carry that art's status.

## Per-file ledger

| Shipped file (`a/`) | Group | KB | Source | Provenance | Licence |
|---|---|---|---|---|---|
| `bg/base.jpg` | boot_l | 135 | `v4/assets/cut/bg/bgl_base.jpg` | Replicate google/nano-banana-pro `v4bg_*` layered background (back / portrait back / edge props; props cut out by e_cohesion.py); output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `bg/base_p.jpg` | boot_p | 92 | `v4/assets/cut/bg/bgl_base_p.jpg` | Replicate google/nano-banana-pro `v4bg_*` layered background (back / portrait back / edge props; props cut out by e_cohesion.py); output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `bg/camp.jpg` | camp | 133 | `v4/assets/cut/bg/bgl_camp.jpg` | Replicate google/nano-banana-pro `v4bg_*` layered background (back / portrait back / edge props; props cut out by e_cohesion.py); output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `bg/camp_p.jpg` | camp | 103 | `v4/assets/cut/bg/bgl_camp_p.jpg` | Replicate google/nano-banana-pro `v4bg_*` layered background (back / portrait back / edge props; props cut out by e_cohesion.py); output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `bg/club.jpg` | club | 139 | `v4/assets/cut/bg/bgl_club.jpg` | Replicate google/nano-banana-pro `v4bg_*` layered background (back / portrait back / edge props; props cut out by e_cohesion.py); output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `bg/club_door.jpg` | club | 140 | `v4/assets/cut/bg/bgl_club_door.jpg` | Replicate google/nano-banana-pro `v4bg_*` layered background (back / portrait back / edge props; props cut out by e_cohesion.py); output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `bg/club_door_p.jpg` | club | 159 | `v4/assets/cut/bg/bgl_club_door_p.jpg` | Replicate google/nano-banana-pro `v4bg_*` layered background (back / portrait back / edge props; props cut out by e_cohesion.py); output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `bg/club_p.jpg` | club | 148 | `v4/assets/cut/bg/bgl_club_p.jpg` | Replicate google/nano-banana-pro `v4bg_*` layered background (back / portrait back / edge props; props cut out by e_cohesion.py); output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `bg/reaper_arena.jpg` | gauntlet | 112 | `v4/assets/cut/bg/bgl_reaper_arena.jpg` | Replicate google/nano-banana-pro `v4bg_*` layered background (back / portrait back / edge props; props cut out by e_cohesion.py); output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `bg/reaper_arena_p.jpg` | gauntlet | 114 | `v4/assets/cut/bg/bgl_reaper_arena_p.jpg` | Replicate google/nano-banana-pro `v4bg_*` layered background (back / portrait back / edge props; props cut out by e_cohesion.py); output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `bg/ring.jpg` | wwmog | 116 | `v4/assets/cut/bg/bgl_ring.jpg` | Replicate google/nano-banana-pro `v4bg_*` layered background (back / portrait back / edge props; props cut out by e_cohesion.py); output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `bg/ring_p.jpg` | wwmog | 122 | `v4/assets/cut/bg/bgl_ring_p.jpg` | Replicate google/nano-banana-pro `v4bg_*` layered background (back / portrait back / edge props; props cut out by e_cohesion.py); output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `bg/true_adam.jpg` | terachad | 114 | `v4/assets/cut/bg/bgl_true_adam.jpg` | Replicate google/nano-banana-pro `v4bg_*` layered background (back / portrait back / edge props; props cut out by e_cohesion.py); output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `bg/true_adam_p.jpg` | terachad | 127 | `v4/assets/cut/bg/bgl_true_adam_p.jpg` | Replicate google/nano-banana-pro `v4bg_*` layered background (back / portrait back / edge props; props cut out by e_cohesion.py); output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `bgfg/base_L.webp` | boot | 33 | `v4/assets/cut/bg/fg_base_L.png` | Replicate google/nano-banana-pro `v4bg_*` layered background (back / portrait back / edge props; props cut out by e_cohesion.py); output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `bgfg/base_R.webp` | boot | 60 | `v4/assets/cut/bg/fg_base_R.png` | Replicate google/nano-banana-pro `v4bg_*` layered background (back / portrait back / edge props; props cut out by e_cohesion.py); output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `bgfg/camp_L.webp` | camp | 21 | `v4/assets/cut/bg/fg_camp_L.png` | Replicate google/nano-banana-pro `v4bg_*` layered background (back / portrait back / edge props; props cut out by e_cohesion.py); output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `bgfg/camp_R.webp` | camp | 41 | `v4/assets/cut/bg/fg_camp_R.png` | Replicate google/nano-banana-pro `v4bg_*` layered background (back / portrait back / edge props; props cut out by e_cohesion.py); output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `bgfg/club_L.webp` | club | 24 | `v4/assets/cut/bg/fg_club_L.png` | Replicate google/nano-banana-pro `v4bg_*` layered background (back / portrait back / edge props; props cut out by e_cohesion.py); output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `bgfg/club_R.webp` | club | 20 | `v4/assets/cut/bg/fg_club_R.png` | Replicate google/nano-banana-pro `v4bg_*` layered background (back / portrait back / edge props; props cut out by e_cohesion.py); output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `bgfg/club_door_L.webp` | club | 38 | `v4/assets/cut/bg/fg_club_door_L.png` | Replicate google/nano-banana-pro `v4bg_*` layered background (back / portrait back / edge props; props cut out by e_cohesion.py); output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `bgfg/club_door_R.webp` | club | 30 | `v4/assets/cut/bg/fg_club_door_R.png` | Replicate google/nano-banana-pro `v4bg_*` layered background (back / portrait back / edge props; props cut out by e_cohesion.py); output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `bgfg/reaper_arena_L.webp` | gauntlet | 28 | `v4/assets/cut/bg/fg_reaper_arena_L.png` | Replicate google/nano-banana-pro `v4bg_*` layered background (back / portrait back / edge props; props cut out by e_cohesion.py); output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `bgfg/reaper_arena_R.webp` | gauntlet | 24 | `v4/assets/cut/bg/fg_reaper_arena_R.png` | Replicate google/nano-banana-pro `v4bg_*` layered background (back / portrait back / edge props; props cut out by e_cohesion.py); output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `bgfg/ring_L.webp` | wwmog | 23 | `v4/assets/cut/bg/fg_ring_L.png` | Replicate google/nano-banana-pro `v4bg_*` layered background (back / portrait back / edge props; props cut out by e_cohesion.py); output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `bgfg/ring_R.webp` | wwmog | 26 | `v4/assets/cut/bg/fg_ring_R.png` | Replicate google/nano-banana-pro `v4bg_*` layered background (back / portrait back / edge props; props cut out by e_cohesion.py); output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `bgfg/true_adam_L.webp` | terachad | 26 | `v4/assets/cut/bg/fg_true_adam_L.png` | Replicate google/nano-banana-pro `v4bg_*` layered background (back / portrait back / edge props; props cut out by e_cohesion.py); output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `bgfg/true_adam_R.webp` | terachad | 27 | `v4/assets/cut/bg/fg_true_adam_R.png` | Replicate google/nano-banana-pro `v4bg_*` layered background (back / portrait back / edge props; props cut out by e_cohesion.py); output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `ch/androgenic.webp` | club | 53 | `v4/assets/cut/ch/androgenic.png` | Jacob's Game Studio (jobs processed by Mai) via Meta AI image generation (embedded XMP publisher=Meta, IPTC trainedAlgorithmicMedia): style-E sprite job `e_andromaxx`; cutout by e_cohesion.py | OK (Jacob accepted the risk, 2026-11-07) |
| `ch/androgenic_bald.webp` | club | 57 | `v4/assets/cut/ch/androgenic_bald.png` | Jacob's Game Studio (jobs processed by Mai) via Meta AI image generation (embedded XMP publisher=Meta, IPTC trainedAlgorithmicMedia): style-E sprite job `e_andromaxx_bald`; cutout by e_cohesion.py | OK (Jacob accepted the risk, 2026-11-07) |
| `ch/boyfriend.webp` | base | 56 | `v4/assets/cut/ch/boyfriend.png` | Jacob's Game Studio (jobs processed by Mai) via Meta AI image generation (embedded XMP publisher=Meta, IPTC trainedAlgorithmicMedia): style-E sprite job `e_boyfriend`; cutout by e_cohesion.py | OK (Jacob accepted the risk, 2026-11-07) |
| `ch/drascend.webp` | base | 56 | `v4/assets/cut/ch/drascend.png` | Jacob's Game Studio (jobs processed by Mai) via Meta AI image generation (embedded XMP publisher=Meta, IPTC trainedAlgorithmicMedia): style-E sprite job `e_drascend`; cutout by e_cohesion.py | OK (Jacob accepted the risk, 2026-11-07) |
| `ch/fratleader.webp` | wwmog | 52 | `v4/assets/cut/ch/fratleader.png` | Jacob's Game Studio (jobs processed by Mai) via Meta AI image generation (embedded XMP publisher=Meta, IPTC trainedAlgorithmicMedia): style-E sprite job `e_fratleader`; cutout by e_cohesion.py | OK (Jacob accepted the risk, 2026-11-07) |
| `ch/girl_bottle.webp` | club | 79 | `v4/assets/cut/ch/girl_bottle.png` | Replicate google/nano-banana-2.1 `v4r_girl_bottle_b` (style-E redraw against the style tile + the studio cast as refs); cutout by e_cohesion.py; output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `ch/girl_card.webp` | base | 63 | `v4/assets/cut/ch/girl_card.png` | Jacob's Game Studio (jobs processed by Mai) via Meta AI image generation (embedded XMP publisher=Meta, IPTC trainedAlgorithmicMedia): style-E sprite job `e_girl_card`; cutout by e_cohesion.py | OK (Jacob accepted the risk, 2026-11-07) |
| `ch/girl_dancer.webp` | club | 59 | `v4/assets/cut/ch/girl_dancer.png` | Jacob's Game Studio (jobs processed by Mai) via Meta AI image generation (embedded XMP publisher=Meta, IPTC trainedAlgorithmicMedia): style-E sprite job `e_girl_dancer`; cutout by e_cohesion.py | OK (Jacob accepted the risk, 2026-11-07) |
| `ch/girl_gym.webp` | camp | 48 | `v4/assets/cut/ch/girl_gym.png` | Jacob's Game Studio (jobs processed by Mai) via Meta AI image generation (embedded XMP publisher=Meta, IPTC trainedAlgorithmicMedia): style-E sprite job `e_girl_gym`; cutout by e_cohesion.py | OK (Jacob accepted the risk, 2026-11-07) |
| `ch/girl_insta.webp` | base | 48 | `v4/assets/cut/ch/girl_insta.png` | Jacob's Game Studio (jobs processed by Mai) via Meta AI image generation (embedded XMP publisher=Meta, IPTC trainedAlgorithmicMedia): style-E sprite job `e_girl_insta`; cutout by e_cohesion.py | OK (Jacob accepted the risk, 2026-11-07) |
| `ch/girl_ring.webp` | wwmog | 61 | `v4/assets/cut/ch/girl_ring.png` | Jacob's Game Studio (jobs processed by Mai) via Meta AI image generation (embedded XMP publisher=Meta, IPTC trainedAlgorithmicMedia): style-E sprite job `e_girl_ring`; cutout by e_cohesion.py | OK (Jacob accepted the risk, 2026-11-07) |
| `ch/hexum.webp` | camp | 67 | `v4/assets/cut/ch/hexum.png` | Jacob's Game Studio (jobs processed by Mai) via Meta AI image generation (embedded XMP publisher=Meta, IPTC trainedAlgorithmicMedia): style-E sprite job `e_hexman`; cutout by e_cohesion.py | OK (Jacob accepted the risk, 2026-11-07) |
| `ch/hexum_left.webp` | gauntlet | 67 | `v4/assets/cut/ch/hexum_left.png` | Replicate google/nano-banana-2.1 `v4r_hexman_left_c` (style-E redraw against the style tile + the studio cast as refs); cutout by e_cohesion.py; output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `ch/host_ascended.webp` | terachad | 69 | `v4/assets/cut/ch/host_ascended.png` | Replicate google/nano-banana-2.1 `v4p_ascended` (pose against master 1 + style-E tile); output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `ch/host_ascended_rim.webp` | terachad | 13 | `v4/assets/cut/ch/host_ascended_rim.png` | Replicate google/nano-banana-2.1 `v4p_ascended` (pose against master 1 + style-E tile) + code-drawn rim light; output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `ch/host_bald.webp` | base | 55 | `v4/assets/cut/ch/host_bald.png` | Replicate google/nano-banana-2.1 `v4p_bald` (pose against master 1 + style-E tile); output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `ch/host_bald_rim.webp` | base | 9 | `v4/assets/cut/ch/host_bald_rim.png` | Replicate google/nano-banana-2.1 `v4p_bald` (pose against master 1 + style-E tile) + code-drawn rim light; output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `ch/host_blink.webp` | boot | 39 | `v4/assets/cut/ch/host_blink.png` | Replicate google/nano-banana-2.1 `v4p_blink` (pose against master 1 + style-E tile); output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `ch/host_edit.webp` | boot | 41 | `v4/assets/cut/ch/host_edit.png` | Replicate google/nano-banana-pro `v4m_master1` (THE MOGGER master likeness, Jacob's pick); output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `ch/host_fawn.webp` | base | 67 | `v4/assets/cut/ch/host_fawn.png` | Replicate google/nano-banana-2.1 `v4p_fawn` (pose against master 1 + style-E tile); output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `ch/host_idle.webp` | boot | 40 | `v4/assets/cut/ch/host_idle.png` | Replicate google/nano-banana-2.1 `v4p_idle` (pose against master 1 + style-E tile); output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `ch/host_idle_rim.webp` | boot | 6 | `v4/assets/cut/ch/host_idle_rim.png` | Replicate google/nano-banana-2.1 `v4p_idle` (pose against master 1 + style-E tile) + code-drawn rim light; output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `ch/host_mid.webp` | base | 43 | `v4/assets/cut/ch/host_mid.png` | Replicate google/nano-banana-2.1 `v4p_mid` (pose against master 1 + style-E tile); output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `ch/host_mid_rim.webp` | base | 7 | `v4/assets/cut/ch/host_mid_rim.png` | Replicate google/nano-banana-2.1 `v4p_mid` (pose against master 1 + style-E tile) + code-drawn rim light; output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `ch/host_phone.webp` | base | 45 | `v4/assets/cut/ch/host_phone.png` | Replicate google/nano-banana-2.1 `v4p_phone` (pose against master 1 + style-E tile); output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `ch/host_phone_rim.webp` | base | 7 | `v4/assets/cut/ch/host_phone_rim.png` | Replicate google/nano-banana-2.1 `v4p_phone` (pose against master 1 + style-E tile) + code-drawn rim light; output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `ch/host_rage.webp` | base | 49 | `v4/assets/cut/ch/host_rage.png` | Replicate google/nano-banana-2.1 `v4p_rage` (pose against master 1 + style-E tile); output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `ch/host_rage_rim.webp` | base | 9 | `v4/assets/cut/ch/host_rage_rim.png` | Replicate google/nano-banana-2.1 `v4p_rage` (pose against master 1 + style-E tile) + code-drawn rim light; output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `ch/host_sad.webp` | base | 37 | `v4/assets/cut/ch/host_sad.png` | Replicate google/nano-banana-2.1 `v4p_sad` (pose against master 1 + style-E tile); output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `ch/host_sad_rim.webp` | base | 6 | `v4/assets/cut/ch/host_sad_rim.png` | Replicate google/nano-banana-2.1 `v4p_sad` (pose against master 1 + style-E tile) + code-drawn rim light; output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `ch/host_shrunk.webp` | base | 37 | `v4/assets/cut/ch/host_sad.png` | Replicate google/nano-banana-2.1 `v4p_sad` (pose against master 1 + style-E tile); output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `ch/host_shrunk_rim.webp` | base | 6 | `v4/assets/cut/ch/host_sad_rim.png` | Replicate google/nano-banana-2.1 `v4p_sad` (pose against master 1 + style-E tile) + code-drawn rim light; output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `ch/host_true_adam.webp` | terachad | 69 | `v4/assets/cut/ch/host_ascended.png` | Replicate google/nano-banana-2.1 `v4p_ascended` (pose against master 1 + style-E tile); output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `ch/host_true_adam_rim.webp` | terachad | 13 | `v4/assets/cut/ch/host_ascended_rim.png` | Replicate google/nano-banana-2.1 `v4p_ascended` (pose against master 1 + style-E tile) + code-drawn rim light; output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `ch/host_win.webp` | base | 59 | `v4/assets/cut/ch/host_win.png` | Replicate google/nano-banana-2.1 `v4p_win` (pose against master 1 + style-E tile); output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `ch/host_win_rim.webp` | base | 11 | `v4/assets/cut/ch/host_win_rim.png` | Replicate google/nano-banana-2.1 `v4p_win` (pose against master 1 + style-E tile) + code-drawn rim light; output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `ch/judge.webp` | wwmog | 70 | `v4/assets/cut/ch/judge.png` | Jacob's Game Studio (jobs processed by Mai) via Meta AI image generation (embedded XMP publisher=Meta, IPTC trainedAlgorithmicMedia): style-E sprite job `e_judge`; cutout by e_cohesion.py | OK (Jacob accepted the risk, 2026-11-07) |
| `ch/reaper_clippers.webp` | base | 79 | `v4/assets/cut/ch/reaper_clippers.png` | Jacob's Game Studio (jobs processed by Mai) via Meta AI image generation (embedded XMP publisher=Meta, IPTC trainedAlgorithmicMedia): style-E sprite job `e_reaper`; cutout by e_cohesion.py | OK (Jacob accepted the risk, 2026-11-07) |
| `ch/sniper.webp` | base | 67 | `v4/assets/cut/ch/sniper.png` | Jacob's Game Studio (jobs processed by Mai) via Meta AI image generation (embedded XMP publisher=Meta, IPTC trainedAlgorithmicMedia): style-E sprite job `e_sniper`; cutout by e_cohesion.py | OK (Jacob accepted the risk, 2026-11-07) |
| `sym/G.webp` | boot | 25 | `v4/assets/cut/sym/sym_G.png` | Replicate google/nano-banana-pro `v4s_G` (redrawn against the style-E tile); cutout and code rim by v4/tools/e_cohesion.py; output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `sym/G_base.webp` | syms | 17 | `v4/assets/cut/sym/layers/sym_G_base.png` | rig cut layer (base / rigid part) cut from the reel symbol by game/tools/sym_layers.py | as symbol |
| `sym/G_gavel.webp` | syms | 13 | `v4/assets/cut/sym/layers/sym_G_gavel.png` | rig cut layer (base / rigid part) cut from the reel symbol by game/tools/sym_layers.py | as symbol |
| `sym/H1.webp` | boot | 32 | `v4/assets/cut/sym/sym_H1.png` | Replicate google/nano-banana-pro `v4s_H1` (redrawn against the style-E tile); cutout and code rim by v4/tools/e_cohesion.py; output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `sym/H2.webp` | boot | 43 | `v4/assets/cut/sym/sym_H2.png` | Replicate google/nano-banana-pro `v4s_H2` (redrawn against the style-E tile); cutout and code rim by v4/tools/e_cohesion.py; output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `sym/H3.webp` | boot | 30 | `v4/assets/cut/sym/sym_H3.png` | Replicate google/nano-banana-pro `v4s_H3` (redrawn against the style-E tile); cutout and code rim by v4/tools/e_cohesion.py; output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `sym/H4.webp` | boot | 32 | `v4/assets/cut/sym/sym_H4.png` | Replicate google/nano-banana-pro `v4s_H4` (redrawn against the style-E tile); cutout and code rim by v4/tools/e_cohesion.py; output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `sym/L1.webp` | boot | 35 | `v4/assets/cut/sym/sym_L1.png` | Replicate google/nano-banana-pro `v4s_L1` (redrawn against the style-E tile); cutout and code rim by v4/tools/e_cohesion.py; output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `sym/L1_base.webp` | syms | 32 | `v4/assets/cut/sym/layers/sym_L1_base.png` | rig cut layer (base / rigid part) cut from the reel symbol by game/tools/sym_layers.py | as symbol |
| `sym/L1_insole.webp` | syms | 7 | `v4/assets/cut/sym/layers/sym_L1_insole.png` | rig cut layer (base / rigid part) cut from the reel symbol by game/tools/sym_layers.py | as symbol |
| `sym/L2.webp` | boot | 26 | `v4/assets/cut/sym/sym_L2.png` | Replicate google/nano-banana-pro `v4s_L2` (redrawn against the style-E tile); cutout and code rim by v4/tools/e_cohesion.py; output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `sym/L2_base.webp` | syms | 20 | `v4/assets/cut/sym/layers/sym_L2_base.png` | rig cut layer (base / rigid part) cut from the reel symbol by game/tools/sym_layers.py | as symbol |
| `sym/L2_lid.webp` | syms | 9 | `v4/assets/cut/sym/layers/sym_L2_lid.png` | rig cut layer (base / rigid part) cut from the reel symbol by game/tools/sym_layers.py | as symbol |
| `sym/L3.webp` | boot | 22 | `v4/assets/cut/sym/sym_L3.png` | Replicate google/nano-banana-pro `v4s_L3` (redrawn against the style-E tile); cutout and code rim by v4/tools/e_cohesion.py; output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `sym/L4.webp` | boot | 16 | `v4/assets/cut/sym/sym_L4.png` | Replicate google/nano-banana-pro `v4s_L4` (redrawn against the style-E tile); cutout and code rim by v4/tools/e_cohesion.py; output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `sym/L4_base.webp` | syms | 15 | `v4/assets/cut/sym/layers/sym_L4_base.png` | rig cut layer (base / rigid part) cut from the reel symbol by game/tools/sym_layers.py | as symbol |
| `sym/L4_cap.webp` | syms | 2 | `v4/assets/cut/sym/layers/sym_L4_cap.png` | rig cut layer (base / rigid part) cut from the reel symbol by game/tools/sym_layers.py | as symbol |
| `sym/M.webp` | boot | 31 | `v4/assets/cut/sym/sym_M.png` | Replicate google/nano-banana-pro `v4s_M` (redrawn against the style-E tile); cutout and code rim by v4/tools/e_cohesion.py; output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `sym/S.webp` | boot | 38 | `v4/assets/cut/sym/sym_S.png` | Replicate google/nano-banana-pro `v4s_S` (redrawn against the style-E tile); cutout and code rim by v4/tools/e_cohesion.py; output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `sym/S_base.webp` | syms | 38 | `v4/assets/cut/sym/layers/sym_S_base.png` | rig cut layer (base / rigid part) cut from the reel symbol by game/tools/sym_layers.py | as symbol |
| `sym/S_crest.webp` | syms | 2 | `v4/assets/cut/sym/layers/sym_S_crest.png` | rig cut layer (base / rigid part) cut from the reel symbol by game/tools/sym_layers.py | as symbol |
| `ui/icon_bonesmash.webp` | boot | 8 | `v4/assets/cut/sym/sym_M.png` | Replicate google/nano-banana-pro `v4s_M` (redrawn against the style-E tile); cutout and code rim by v4/tools/e_cohesion.py; output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `ui/icon_camp.webp` | boot | 7 | `v4/assets/cut/ch/hexum.png` | Jacob's Game Studio (jobs processed by Mai) via Meta AI image generation (embedded XMP publisher=Meta, IPTC trainedAlgorithmicMedia): style-E sprite job `e_hexman`; cutout by e_cohesion.py | OK (Jacob accepted the risk, 2026-11-07) |
| `ui/icon_club.webp` | boot | 11 | `v4/assets/cut/ch/girl_dancer.png` | Jacob's Game Studio (jobs processed by Mai) via Meta AI image generation (embedded XMP publisher=Meta, IPTC trainedAlgorithmicMedia): style-E sprite job `e_girl_dancer`; cutout by e_cohesion.py | OK (Jacob accepted the risk, 2026-11-07) |
| `ui/icon_getrated.webp` | boot | 8 | `` | procedural wheel icon drawn by game/tools/pack_assets.py (wheel_icon) | OK |
| `ui/icon_lifts.webp` | boot | 6 | `v4/assets/cut/ch/host_idle.png` | Replicate google/nano-banana-2.1 `v4p_idle` (pose against master 1 + style-E tile); output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `ui/icon_mogmaxx.webp` | boot | 9 | `v4/assets/cut/sym/sym_S.png` | Replicate google/nano-banana-pro `v4s_S` (redrawn against the style-E tile); cutout and code rim by v4/tools/e_cohesion.py; output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `ui/icon_procedure.webp` | boot | 7 | `v4/assets/cut/ch/drascend.png` | Jacob's Game Studio (jobs processed by Mai) via Meta AI image generation (embedded XMP publisher=Meta, IPTC trainedAlgorithmicMedia): style-E sprite job `e_drascend`; cutout by e_cohesion.py | OK (Jacob accepted the risk, 2026-11-07) |
| `ui/icon_terachad.webp` | boot | 12 | `v4/assets/cut/ch/reaper_clippers.png` | Jacob's Game Studio (jobs processed by Mai) via Meta AI image generation (embedded XMP publisher=Meta, IPTC trainedAlgorithmicMedia): style-E sprite job `e_reaper`; cutout by e_cohesion.py | OK (Jacob accepted the risk, 2026-11-07) |
| `ui/icon_teraspin.webp` | boot | 6 | `v4/assets/cut/sym/sym_G.png` | Replicate google/nano-banana-pro `v4s_G` (redrawn against the style-E tile); cutout and code rim by v4/tools/e_cohesion.py; output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `ui/icon_wwmog.webp` | boot | 8 | `v4/assets/cut/ch/fratleader.png` | Jacob's Game Studio (jobs processed by Mai) via Meta AI image generation (embedded XMP publisher=Meta, IPTC trainedAlgorithmicMedia): style-E sprite job `e_fratleader`; cutout by e_cohesion.py | OK (Jacob accepted the risk, 2026-11-07) |
| `ui/intro_bg.webp` | boot | 51 | `v4/assets/generated/background/e_tile_bg.webp` | Jacob's Game Studio (jobs processed by Mai) via Meta AI image generation (embedded XMP publisher=Meta, IPTC trainedAlgorithmicMedia): style-E background job `e_tile_bg` (intro backdrop; also the Stake tile background) | OK (Jacob accepted the risk, 2026-11-07) |
| `ui/portrait_adam.webp` | gauntlet | 5 | `v4/assets/cut/ch/host_ascended.png` | Replicate google/nano-banana-2.1 `v4p_ascended` (pose against master 1 + style-E tile); output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `ui/portrait_androgenic.webp` | gauntlet | 7 | `v4/assets/cut/ch/androgenic.png` | Jacob's Game Studio (jobs processed by Mai) via Meta AI image generation (embedded XMP publisher=Meta, IPTC trainedAlgorithmicMedia): style-E sprite job `e_andromaxx`; cutout by e_cohesion.py | OK (Jacob accepted the risk, 2026-11-07) |
| `ui/portrait_fratleader.webp` | gauntlet | 8 | `v4/assets/cut/ch/fratleader.png` | Jacob's Game Studio (jobs processed by Mai) via Meta AI image generation (embedded XMP publisher=Meta, IPTC trainedAlgorithmicMedia): style-E sprite job `e_fratleader`; cutout by e_cohesion.py | OK (Jacob accepted the risk, 2026-11-07) |
| `ui/portrait_hexum.webp` | gauntlet | 9 | `v4/assets/cut/ch/hexum.png` | Jacob's Game Studio (jobs processed by Mai) via Meta AI image generation (embedded XMP publisher=Meta, IPTC trainedAlgorithmicMedia): style-E sprite job `e_hexman`; cutout by e_cohesion.py | OK (Jacob accepted the risk, 2026-11-07) |
| `ui/portrait_host.webp` | boot | 4 | `v4/assets/cut/ch/host_idle.png` | Replicate google/nano-banana-2.1 `v4p_idle` (pose against master 1 + style-E tile); output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `ui/portrait_host_bald.webp` | base | 6 | `v4/assets/cut/ch/host_bald.png` | Replicate google/nano-banana-2.1 `v4p_bald` (pose against master 1 + style-E tile); output used commercially under Google's generative-AI terms (Replicate Terms §5.1 pass output rights to us); no OpenAI models used | OK |
| `ui/portrait_judge.webp` | gauntlet | 7 | `v4/assets/cut/ch/judge.png` | Jacob's Game Studio (jobs processed by Mai) via Meta AI image generation (embedded XMP publisher=Meta, IPTC trainedAlgorithmicMedia): style-E sprite job `e_judge`; cutout by e_cohesion.py | OK (Jacob accepted the risk, 2026-11-07) |
| `ui/portrait_reaper_clippers.webp` | gauntlet | 6 | `v4/assets/cut/ch/reaper_clippers.png` | Jacob's Game Studio (jobs processed by Mai) via Meta AI image generation (embedded XMP publisher=Meta, IPTC trainedAlgorithmicMedia): style-E sprite job `e_reaper`; cutout by e_cohesion.py | OK (Jacob accepted the risk, 2026-11-07) |
| `au/bigwin.mp3` | boot | 16 | `demo/assets/sfx/bigwin.mp3` | Kenney.nl packs (CC0) + original synth layers (demo/work/audio.py) | OK |
| `au/card_flip.mp3` | boot | 4 | `demo/assets/sfx/card_flip.mp3` | Kenney.nl packs (CC0) + original synth layers (demo/work/audio.py) | OK |
| `au/click.mp3` | boot | 0 | `demo/assets/sfx/click.mp3` | Kenney.nl packs (CC0) + original synth layers (demo/work/audio.py) | OK |
| `au/coins.mp3` | boot | 6 | `demo/assets/sfx/coins.mp3` | Kenney.nl packs (CC0) + original synth layers (demo/work/audio.py) | OK |
| `au/fs_start.mp3` | boot | 18 | `demo/assets/sfx/fs_start.mp3` | Kenney.nl packs (CC0) + original synth layers (demo/work/audio.py) | OK |
| `au/heartbeat.mp3` | boot | 6 | `demo/assets/sfx/heartbeat.mp3` | Kenney.nl packs (CC0) + original synth layers (demo/work/audio.py) | OK |
| `au/music_base.mp3` | boot | 240 | `demo/assets/sfx/music_base.mp3` | Replicate stability-ai/stable-audio-2.5 | OK (Jacob accepted the risk, 2026-11-07) |
| `au/music_camp.mp3` | camp | 240 | `demo/assets/sfx/music_fs.mp3` | Replicate stability-ai/stable-audio-2.5 | OK (Jacob accepted the risk, 2026-11-07) |
| `au/music_club.mp3` | club | 302 | `v2/audio/music_club.mp3` | Replicate stability-ai/stable-audio-2.5 | OK (Jacob accepted the risk, 2026-11-07) |
| `au/music_club_intro.mp3` | club | 42 | `v2/audio/music_club_intro.mp3` | Replicate stability-ai/stable-audio-2.5 | OK (Jacob accepted the risk, 2026-11-07) |
| `au/music_gauntlet_boss.mp3` | gauntlet | 282 | `v3/game_assets/music/music_gauntlet_boss.mp3` | Jacob's Game Studio (jobs processed by Mai), music model unknown (the result WAVs carry no metadata): music job | OK (Jacob accepted the risk, 2026-11-07) |
| `au/music_gauntlet_fight.mp3` | gauntlet | 273 | `v3/game_assets/music/music_gauntlet_fight.mp3` | Jacob's Game Studio (jobs processed by Mai), music model unknown (the result WAVs carry no metadata): music job | OK (Jacob accepted the risk, 2026-11-07) |
| `au/music_ring.mp3` | wwmog | 235 | `v2/audio/music_ring.mp3` | Replicate stability-ai/stable-audio-2.5 | OK (Jacob accepted the risk, 2026-11-07) |
| `au/music_terachad.mp3` | terachad | 220 | `v2/audio/music_terachad.mp3` | Replicate stability-ai/stable-audio-2.5 | OK (Jacob accepted the risk, 2026-11-07) |
| `au/music_true_adam_finale.mp3` | terachad | 160 | `v3/game_assets/music/music_true_adam_finale.mp3` | Jacob's Game Studio (jobs processed by Mai), music model unknown (the result WAVs carry no metadata): music job | OK (Jacob accepted the risk, 2026-11-07) |
| `au/orb_apply.mp3` | boot | 4 | `demo/assets/sfx/orb_apply.mp3` | Kenney.nl packs (CC0) + original synth layers (demo/work/audio.py) | OK |
| `au/orb_crack.mp3` | boot | 6 | `demo/assets/sfx/orb_crack.mp3` | Kenney.nl packs (CC0) + original synth layers (demo/work/audio.py) | OK |
| `au/reel_stop.mp3` | boot | 2 | `demo/assets/sfx/reel_stop.mp3` | Kenney.nl packs (CC0) + original synth layers (demo/work/audio.py) | OK |
| `au/scatter_land.mp3` | boot | 8 | `demo/assets/sfx/scatter_land.mp3` | Kenney.nl packs (CC0) + original synth layers (demo/work/audio.py) | OK |
| `au/sfx_clippers.mp3` | base | 14 | `v2/audio/sfx_clippers.mp3` | original synth (v2/work_bd/sfx.py) | OK |
| `au/sfx_crowd_cheer.mp3` | base | 28 | `v2/audio/sfx_crowd_cheer.mp3` | public-domain crowd recordings only (pdsounds via Wikimedia Commons; rebuilt 2026-11-07 by v2/work_bd/sfx_crowd_pd.py, the MiniMax TTS layers dropped) | OK |
| `au/sfx_crowd_ohh.mp3` | base | 19 | `v2/audio/sfx_crowd_ohh.mp3` | public-domain crowd recordings only (pdsounds via Wikimedia Commons; rebuilt 2026-11-07 by v2/work_bd/sfx_crowd_pd.py, the MiniMax TTS layers dropped) | OK |
| `au/sfx_door_thump.mp3` | base | 19 | `v2/audio/sfx_door_thump.mp3` | derived from the stable-audio-2.5 club track + Kenney CC0 / original synth | OK (Jacob accepted the risk, 2026-11-07) |
| `au/sfx_gavel.mp3` | base | 4 | `v2/audio/sfx_gavel.mp3` | Kenney Impact/Interface (CC0) + original synth | OK |
| `au/sfx_hair_pop.mp3` | base | 2 | `v2/audio/sfx_hair_pop.mp3` | original synth (v2/work_bd/sfx.py) | OK |
| `au/sfx_vinyl_scratch.mp3` | base | 8 | `v2/audio/sfx_vinyl_scratch.mp3` | derived from the stable-audio-2.5 club track + Kenney CC0 / original synth | OK (Jacob accepted the risk, 2026-11-07) |
| `au/sfx_wheel_tick.mp3` | base | 1 | `v2/audio/sfx_wheel_tick.mp3` | Kenney Impact/Interface (CC0) + original synth | OK |
| `au/spin.mp3` | boot | 4 | `demo/assets/sfx/spin.mp3` | Kenney.nl packs (CC0) + original synth layers (demo/work/audio.py) | OK |
| `au/sting_drop.mp3` | base | 14 | `v2/audio/sting_drop.mp3` | derived from the stable-audio-2.5 club track + Kenney CC0 / original synth | OK (Jacob accepted the risk, 2026-11-07) |
| `au/truck.mp3` | boot | 12 | `demo/assets/sfx/truck.mp3` | Kenney.nl packs (CC0) + original synth layers (demo/work/audio.py) | OK |
| `au/tumble.mp3` | boot | 2 | `demo/assets/sfx/tumble.mp3` | Kenney.nl packs (CC0) + original synth layers (demo/work/audio.py) | OK |
| `au/vo_androgenic_drop_the_beat.mp3` | vo | 9 | `v3/voice/final/vo_androgenic_drop_the_beat.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_androgenic_not_the_wig.mp3` | vo | 10 | `v3/voice/final/vo_androgenic_not_the_wig.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_androgenic_oi_me_hair.mp3` | vo | 9 | `v3/voice/final/vo_androgenic_oi_me_hair.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_androgenic_serious_mog.mp3` | vo | 17 | `v3/voice/final/vo_androgenic_serious_mog.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_baddie_are_you_famous.mp3` | vo | 20 | `v3/voice/final/vo_baddie_are_you_famous.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_baddie_have_a_boyfriend.mp3` | vo | 28 | `v3/voice/final/vo_baddie_have_a_boyfriend.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_baddie_hes_so_tall.mp3` | vo | 26 | `v3/voice/final/vo_baddie_hes_so_tall.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_baddie_like_forty.mp3` | vo | 14 | `v3/voice/final/vo_baddie_like_forty.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_baddie_marry_me.mp3` | vo | 24 | `v3/voice/final/vo_baddie_marry_me.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_baddie_omg_stop.mp3` | vo | 19 | `v3/voice/final/vo_baddie_omg_stop.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_boyfriend_bro.mp3` | vo | 8 | `v3/voice/final/vo_boyfriend_bro.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_boyfriend_shes_with_me.mp3` | vo | 11 | `v3/voice/final/vo_boyfriend_shes_with_me.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_frat_frame_check_bro.mp3` | vo | 8 | `v3/voice/final/vo_frat_frame_check_bro.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_frat_nooo_my_frame.mp3` | vo | 13 | `v3/voice/final/vo_frat_nooo_my_frame.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_frat_stopped_gymming.mp3` | vo | 12 | `v3/voice/final/vo_frat_stopped_gymming.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_frat_you_stopped_gymming.mp3` | vo | 14 | `v3/voice/final/vo_frat_you_stopped_gymming.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_hexum_am_i_mogging.mp3` | vo | 10 | `v3/voice/final/vo_hexum_am_i_mogging.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_hexum_camp_in_session.mp3` | vo | 8 | `v3/voice/final/vo_hexum_camp_in_session.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_hexum_get_in_frame.mp3` | vo | 10 | `v3/voice/final/vo_hexum_get_in_frame.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_hexum_mogging_you_now.mp3` | vo | 14 | `v3/voice/final/vo_hexum_mogging_you_now.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_hexum_not_fair.mp3` | vo | 10 | `v3/voice/final/vo_hexum_not_fair.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_insta_mog_me.mp3` | vo | 10 | `v3/voice/final/vo_insta_mog_me.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_insta_sixty_nine.mp3` | vo | 15 | `v3/voice/final/vo_insta_sixty_nine.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_insta_so_tall.mp3` | vo | 17 | `v3/voice/final/vo_insta_so_tall.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_judge_court_mogged.mp3` | vo | 14 | `v3/voice/final/vo_judge_court_mogged.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_judge_judges_decision.mp3` | vo | 9 | `v3/voice/final/vo_judge_judges_decision.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_judge_knockout.mp3` | vo | 8 | `v3/voice/final/vo_judge_knockout.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_judge_order.mp3` | vo | 5 | `v3/voice/final/vo_judge_order.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_judge_winner_on_points.mp3` | vo | 12 | `v3/voice/final/vo_judge_winner_on_points.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_mogger_ascend.mp3` | vo | 4 | `v3/voice/final/vo_mogger_ascend.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_mogger_ascension.mp3` | vo | 13 | `v3/voice/final/vo_mogger_ascension.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_mogger_brutal.mp3` | vo | 6 | `v3/voice/final/vo_mogger_brutal.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_mogger_drive.mp3` | vo | 4 | `v3/voice/final/vo_mogger_drive.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_mogger_frame_check.mp3` | vo | 4 | `v3/voice/final/vo_mogger_frame_check.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_mogger_frame_mogged.mp3` | vo | 5 | `v3/voice/final/vo_mogger_frame_mogged.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_mogger_get_out_of_my_frame.mp3` | vo | 11 | `v3/voice/final/vo_mogger_get_out_of_my_frame.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_mogger_gotta_mog.mp3` | vo | 9 | `v3/voice/final/vo_mogger_gotta_mog.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_mogger_hair_transplant.mp3` | vo | 6 | `v3/voice/final/vo_mogger_hair_transplant.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_mogger_i_am_true_adam.mp3` | vo | 15 | `v3/voice/final/vo_mogger_i_am_true_adam.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_mogger_interesting.mp3` | vo | 5 | `v3/voice/final/vo_mogger_interesting.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_mogger_its_over.mp3` | vo | 8 | `v3/voice/final/vo_mogger_its_over.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_mogger_mid.mp3` | vo | 5 | `v3/voice/final/vo_mogger_mid.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_mogger_mogged.mp3` | vo | 5 | `v3/voice/final/vo_mogger_mogged.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_mogger_next.mp3` | vo | 7 | `v3/voice/final/vo_mogger_next.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_mogger_not_bad.mp3` | vo | 4 | `v3/voice/final/vo_mogger_not_bad.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_mogger_not_flowing.mp3` | vo | 10 | `v3/voice/final/vo_mogger_not_flowing.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_mogger_not_my_hairline.mp3` | vo | 10 | `v3/voice/final/vo_mogger_not_my_hairline.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_mogger_psl_eight.mp3` | vo | 10 | `v3/voice/final/vo_mogger_psl_eight.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_mogger_run_the_gauntlet.mp3` | vo | 13 | `v3/voice/final/vo_mogger_run_the_gauntlet.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_mogger_so_back.mp3` | vo | 10 | `v3/voice/final/vo_mogger_so_back.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_mogger_terachad.mp3` | vo | 8 | `v3/voice/final/vo_mogger_terachad.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_mogger_too_easy.mp3` | vo | 5 | `v3/voice/final/vo_mogger_too_easy.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_reaper_nooo_my_clippers.mp3` | vo | 22 | `v3/voice/final/vo_reaper_nooo_my_clippers.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_reaper_norwood_seven.mp3` | vo | 20 | `v3/voice/final/vo_reaper_norwood_seven.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_reaper_your_hairline_is_mine.mp3` | vo | 25 | `v3/voice/final/vo_reaper_your_hairline_is_mine.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_ring_final_round.mp3` | vo | 8 | `v3/voice/final/vo_ring_final_round.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_ring_literally_so_tall.mp3` | vo | 13 | `v3/voice/final/vo_ring_literally_so_tall.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_ring_ooh_knockout.mp3` | vo | 14 | `v3/voice/final/vo_ring_ooh_knockout.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_ring_real_jaw.mp3` | vo | 14 | `v3/voice/final/vo_ring_real_jaw.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_ring_right_there.mp3` | vo | 14 | `v3/voice/final/vo_ring_right_there.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_ring_round_one.mp3` | vo | 9 | `v3/voice/final/vo_ring_round_one.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_ring_round_three.mp3` | vo | 7 | `v3/voice/final/vo_ring_round_three.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/vo_ring_round_two.mp3` | vo | 10 | `v3/voice/final/vo_ring_round_two.mp3` | ElevenLabs v3 stock voice via Replicate (elevenlabs/v3); no cloning | OK (written approval) |
| `au/win_small.mp3` | boot | 2 | `demo/assets/sfx/win_small.mp3` | Kenney.nl packs (CC0) + original synth layers (demo/work/audio.py) | OK |
