JSON Schema 2020-12
Privacy-safe Call Sheet
Role-based calls without personal names or contacts.
Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://sharprod.com/schemas/privacy-safe-call-sheet.schema.json",
"title": "SHAR Production Privacy-safe Call Sheet Contract",
"type": "object",
"additionalProperties": false,
"properties": {
"production_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"timezone": {
"type": "string",
"pattern": "^[A-Za-z_]+/[A-Za-z_]+$"
},
"units": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"role_ref",
"call_time"
],
"properties": {
"role_ref": {
"type": "string",
"pattern": "^role-[a-z0-9-]+$"
},
"call_time": {
"type": "string",
"pattern": "^([01]\\d|2[0-3]):[0-5]\\d$"
}
}
}
}
},
"required": [
"production_date",
"timezone",
"units"
]
}Verified example
{
"input": {
"production_date": "2026-09-06",
"timezone": "Europe/Moscow",
"units": [
{
"role_ref": "role-camera-a",
"call_time": "08:30"
}
]
},
"result": {
"valid": true,
"errors": []
}
}Rejected example
{
"input": {
"production_date": "2026-09-06",
"timezone": "Europe/Moscow",
"units": [
{
"role_ref": "Alex",
"call_time": "25:00"
}
]
},
"result": {
"valid": false,
"errors": [
{
"instancePath": "/units/0/role_ref",
"schemaPath": "#/properties/units/items/properties/role_ref/pattern",
"keyword": "pattern",
"params": {
"pattern": "^role-[a-z0-9-]+$"
},
"message": "must match pattern \"^role-[a-z0-9-]+$\""
}
]
}
}