Files
joshuaandClaude Opus 5.5 52745935ee V1.3.0
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>
2026-10-15 10:21:24 +02:00

92 lines
3.4 KiB
YAML

id: twin-cafes
engine: twin
category: co-op
title: "Twin Rooms: The Twin Cafés"
tagline: Two cafés on opposite corners, run by identical twins who copy everything. Almost everything.
estimatedMinutes: 15
difficulty: 2
players: { min: 2, max: 2 }
theme: { primary: "#6f4e37", accent: "#e9c46a", background: "#120c08", headingFont: "Playfair Display" }
roles:
A:
name: Partner A
blurb: You're in Café Uno.
B:
name: Partner B
blurb: You're in Café Due, across the street.
intro: |
The Bianchi twins opened identical cafés on opposite corners of the same square. They copy each other's
menus, chairs, even the cat. But each twin secretly changed a few things to see if anyone would notice.
You'll notice. Describe your café square by square, then **both tap the same square** within 15 seconds to claim a difference.
Wrong claims cost 20 seconds. No coordinates on the grid this time; you'll have to describe positions yourselves.
twin:
claimWindowSeconds: 15
wrongClaimPenaltySeconds: 20
mirrorB: false
showCoordinates: false
scenes:
- id: counter
title: "The Counter"
timeSeconds: 240
keyName: Espresso Key
differences: 6
grid: # shown to A (and to B with changes applied)
- "🫖 🍰 🫖 🍪 🍩 🍰 🫖 🥪"
- "🍩 🫖 🧇 🥯 🥪 🍪 🍪 🥖"
- "🍰 🍫 🍰 ☕ ☕ 🥐 🍩 🥤"
- "🥯 🥪 🫖 🥯 🧁 🥖 🍰 🧇"
- "🥯 🥯 🫖 🥪 🍫 🥯 🥪 🍪"
- "🫖 🍩 ☕ 🍫 🍰 🧁 🥯 🥪"
changes: # SERVER ONLY: B's version differs at these cells
- { x: 6, y: 0, to: "🍶" }
- { x: 0, y: 2, to: "🧁" }
- { x: 4, y: 3, to: "🍰" }
- { x: 0, y: 4, to: "🍩" }
- { x: 4, y: 5, to: "🧁" }
- { x: 6, y: 5, to: "🍩" }
- id: terrace
title: "The Terrace"
timeSeconds: 240
keyName: Terrace Key
differences: 6
grid: # shown to A (and to B with changes applied)
- "☂ 🌞 🌼 🎨 🛵 🪑 🧑‍🎨 🚲"
- "🛵 🌸 🪑 🕊 🎨 🌼 🌞 ☂"
- "🛵 🌿 🪑 🌿 🛵 🌳 🐈 🌼"
- "🪑 🌳 📰 🕊 🕊 🪑 🌳 🌿"
- "📰 🐈 🚲 🧑‍🎨 📰 🧑‍🎨 🌸 ☂"
- "🌿 🌸 🧑‍🎨 🌳 🌳 📰 🌼 🛵"
changes: # SERVER ONLY: B's version differs at these cells
- { x: 0, y: 1, to: "🏍" }
- { x: 6, y: 1, to: "🌝" }
- { x: 6, y: 3, to: "🌲" }
- { x: 2, y: 4, to: "🛴" }
- { x: 4, y: 5, to: "🌲" }
- { x: 6, y: 5, to: "🌻" }
- id: window
title: "The Window Seat"
timeSeconds: 240
keyName: Window Key
differences: 6
grid: # shown to A (and to B with changes applied)
- "💌 🕯 💌 🍵 🧸 🧣 📚 📖"
- "🖋 🕯 🕯 🌙 🌙 💌 🧣 🧸"
- "📖 📖 🌙 🕯 🧸 🌙 🌧 📖"
- "🪟 📚 📖 📚 🪟 ⭐ 🎧 🖋"
- "🎧 🌙 🪟 🪟 🧸 🍂 🎧 🖋"
- "🧣 🍂 🎧 📚 🍂 🍂 💌 💌"
changes: # SERVER ONLY: B's version differs at these cells
- { x: 1, y: 1, to: "🪔" }
- { x: 2, y: 1, to: "🪔" }
- { x: 5, y: 1, to: "✉" }
- { x: 3, y: 3, to: "🗂" }
- { x: 1, y: 4, to: "🌛" }
- { x: 5, y: 4, to: "🍁" }
successEnding: |
Every difference found. You blink, and you're both back on the same side of the screen, looking at each other.
**Same wavelength. Same room.** 🪞🔑