Skip to content

Canonical documents

Everything on this site is a summary. These are the documents it summarises, and where the two disagree, they are right and this site has a bug.

DocumentAnswers
website/ARCHITECTURE.mdHow the website fits together — the canonical diagram
website/BACKEND_DESIGN.mdThe API, schema and security contract
website/MODULE_SYSTEM.mdWhy the module system is shaped this way
website/MODULE_API.mdEverything a module may do — the contract
website/TEAMS.mdTeams as a platform primitive
website/EVENTS.mdThe Event System — leases, the ledger, and the module seam
website/SHARD_VISIBILITY.mdThe audience ladder, for administrators
website/THEMING_AND_NAV.mdAdmin-configurable theme, assets and navigation
website/TRUSTED_DEVICES_MFA.mdTrusted devices and the second factor
link/PLAN.mdThe sidecar design of record, the data catalog and the wire protocol
link/INTEGRATION.mdIntegrating with the sidecar
link/v7.mdThe current protocol, and its cross-repository obligations
link/ADMIN_CONTROLS.mdWhat the site may command the game to do
installer/INSTALL.mdThe operator guide for setting a shard up
installer/PLAN.mdThe installer's design of record
modules/rust-dryrun.mdA second module designed on paper, to test that the contract generalises
modules/uo/API.mdmodule-uo's own API, including its audience rules
android/PLAN.mdThe Android app

Every path above is checked to still exist on every build, so a document that is renamed or moved turns this page red rather than leaving a dead link.

  • “May a module do this?” → MODULE_API.md. It is the contract, and it is the only thing that can answer yes.
  • “Why is the module system like this?” → MODULE_SYSTEM.md.
  • “What does this API return?” → your own deployment’s /api/docs, then BACKEND_DESIGN.md §4.
  • “What can the shard send?” → link/PLAN.md §5, and v7.md for the current protocol.
  • “What may a scheduled event do to the world?” → website/EVENTS.md for the model, MODULE_API.md for the verbs a module may declare, and link/ADMIN_CONTROLS.md for what the site may ask a game to do at all.
  • “Who may see this?” → SHARD_VISIBILITY.md for the administrator’s view, modules/uo/API.md §4 for the specification.
  • “How do I set a shard up?” → installer/INSTALL.md.

All of them are in RunicGateway/docs, which is Markdown only and versioned independently of the code it describes.

A code change is not complete until docs reflects it. That is a rule in the project’s own contributor guidance, not an aspiration — a change to behaviour, protocol, endpoints, schema, configuration or the deployment model requires a matching edit there.

The Integration Kit is its own repository, because its audience is outside this project and it teaches rather than specifies. See The Integration Kit.

The OpenAPI specification is generated and committed in website itself, because it is derived from the routes rather than written alongside them.