# MARE MAYHEM: Stake Engine submit checklist (v1.1 release, 2026-10-29: PADDOCK freeze fix + STARTING STALLS power-ups)

Legend: **[x]** done here · **[ ] JACOB** needs Jacob (Studio account, decisions, outside services).

The release folder is `/root/neo-claw-context/1563392448246325268/maremayhem/release/`, also at https://games.bet-llm.com/maremayhem/release/

| File | What |
|---|---|
| `maremayhem_frontend.zip` | Front end: `index.html` at the zip root, all URLs relative, 14.0 MB, 312 files. Build `mw4y7ng0` (2026-11-06 Stake review fixes) |
| `maremayhem_math.zip` | Math: `index.json` + 6 LUTs + 6 `books_*.jsonl.zst` at the zip root (128.1 MB) |
| `tile/` | `tile_bg_3x4.png`, `tile_bg_16x9.png`, `tile_fg.png` (padded square, transparent, clothed versions only, no text), two preview mocks |
| `STUDIO_DETAILS.md` | Name, short description, reviewer Game details, per-mode Game Info |
| `ASSET_LICENCES.md` | Per-asset sources and licences |

## Stake review feedback 2026-11-06

Stake flagged two things on STACKED. MARE MAYHEM had both, so they are fixed in this front end. Math is unchanged.
- [x] **Balance shows the currency's decimals only.** It is floored, so it can't read `$997.009` (USD 2, JPY 0, KWD 3). Wins can still show up to 4 decimals. Changed: `platform.js` `money(v, {balance:true})` and `hud.js`. Follow-up the same day: the floor is integer math on the micro amount, so 1,234,567.89 USD no longer shows as $1,234,567.88 (float error); `game/tools/money_test.mjs` 10/10.
- [x] **Replay card.** It used to be a strip ("REPLAY · mode · BET · REAL COST") plus a PLAY/AGAIN spin button. Now a replay opens on Stake's "Bet Replay" card: Mode / Base Bet / Cost Multiplier / **Total Bet Cost** / Payout Multiplier / **Total Win**, a ▶ Start Replay button, and the "No bets will be placed" footer.
  - After the round the button reads ▶ Replay Again. The strip stays visible during playback.
  - Social wording: Base Play / Feature Multiplier / Total Play Worth / Final Multiplier.
  - The card fits popout S (400×225) up to 4K.
  - New `src/replay_card.js`, called from `main.js`.
- [x] Tests on the rebuilt bundle (127.0.0.1 + paper RGS :8831):
  - `replay_card_check.py` **16/16**: 6 viewports × real/social, plus playback → Replay Again with no wallet calls.
  - `compliance_test.py` **33/33**. The replay section now checks the card: OVERTAKE €5.00 × 100 = €500.00, 22.45x, €112.25, plus a social card.
- New `maremayhem_frontend.zip` sha256 `1379624b7d6b127218e6e0622462b0a8aa8f278b2615f4ccadd53886ecf5f827`. The previous zip (`cdfbad4c…1f02`) is in `_backup_20261106/`.

## Verified here
- [x] **Math:** `verify_publish.py` reports all critical checks pass. All 6 modes are at 96.50%, max win 20,000× (base 1 in 6.77M), SD within the 3★ tier, P(≥10,000×) ≤ 1%.
- [x] **Front end:** the exact zip was unzipped into a fresh folder (`/maremayhem/release_test/`) and compliance run against it (2026-10-29): 28/31.
  - The 3 FAILs, [219] EUR / CAD / MXN, were text-capture timing flakes (the bar fades in after the test's 2.5 s window on this loaded box). A manual check of the same build at 6 s shows €100,000.00 / CA$100,000.00 / MX$2,000,000.00 with the right symbols and decimals; JPY and KRW passed.
- [x] **Resize stress:** every bonus played start to finish while the window was resized during every spin (the cause of the FULL PADDOCK freeze), with no hang.
- [x] **Books:** `check_books.py` replays every event of all 520,000 books (STALLS v4 power-ups included): 0 errors.
- [x] **Social sweep** (stake.us wording) run on the release build. See the release notes in Discord for the result.
- [x] **Test hooks** (showcase, force, timescale, oshi override) only work against the paper RGS, so they're inert on Stake's RGS. The console is clean.

## A. Decisions only Jacob can make
- [ ] **JACOB: licences.** Before going live, check the terms for real-money gambling use for:
  - **Mai studio art:** backgrounds, symbols, frame, logo.
  - **WAI-Illustrious characters:** FAIPL-1.0-SD. Outputs are unclaimed, but SD prohibited-use rules apply.
  - **MiniMax speech-2.8-hd voices:** no gambling clause was found, but it isn't verified.
  - **Stable Audio 2.5 music.**
  - **Stable Audio Open SFX:** the Community License allows commercial use only under $1M a year in revenue.
- [ ] **JACOB: content risk.** The in-game fanservice (lingerie tier, huge proportions) is well beyond the PG-13 pin-up level Stake has approved before. Reviewers can mark "explicit / poor taste" at their discretion. There's no nudity, and the tile and loader use the clothed versions.
- [ ] **JACOB: name check.**
  - Run engineplayers.com Name check / Game DNA for "MARE MAYHEM".
  - [253] watch-outs: HeatCheck's *Unicorn Derby* (racing on Engine), and Uma Musume as the horse-girl inspiration. Every character design is original.
- [ ] **JACOB: animation.** Motion is code-driven (part rigs, springs, particles); there's no frame animation. Every previous submission got "Poor animations". `game/ANIMATION_TODO.md` has the production quote.
- [ ] **JACOB: launch plan:** a Stake Challenge request, streamers, X posts.

## B. Studio steps
1. [ ] **Files → Import files.** Upload the `maremayhem_frontend.zip` contents as the front end and the `maremayhem_math.zip` contents as the math. Both zips are flat. Folder upload needs Chrome or Edge.
2. [ ] **Publish new version.** Math and front end publish separately.
3. [ ] **Play Game against the real RGS:**
   - a base spin;
   - BUY coin → OVERTAKE (100×), with the confirm screen;
   - SPURS ON toggle;
   - a replay from bet history;
   - a phone check, both portrait and landscape.
4. [ ] **Media → Create tile:**
   - backgrounds `tile/tile_bg_3x4.png` and `tile_bg_16x9.png`;
   - foreground `tile/tile_fg.png` (Madame, face + chest filling the square, bottom edge faded), enlarged to fill the red focus box at the top middle, clear of the title and studio name;
   - a pink/purple gradient.
5. [ ] **Game details:** paste the fields from `STUDIO_DETAILS.md`, then submit.
