{ "$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" } } } }