The Graph
Why every entity joins one shared graph, so links, mentions, collections and favourites all point at the same kind of target.
A worldbuilding tool is mostly connections. A character mentions a city, a relationship ties two factions, a collection groups a dozen resources, a note points at whatever it is about. The naive way to build each of these is to give it its own way of pointing at things: a mentions table with its own target columns, a relationships table with different ones, and so on. Do that a few times and you have five slightly different ideas of what "a thing you can point at" means, and every new feature has to learn all five.
Chronicler refuses that. Every pointable entity joins one shared graph, and everything that points at something points at a graph node. This page is what that buys.
A node knows itself, and nothing about you
A node carries identity and nothing that depends on who is asking. How it should be displayed, and whether you are even allowed to see it, are not stored on the node. They are resolved per kind, at read time, through a caller-aware resolver owned by the context that owns that kind. Keeping the caller-dependent parts out of the node is what lets one node serve a game master and a player correctly without holding two copies of itself.
One table for every reference
Because every target is a node, every reference can live in one graph_edges table: relationships, mentions, attachments, collection memberships, all of it. A new feature that needs to connect things does not invent a table. It adds edges. Resolution is scoped to a chronicle, and the client works out where a target lives from the chronicle id that comes back, rather than from whatever screen it happened to be on.
What rides on top
The uniform target is not the point by itself. It is the foundation the connective features stand on.
A relationship is a typed link between resources, directional or symmetric, its type defined in the taxonomy, each edge its own small aggregate that orients itself to whoever is reading it. A mention is an inline reference inside a rich-text body, resolved live so it never goes stale, and extracted into edge rows at write time so backlinks and reveal-safe filtering come for free. When a mention points at something that does not exist yet, it becomes a placeholder the author can promote later, so writing is never blocked by a missing target. A collection is a typed container that groups resources, notes, eras, and events, with its own membership rules. And a favourite is a personal, per-world pin, which reuses the graph so one resolver renders any kind of pinned thing as an access-checked reference.
Where this connects
The graph is what Resources link through, what Lore and authoring mentions point into, and the substrate a future graph database would formalise.
Read the record for the detail
This page is the guide. The full records under docs/adrs carry the edge model, the node-kind contract, and the alternatives that were weighed and rejected.