05 — Wiki & notes
The world wiki (shared markdown pages) and private per-user notes.
Wiki — /wiki
Canonical storage is the wiki_pages table (ADR-0008 D4); the
json.wiki document block is gone from read paths.
| Method | Path | Notes |
|---|---|---|
GET | /wiki/pages?worldId=&includeDeleted= | List pages (id, title, version, atlas refs, timestamps) |
POST | /wiki/pages | Create { worldId, title, body?, kind?, audience? } |
GET | /wiki/pages/:id | Full page incl. markdown body |
PATCH | /wiki/pages/:id | Update (versioned) |
DELETE | /wiki/pages/:id | Soft delete |
POST | /wiki/pages/:id/restore | Undo a soft delete |
GET | /wiki/pages/:id/versions | Version history |
GET | /wiki/pages/:id/backlinks | Pages linking here |
GET | /wiki/search?q=&worldId= | Full-text search |
Scopes: wiki:read for GET, world:write for mutations. Wiki reads go
through the world's audience model — readWorldFor decides which pages
a player-visible request sees.
Notes — /notes
Private, per-user: notes are never shared through the world's audience model.
| Method | Path | Notes |
|---|---|---|
GET | /notes | List the caller's notes |
POST | /notes | Create |
GET | /notes/:id | Fetch |
PATCH | /notes/:id | Update |
DELETE | /notes/:id | Delete |
GET | /notes/anchors | Canvas anchors |
POST | /notes/:id/anchors | Attach an anchor to a map position |
DELETE | /notes/:id/anchors/:nodeId | Detach |
Agent proposals into wiki
The AI agent's wiki.create / wiki.update tools do not write
directly — they create entries in the proposals inbox
(07 — Proposals); the owner or a GM commits them.