{ "$ref": "#/definitions/timeline", "$schema": "http://json-schema.org/draft-07/schema#", "definitions": { "anySlide": { "anyOf": [ { "$ref": "#/definitions/slide" }, { "$ref": "#/definitions/delaySlide" }, { "$ref": "#/definitions/speedChangeSlide" }, { "$ref": "#/definitions/loopSlide" } ] }, "delaySlide": { "additionalProperties": false, "properties": { "clickThroughBehaviour": { "enum": [ "ImmediatelySkip", "PlayOut" ], "type": "string" }, "delay": { "type": "number" }, "frame": { "type": "number" }, "id": { "type": "string" }, "type": { "$ref": "#/definitions/slideTypes" } }, "required": [ "clickThroughBehaviour", "delay", "frame", "id", "type" ], "type": "object" }, "loopSlide": { "additionalProperties": false, "properties": { "beginFrame": { "type": "number" }, "clickThroughBehaviour": { "enum": [ "ImmediatelySkip", "PlayOut" ], "type": "string" }, "frame": { "type": "number" }, "id": { "type": "string" }, "playbackType": { "enum": [ "PingPong", "Normal" ], "type": "string" }, "type": { "$ref": "#/definitions/slideTypes" } }, "required": [ "beginFrame", "clickThroughBehaviour", "frame", "id", "playbackType", "type" ], "type": "object" }, "presentationSettings": { "additionalProperties": false, "properties": { "controlType": { "const": "FullScreen", "type": "string" } }, "required": [ "controlType" ], "type": "object" }, "slide": { "additionalProperties": false, "properties": { "clickThroughBehaviour": { "enum": [ "ImmediatelySkip", "PlayOut" ], "type": "string" }, "frame": { "type": "number" }, "id": { "type": "string" }, "type": { "$ref": "#/definitions/slideTypes" } }, "required": [ "frame", "clickThroughBehaviour", "type", "id" ], "type": "object" }, "slideTypes": { "enum": [ "default", "delay", "speedChange", "loop" ], "type": "string" }, "speedChangeSlide": { "additionalProperties": false, "properties": { "clickThroughBehaviour": { "enum": [ "ImmediatelySkip", "PlayOut" ], "type": "string" }, "frame": { "type": "number" }, "id": { "type": "string" }, "newFramerate": { "type": "number" }, "type": { "$ref": "#/definitions/slideTypes" } }, "required": [ "clickThroughBehaviour", "frame", "id", "newFramerate", "type" ], "type": "object" }, "timeline": { "additionalProperties": false, "properties": { "framecount": { "type": "number" }, "framerate": { "type": "number" }, "name": { "type": "string" }, "settings": { "$ref": "#/definitions/presentationSettings" }, "slides": { "items": { "$ref": "#/definitions/anySlide" }, "type": "array" } }, "required": [ "slides", "framecount", "framerate", "name", "settings" ], "type": "object" } } }