71 lines
2.7 KiB
Markdown
71 lines
2.7 KiB
Markdown
# D&D Scene-Description Artifact
|
|
|
|
This contract defines the durable output of `dnd/scene-descriptions`. Each
|
|
record classifies one accepted transcript chunk and gives it a minimal
|
|
source-grounded title and summary.
|
|
|
|
## Identity and compatibility
|
|
|
|
| Property | Value |
|
|
| --- | --- |
|
|
| Artifact kind | `dnd/scene-description-list` |
|
|
| Schema ID | `notarius.dnd.scene_descriptions` |
|
|
| Schema name | `notarius_dnd_scene_descriptions_v1` |
|
|
| Schema version | `v1` |
|
|
| Media type | `application/json` |
|
|
|
|
`v1` is a strict JSON object with required non-empty `scenes`. Scene and
|
|
source-reference objects reject unknown fields. An incompatible shape change
|
|
requires a new schema version.
|
|
|
|
## Wire shape
|
|
|
|
Each scene has exactly these required fields:
|
|
|
|
| Field | Contract |
|
|
| --- | --- |
|
|
| `id` | Non-empty accepted chunk ID, assigned by Notarius. |
|
|
| `source_ref` | The assigned inclusive source range for that chunk. |
|
|
| `kind` | `combat`, `narrative`, `recap`, or `meta`. |
|
|
| `title` | Non-empty, trimmed, source-grounded title. |
|
|
| `summary` | Non-empty, trimmed, source-grounded summary. |
|
|
|
|
`source_ref` has exactly `source_id`, `start_unit_id`, and `end_unit_id`.
|
|
Its source ID identifies the input transcript; its positive unit IDs identify
|
|
the chunk's inclusive range, with the start no later than the end.
|
|
|
|
```json
|
|
{
|
|
"scenes": [
|
|
{
|
|
"id": "chunk-000001",
|
|
"source_ref": {"source_id": "session-7", "start_unit_id": 1, "end_unit_id": 3},
|
|
"kind": "narrative",
|
|
"title": "Arrival at the watchtower",
|
|
"summary": "The party reaches the ruined watchtower and begins to investigate it."
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
## Meaning and normalized form
|
|
|
|
`combat` identifies a chunk where active combat is the central activity.
|
|
`narrative` is current in-world play that is not principally combat, recap, or
|
|
meta discussion. `recap` is primarily a recounting of an earlier session, and
|
|
`meta` is primarily out-of-character discussion. The artifact does not add
|
|
participants, confidence, events, or information absent from the chunk.
|
|
|
|
Normalization trims title and summary, orders scenes by source position and
|
|
then ID, and removes exact duplicate records. A reused ID with different
|
|
durable fields, or the same source range with different kind, title, or
|
|
summary, is invalid. It does not merge adjacent ranges, alter prose, or infer
|
|
missing scenes.
|
|
|
|
The [combat-turn artifact](dnd-combat-turn-artifacts.md) and
|
|
[enemy-event artifact](dnd-enemy-event-artifacts.md) use an exact matching
|
|
`combat` scene only as eligibility control; scene title, summary, and source
|
|
reference never become their evidence. Publication is defined by the
|
|
[JSON output contract](json-output.md); implementation details live in
|
|
[D&D module internals](../internal/dnd.md).
|