220 lines
7.3 KiB
JSON
220 lines
7.3 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"title": "AX Curriculum Slides Spec",
|
|
"type": "object",
|
|
"required": ["meta", "slides"],
|
|
"properties": {
|
|
"meta": {
|
|
"type": "object",
|
|
"required": ["title", "duration_minutes"],
|
|
"properties": {
|
|
"title": { "type": "string", "minLength": 1 },
|
|
"subtitle": { "type": "string" },
|
|
"badge": { "type": "string" },
|
|
"duration_minutes": { "type": "integer", "minimum": 1 },
|
|
"audience": { "type": "string" },
|
|
"tone": { "type": "string" },
|
|
"footer_left": { "type": "string" }
|
|
},
|
|
"additionalProperties": true
|
|
},
|
|
"slides": {
|
|
"type": "array",
|
|
"minItems": 20,
|
|
"items": {
|
|
"type": "object",
|
|
"required": ["type"],
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"enum": ["cover", "agenda", "section", "bullets", "two_column", "process", "prompt", "table"]
|
|
},
|
|
"chapter": { "type": "string" },
|
|
"title": { "type": "string" },
|
|
"subtitle": { "type": "string" },
|
|
"items": { "type": "array", "items": { "type": "string" } },
|
|
"bullets": { "type": "array", "items": { "type": "string" } },
|
|
"left_title": { "type": "string" },
|
|
"left_bullets": { "type": "array", "items": { "type": "string" } },
|
|
"right_title": { "type": "string" },
|
|
"right_bullets": { "type": "array", "items": { "type": "string" } },
|
|
"steps": { "type": "array", "items": { "type": "string" } },
|
|
"prompt": { "type": "string" },
|
|
"tips": { "type": "array", "items": { "type": "string" } },
|
|
"columns": { "type": "array", "items": { "type": "string" } },
|
|
"rows": { "type": "array", "items": { "type": "array", "items": { "type": "string" } } }
|
|
},
|
|
"additionalProperties": true
|
|
}
|
|
}
|
|
},
|
|
"additionalProperties": true
|
|
}
|
|
|
|
{
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"title": "AX Deck Slides JSON Schema",
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["meta", "slides"],
|
|
"properties": {
|
|
"meta": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["title", "language"],
|
|
"properties": {
|
|
"title": { "type": "string", "minLength": 1 },
|
|
"subtitle": { "type": "string" },
|
|
"author": { "type": "string" },
|
|
"date": { "type": "string" },
|
|
"language": { "type": "string", "default": "ko-KR" },
|
|
"duration_minutes": { "type": "integer", "minimum": 1 },
|
|
"audience": { "type": "string" },
|
|
"version": { "type": "string" }
|
|
}
|
|
},
|
|
"slides": {
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"items": { "$ref": "#/definitions/slide" }
|
|
}
|
|
},
|
|
"definitions": {
|
|
"bulletItem": {
|
|
"oneOf": [
|
|
{ "type": "string" },
|
|
{
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["text"],
|
|
"properties": {
|
|
"text": { "type": "string" },
|
|
"children": {
|
|
"type": "array",
|
|
"items": { "$ref": "#/definitions/bulletItem" }
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"column": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["heading", "bullets"],
|
|
"properties": {
|
|
"heading": { "type": "string" },
|
|
"bullets": {
|
|
"type": "array",
|
|
"items": { "$ref": "#/definitions/bulletItem" }
|
|
}
|
|
}
|
|
},
|
|
"slide": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["type", "title"],
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"title",
|
|
"section",
|
|
"agenda",
|
|
"bullets",
|
|
"two_column_bullets",
|
|
"quote",
|
|
"table",
|
|
"exercise",
|
|
"closing",
|
|
"blank"
|
|
]
|
|
},
|
|
"title": { "type": "string" },
|
|
"subtitle": { "type": "string" },
|
|
"bullets": {
|
|
"type": "array",
|
|
"items": { "$ref": "#/definitions/bulletItem" }
|
|
},
|
|
"items": { "type": "array", "items": { "type": "string" } },
|
|
"left": { "$ref": "#/definitions/column" },
|
|
"right": { "$ref": "#/definitions/column" },
|
|
"quote": { "type": "string" },
|
|
"attribution": { "type": "string" },
|
|
"headers": { "type": "array", "minItems": 1, "items": { "type": "string" } },
|
|
"rows": { "type": "array", "items": { "type": "array", "items": { "type": "string" } } },
|
|
"steps": { "type": "array", "items": { "type": "string" } },
|
|
"timebox_minutes": { "type": "integer", "minimum": 1 },
|
|
"notes": { "type": "string" }
|
|
},
|
|
"allOf": [
|
|
{ "if": { "properties": { "type": { "const": "agenda" } } }, "then": { "required": ["items"] } },
|
|
{ "if": { "properties": { "type": { "const": "bullets" } } }, "then": { "required": ["bullets"] } },
|
|
{
|
|
"if": { "properties": { "type": { "const": "two_column_bullets" } } },
|
|
"then": { "required": ["left", "right"] }
|
|
},
|
|
{ "if": { "properties": { "type": { "const": "quote" } } }, "then": { "required": ["quote"] } },
|
|
{ "if": { "properties": { "type": { "const": "table" } } }, "then": { "required": ["headers", "rows"] } },
|
|
{ "if": { "properties": { "type": { "const": "exercise" } } }, "then": { "required": ["steps"] } }
|
|
]
|
|
}
|
|
}
|
|
}
|
|
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"title": "AX 교육용 slides.json 스키마",
|
|
"type": "object",
|
|
"required": ["meta", "slides"],
|
|
"properties": {
|
|
"meta": {
|
|
"type": "object",
|
|
"required": ["title", "duration_minutes", "language"],
|
|
"properties": {
|
|
"title": { "type": "string", "minLength": 1 },
|
|
"subtitle": { "type": "string" },
|
|
"duration_minutes": { "type": "integer", "minimum": 5, "maximum": 180 },
|
|
"audience": { "type": "string" },
|
|
"language": { "type": "string", "enum": ["ko"] },
|
|
"version": { "type": "integer", "minimum": 1 }
|
|
},
|
|
"additionalProperties": true
|
|
},
|
|
"slides": {
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"items": {
|
|
"type": "object",
|
|
"required": ["type"],
|
|
"properties": {
|
|
"type": { "type": "string", "enum": ["title", "section", "content", "two_content"] },
|
|
"title": { "type": "string" },
|
|
"subtitle": { "type": "string" },
|
|
"bullets": {
|
|
"type": "array",
|
|
"items": {
|
|
"oneOf": [
|
|
{ "type": "string" },
|
|
{
|
|
"type": "object",
|
|
"required": ["text"],
|
|
"properties": {
|
|
"text": { "type": "string" },
|
|
"level": { "type": "integer", "minimum": 0, "maximum": 5 }
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"left_bullets": { "$ref": "#/properties/slides/items/properties/bullets" },
|
|
"right_bullets": { "$ref": "#/properties/slides/items/properties/bullets" },
|
|
"notes": { "type": "string" }
|
|
},
|
|
"additionalProperties": true
|
|
}
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
|