slide-factory/schemas/google-slides-deck-spec.schema.json

100 lines
2.2 KiB
JSON

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