Files
notarius/docs/integrations/dnd-item-event-artifacts.md

3.0 KiB

D&D Item-Event Artifact

This contract defines the durable item and currency occurrence list produced by dnd/item-events. It records source-grounded discoveries and possession changes; it does not maintain an inventory, balance, or ledger.

Identity and compatibility

Property Value
Artifact kind dnd/item-event-list
Schema ID notarius.dnd.item_events
Schema name notarius_dnd_item_events_v1
Schema version v1
Media type application/json

v1 is a strict JSON object with required events; the array may be empty. Event and source-reference objects reject unknown fields. An incompatible shape change requires a new schema version.

Wire shape

Every event has required name, kind, and source_refs. quantity, from, and to are optional where the event kind permits them.

Field Contract
name Non-empty item or currency display name.
kind discovered, acquired, lost, consumed, or transferred.
quantity Optional positive integer; omit it when no count is established.
from Optional non-empty losing holder, when allowed by kind.
to Optional non-empty gaining holder, when allowed by kind.
source_refs One or more transcript evidence ranges.

Each source reference has exactly source_id, start_unit_id, and end_unit_id. It identifies an inclusive current-transcript range; unit IDs are positive and the start may not follow the end.

{
  "events": [
    {
      "name": "Silver Pieces",
      "kind": "acquired",
      "quantity": 20,
      "to": "party",
      "source_refs": [
        {"source_id": "session-7", "start_unit_id": 2, "end_unit_id": 2}
      ]
    }
  ]
}

Holder rules and minimal extraction

discovered has neither holder; acquired requires to and forbids from; lost and consumed require from and forbid to; transferred requires both holders. party denotes collective possession. A transfer cannot use party for either holder and its two normalized holders must differ.

Only an evidenced discovery or possession change belongs in this artifact. It does not infer quantities or holders, convert currency denominations, calculate balances, or merge nearby events. Campaign references may disambiguate names but are never event evidence. Currency uses the ordinary name field and an explicit quantity only when the transcript establishes one; each denomination remains a separate event.

Normalization trims display whitespace, orders and removes exact duplicate source references, then orders events by valid source chronology, name identity and display value, kind, holders, quantity, and reference sequence. It collapses only entries with the same normalized durable fields and complete valid evidence.

The JSON output contract defines publication. See D&D module internals for implementation details and the NPC-interaction artifact for a distinct kind of occurrence.