Inspiration
Versailles is not just a monument. It is a place shaped by power, ambition, art, diplomacy and history. We wanted players to work out where and when they had arrived through observation and action, rather than turning pages or receiving answers from an AI.
Our principle is simple: the player reasons; the agent supports, without taking over.
What it does
The Hall of Mirrors becomes an interface to time. The player restores five fragments: WITHDRAWAL → POWER → RUPTURE → MEMORY → INFLUENCE.
Across 1623, 1682, 1789, 1837–1919 and 2026, the mechanics change with the historical role of Versailles: examine a map, letter and seal; match six royal orders to their recipients; find a concealed passage by observing the woodwork; arrange discovered objects into sequences; and connect evidence about the palace's changing function.
The final mirror returns to the present. Versailles is no longer the seat of royal power, but its history gives diplomatic encounters symbolic weight. This is historical interpretation, not political endorsement.
Why WebMCP matters
WebMCP gives an external agent a bounded, structured view of actual game state. It does not have to guess progress from pixels or inspect unrestricted internal data. The game reports the current phase, discovered evidence, relevant errors and permitted assistance.
Zero relevant errors means SILENT and refusal of a hint request. One permits NUDGE; two or more permit GUIDE. Hints are selected by deterministic game rules, not freely generated by a language model.
In the 1682 demonstration, an order goes to the wrong recipient. A real request_hint call returns a reading strategy, not the recipient's name. A later sequence error in 1919 produces a different method hint. The player makes the next choice.
How we built it
Native HTML, CSS and JavaScript ES modules support a pure state reducer and filtered public projection. The static game needs no account, backend, database or API key.
Five tools are registered through document.modelContext.registerTool():
- get_mission_state reads filtered state and assistance policy.
- inspect_evidence examines one to six discovered observations.
- request_hint requests policy-bounded help.
- compare_evidence compares two or three discovered observations.
- submit_hypothesis submits an available hypothesis to normal domain validation.
JSON Schema describes inputs; runtime validation and abort signals enforce boundaries. Read tools do not change progress. A valid hypothesis may advance through the normal reducer, but cannot force success, bypass prerequisites or ask for hidden solutions.
Challenges and what we learned
The main challenge was making assistance useful without replacing historical reasoning. Each era needs a different puzzle, while the agent needs one coherent contract. Filtering discovered evidence, enforcing error thresholds and validating every action matter more than offering unrestricted context.
We also kept filming evidence honest: cards labelled RECORDED TOOL RESPONSE are editorial layouts of actual recorded responses, not invented game UI or a simulated autonomous conversation. Filming begins at chapter checkpoints; the video is not an uninterrupted public playthrough.
Validation and limitations
The reviewed local candidate passed 97 automated tests. Eight boundary tests cover repeated errors, hidden evidence, prerequisites, cancellation, restart and final-fragment idempotence. After the contemporary visual replacement, 17 affected tests passed, and the arrival/welcome interactions were checked in Edge.
There is no persistent save: reloading starts a clean game. Tool filtering is not source-code secrecy; the JavaScript remains inspectable. We do not claim measured learning outcomes or universal browser compatibility.
Media and provenance
The 2:40 jury film uses the author's approved English transcript, narrated by Charles through ElevenLabs. Historical illustrations are AI-assisted reconstructions, not archival photographs. Contemporary 2026 visuals in the prepared release use credited Official White House Photos by Daniel Torok, taken at Versailles on June 17, 2026. No endorsement is implied. Detailed credits and historical sources are included in the repository.
Open source
The project is released under the MIT License. The complete source code, assets, automated test suite and reproducible setup instructions are available in the linked public GitHub repository.
What's next
Broader player testing and accessibility refinement, while preserving the central boundary: assistance should help the player reason, not remove the reason to play.
Built With
- css3
- elevenlabs
- html5
- javascript
- node.js
- webmcp
Log in or sign up for Devpost to join the conversation.