{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://agentplane.local/projects/slide-factory/google-slides-deck-spec.schema.json", "title": "Slide Factory Google Slides Deck Spec", "type": "object", "required": ["title", "slides"], "additionalProperties": false, "properties": { "title": { "type": "string", "minLength": 1 }, "template_id": { "type": "string", "minLength": 1 }, "folder_id": { "type": "string", "minLength": 1 }, "brand_safe": { "type": "boolean", "default": true }, "slides": { "type": "array", "minItems": 1, "items": { "$ref": "#/$defs/slide" } } }, "$defs": { "slide": { "type": "object", "required": ["containers"], "additionalProperties": false, "properties": { "type": { "type": "string", "enum": [ "cover_or_close", "section_divider", "title_body", "two_column", "three_column", "image_plus_text", "toc_or_timeline", "table", "single_statement", "visual_or_blank" ] }, "template_slide": { "oneOf": [ { "type": "integer", "minimum": 1 }, { "type": "string", "minLength": 1 } ] }, "title": { "type": "string" }, "containers": { "type": "array", "minItems": 1, "items": { "$ref": "#/$defs/container" } }, "speaker_notes": { "type": "string" } } }, "container": { "type": "object", "required": ["text"], "additionalProperties": false, "properties": { "role": { "type": "string", "examples": ["title", "subtitle", "body", "column", "callout", "label"] }, "text": { "type": "string" }, "bullets": { "type": "boolean", "default": false } } } } }