3.6 KiB
D&D Location Artifact
This contract defines the durable, source-grounded location registry produced
by dnd/locations. It records transcript-established physical places for one
source document; it is not a map, location hierarchy, campaign-wide world
registry, or location description.
Identity and compatibility
| Property | Value |
|---|---|
| Artifact kind | dnd/location-list |
| Schema ID | notarius.dnd.locations |
| Schema name | notarius_dnd_locations_v1 |
| Schema version | v1 |
| Media type | application/json |
| Identity policy | dnd.locations.identity.v1 |
v1 accepts one strict JSON object with required locations; the array may be
empty. Location and source-reference objects reject unknown fields. An
incompatible artifact shape or identity-policy change uses a new version or
policy.
Wire shape and identity
Each location has these required fields:
| Field | Contract |
|---|---|
id |
location:sha256: followed by 64 lowercase hexadecimal characters. |
name |
Non-empty transcript-established display name. |
source_refs |
One or more transcript evidence ranges that identify the place. |
A source reference has exactly source_id, start_unit_id, and end_unit_id.
The source ID identifies the transcript, unit IDs are positive inclusive unit
identifiers, and the start may not follow the end.
{
"locations": [
{
"id": "location:sha256:5c1a91f15729df0b8c257093865fdf2452b43c215375e8cf2341aa9c37bb99aa",
"name": "Moon Gate",
"source_refs": [
{"source_id": "session-7", "start_unit_id": 4, "end_unit_id": 5}
]
}
]
}
The ID is deterministic and scoped to the source document. Notarius normalizes the display name for comparison with Unicode NFKC, supported apostrophe normalization, collapsed whitespace, and case folding. It hashes compact JSON for this array, using the earliest canonical source reference as the anchor:
["dnd.locations.identity.v1", comparison_name, source_id, start_unit_id, end_unit_id]
The canonical ID is the lowercase SHA-256 digest of those bytes with the
location:sha256: prefix. Equal display names are allowed when their evidence
anchors differ, so a generic name does not force distinct places to collapse.
Scope, reconciliation, and evidence
Locations are physical or spatial places established by the transcript, such as planes, regions, settlements, districts, buildings, rooms, landmarks, routes, and geographic features. A generic label is permitted only when it identifies a specific place in the transcript. Notarius does not infer an unstated place or add hierarchy, coordinates, descriptions, participants, or ownership.
Normalization first applies deterministic display, evidence, and ID rules. It then may use a bounded LLM-assisted proposal to reconcile semantically duplicate records. The proposal is validated and applied conservatively; invalid or unusable proposals retain the deterministic result with retry or fallback diagnostics. The registry's source references establish registry provenance, not evidence for later artifacts.
Consumers and publication
dnd/location-occurrences requires one approved location registry through its
locations reference slot. Its prompt receives an ordered source-free {id, name} projection and must not treat registry references as occurrence
evidence. See the location-occurrence artifact
for that contract, Configuration
for binding rules, and the JSON output contract for
publication.