Files
two-keys/content/games/blueprint-first-sketch.yaml
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

83 lines
2.5 KiB
YAML

id: blueprint-first-sketch
engine: blueprint
category: co-op
title: "Blueprint: First Sketch"
tagline: One of you sees the picture. The other has the paintbrush. Describe it, square by square.
estimatedMinutes: 10
difficulty: 1
players: { min: 2, max: 2 }
theme: { primary: "#118ab2", accent: "#ffd166", background: "#071219", headingFont: "Playfair Display" }
roles:
A:
name: Architect
blurb: You see the target picture. You can't see what your partner paints.
B:
name: Builder
blurb: You have a blank grid and a palette. You can't see the picture. Listen carefully.
intro: |
**Architect:** describe the picture. Rows, columns, shapes, colours, whatever works.
**Builder:** paint what you hear, then hit **Submit**.
Match at least **80%** to earn the key. The Architect gets **2 peeks** per picture: a 3-second look at the Builder's canvas.
Small grids, one colour each. A gentle start.
blueprint:
scoring: overlap # see requirements: matched painted cells ÷ cells painted in either grid
rotateBuilder: 0
swapRolesEachPattern: false
submitsPerPattern: 2 # a second try is allowed; best score counts
patterns:
- id: heart6
title: "A Heart" # SERVER ONLY until the pattern is finished (the Builder never sees the title)
size: 6
timeSeconds: 180
threshold: 0.8
peeks: 2
keyName: Heart Key
palette:
R: { name: Red, hex: "#e63946" }
rows: # '.' = empty. Architect sees this; Builder never does.
- "......"
- ".R..R."
- "RRRRRR"
- "RRRRRR"
- ".RRRR."
- "..RR.."
- id: house6
title: "A House" # SERVER ONLY until the pattern is finished (the Builder never sees the title)
size: 6
timeSeconds: 180
threshold: 0.8
peeks: 2
keyName: House Key
palette:
B: { name: Blue, hex: "#3a86ff" }
rows: # '.' = empty. Architect sees this; Builder never does.
- "..BB.."
- ".BBBB."
- "BBBBBB"
- ".B..B."
- ".B..B."
- ".BBBB."
- id: smile6
title: "A Smiley" # SERVER ONLY until the pattern is finished (the Builder never sees the title)
size: 6
timeSeconds: 180
threshold: 0.8
peeks: 2
keyName: Smile Key
palette:
Y: { name: Yellow, hex: "#ffd60a" }
rows: # '.' = empty. Architect sees this; Builder never does.
- ".YYYY."
- "YY.Y.Y"
- "YYYYYY"
- "Y.YY.Y"
- "YY..YY"
- ".YYYY."
successEnding: |
Every picture finished. Turns out you speak the same visual language.
**Masterpiece.** 🎨🔑