the-custodian/canon/standards/schemas/work-records/spine.schema.json

40 lines
1.3 KiB
JSON
Raw Normal View History

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://canon.coulomb.social/schemas/work-records/spine.schema.json",
"title": "Work Record Spine (shared definitions)",
"description": "Shared spine per canon/standards/work-record-types_v0.1.md. Kind schemas $ref these definitions. additionalProperties stays open: kind-specific fields extend the spine, never replace it.",
"$defs": {
"lane": {
"enum": ["green", "blue", "yellow", "orange", "red"]
},
"uuid": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
},
"date": {
"type": "string",
"pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
},
"tags": {
"type": "array",
"items": { "type": "string", "pattern": "^[a-z0-9-]+$" }
},
"owner": {
"type": "string",
"minLength": 2
},
"spineOpen": {
"type": "object",
"description": "Spine requirements for records in a non-terminal status.",
"required": ["id", "lane"],
"properties": {
"lane": { "$ref": "#/$defs/lane" },
"owner": { "$ref": "#/$defs/owner" },
"tags": { "$ref": "#/$defs/tags" },
"uuid": { "$ref": "#/$defs/uuid" },
"created_at": { "$ref": "#/$defs/date" }
}
}
}
}