Game pack 3: 22 new games (19-40), 40 in total. - New engines: dial (Wavelength / Mind Meld), twin (Twin Rooms / Spot the Difference, incl. mirror mode) and blueprint (Describe & Draw, incl. peeks, overlap scoring and a rotated Builder canvas) - Labyrinth: items and doors (Hedge Maze) - Defuse: manualFrom, roles swapping every level behind a Ready card, and duplicate wire modules (Tick Tock: Switch) - Generic time limits for the new engines; sync/defuse successEnding - Library: engine-label chips and filters; Noto Color Emoji font - Validation: Appendix A checks ported, with a per-game summary - Quote comma/colon-split labels in five new YAMLs (wording unchanged) - Tests for all new engines and sanitized payloads of all 22 games - Docs: CLAUDE.md, GAMES.md (pack 3 spoiler guide), How to Play Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
280 lines
12 KiB
YAML
280 lines
12 KiB
YAML
id: til-death-do-us-part
|
||
engine: story
|
||
category: murder-mystery
|
||
title: "'Til Death Do Us Part"
|
||
tagline: A Stellenbosch wedding. A perfect first dance. A best man at the bottom of the garden stairs.
|
||
estimatedMinutes: 30
|
||
difficulty: 3
|
||
players: { min: 2, max: 2 }
|
||
theme: { primary: "#b5838d", accent: "#ffcdb2", background: "#140c0e", headingFont: "Playfair Display" }
|
||
rules:
|
||
hintPenaltySeconds: 180
|
||
roles:
|
||
A:
|
||
name: The Detective
|
||
blurb: You're a wedding guest who happens to be a detective. Statements, the seating rules, the police notes.
|
||
B:
|
||
name: The Photographer's Assistant
|
||
blurb: You worked the wedding. Camera files, the planner's folders, and the best man's phone.
|
||
intro: |
|
||
**A wine estate outside Stellenbosch. Saturday, 21:30.**
|
||
|
||
Thabo and Lize are married. The speeches went well, the lights dim, and the couple step out for their first dance.
|
||
|
||
At 21:50, a waiter finds **Jason Pike**, the best man, at the bottom of the stone garden stairs. Everyone assumes
|
||
champagne and a missed step. The doctor at table 6 doesn't.
|
||
|
||
Don't let a murder ruin a perfectly good wedding. **Solve it before the cake is cut.**
|
||
|
||
⚠️ *Hard case: the locks give you facts. You'll connect them in the accusation.*
|
||
|
||
suspects:
|
||
- id: kayla
|
||
name: Kayla Daniels
|
||
role: Maid of honour
|
||
description: Jason's ex. They broke up badly six months ago and had to share a head table tonight.
|
||
- id: sipho
|
||
name: Sipho Ndlovu
|
||
role: Groom's brother
|
||
description: Owes Jason money. Was seen arguing with him by the bar.
|
||
- id: johan
|
||
name: Johan Marais
|
||
role: Father of the bride
|
||
description: Paid for everything. Jason's speech joked about his "dodgy property deals". He didn't laugh.
|
||
- id: celeste
|
||
name: Celeste Moreau
|
||
role: Wedding planner
|
||
description: Elegant, efficient, everywhere at once. Wears the planner team's navy dress.
|
||
- id: marco
|
||
name: Marco Russo
|
||
role: The bride's ex
|
||
description: Not invited. Turned up anyway, "just to say congratulations". Security walked him out at 21:00.
|
||
|
||
chapters:
|
||
- id: ch1
|
||
title: The Empty Chair
|
||
narrative: |
|
||
The videographer filmed the first dance, 21:32 to 21:42, with the head table behind the couple.
|
||
Two chairs at the head table are empty in every frame. One is Jason's. Whose is the other?
|
||
clues:
|
||
A:
|
||
- id: a1-rules
|
||
title: The planner's seating notes (police copy)
|
||
type: note
|
||
body: |
|
||
Head table, seats **1–5 from the guests' left** (the couple's own seats in the middle don't count).
|
||
1. Johan sits directly next to his wife, Anita.
|
||
2. The maid of honour is not on either end.
|
||
3. The best man sits at the groom's end: **seat 5**.
|
||
4. Johan is **not** in the middle seat (3). "He hates being in the middle of photos."
|
||
B:
|
||
- id: b1-planner
|
||
title: More seating notes (from the planner's folder)
|
||
type: note
|
||
body: |
|
||
5. The groom's brother sits directly next to the maid of honour.
|
||
6. Anita sits somewhere to Johan's **left** (guests' view).
|
||
7. Jason and Johan must **not** sit next to each other. Long story.
|
||
8. The groom's brother sits to the maid of honour's **left**.
|
||
- id: b1-video
|
||
title: Videographer's note
|
||
type: log
|
||
body: |
|
||
First dance 21:32–21:42. Head table visible throughout.
|
||
**Seats 3 and 5 empty the entire time.** Seats 1, 2 and 4 occupied.
|
||
lock:
|
||
id: lock-chair
|
||
prompt: Who should have been in seat 3?
|
||
inputType: choice
|
||
options:
|
||
- { id: anita, label: Anita Marais (mother of the bride) }
|
||
- { id: johan, label: Johan Marais }
|
||
- { id: kayla, label: Kayla Daniels }
|
||
- { id: sipho, label: Sipho Ndlovu }
|
||
answers: ["sipho"]
|
||
hints:
|
||
- Jason is in seat 5. Johan can't be next to him, so Johan isn't in seat 4.
|
||
- Johan isn't in 3 or 4, and Anita is to his left and next to him. So Anita 1, Johan 2.
|
||
- "Seats 3 and 4 are Sipho and Kayla, with Sipho on Kayla's left: Sipho is seat 3."
|
||
successText: |
|
||
**Sipho**, the groom's brother. He wasn't at the table during the first dance.
|
||
(Sipho, cornered: *"I was in the car park on the phone to my bank. Ask them."* His call log
|
||
shows a call from 21:30 to 21:47. Inconvenient for a killer.)
|
||
keyName: Place Card Key
|
||
|
||
- id: ch2
|
||
title: The Last Photo
|
||
narrative: |
|
||
The photographer took hundreds of shots. One shows Jason at the top of the garden stairs with someone.
|
||
But the camera's clock was never set properly.
|
||
clues:
|
||
A:
|
||
- id: a2-photos
|
||
title: Photo files near the garden stairs (camera timestamps)
|
||
type: log
|
||
body: |
|
||
| File | Camera time | What it shows |
|
||
|------|-------------|---------------|
|
||
| IMG_2207 | 23:41 | Jason laughing on the terrace, champagne in hand |
|
||
| IMG_2219 | **23:45** | Jason at the **top of the garden stairs**, talking to a woman in a **navy dress**, her back to the camera |
|
||
| IMG_2231 | 23:47 | The first dance, wide shot |
|
||
| IMG_2246 | 23:52 | Garden stairs, empty |
|
||
B:
|
||
- id: b2-camera
|
||
title: Photographer's voice note
|
||
type: transcript
|
||
body: |
|
||
"Ugh, I never changed the camera clock after the Dubai job. It's **two hours ahead**.
|
||
And it was already running **seven minutes fast** before that. Sorry!"
|
||
- id: b2-dresscode
|
||
title: Planner's colour plan
|
||
type: table
|
||
body: |
|
||
| Group | Colour |
|
||
|-------|--------|
|
||
| Bridesmaids (incl. maid of honour) | Sage green |
|
||
| Mothers of the couple | Blush pink |
|
||
| **Planner team** | **Navy** |
|
||
| Guests | "Anything but white, navy or sage" |
|
||
lock:
|
||
id: lock-photo
|
||
prompt: What was the real time of IMG_2219?
|
||
inputType: code
|
||
format: "HH:MM"
|
||
answers: ["2138", "938", "938PM"]
|
||
hints:
|
||
- The camera is ahead by 2 hours plus 7 minutes.
|
||
- Take 2:07 off the camera time.
|
||
- 23:45 − 2:07 = 21:38.
|
||
successText: |
|
||
**21:38**, during the first dance. Jason was alive at the top of the garden stairs, talking to a woman in **navy**.
|
||
By 21:45 the stairs were empty. Navy is the **planner team's** colour, and only one planner was working tonight.
|
||
keyName: Camera Key
|
||
|
||
- id: ch3
|
||
title: The Toast Card
|
||
narrative: |
|
||
In Jason's jacket: his speech card. One line on the back looks oddly printed, with some letters bold and some not.
|
||
Jason's friends say he loved "old spy stuff".
|
||
clues:
|
||
A:
|
||
- id: a3-card
|
||
title: Back of Jason's speech card
|
||
type: note
|
||
body: |
|
||
**H**e**re**'s t**o** the bri**de** a**nd** **g**r**o**o**m**, **m**ay every day feel like this one
|
||
*(Pencilled: "Final toast. 5 by 5. Thin = a, fat = b.")*
|
||
B:
|
||
- id: b3-bacon
|
||
title: Jason's phone, a saved note "Bacon's cipher"
|
||
type: table
|
||
body: |
|
||
Read letters in groups of five: thin letter = **a**, bold letter = **b**. Ignore spaces and punctuation.
|
||
| Group | Letter | Group | Letter | Group | Letter |
|
||
|-------|--------|-------|--------|-------|--------|
|
||
| aaaaa | A | ababa | K | baaab | R |
|
||
| aaaab | B | ababb | L | baaba | S |
|
||
| aaaba | C | abbaa | M | baabb | T |
|
||
| aaabb | D | abbab | N | babaa | U |
|
||
| aabaa | E | abbba | O | babab | V |
|
||
| aabab | F | abbbb | P | babba | W |
|
||
| aabba | G | baaaa | Q | babbb | X |
|
||
| aabbb | H | | | bbaaa | Y |
|
||
| abaaa | I | | | bbaab | Z |
|
||
| abaab | J | | | | |
|
||
*This version has 26 separate letters (I and J, U and V are different).*
|
||
lock:
|
||
id: lock-bacon
|
||
prompt: What did Jason hide on his toast card?
|
||
inputType: text
|
||
format: One word
|
||
answers: ["WIDOW", "BLACKWIDOW"]
|
||
hints:
|
||
- "Write each letter as a (normal) or b (bold), then split into groups of five: H-e-r-e-s = b a b b a."
|
||
- babba = W. The next group, t-o-t-h-e, is a b a a a.
|
||
- W-I-D-O-W.
|
||
successText: |
|
||
**"WIDOW."** Jason's final toast was going to name someone as a **widow**. And not a sad one.
|
||
keyName: Toast Key
|
||
|
||
- id: ch4
|
||
title: Uncle Leon's Wedding
|
||
narrative: |
|
||
Jason's phone has an album called "UNCLE LEON". His uncle married in 2019, died eight months later,
|
||
and his new wife vanished with his savings.
|
||
clues:
|
||
A:
|
||
- id: a4-police
|
||
title: Police description of Celeste Moreau (taken tonight)
|
||
type: report
|
||
body: |
|
||
Female, about 40. Dark hair in a chignon. Navy planner's dress.
|
||
Small tattoo on the **inside of her left wrist: a swallow**. Says she's "been planning weddings for six years".
|
||
B:
|
||
- id: b4-album
|
||
title: Jason's album "UNCLE LEON", wedding photo, 2019
|
||
type: photo
|
||
body: |
|
||
*Leon Pike, beaming, beside his bride "Claire". She's raising a glass with her left hand.
|
||
On the inside of her wrist: a small **swallow** tattoo.*
|
||
*Jason's caption, written last week: "Found her. She's planning Thabo's wedding."*
|
||
lock:
|
||
id: lock-tattoo
|
||
prompt: What links the planner to Uncle Leon's bride?
|
||
inputType: text
|
||
format: One word
|
||
answers: ["SWALLOW", "TATTOO", "SWALLOWTATTOO", "ASWALLOW", "THESWALLOW"]
|
||
hints:
|
||
- Compare the police description with the old wedding photo.
|
||
- Look at the left wrist.
|
||
- The swallow tattoo.
|
||
successText: |
|
||
**The swallow tattoo.** "Claire Pike" and Celeste Moreau are the same woman: she married Jason's uncle,
|
||
and when he died she disappeared with everything. Jason recognised her and was going to say so in his final toast.
|
||
keyName: Swallow Key
|
||
|
||
finale:
|
||
type: accusation
|
||
prompt: The cake is coming out. Make your accusation before anyone cuts it.
|
||
maxAttempts: 2
|
||
questions:
|
||
- id: who
|
||
label: Who killed Jason Pike?
|
||
options:
|
||
- { id: kayla, label: Kayla Daniels }
|
||
- { id: sipho, label: Sipho Ndlovu }
|
||
- { id: johan, label: Johan Marais }
|
||
- { id: celeste, label: Celeste Moreau }
|
||
- { id: marco, label: Marco Russo }
|
||
answer: celeste
|
||
- id: how
|
||
label: How?
|
||
options:
|
||
- { id: fell, label: "He fell, drunk, nobody did anything" }
|
||
- { id: pushed, label: Lured to the top of the garden stairs during the first dance at 21:38 and pushed }
|
||
- { id: poison, label: Poison in his champagne }
|
||
- { id: carpark, label: Attacked in the car park }
|
||
answer: pushed
|
||
- id: why
|
||
label: Why?
|
||
options:
|
||
- { id: ex, label: A bitter break-up }
|
||
- { id: money, label: An unpaid debt }
|
||
- { id: speech, label: Humiliation in the speeches }
|
||
- { id: widow, label: "He'd recognised her as the woman who married and robbed his uncle, and was about to expose her" }
|
||
answer: widow
|
||
successEnding: |
|
||
Celeste straightens a centrepiece that doesn't need straightening.
|
||
|
||
"Six weddings a month. Nobody looks at the planner. And then the best man looks at my wrist and goes pale."
|
||
|
||
At 21:38, while everyone watched the first dance, she asked Jason to "help with the sparklers" at the top
|
||
of the garden stairs. He told her he knew. She pushed.
|
||
|
||
**Case closed.** The cake gets cut. Lize says it's the most memorable wedding in family history. 💍🔑
|
||
failEnding: |
|
||
The wrong person is led out past the dessert table. "Claire" collects her fee and moves on to the next wedding.
|
||
reveal: |
|
||
**Celeste Moreau** pushed Jason down the garden stairs at **21:38 during the first dance**, because he'd recognised her
|
||
(the **swallow tattoo**) as the **"widow" who married and robbed his uncle** and was about to expose her in his toast.
|