aboutsummaryrefslogtreecommitdiff
path: root/schema
diff options
context:
space:
mode:
Diffstat (limited to 'schema')
-rw-r--r--schema/day-v1.json73
1 files changed, 73 insertions, 0 deletions
diff --git a/schema/day-v1.json b/schema/day-v1.json
new file mode 100644
index 0000000..b48133a
--- /dev/null
+++ b/schema/day-v1.json
@@ -0,0 +1,73 @@
+{
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
+ "$id": "https://colitur/schema/day-v1.json",
+ "title": "colitur liturgical year, v1",
+ "type": "object",
+ "required": ["rite", "year", "months", "days"],
+ "properties": {
+ "rite": { "type": "string" },
+ "year": { "type": "string", "pattern": "^[0-9]{4}$" },
+ "months": { "type": "array", "items": { "$ref": "#/$defs/month" } },
+ "days": { "type": "array", "items": { "$ref": "#/$defs/day" } }
+ },
+ "$defs": {
+ "month": {
+ "type": "object",
+ "required": ["num", "name", "days", "weeks"],
+ "properties": {
+ "num": { "type": "string" },
+ "name": { "type": "object", "additionalProperties": { "type": "string" } },
+ "days": { "type": "array", "items": { "$ref": "#/$defs/day" } },
+ "weeks": { "type": "array", "items": { "$ref": "#/$defs/week" } }
+ }
+ },
+ "week": {
+ "type": "object",
+ "required": ["num", "days"],
+ "properties": {
+ "num": { "type": "string" },
+ "days": { "type": "array", "minItems": 7, "maxItems": 7, "items": { "$ref": "#/$defs/day" } }
+ }
+ },
+ "day": {
+ "type": "object",
+ "required": ["iso", "dom", "dow", "in_month", "season", "week", "slug",
+ "name", "rank", "colour", "is_white", "is_red", "is_green",
+ "is_violet", "is_rose", "is_black", "subject", "comms",
+ "transferred_in", "transferred_out", "first", "gospel", "last"],
+ "properties": {
+ "iso": { "type": "string", "description": "empty on a grid padding cell" },
+ "dom": { "type": "string" },
+ "dow": { "type": "string", "description": "0 = Sunday" },
+ "in_month": { "type": "boolean", "description": "false = grid padding cell" },
+ "season": { "type": "string" },
+ "week": { "type": "string", "description": "empty when the rite numbers no week here" },
+ "slug": { "type": "string" },
+ "name": { "type": "object", "additionalProperties": { "type": "string" } },
+ "rank": { "type": "string" },
+ "colour": { "type": "string", "enum": ["white","red","green","violet","rose","black",""] },
+ "is_white": { "type": "boolean" }, "is_red": { "type": "boolean" },
+ "is_green": { "type": "boolean" }, "is_violet":{ "type": "boolean" },
+ "is_rose": { "type": "boolean" }, "is_black": { "type": "boolean" },
+ "subject": { "type": "string" },
+ "comms": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["slug", "name", "privileged"],
+ "properties": {
+ "slug": { "type": "string" },
+ "name": { "type": "object", "additionalProperties": { "type": "string" } },
+ "privileged": { "type": "boolean" }
+ }
+ }
+ },
+ "transferred_in": { "type": "array", "items": { "type": "object" } },
+ "transferred_out": { "type": "array", "items": { "type": "object" } },
+ "first": { "type": "string", "description": "Epistle/Lesson citation, never scripture text" },
+ "gospel": { "type": "string", "description": "Gospel citation, never scripture text" },
+ "last": { "type": "boolean", "description": "true on the 7th cell of a grid row" }
+ }
+ }
+ }
+}