optolith-database-schema 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (169) hide show
  1. package/AUTHORS +1 -0
  2. package/CHANGELOG.md +27 -0
  3. package/CODEOWNERS +1 -0
  4. package/LICENSE +378 -0
  5. package/README.md +17 -0
  6. package/lib/main.d.ts +1 -0
  7. package/lib/main.js +1 -0
  8. package/lib/types/ArcaneBardTradition.d.ts +32 -0
  9. package/lib/types/ArcaneBardTradition.js +4 -0
  10. package/lib/types/ArcaneDancerTradition.d.ts +32 -0
  11. package/lib/types/ArcaneDancerTradition.js +4 -0
  12. package/lib/types/Aspect.d.ts +36 -0
  13. package/lib/types/Aspect.js +4 -0
  14. package/lib/types/Attribute.d.ts +42 -0
  15. package/lib/types/Attribute.js +5 -0
  16. package/lib/types/CombatTechnique_Close.d.ts +80 -0
  17. package/lib/types/CombatTechnique_Close.js +4 -0
  18. package/lib/types/CombatTechnique_Ranged.d.ts +62 -0
  19. package/lib/types/CombatTechnique_Ranged.js +4 -0
  20. package/lib/types/Condition.d.ts +51 -0
  21. package/lib/types/Condition.js +4 -0
  22. package/lib/types/Culture.d.ts +494 -0
  23. package/lib/types/Culture.js +4 -0
  24. package/lib/types/DerivedCharacteristic.d.ts +65 -0
  25. package/lib/types/DerivedCharacteristic.js +4 -0
  26. package/lib/types/Element.d.ts +30 -0
  27. package/lib/types/Element.js +4 -0
  28. package/lib/types/ExperienceLevel.d.ts +68 -0
  29. package/lib/types/ExperienceLevel.js +4 -0
  30. package/lib/types/EyeColor.d.ts +30 -0
  31. package/lib/types/EyeColor.js +4 -0
  32. package/lib/types/HairColor.d.ts +30 -0
  33. package/lib/types/HairColor.js +4 -0
  34. package/lib/types/Lessons_Curriculum.d.ts +297 -0
  35. package/lib/types/Lessons_Curriculum.js +4 -0
  36. package/lib/types/Lessons_Guideline.d.ts +36 -0
  37. package/lib/types/Lessons_Guideline.js +4 -0
  38. package/lib/types/Locale.d.ts +38 -0
  39. package/lib/types/Locale.js +4 -0
  40. package/lib/types/MetaCondition.d.ts +54 -0
  41. package/lib/types/MetaCondition.js +4 -0
  42. package/lib/types/Property.d.ts +36 -0
  43. package/lib/types/Property.js +4 -0
  44. package/lib/types/Race.d.ts +524 -0
  45. package/lib/types/Race.js +13 -0
  46. package/lib/types/Region.d.ts +30 -0
  47. package/lib/types/Region.js +4 -0
  48. package/lib/types/Service.d.ts +40 -0
  49. package/lib/types/Service.js +4 -0
  50. package/lib/types/SexPractice.d.ts +53 -0
  51. package/lib/types/SexPractice.js +4 -0
  52. package/lib/types/Skill.d.ts +169 -0
  53. package/lib/types/Skill.js +4 -0
  54. package/lib/types/SkillGroup.d.ts +40 -0
  55. package/lib/types/SkillGroup.js +4 -0
  56. package/lib/types/SkillModificationIncrement.d.ts +82 -0
  57. package/lib/types/SkillModificationIncrement.js +4 -0
  58. package/lib/types/SocialStatus.d.ts +30 -0
  59. package/lib/types/SocialStatus.js +4 -0
  60. package/lib/types/State.d.ts +40 -0
  61. package/lib/types/State.js +4 -0
  62. package/lib/types/TargetCategory.d.ts +36 -0
  63. package/lib/types/TargetCategory.js +4 -0
  64. package/lib/types/_ActivatableSkill.d.ts +919 -0
  65. package/lib/types/_ActivatableSkill.js +38 -0
  66. package/lib/types/_CommonnessRatedAdvantageDisadvantage.d.ts +12 -0
  67. package/lib/types/_CommonnessRatedAdvantageDisadvantage.js +1 -0
  68. package/lib/types/_ImprovementCost.d.ts +9 -0
  69. package/lib/types/_ImprovementCost.js +10 -0
  70. package/lib/types/_Prerequisite.d.ts +274 -0
  71. package/lib/types/_Prerequisite.js +4 -0
  72. package/lib/types/_Sex.d.ts +11 -0
  73. package/lib/types/_Sex.js +4 -0
  74. package/lib/types/_SkillCheck.d.ts +28 -0
  75. package/lib/types/_SkillCheck.js +1 -0
  76. package/lib/types/magicalActions/AnimistPower.d.ts +227 -0
  77. package/lib/types/magicalActions/AnimistPower.js +4 -0
  78. package/lib/types/magicalActions/AnimistPower_Tribe.d.ts +30 -0
  79. package/lib/types/magicalActions/AnimistPower_Tribe.js +4 -0
  80. package/lib/types/magicalActions/Curse.d.ts +228 -0
  81. package/lib/types/magicalActions/Curse.js +4 -0
  82. package/lib/types/magicalActions/DominationRitual.d.ts +181 -0
  83. package/lib/types/magicalActions/DominationRitual.js +4 -0
  84. package/lib/types/magicalActions/ElvenMagicalSong.d.ts +149 -0
  85. package/lib/types/magicalActions/ElvenMagicalSong.js +4 -0
  86. package/lib/types/magicalActions/GeodeRitual.d.ts +162 -0
  87. package/lib/types/magicalActions/GeodeRitual.js +4 -0
  88. package/lib/types/magicalActions/JesterTrick.d.ts +167 -0
  89. package/lib/types/magicalActions/JesterTrick.js +4 -0
  90. package/lib/types/magicalActions/MagicalDance.d.ts +184 -0
  91. package/lib/types/magicalActions/MagicalDance.js +4 -0
  92. package/lib/types/magicalActions/MagicalMelody.d.ts +132 -0
  93. package/lib/types/magicalActions/MagicalMelody.js +4 -0
  94. package/lib/types/magicalActions/MagicalRune.d.ts +241 -0
  95. package/lib/types/magicalActions/MagicalRune.js +4 -0
  96. package/lib/types/magicalActions/ZibiljaRitual.d.ts +101 -0
  97. package/lib/types/magicalActions/ZibiljaRitual.js +4 -0
  98. package/lib/types/magicalActions/_MusicTradition.d.ts +28 -0
  99. package/lib/types/magicalActions/_MusicTradition.js +1 -0
  100. package/lib/types/magicalActions/_SkillReference.d.ts +13 -0
  101. package/lib/types/magicalActions/_SkillReference.js +5 -0
  102. package/lib/types/rule/FocusRule.d.ts +53 -0
  103. package/lib/types/rule/FocusRule.js +4 -0
  104. package/lib/types/rule/FocusRule_Subject.d.ts +31 -0
  105. package/lib/types/rule/FocusRule_Subject.js +4 -0
  106. package/lib/types/rule/OptionalRule.d.ts +65 -0
  107. package/lib/types/rule/OptionalRule.js +4 -0
  108. package/lib/types/source/Publication.d.ts +4 -0
  109. package/lib/types/source/Publication.js +4 -0
  110. package/lib/types/source/_Erratum.d.ts +25 -0
  111. package/lib/types/source/_Erratum.js +4 -0
  112. package/lib/types/source/_PublicationRef.d.ts +146 -0
  113. package/lib/types/source/_PublicationRef.js +4 -0
  114. package/lib/validation/integrity.d.ts +16 -0
  115. package/lib/validation/integrity.js +3 -0
  116. package/package.json +37 -0
  117. package/schema/ArcaneBardTradition.schema.json +49 -0
  118. package/schema/ArcaneDancerTradition.schema.json +49 -0
  119. package/schema/Aspect.schema.json +50 -0
  120. package/schema/Attribute.schema.json +57 -0
  121. package/schema/CombatTechnique_Close.schema.json +127 -0
  122. package/schema/CombatTechnique_Ranged.schema.json +83 -0
  123. package/schema/Condition.schema.json +84 -0
  124. package/schema/Culture.schema.json +858 -0
  125. package/schema/DerivedCharacteristic.schema.json +90 -0
  126. package/schema/Element.schema.json +45 -0
  127. package/schema/ExperienceLevel.schema.json +84 -0
  128. package/schema/EyeColor.schema.json +45 -0
  129. package/schema/HairColor.schema.json +45 -0
  130. package/schema/Lessons_Curriculum.schema.json +500 -0
  131. package/schema/Lessons_Guideline.schema.json +51 -0
  132. package/schema/Locale.schema.json +45 -0
  133. package/schema/MetaCondition.schema.json +85 -0
  134. package/schema/Property.schema.json +49 -0
  135. package/schema/Race.schema.json +724 -0
  136. package/schema/Region.schema.json +45 -0
  137. package/schema/Service.schema.json +58 -0
  138. package/schema/SexPractice.schema.json +72 -0
  139. package/schema/Skill.schema.json +278 -0
  140. package/schema/SkillGroup.schema.json +56 -0
  141. package/schema/SkillModificationIncrement.schema.json +98 -0
  142. package/schema/SocialStatus.schema.json +45 -0
  143. package/schema/State.schema.json +58 -0
  144. package/schema/TargetCategory.schema.json +51 -0
  145. package/schema/_ActivatableSkill.schema.json +1534 -0
  146. package/schema/_CommonnessRatedAdvantageDisadvantage.schema.json +22 -0
  147. package/schema/_ImprovementCost.schema.json +15 -0
  148. package/schema/_Prerequisite.schema.json +519 -0
  149. package/schema/_Sex.schema.json +36 -0
  150. package/schema/_SkillCheck.schema.json +94 -0
  151. package/schema/magicalActions/AnimistPower.schema.json +411 -0
  152. package/schema/magicalActions/AnimistPower_Tribe.schema.json +45 -0
  153. package/schema/magicalActions/Curse.schema.json +378 -0
  154. package/schema/magicalActions/DominationRitual.schema.json +288 -0
  155. package/schema/magicalActions/ElvenMagicalSong.schema.json +194 -0
  156. package/schema/magicalActions/GeodeRitual.schema.json +303 -0
  157. package/schema/magicalActions/JesterTrick.schema.json +292 -0
  158. package/schema/magicalActions/MagicalDance.schema.json +328 -0
  159. package/schema/magicalActions/MagicalMelody.schema.json +254 -0
  160. package/schema/magicalActions/MagicalRune.schema.json +426 -0
  161. package/schema/magicalActions/ZibiljaRitual.schema.json +159 -0
  162. package/schema/magicalActions/_MusicTradition.schema.json +44 -0
  163. package/schema/magicalActions/_SkillReference.schema.json +26 -0
  164. package/schema/rule/FocusRule.schema.json +71 -0
  165. package/schema/rule/FocusRule_Subject.schema.json +46 -0
  166. package/schema/rule/OptionalRule.schema.json +96 -0
  167. package/schema/source/Publication.schema.json +165 -0
  168. package/schema/source/_Erratum.schema.json +37 -0
  169. package/schema/source/_PublicationRef.schema.json +242 -0
