Raw schema
{
"type": "object",
"properties": {
"session": {
"title": "Sessionplan document",
"type": "object",
"required": [
"version",
"workshop",
"blockTypes",
"persons",
"items"
],
"additionalProperties": false,
"properties": {
"version": {
"type": "string"
},
"workshop": {
"$ref": "#/$defs/workshop"
},
"blockTypes": {
"type": "array",
"items": {
"$ref": "#/$defs/blockType"
}
},
"persons": {
"type": "array",
"items": {
"$ref": "#/$defs/person"
}
},
"items": {
"type": "array",
"maxItems": 500,
"items": {
"$ref": "#/$defs/item"
}
}
}
}
},
"required": [
"session"
],
"additionalProperties": false,
"$defs": {
"workshop": {
"type": "object",
"required": [
"title",
"description",
"date",
"startTime"
],
"additionalProperties": false,
"properties": {
"title": {
"type": "string"
},
"description": {
"type": "string"
},
"date": {
"type": [
"string",
"null"
]
},
"startTime": {
"type": [
"string",
"null"
]
},
"targetDuration": {
"type": "number",
"minimum": 0
},
"durationLocked": {
"type": "boolean"
},
"lastModified": {
"type": "string"
}
}
},
"blockType": {
"type": "object",
"required": [
"id",
"name",
"color"
],
"additionalProperties": false,
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"color": {
"type": "string"
}
}
},
"person": {
"type": "object",
"required": [
"id",
"name",
"color"
],
"additionalProperties": false,
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"color": {
"type": "string"
}
}
},
"item": {
"type": "object",
"required": [
"id",
"type",
"blockTypeId",
"title",
"duration",
"notes",
"material"
],
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"enum": [
"block",
"group",
"breakout"
]
},
"blockTypeId": {
"type": [
"string",
"null"
]
},
"title": {
"type": "string"
},
"duration": {
"type": "number",
"minimum": 0
},
"notes": {
"type": "string"
},
"material": {
"type": "string"
},
"durationLocked": {
"type": "boolean"
},
"fixedStartTime": {
"type": "string"
},
"personIds": {
"type": "array",
"items": {
"type": "string"
}
},
"parallel": {
"type": "boolean"
},
"lanes": {
"type": "integer",
"minimum": 1
},
"sameInAllBreakouts": {
"type": "boolean"
},
"lanePersons": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
},
"laneIndex": {
"type": "integer",
"minimum": 0
},
"children": {
"type": "array",
"items": {
"$ref": "#/$defs/item"
}
}
}
}
}
}