Matins completed

This commit is contained in:
catarrh committed 2026-08-01 02:43:24 +03:00
1 parent 79ac617aa8
commit 366aea76bb
27 files changed
+3200

No files matched your search

@@ -0,0 +1,14 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Calendar Entry",
"description": "Entry in triodion, pentecostarion, or menaion",
"type": "object",
"required": ["id"],
"properties": {
"id": {
"type": "string",
"description": "Commemoration ID (CId)"
}
},
"additionalProperties": false
}
+22
View File
@@ -0,0 +1,22 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Command Text",
"description": "Rubric or instruction text",
"type": "array",
"items": {
"type": "object",
"required": ["type", "value"],
"properties": {
"type": {
"type": "string",
"enum": ["text"],
"description": "Node type (lowercase)"
},
"value": {
"type": "string",
"description": "Text content"
}
},
"additionalProperties": false
}
}
+63
View File
@@ -0,0 +1,63 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Commemoration",
"description": "Shared commemoration data for a saint or feast",
"type": "object",
"properties": {
"SCRIPTURE": {
"type": "array",
"items": {
"type": "object",
"properties": {
"Type": { "type": "string" },
"Reading": { "type": "string" },
"Pericope": { "type": "string" },
"Cmd": { "type": "string" }
},
"additionalProperties": true
}
},
"NAME": {
"type": "object",
"properties": {
"Long": { "type": "string" },
"ShortN": { "type": "string" },
"ShortF": { "type": "string" }
},
"additionalProperties": true
},
"CHURCH": {
"type": "object",
"properties": {
"Rank": { "type": "string" }
},
"additionalProperties": true
},
"LIFE": {
"type": "object",
"properties": {
"text": { "type": "string" },
"Id": { "type": "string" },
"Copyright": { "type": "string" }
},
"additionalProperties": true
},
"TROPARION": {
"type": "object",
"properties": {
"Tone": { "type": "string" },
"text": { "type": "string" }
},
"additionalProperties": true
},
"KONTAKION": {
"type": "object",
"properties": {
"Tone": { "type": "string" },
"text": { "type": "string" }
},
"additionalProperties": true
}
},
"additionalProperties": true
}
+36
View File
@@ -0,0 +1,36 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Fasting Rules",
"description": "Fasting period definitions with rules",
"type": "array",
"items": {
"type": "object",
"required": ["cmd", "rules"],
"properties": {
"cmd": {
"type": "string",
"description": "Boolean expression for period inclusion"
},
"rules": {
"type": "array",
"items": {
"type": "object",
"required": ["case", "cmd"],
"properties": {
"case": {
"type": "string",
"pattern": "^[01]{7}$",
"description": "7-bit food permissions (meat,dairy,fish,caviar,oil,wine,dryFood)"
},
"cmd": {
"type": "string",
"description": "Boolean expression for rule inclusion"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}
}
+73
View File
@@ -0,0 +1,73 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Life Entry",
"description": "A single saint's life data entry",
"type": "object",
"required": ["name"],
"properties": {
"name": {
"type": "object",
"required": ["nominative"],
"properties": {
"nominative": { "type": "string", "description": "Full name in nominative case" },
"genitive": { "type": "string", "description": "Name in genitive case" },
"short": { "type": "string", "description": "Short name for display" },
"shortF": { "type": "string", "description": "Short name, feminine form" }
},
"additionalProperties": false
},
"life": {
"type": "object",
"properties": {
"text": { "type": "string", "description": "Biography text (may contain HTML)" },
"id": { "type": "string", "description": "Source identifier" },
"copyright": { "type": "string", "description": "Copyright notice" }
},
"additionalProperties": false
},
"rank": {
"type": "integer",
"minimum": 0,
"maximum": 8,
"description": "Liturgical rank (0=none, 8=highest)"
},
"services": {
"type": "object",
"description": "Liturgical service texts for this commemoration",
"additionalProperties": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"text": { "type": "string" },
"Type": { "type": "string" },
"Reading": { "type": "string" },
"Pericope": { "type": "string" },
"Cmd": { "type": "string" },
"Header": { "type": "string" }
},
"additionalProperties": true
}
}
},
"scripture": {
"type": "array",
"description": "Scripture readings for this commemoration",
"items": {
"type": "object",
"properties": {
"Type": { "type": "string" },
"Reading": { "type": "string" },
"Pericope": { "type": "string" },
"Cmd": { "type": "string" }
},
"additionalProperties": true
}
},
"icon": {
"type": "string",
"description": "Icon identifier"
}
},
"additionalProperties": false
}
+10
View File
@@ -0,0 +1,10 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Lives Bundle",
"description": "Monthly bundle of saint life entries, keyed by CId",
"type": "object",
"patternProperties": {
"^[0-9]+$": { "$ref": "life.schema.json" }
},
"additionalProperties": false
}
+22
View File
@@ -0,0 +1,22 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Prayer Text",
"description": "A CommonPrayer or fixed text entry",
"type": "array",
"items": {
"type": "object",
"required": ["type"],
"properties": {
"type": {
"type": "string",
"enum": ["TEXT", "HEADER"],
"description": "Node type"
},
"value": {
"type": "string",
"description": "Text content"
}
},
"additionalProperties": false
}
}
+131
View File
@@ -0,0 +1,131 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Service Node",
"description": "A single node in a service template",
"type": "object",
"required": ["type"],
"properties": {
"type": {
"type": "string",
"enum": [
"TITLE", "SUBTITLE", "GET", "CREATE", "TEXT", "GETID",
"BIBLE", "TIMES", "TONE", "SERVICES", "LANGUAGE"
],
"description": "Node type discriminator"
},
"cmd": {
"type": "string",
"description": "Boolean expression for conditional inclusion"
},
"who": {
"type": "string",
"description": "Speaker identifier (P=Riest, R=Reader, D=Deacon, C=Choir)"
},
"redfirst": {
"type": "boolean",
"description": "Render first letter in red"
},
"newline": {
"type": "boolean",
"description": "Add line break before text"
},
"header": {
"type": "boolean",
"description": "Generate section header"
},
"null": {
"type": "boolean",
"description": "Skip if content is empty"
},
"times": {
"type": "integer",
"minimum": 1,
"description": "Number of times to repeat"
},
"command": {
"type": "string",
"description": "Rubric text command name"
},
"commandB": {
"type": "string",
"description": "Prepend rubric text command name"
}
},
"oneOf": [
{
"properties": {
"type": { "const": "TITLE" },
"value": { "type": "string" },
"source": { "type": "string" },
"comment": { "type": "string" }
},
"required": ["value"]
},
{
"properties": {
"type": { "const": "SUBTITLE" },
"value": { "type": "string" },
"comment": { "type": "string" }
},
"required": ["value"]
},
{
"properties": {
"type": { "const": "GET" },
"file": { "type": "string" }
},
"required": ["file"]
},
{
"properties": {
"type": { "const": "CREATE" },
"what": { "type": "string" }
},
"required": ["what"]
},
{
"properties": {
"type": { "enum": ["TEXT", "text"] },
"what": { "type": "string" },
"value": { "type": "string" }
}
},
{
"properties": {
"type": { "const": "GETID" },
"id": { "type": "string" },
"what": { "type": "string" }
},
"required": ["id", "what"]
},
{
"properties": {
"type": { "const": "BIBLE" },
"verses": { "type": "string" },
"getreading": { "type": "boolean" },
"twostars": { "type": "boolean" }
}
},
{
"properties": {
"type": { "const": "TIMES" }
}
},
{
"properties": {
"type": { "const": "TONE" }
}
},
{
"properties": {
"type": { "const": "SERVICES" }
}
},
{
"properties": {
"type": { "const": "LANGUAGE" }
}
}
],
"additionalProperties": true
}
@@ -0,0 +1,7 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Service Template",
"description": "A service template as an array of service nodes",
"type": "array",
"items": { "$ref": "service-node.schema.json" }
}