Matins completed
This commit is contained in:
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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
@@ -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" }
|
||||
}
|
||||
Reference in new issue
Block a user