@@ -0,0 +1,159 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema",
3
+ "$id": "magicalActions/ZibiljaRitual.schema.json",
4
+ "$ref": "#/definitions/ZibiljaRitual",
5
+ "definitions": {
6
+ "ZibiljaRitual": {
7
+ "title": "Zibilja Ritual",
8
+ "type": "object",
9
+ "properties": {
10
+ "id": {
11
+ "description": "The zibilja ritual's identifier. An unique, increasing integer.",
12
+ "type": "integer",
13
+ "minimum": 1
14
+ },
15
+ "check": {
16
+ "description": "Lists the linked three attributes used to make a skill check.",
17
+ "$ref": "../_SkillCheck.schema.json#/definitions/SkillCheck"
18
+ },
19
+ "check_penalty": {
20
+ "description": "In some cases, the target's Spirit or Toughness is applied as a penalty.",
21
+ "$ref": "../_SkillCheck.schema.json#/definitions/SkillCheckPenalty"
22
+ },
23
+ "parameters": {
24
+ "description": "Measurable parameters of a zibilja ritual.",
25
+ "$ref": "../_ActivatableSkill.schema.json#/definitions/PerformanceParameters"
26
+ },
27
+ "target": {
28
+ "description": "The target category – the kind of creature or object – the skill affects.",
29
+ "$ref": "../_ActivatableSkill.schema.json#/definitions/TargetCategory/T"
30
+ },
31
+ "property_id": {
32
+ "description": "The property's identifier.",
33
+ "type": "integer",
34
+ "minimum": 1
35
+ },
36
+ "improvement_cost": {
37
+ "description": "States which column is used to improve the skill.",
38
+ "$ref": "../_ImprovementCost.schema.json#/definitions/ImprovementCost"
39
+ },
40
+ "src": {
41
+ "$ref": "../source/_PublicationRef.schema.json#/definitions/PublicationRefs"
42
+ },
43
+ "translations": {
44
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
45
+ "type": "object",
46
+ "patternProperties": {
47
+ "^[a-z]{2}-[A-Z]{2}$": {
48
+ "type": "object",
49
+ "properties": {
50
+ "name": {
51
+ "description": "The name of the zibilja ritual.",
52
+ "type": "string",
53
+ "minLength": 1
54
+ },
55
+ "effect": {
56
+ "description": "The effect description may be either a plain text or a text that is\ndivided by a list of effects for each quality level. It may also be a\nlist for each two quality levels.",
57
+ "$ref": "../_ActivatableSkill.schema.json#/definitions/Effect/T"
58
+ },
59
+ "casting_time": {
60
+ "type": "object",
61
+ "properties": {
62
+ "full": {
63
+ "type": "string"
64
+ },
65
+ "abbr": {
66
+ "type": "string"
67
+ }
68
+ },
69
+ "required": [
70
+ "full",
71
+ "abbr"
72
+ ],
73
+ "additionalProperties": false
74
+ },
75
+ "cost": {
76
+ "type": "object",
77
+ "properties": {
78
+ "full": {
79
+ "type": "string"
80
+ },
81
+ "abbr": {
82
+ "type": "string"
83
+ }
84
+ },
85
+ "required": [
86
+ "full",
87
+ "abbr"
88
+ ],
89
+ "additionalProperties": false
90
+ },
91
+ "range": {
92
+ "type": "object",
93
+ "properties": {
94
+ "full": {
95
+ "type": "string"
96
+ },
97
+ "abbr": {
98
+ "type": "string"
99
+ }
100
+ },
101
+ "required": [
102
+ "full",
103
+ "abbr"
104
+ ],
105
+ "additionalProperties": false
106
+ },
107
+ "duration": {
108
+ "type": "object",
109
+ "properties": {
110
+ "full": {
111
+ "type": "string"
112
+ },
113
+ "abbr": {
114
+ "type": "string"
115
+ }
116
+ },
117
+ "required": [
118
+ "full",
119
+ "abbr"
120
+ ],
121
+ "additionalProperties": false
122
+ },
123
+ "target": {
124
+ "type": "string"
125
+ },
126
+ "errata": {
127
+ "$ref": "../source/_Erratum.schema.json#/definitions/Errata"
128
+ }
129
+ },
130
+ "required": [
131
+ "name",
132
+ "effect",
133
+ "casting_time",
134
+ "cost",
135
+ "range",
136
+ "duration",
137
+ "target"
138
+ ],
139
+ "additionalProperties": false
140
+ }
141
+ },
142
+ "minProperties": 1,
143
+ "additionalProperties": false
144
+ }
145
+ },
146
+ "required": [
147
+ "id",
148
+ "check",
149
+ "parameters",
150
+ "target",
151
+ "property_id",
152
+ "improvement_cost",
153
+ "src",
154
+ "translations"
155
+ ],
156
+ "additionalProperties": false
157
+ }
158
+ }
159
+ }
@@ -0,0 +1,44 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema",
3
+ "$id": "magicalActions/_MusicTradition.schema.json",
4
+ "definitions": {
5
+ "MusicTraditionReference": {
6
+ "description": "A reference to a music tradition with the music-tradition-specific name of\nthe entry",
7
+ "type": "object",
8
+ "properties": {
9
+ "id": {
10
+ "description": "The music tradition's identifier.",
11
+ "type": "integer",
12
+ "minimum": 1
13
+ },
14
+ "translations": {
15
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
16
+ "type": "object",
17
+ "patternProperties": {
18
+ "^[a-z]{2}-[A-Z]{2}$": {
19
+ "type": "object",
20
+ "properties": {
21
+ "name": {
22
+ "description": "The music-tradition-specific name of the entry.",
23
+ "type": "string",
24
+ "minLength": 1
25
+ }
26
+ },
27
+ "required": [
28
+ "name"
29
+ ],
30
+ "additionalProperties": false
31
+ }
32
+ },
33
+ "minProperties": 1,
34
+ "additionalProperties": false
35
+ }
36
+ },
37
+ "required": [
38
+ "id",
39
+ "translations"
40
+ ],
41
+ "additionalProperties": false
42
+ }
43
+ }
44
+ }
@@ -0,0 +1,26 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema",
3
+ "$id": "magicalActions/_SkillReference.schema.json",
4
+ "definitions": {
5
+ "SkillReference": {
6
+ "description": "A reference to a skill used for performing melodies.",
7
+ "type": "object",
8
+ "properties": {
9
+ "id": {
10
+ "description": "The skill's identifier.",
11
+ "$ref": "#/definitions/SkillIdentifier"
12
+ }
13
+ },
14
+ "required": [
15
+ "id"
16
+ ],
17
+ "additionalProperties": false
18
+ },
19
+ "SkillIdentifier": {
20
+ "enum": [
21
+ 9,
22
+ 56
23
+ ]
24
+ }
25
+ }
26
+ }
@@ -0,0 +1,71 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema",
3
+ "$id": "rule/FocusRule.schema.json",
4
+ "$ref": "#/definitions/FocusRule",
5
+ "definitions": {
6
+ "FocusRule": {
7
+ "title": "Focus Rule",
8
+ "type": "object",
9
+ "properties": {
10
+ "id": {
11
+ "description": "The focus rule's identifier. An unique, increasing integer.",
12
+ "type": "integer",
13
+ "minimum": 1
14
+ },
15
+ "subject_id": {
16
+ "description": "The focus rule's subject's identifier.",
17
+ "type": "integer",
18
+ "minimum": 1
19
+ },
20
+ "level": {
21
+ "description": "The focus rule's level.",
22
+ "type": "integer",
23
+ "maximum": 4,
24
+ "minimum": 1
25
+ },
26
+ "src": {
27
+ "$ref": "../source/_PublicationRef.schema.json#/definitions/PublicationRefs"
28
+ },
29
+ "translations": {
30
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
31
+ "type": "object",
32
+ "patternProperties": {
33
+ "^[a-z]{2}-[A-Z]{2}$": {
34
+ "type": "object",
35
+ "properties": {
36
+ "name": {
37
+ "description": "The name of the focus rule.",
38
+ "type": "string",
39
+ "minLength": 1
40
+ },
41
+ "description": {
42
+ "description": "The description of the focus rule.",
43
+ "type": "string",
44
+ "minLength": 1
45
+ },
46
+ "errata": {
47
+ "$ref": "../source/_Erratum.schema.json#/definitions/Errata"
48
+ }
49
+ },
50
+ "required": [
51
+ "name",
52
+ "description"
53
+ ],
54
+ "additionalProperties": false
55
+ }
56
+ },
57
+ "minProperties": 1,
58
+ "additionalProperties": false
59
+ }
60
+ },
61
+ "required": [
62
+ "id",
63
+ "subject_id",
64
+ "level",
65
+ "src",
66
+ "translations"
67
+ ],
68
+ "additionalProperties": false
69
+ }
70
+ }
71
+ }
@@ -0,0 +1,46 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema",
3
+ "$id": "rule/FocusRule_Subject.schema.json",
4
+ "$ref": "#/definitions/Subject",
5
+ "definitions": {
6
+ "Subject": {
7
+ "title": "Subject",
8
+ "description": "Subjects or Subject Areas are the categories of Focus Rules.",
9
+ "type": "object",
10
+ "properties": {
11
+ "id": {
12
+ "description": "The subject's identifier. An unique, increasing integer.",
13
+ "type": "integer",
14
+ "minimum": 1
15
+ },
16
+ "translations": {
17
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
18
+ "type": "object",
19
+ "patternProperties": {
20
+ "^[a-z]{2}-[A-Z]{2}$": {
21
+ "type": "object",
22
+ "properties": {
23
+ "name": {
24
+ "description": "The subject.",
25
+ "type": "string",
26
+ "minLength": 1
27
+ }
28
+ },
29
+ "required": [
30
+ "name"
31
+ ],
32
+ "additionalProperties": false
33
+ }
34
+ },
35
+ "minProperties": 1,
36
+ "additionalProperties": false
37
+ }
38
+ },
39
+ "required": [
40
+ "id",
41
+ "translations"
42
+ ],
43
+ "additionalProperties": false
44
+ }
45
+ }
46
+ }
@@ -0,0 +1,96 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema",
3
+ "$id": "rule/OptionalRule.schema.json",
4
+ "$ref": "#/definitions/OptionalRule",
5
+ "definitions": {
6
+ "OptionalRule": {
7
+ "title": "Optional Rule",
8
+ "type": "object",
9
+ "properties": {
10
+ "id": {
11
+ "description": "The optional rule's identifier. An unique, increasing integer.",
12
+ "type": "integer",
13
+ "minimum": 1
14
+ },
15
+ "relevance": {
16
+ "description": "The relevance of the optional rule for Optolith. It may be that it\ninfluences character creating but it may also just influnce the character\nsheet. If it is linked to systems in Optolith, it may be specified if this\nrule has not been implemented in Optolith yet.",
17
+ "$ref": "#/definitions/Relevance"
18
+ },
19
+ "src": {
20
+ "$ref": "../source/_PublicationRef.schema.json#/definitions/PublicationRefs"
21
+ },
22
+ "translations": {
23
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
24
+ "type": "object",
25
+ "patternProperties": {
26
+ "^[a-z]{2}-[A-Z]{2}$": {
27
+ "type": "object",
28
+ "properties": {
29
+ "name": {
30
+ "description": "The name of the optional rule.",
31
+ "type": "string",
32
+ "minLength": 1
33
+ },
34
+ "description": {
35
+ "description": "The description of the optional rule.",
36
+ "type": "string",
37
+ "minLength": 1
38
+ },
39
+ "errata": {
40
+ "$ref": "../source/_Erratum.schema.json#/definitions/Errata"
41
+ }
42
+ },
43
+ "required": [
44
+ "name",
45
+ "description"
46
+ ],
47
+ "additionalProperties": false
48
+ }
49
+ },
50
+ "minProperties": 1,
51
+ "additionalProperties": false
52
+ }
53
+ },
54
+ "required": [
55
+ "id",
56
+ "relevance",
57
+ "src",
58
+ "translations"
59
+ ],
60
+ "additionalProperties": false
61
+ },
62
+ "Relevance": {
63
+ "description": "The relevance of the optional rule for Optolith. It may be that it influences\ncharacter creating but it may also just influnce the character sheet. If it\nis linked to systems in Optolith, it may be specified if this rule has not\nbeen implemented in Optolith yet.",
64
+ "oneOf": [
65
+ {
66
+ "type": "object",
67
+ "properties": {
68
+ "tag": {
69
+ "const": "Extraneous"
70
+ }
71
+ },
72
+ "required": [
73
+ "tag"
74
+ ],
75
+ "additionalProperties": false
76
+ },
77
+ {
78
+ "type": "object",
79
+ "properties": {
80
+ "tag": {
81
+ "const": "Linked"
82
+ },
83
+ "isMissingImplementation": {
84
+ "description": "Does the optional rule have an impact on character creation or character\nsheet and this effect has not been implemented in Optolith yet? If\n`true`, the optional rule cannot be activated.",
85
+ "type": "boolean"
86
+ }
87
+ },
88
+ "required": [
89
+ "tag"
90
+ ],
91
+ "additionalProperties": false
92
+ }
93
+ ]
94
+ }
95
+ }
96
+ }
@@ -0,0 +1,165 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema",
3
+ "$id": "source/Publication.schema.json",
4
+ "$ref": "#/definitions/Publication",
5
+ "definitions": {
6
+ "Publication": {
7
+ "title": "Publication",
8
+ "type": "object",
9
+ "properties": {
10
+ "id": {
11
+ "description": "The publication's identifier. An unique, increasing integer.",
12
+ "type": "integer",
13
+ "minimum": 1
14
+ },
15
+ "category": {
16
+ "description": "The publication category.",
17
+ "$ref": "#/definitions/Category"
18
+ },
19
+ "age_restriction": {
20
+ "description": "The age the content is restricted to.",
21
+ "$ref": "#/definitions/AgeRestriction"
22
+ },
23
+ "is_missing_implementation": {
24
+ "description": "The publication is not (fully) implemented and thus needs to be excluded\nfrom * stable releases.",
25
+ "type": "boolean"
26
+ },
27
+ "prerequisites": {
28
+ "description": "The specific other publications this publication depends on data from.",
29
+ "$ref": "../_Prerequisite.schema.json#/definitions/GroupCollection/Publication"
30
+ },
31
+ "translations": {
32
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
33
+ "type": "object",
34
+ "patternProperties": {
35
+ "^[a-z]{2}-[A-Z]{2}$": {
36
+ "type": "object",
37
+ "properties": {
38
+ "id": {
39
+ "description": "The publisher's publication identifier.",
40
+ "type": "string",
41
+ "minLength": 1
42
+ },
43
+ "name": {
44
+ "description": "The publication's name.",
45
+ "type": "string",
46
+ "minLength": 1
47
+ },
48
+ "abbreviation": {
49
+ "description": "The publication's abbreviation.",
50
+ "type": "string",
51
+ "minLength": 1
52
+ },
53
+ "release_date": {
54
+ "description": "The publication's release date.",
55
+ "type": "string",
56
+ "format": "date"
57
+ },
58
+ "is_missing_implementation": {
59
+ "description": "This publication translation is not (fully) implemented and thus needs to\nbe excluded from stable releases.",
60
+ "type": "boolean"
61
+ }
62
+ },
63
+ "required": [
64
+ "name",
65
+ "abbreviation"
66
+ ],
67
+ "additionalProperties": false
68
+ }
69
+ },
70
+ "minProperties": 1,
71
+ "additionalProperties": false
72
+ }
73
+ },
74
+ "required": [
75
+ "id",
76
+ "category",
77
+ "age_restriction",
78
+ "translations"
79
+ ],
80
+ "additionalProperties": false
81
+ },
82
+ "Category": {
83
+ "description": "The publication category.",
84
+ "oneOf": [
85
+ {
86
+ "type": "object",
87
+ "properties": {
88
+ "tag": {
89
+ "const": "CoreRules"
90
+ }
91
+ },
92
+ "required": [
93
+ "tag"
94
+ ],
95
+ "additionalProperties": false
96
+ },
97
+ {
98
+ "type": "object",
99
+ "properties": {
100
+ "tag": {
101
+ "const": "ExpansionRules"
102
+ }
103
+ },
104
+ "required": [
105
+ "tag"
106
+ ],
107
+ "additionalProperties": false
108
+ },
109
+ {
110
+ "type": "object",
111
+ "properties": {
112
+ "tag": {
113
+ "const": "Sourcebook"
114
+ }
115
+ },
116
+ "required": [
117
+ "tag"
118
+ ],
119
+ "additionalProperties": false
120
+ },
121
+ {
122
+ "type": "object",
123
+ "properties": {
124
+ "tag": {
125
+ "const": "RegionalSourcebook"
126
+ }
127
+ },
128
+ "required": [
129
+ "tag"
130
+ ],
131
+ "additionalProperties": false
132
+ }
133
+ ]
134
+ },
135
+ "AgeRestriction": {
136
+ "description": "The age the content is restricted to.",
137
+ "oneOf": [
138
+ {
139
+ "type": "object",
140
+ "properties": {
141
+ "tag": {
142
+ "const": "Adult"
143
+ }
144
+ },
145
+ "required": [
146
+ "tag"
147
+ ],
148
+ "additionalProperties": false
149
+ },
150
+ {
151
+ "type": "object",
152
+ "properties": {
153
+ "tag": {
154
+ "const": "None"
155
+ }
156
+ },
157
+ "required": [
158
+ "tag"
159
+ ],
160
+ "additionalProperties": false
161
+ }
162
+ ]
163
+ }
164
+ }
165
+ }
@@ -0,0 +1,37 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema",
3
+ "$id": "source/_Erratum.schema.json",
4
+ "$ref": "#/definitions/Errata",
5
+ "definitions": {
6
+ "Errata": {
7
+ "title": "Errata",
8
+ "description": "A list of errata for the entry in the specific language.",
9
+ "type": "array",
10
+ "items": {
11
+ "$ref": "#/definitions/Erratum"
12
+ },
13
+ "minItems": 1
14
+ },
15
+ "Erratum": {
16
+ "title": "Erratum",
17
+ "type": "object",
18
+ "properties": {
19
+ "date": {
20
+ "description": "The date when the change was confirmed and applied to the entry.",
21
+ "type": "string",
22
+ "format": "date"
23
+ },
24
+ "description": {
25
+ "description": "A description of what changed.",
26
+ "type": "string",
27
+ "minLength": 1
28
+ }
29
+ },
30
+ "required": [
31
+ "date",
32
+ "description"
33
+ ],
34
+ "additionalProperties": false
35
+ }
36
+ }
37
+ }