122 lines
3.6 KiB
JSON
122 lines
3.6 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"title": "D&D Session Scene Map",
|
|
"description": "Structured scene segmentation for a D&D session transcript.",
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"artifact_type",
|
|
"session_scope",
|
|
"scenes",
|
|
"boundary_caveats"
|
|
],
|
|
"properties": {
|
|
"artifact_type": {
|
|
"type": "string",
|
|
"const": "current_session_scene_map"
|
|
},
|
|
"session_scope": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"source_description",
|
|
"first_segment_id",
|
|
"last_segment_id"
|
|
],
|
|
"properties": {
|
|
"source_description": {
|
|
"type": "string",
|
|
"description": "Brief description of the transcript or source material reviewed."
|
|
},
|
|
"first_segment_id": {
|
|
"type": "integer",
|
|
"description": "The first transcript segment covered by the scene map."
|
|
},
|
|
"last_segment_id": {
|
|
"type": "integer",
|
|
"description": "The final transcript segment covered by the scene map."
|
|
}
|
|
}
|
|
},
|
|
"scenes": {
|
|
"type": "array",
|
|
"description": "Sequential, contiguous, non-overlapping scene divisions covering the transcript.",
|
|
"minItems": 1,
|
|
"items": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"scene_id",
|
|
"start_segment_id",
|
|
"end_segment_id",
|
|
"short_title",
|
|
"primary_mode",
|
|
"main_participants",
|
|
"summary",
|
|
"boundary_note",
|
|
"boundary_confidence"
|
|
],
|
|
"properties": {
|
|
"scene_id": {
|
|
"type": "string",
|
|
"description": "Stable sequential scene identifier.",
|
|
"pattern": "[0-9]$"
|
|
},
|
|
"start_segment_id": {
|
|
"type": "integer",
|
|
"description": "Exact segment ID where this scene begins."
|
|
},
|
|
"end_segment_id": {
|
|
"type": "integer",
|
|
"description": "Exact segment ID where this scene ends."
|
|
},
|
|
"short_title": {
|
|
"type": "string",
|
|
"description": "Compact descriptive title for the scene."
|
|
},
|
|
"primary_mode": {
|
|
"type": "string",
|
|
"enum": [
|
|
"Recap",
|
|
"Planning",
|
|
"Combat",
|
|
"Narrative"
|
|
],
|
|
"description": "The dominant mode of play in the scene."
|
|
},
|
|
"main_participants": {
|
|
"type": "array",
|
|
"description": "Principal player characters, NPCs, factions, or groups involved in the scene.",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"summary": {
|
|
"type": "string",
|
|
"description": "One- to three-sentence factual summary of what happened in the scene."
|
|
},
|
|
"boundary_note": {
|
|
"type": "string",
|
|
"description": "Brief explanation of why the scene starts and ends at these segment boundaries."
|
|
},
|
|
"boundary_confidence": {
|
|
"type": "string",
|
|
"enum": [
|
|
"High",
|
|
"Medium",
|
|
"Low"
|
|
],
|
|
"description": "Confidence that the chosen scene boundaries are natural and useful."
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"boundary_caveats": {
|
|
"type": "array",
|
|
"description": "Overall caveats about scene segmentation, ambiguous transitions, map-dependent context, or alternative reasonable divisions.",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
} |