{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "fleet/profile/calendar.schema.json", "title": "Arcodange compliance calendar (fleet/profile/calendar.yaml)", "description": "Dated obligations the T11 reminder loop (erp#60) reads. due 'YYYY-MM-DD' = exact date; 'YYYY-MM' = month window (source gives no day - verify on the authority's notice, never invent). Exactly one of due|recurrence per entry unless status is pending-definition/conditional (checked by scripts/validate.py, which implements the JSON-Schema subset {type, properties, required, additionalProperties, items, enum, pattern}).", "type": "object", "additionalProperties": false, "required": ["version", "defaults", "entries"], "properties": { "version": { "type": "integer", "enum": [1] }, "defaults": { "type": "object", "additionalProperties": false, "required": ["reminders_days_before"], "properties": { "reminders_days_before": { "type": "array", "items": { "type": "integer" } }, "reminders_repeat_until_acknowledged": { "type": "boolean" } } }, "entries": { "type": "array", "items": { "type": "object", "additionalProperties": false, "required": ["id", "title", "category", "source"], "properties": { "id": { "type": "string", "pattern": "^[a-z0-9][a-z0-9-]*$" }, "title": { "type": "string" }, "category": { "type": "string", "enum": ["fiscal", "legal", "regulatory", "social", "receivable", "contract"] }, "nature": { "type": "string", "enum": ["regulatory-hard", "fiscal-hard", "legal-hard", "engineering", "informational"] }, "status": { "type": "string", "enum": ["confirmed", "estimated", "conditional", "pending-definition"] }, "due": { "type": "string", "pattern": "^[0-9]{4}-[0-9]{2}(-[0-9]{2})?$" }, "recurrence": { "type": "string", "enum": ["yearly", "quarterly", "monthly", "unknown"] }, "months": { "type": "array", "items": { "type": "integer" } }, "effective_from": { "type": "string", "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$" }, "effective_until": { "type": ["string", "null"], "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$" }, "authority": { "type": "string" }, "related_task": { "type": "string", "pattern": "^T[0-9]{2}$" }, "source": { "type": "string" }, "notes": { "type": "string" } } } } } }