Repository navigation
EN Contribute Decisions
Français · Type: reference · Audience: contributor · Context: engine repository · Status: ready · Applies from: 4.5.0
An index of the project's recorded decisions: the maintainer's dated decisions (D1 to D50) and the architecture
decision records (ADR 0001 to 0030). Both live in the public development documentation, docs/dev/, in English; this
page indexes them, it does not copy them. The ADR titles below are the files' own.
| Record | File | What one entry is |
|---|---|---|
| Decisions | docs/dev/DECISIONS.md |
One line per decision, dated, written by the assistant who received it, never without a human decision; the maintainer's words quoted (often in French, with the English beside them) |
| ADRs | docs/dev/adr/ |
One file per decision that looks surprising without its context: the context, the decision, what it costs, what would change it |
| The exchange | docs/dev/LOG.md |
Numbered, dated, append-only entries (proposals, reviews, answers) that lead to the decisions |
DECISIONS.md ends with a "Pending (asked, not decided)" list; on 23 October 2026 it says "(none)". There is no D6:
the numbering goes from D5 to D7.
| ADR | Decision |
|---|---|
| 0001 | The DOM is the reference renderer |
| 0002 | Content is data; code a game needs is trusted and named |
| 0003 | The solver runs the real engine |
| 0004 | A session is the unit of reproduction |
| 0005 | A save is read back before it counts |
| 0006 | A double tap acts with the verb a player means |
| 0007 | Biscuit authorises a connector; a signature attests an event (4.1.1) |
| 0008 | A connector is a process of its own, behind one small SDK (4.1.9) |
| 0009 | The Bridge keeps its state behind an asynchronous RealityStore (4.1.10) |
| 0010 |
SignalV2: a signed signal names the context it was signed for (4.1.10) |
| 0011 | A scene frame, intentions and a semantic journal (4.1.11) |
| 0012 | Canvas 2D stays the complete backend; WebGL/Pixi not measured in 4.1.11 |
| 0013 | One intermediate representation of a game (GameIR) and its fingerprint (4.1.12) |
| 0014 | Objectives and the quest journal, the one primitive family admitted in 4.1.12 |
| 0015 | A search stores its states by index, with exact interned keys (4.1.13 "Solver Research") |
| 0016 | A run clock that observes, a seeded generator, a chained proof of a run (4.1.14) |
| 0017 | Speedrun verdicts and trust levels (4.1.14) |
| 0018 | A variation manifest compiles to an immutable world (4.1.15) |
| 0019 | A run is bound to the world it was played in (4.1.16) |
| 0020 | A minigame's result is computed again from its transcript (4.1.17) |
| 0021 | A backup is one snapshot; a restore is all or nothing (4.1.19) |
| 0022 | The player chooses the hero: variant names, text switches, portraits in a choice (4.3.0) |
| 0023 | A backup says what it holds; a restore says its mode (4.1.20) |
| 0024 | A pass is bound to its surface, and carried only by a signed attestation (4.1.20) |
| 0025 | One shared game, edited live: transactions, one owner per file, revisions (4.2.1) |
| 0026 | Saves across revisions: the envelope unchanged, a question before resuming (4.2.2) |
| 0027 | The Studio Server's identity: OIDC for who, the Studio for what (4.2.1) |
| 0028 | Where a hosted Studio runs the game's code: a worker without secrets (4.2.1) |
| 0029 | The remote MCP: the same checks as the API, by going through it (4.2.3) |
| 0030 | The documentation is generated from one source in the repository, and published per release (4.5.0) |
One line each; the full text, with the maintainer's own words, is in DECISIONS.md.
| Decisions | Dates | What they settle |
|---|---|---|
| D1–D4 | 4 Oct 2026 | v3 may break v2, each break with its migration (D1); the v3 branch model (D2); the maintainer arbitrates every disagreement and the exchange is committed in docs/dev/, in English (D3); the goal: a v3 a small studio would trust (D4) |
| D5, D7–D9 | 4 Oct 2026 | The whole game offline after the first visit (D5); main is the release branch after v3.0.0, WebKit gated after three green runs (D7); the private reference game stays on 3.1.0 (D8); one branch at a time, merged on green CI, reviewed afterwards (D9) |
| D10–D13 | 5 Oct 2026 | A Canvas 2D renderer beside the DOM one (D10); the 3.3.1–3.5 releases (D11); human gates reported, not blocking (D12); the reference chapter reuses the demo's art (D13) |
| D14–D17 | 6 Oct 2026 | The 4.1.x line before 4.2 (D14); the Reality Bridge's signed envelope (D15), Biscuit on the Bridge only (D16), Server-Sent Events, no WebSocket (D17) |
| D18–D29 | 7–8 Oct 2026 | The 4.1.8–4.1.15 programme (D18); connectors as separate processes (D19); the Bridge's storage (D20); rendering is not a source of state (D21); the DSL stabilised then frozen (D22, D28); LiveSplit and OBS local (D23); the run clock observes (D24); Remix strategies, Mystery and Daily seeds, presentation variance (D25–D27); a speedrun category names its world (D29) |
| D30–D37 | 8–14 Oct 2026 | Tag signatures put off to 4.2 (D30); a minigame's result proved (D31); 4.1.18, 4.1.19, 4.1.20 (D32–D34); a pass qualifies a surface (D35); two restore modes (D36); the trust root is the maintainer's software key, each signed tag needs its own explicit yes (D37) |
| D38–D46 | 15–20 Oct 2026 | 4.2.0 ships before the people's passes, on a reduced stable scope (D38); the Studio Server as three 4.2.x patches, hosted behind OIDC (D39–D41); 4.2.2's and 4.2.3's choices (D42–D45); optional presentation-only fields in 4.2.x (D46) |
| D47–D50 | 20–23 Oct 2026 | The project becomes quest'n'click (D47); main is the 4.3 line (D48); 4.3 "Hero Choice" (D49); the documentation moves to a wiki generated from wiki/, and the yes to sign v4.5.0 (D50) |
- Governance: who decides, and how a decision is recorded.
- Architecture links the ADRs behind the engine's design.
Generated publication · publication générée — current documentation · documentation courante: quest'n'click 4.4.0 r1, documentation revision · révision de la documentation 8dc717c69acb62c4742b69c54a7e7dfb620f75d8.
Earlier versions and permalinks · versions précédentes et liens permanents: https://wanoo.github.io/quest-n-click/docs/
An edit made in this wiki is overwritten at the next publication · une modification faite dans ce wiki est écrasée à la publication suivante.
Edit the source · Modifier la source · Report an error · Signaler une erreur
Index (6)
Start (6)
Play (9)
Install (17)
- Requirements
- Install from the release archive
- Install from npm, once published
- Install from the repository to work on the engine
- doctor: checking your machine
- Image toolchain
- Audio toolchain: ffmpeg, fluidsynth, Furnace, uv
- Upgrade
- Upgrade notes: 4.4
- Upgrade notes: 4.3
- Upgrade notes: 4.2
- Upgrade notes: 4.1
- Upgrade notes: v3
- Upgrade notes: v2 to v3
- Coming from web-scumm
- Package reference
- Install troubleshooting
Create a game (55)
- Your first game
- Layout of a created project and of the engine repository
- The working loop
- Content principles and the identity contract
- Rooms
- Geometry: placement, walk zones, masks, layers, camera
- Something is visible but unreachable
- Reactions
- Game commands
- Conditions
- Flags, variables and events: which to use
- Custom code
- Characters
- Items and inventory
- World map
- Dialogues
- Scripts and events
- Moving characters: patrols and walks
- Exits
- Chapters and objectives
- State and saves: persistent or temporary, renaming an id, migrations
- Staging: wide rooms and animations
- The stage: lights, particles, floors
- Skin and fonts
- Title and credits
- Heroes: several characters and hero choice
- Built-in minigames
- A custom minigame
- Translations
- Music in stems
- Sound effects
- Voices: per language and per hero
- Images: prompts, cutting sheets, transparency, scale
- Asset provenance
- The storyboard, source of truth
- Puzzle design
- Classic mechanics
- Review pages
- DSL reference
- Checking your game
- What the solver proves
- Solver options
- Playtests
- Remix
- Speedrun for authors
- The sealed ending
- Production template
- Example games
- Working with an AI
- Build and release a game
- Publish on GitHub Pages
- The static game on Clever Cloud
- Other static hosts
- Sub-path, cache and service worker, incomplete deploys, going back
- Testing on a phone over the LAN
Local Studio (24)
- The local Studio: overview and launch
- Edit a room
- Placement and stage
- Preview, apply, undo
- Storyboard
- Assets and cutting
- Check: validator, solver, critical path, heat, health, coverage
- Before and after captures
- Semantic diff
- Play and replay a session
- Rule explainer
- Language and objectives
- Voices and the heroes × languages matrix
- Map
- Notes
- Remix in the Studio
- Music
- The Assistant: bring your own key
- Demo mode and studio-apply
- Local and LAN security
- Studio API
- Local MCP: setting up each client
- MCP tools
- Studio troubleshooting
Team Studio (21)
- What runs where
- Concepts: revision, transaction, span, lease, preview, build
- Starting as an invited dev
- Working together day to day
- Roles and actions: the full matrix
- Invitations
- Managing members
- Write refused on the hosted Studio: stale base revision (409)
- Write refused on the hosted Studio: span locked (423)
- Recovering after a lost lease, a disconnection or a stale preview
- Comments
- Map and semantic diff
- Publishing builds
- Remote MCP
- The game in Git
- Upgrading the engine of a hosted game
- Hosted assets
- The server's command line
- Health and metrics routes
- Trying it locally with compose.yml
- Known limits
Clever Cloud (23)
- Clever Cloud: overview, cost and prerequisites
- Apps and add-ons
- Domains and TLS
- Keycloak
- Generic OIDC and GitLab
- Configuration
- First deployment
- Backups
- RPO and RTO
- Restore the Studio on a fresh installation
- Redeploys
- Upgrading the server and checking state after a migration
- Limits of going back
- Monitoring
- Security
- Rotating keys
- Recovering admin access
- Changing domain or OIDC provider
- Worker, PostgreSQL or Cellar down
- Exporting the game and leaving the installation
- Retention
- Clever Cloud troubleshooting
- Costs and teardown
Reality Bridge and connectors (16)
- The Reality Bridge: what it is
- Quick start
- Guarantees
- Install and run the Bridge
- Backup and restore
- Several tenants
- Signals and the manifest
- The Bridge's command line
- Connectors overview
- Email connector
- Telnet connector
- SSH connector
- Open Badges connector
- The connector SDK
- Security: Biscuit and signatures
- Bridge and connector troubleshooting
Contribute (25)
- Welcome
- Developer setup
- The dev loop
- Before a pull request
- Conventions
- Writing documentation
- Architecture
- Code tour
- Import boundaries
- Which tests run when
- Mutation testing
- The coverage ratchet
- The quality baseline
- CI explained
- Field passes
- Benchmarks
- Releasing
- npm packages
- Decisions and ADRs
- Governance
- Bot pull requests
- Contributing with AI agents
- Security policy
- Code of conduct
- Licences and credits