1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
{
"$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", "term", "weekday_headings", "months", "days"],
"properties": {
"rite": { "type": "string" },
"year": { "type": "string", "pattern": "^[0-9]{4}$" },
"term": { "type": "object", "additionalProperties": { "type": "string" }, "description": "fixed vocabulary (ordo, contents, epistle, lesson, gospel, commemoration, week) in the active language" },
"weekday_headings": {
"type": "array",
"minItems": 7,
"maxItems": 7,
"items": {
"type": "object",
"required": ["name", "last"],
"properties": { "name": { "type": "string" }, "last": { "type": "boolean" } }
}
},
"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": "string", "description": "the resolved display name, e.g. \"Ianuarius\"" },
"days": { "type": "array", "items": { "$ref": "#/$defs/day" } },
"weeks": { "type": "array", "items": { "$ref": "#/$defs/week" } }
}
},
"week": {
"type": "object",
"required": ["num", "month_num", "month_name", "days"],
"properties": {
"num": { "type": "string" },
"month_num": { "type": "string", "description": "the enclosing month's num, carried here because the engine has no parent-path syntax" },
"month_name": { "type": "string", "description": "the enclosing month's resolved name, same reason" },
"days": { "type": "array", "minItems": 7, "maxItems": 7, "items": { "$ref": "#/$defs/day" } }
}
},
"day": {
"type": "object",
"required": ["iso", "dom", "dow", "in_month", "season", "season_name", "week",
"slug", "name", "weekday", "rank", "rank_name", "colour", "colour_name",
"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" },
"season_name": { "type": "string", "description": "the resolved season name in the active language" },
"week": { "type": "string", "description": "empty when the rite numbers no week here" },
"slug": { "type": "string", "description": "the stable machine key -- unaffected by the active language" },
"name": { "type": "string", "description": "the resolved display name; under --raw this equals slug" },
"weekday": { "type": "string", "description": "the resolved weekday name in the active language" },
"rank": { "type": "string" },
"rank_name": { "type": "string", "description": "the resolved rank name in the active language" },
"colour": { "type": "string", "enum": ["white","red","green","violet","rose","black",""] },
"colour_name": { "type": "string", "description": "the resolved colour name in the active language" },
"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": "string", "description": "the resolved display name, same table as the day's own name" },
"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" }
}
}
}
}
|