JSON Schema 2020-12
Shot List
Structured shots, duration and capture status.
Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://sharprod.com/schemas/shot-list.schema.json",
"title": "SHAR Production Shot List Contract",
"type": "object",
"additionalProperties": false,
"properties": {
"project_id": {
"type": "string"
},
"shots": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"required": [
"shot_id",
"duration_seconds",
"status"
],
"properties": {
"shot_id": {
"type": "string"
},
"duration_seconds": {
"type": "number",
"exclusiveMinimum": 0
},
"status": {
"enum": [
"planned",
"captured",
"approved"
]
}
}
}
}
},
"required": [
"project_id",
"shots"
]
}Verified example
{
"input": {
"project_id": "synthetic-film",
"shots": [
{
"shot_id": "S001",
"duration_seconds": 4.5,
"status": "planned"
}
]
},
"result": {
"valid": true,
"errors": []
}
}Rejected example
{
"input": {
"project_id": "synthetic-film",
"shots": [
{
"shot_id": "S001",
"duration_seconds": 0,
"status": "planned"
}
]
},
"result": {
"valid": false,
"errors": [
{
"instancePath": "/shots/0/duration_seconds",
"schemaPath": "#/properties/shots/items/properties/duration_seconds/exclusiveMinimum",
"keyword": "exclusiveMinimum",
"params": {
"comparison": ">",
"limit": 0
},
"message": "must be > 0"
}
]
}
}