optolith-database-schema 0.0.4 → 0.1.0

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 (210) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/lib/types/Advantage.d.ts +48 -0
  3. package/lib/types/Advantage.js +4 -0
  4. package/lib/types/ArcaneBardTradition.d.ts +2 -2
  5. package/lib/types/ArcaneDancerTradition.d.ts +2 -2
  6. package/lib/types/Ceremony.d.ts +2 -2
  7. package/lib/types/Continent.d.ts +32 -0
  8. package/lib/types/Continent.js +4 -0
  9. package/lib/types/DerivedCharacteristic.d.ts +2 -2
  10. package/lib/types/Disadvantage.d.ts +46 -0
  11. package/lib/types/Disadvantage.js +4 -0
  12. package/lib/types/LiturgicalChant.d.ts +2 -2
  13. package/lib/types/Patron.d.ts +197 -0
  14. package/lib/types/Patron.js +4 -0
  15. package/lib/types/PatronCategory.d.ts +44 -0
  16. package/lib/types/PatronCategory.js +4 -0
  17. package/lib/types/Ritual.d.ts +2 -2
  18. package/lib/types/Spell.d.ts +2 -2
  19. package/lib/types/_Activatable.d.ts +528 -0
  20. package/lib/types/_Activatable.js +5 -0
  21. package/lib/types/_Enhancements.d.ts +2 -2
  22. package/lib/types/_I18n.d.ts +38 -0
  23. package/lib/types/_I18n.js +1 -0
  24. package/lib/types/_Identifier.d.ts +81 -75
  25. package/lib/types/_Identifier.js +76 -1
  26. package/lib/types/_Influence.d.ts +52 -0
  27. package/lib/types/_Influence.js +4 -0
  28. package/lib/types/_Prerequisite.d.ts +343 -296
  29. package/lib/types/_Prerequisite.js +136 -183
  30. package/lib/types/magicalActions/GeodeRitual.d.ts +2 -2
  31. package/lib/types/specialAbility/AdvancedCombatSpecialAbility.d.ts +34 -0
  32. package/lib/types/specialAbility/AdvancedCombatSpecialAbility.js +4 -0
  33. package/lib/types/specialAbility/AdvancedKarmaSpecialAbility.d.ts +32 -0
  34. package/lib/types/specialAbility/AdvancedKarmaSpecialAbility.js +4 -0
  35. package/lib/types/specialAbility/AdvancedMagicalSpecialAbility.d.ts +32 -0
  36. package/lib/types/specialAbility/AdvancedMagicalSpecialAbility.js +4 -0
  37. package/lib/types/specialAbility/AdvancedSkillSpecialAbility.d.ts +32 -0
  38. package/lib/types/specialAbility/AdvancedSkillSpecialAbility.js +4 -0
  39. package/lib/types/specialAbility/AncestorGlyph.d.ts +30 -0
  40. package/lib/types/specialAbility/AncestorGlyph.js +4 -0
  41. package/lib/types/specialAbility/BlessedTradition.d.ts +170 -0
  42. package/lib/types/specialAbility/BlessedTradition.js +4 -0
  43. package/lib/types/specialAbility/BrawlingSpecialAbility.d.ts +32 -0
  44. package/lib/types/specialAbility/BrawlingSpecialAbility.js +4 -0
  45. package/lib/types/specialAbility/CeremonialItemSpecialAbility.d.ts +33 -0
  46. package/lib/types/specialAbility/CeremonialItemSpecialAbility.js +4 -0
  47. package/lib/types/specialAbility/CombatSpecialAbility.d.ts +34 -0
  48. package/lib/types/specialAbility/CombatSpecialAbility.js +4 -0
  49. package/lib/types/specialAbility/CombatStyleSpecialAbility.d.ts +43 -0
  50. package/lib/types/specialAbility/CombatStyleSpecialAbility.js +4 -0
  51. package/lib/types/specialAbility/CommandSpecialAbility.d.ts +32 -0
  52. package/lib/types/specialAbility/CommandSpecialAbility.js +4 -0
  53. package/lib/types/specialAbility/FamiliarSpecialAbility.d.ts +30 -0
  54. package/lib/types/specialAbility/FamiliarSpecialAbility.js +4 -0
  55. package/lib/types/specialAbility/FatePointSexSpecialAbility.d.ts +30 -0
  56. package/lib/types/specialAbility/FatePointSexSpecialAbility.js +4 -0
  57. package/lib/types/specialAbility/FatePointSpecialAbility.d.ts +32 -0
  58. package/lib/types/specialAbility/FatePointSpecialAbility.js +4 -0
  59. package/lib/types/specialAbility/GeneralSpecialAbility.d.ts +32 -0
  60. package/lib/types/specialAbility/GeneralSpecialAbility.js +4 -0
  61. package/lib/types/specialAbility/KarmaSpecialAbility.d.ts +30 -0
  62. package/lib/types/specialAbility/KarmaSpecialAbility.js +4 -0
  63. package/lib/types/specialAbility/LiturgicalStyleSpecialAbility.d.ts +33 -0
  64. package/lib/types/specialAbility/LiturgicalStyleSpecialAbility.js +4 -0
  65. package/lib/types/specialAbility/LycantropicGift.d.ts +30 -0
  66. package/lib/types/specialAbility/LycantropicGift.js +4 -0
  67. package/lib/types/specialAbility/MagicStyleSpecialAbility.d.ts +33 -0
  68. package/lib/types/specialAbility/MagicStyleSpecialAbility.js +4 -0
  69. package/lib/types/specialAbility/MagicalSpecialAbility.d.ts +32 -0
  70. package/lib/types/specialAbility/MagicalSpecialAbility.js +4 -0
  71. package/lib/types/specialAbility/MagicalTradition.d.ts +130 -0
  72. package/lib/types/specialAbility/MagicalTradition.js +4 -0
  73. package/lib/types/specialAbility/PactGift.d.ts +86 -0
  74. package/lib/types/specialAbility/PactGift.js +4 -0
  75. package/lib/types/specialAbility/ProtectiveWardingCircleSpecialAbility.d.ts +41 -0
  76. package/lib/types/specialAbility/ProtectiveWardingCircleSpecialAbility.js +4 -0
  77. package/lib/types/specialAbility/Sermon.d.ts +30 -0
  78. package/lib/types/specialAbility/Sermon.js +4 -0
  79. package/lib/types/specialAbility/SexSpecialAbility.d.ts +32 -0
  80. package/lib/types/specialAbility/SexSpecialAbility.js +4 -0
  81. package/lib/types/specialAbility/SikaryanDrainSpecialAbility.d.ts +30 -0
  82. package/lib/types/specialAbility/SikaryanDrainSpecialAbility.js +4 -0
  83. package/lib/types/specialAbility/SkillStyleSpecialAbility.d.ts +31 -0
  84. package/lib/types/specialAbility/SkillStyleSpecialAbility.js +4 -0
  85. package/lib/types/specialAbility/VampiricGift.d.ts +30 -0
  86. package/lib/types/specialAbility/VampiricGift.js +4 -0
  87. package/lib/types/specialAbility/Vision.d.ts +30 -0
  88. package/lib/types/specialAbility/Vision.js +4 -0
  89. package/lib/types/specialAbility/sub/Language.d.ts +141 -0
  90. package/lib/types/specialAbility/sub/Language.js +4 -0
  91. package/lib/types/specialAbility/sub/Script.d.ts +85 -0
  92. package/lib/types/specialAbility/sub/Script.js +4 -0
  93. package/lib/types/traditionArtifacts/ArcaneOrbEnchantment.d.ts +31 -0
  94. package/lib/types/traditionArtifacts/ArcaneOrbEnchantment.js +4 -0
  95. package/lib/types/traditionArtifacts/AttireEnchantment.d.ts +31 -0
  96. package/lib/types/traditionArtifacts/AttireEnchantment.js +4 -0
  97. package/lib/types/traditionArtifacts/BowlEnchantment.d.ts +31 -0
  98. package/lib/types/traditionArtifacts/BowlEnchantment.js +4 -0
  99. package/lib/types/traditionArtifacts/CauldronEnchantment.d.ts +44 -0
  100. package/lib/types/traditionArtifacts/CauldronEnchantment.js +4 -0
  101. package/lib/types/traditionArtifacts/ChronicleEnchantment.d.ts +31 -0
  102. package/lib/types/traditionArtifacts/ChronicleEnchantment.js +4 -0
  103. package/lib/types/traditionArtifacts/DaggerRitual.d.ts +31 -0
  104. package/lib/types/traditionArtifacts/DaggerRitual.js +4 -0
  105. package/lib/types/traditionArtifacts/FoolsHatEnchantment.d.ts +31 -0
  106. package/lib/types/traditionArtifacts/FoolsHatEnchantment.js +4 -0
  107. package/lib/types/traditionArtifacts/InstrumentEnchantment.d.ts +31 -0
  108. package/lib/types/traditionArtifacts/InstrumentEnchantment.js +4 -0
  109. package/lib/types/traditionArtifacts/Krallenkettenzauber.d.ts +31 -0
  110. package/lib/types/traditionArtifacts/Krallenkettenzauber.js +4 -0
  111. package/lib/types/traditionArtifacts/OrbEnchantment.d.ts +31 -0
  112. package/lib/types/traditionArtifacts/OrbEnchantment.js +4 -0
  113. package/lib/types/traditionArtifacts/RingEnchantment.d.ts +31 -0
  114. package/lib/types/traditionArtifacts/RingEnchantment.js +4 -0
  115. package/lib/types/traditionArtifacts/SickleRitual.d.ts +31 -0
  116. package/lib/types/traditionArtifacts/SickleRitual.js +4 -0
  117. package/lib/types/traditionArtifacts/SpellSwordEnchantment.d.ts +31 -0
  118. package/lib/types/traditionArtifacts/SpellSwordEnchantment.js +4 -0
  119. package/lib/types/traditionArtifacts/StaffEnchantment.d.ts +31 -0
  120. package/lib/types/traditionArtifacts/StaffEnchantment.js +4 -0
  121. package/lib/types/traditionArtifacts/ToyEnchantment.d.ts +31 -0
  122. package/lib/types/traditionArtifacts/ToyEnchantment.js +4 -0
  123. package/lib/types/traditionArtifacts/Trinkhornzauber.d.ts +31 -0
  124. package/lib/types/traditionArtifacts/Trinkhornzauber.js +4 -0
  125. package/lib/types/traditionArtifacts/WandEnchantment.d.ts +31 -0
  126. package/lib/types/traditionArtifacts/WandEnchantment.js +4 -0
  127. package/lib/types/traditionArtifacts/WeaponEnchantment.d.ts +31 -0
  128. package/lib/types/traditionArtifacts/WeaponEnchantment.js +4 -0
  129. package/lib/types/traditionArtifacts/sub/AnimalShape.d.ts +42 -0
  130. package/lib/types/traditionArtifacts/sub/AnimalShape.js +4 -0
  131. package/lib/types/traditionArtifacts/sub/AnimalShapePath.d.ts +30 -0
  132. package/lib/types/traditionArtifacts/sub/AnimalShapePath.js +4 -0
  133. package/lib/types/traditionArtifacts/sub/AnimalShapeSize.d.ts +42 -0
  134. package/lib/types/traditionArtifacts/sub/AnimalShapeSize.js +4 -0
  135. package/lib/types/traditionArtifacts/sub/Brew.d.ts +30 -0
  136. package/lib/types/traditionArtifacts/sub/Brew.js +4 -0
  137. package/package.json +1 -1
  138. package/schema/Advantage.schema.json +81 -0
  139. package/schema/ArcaneBardTradition.schema.json +1 -1
  140. package/schema/ArcaneDancerTradition.schema.json +1 -1
  141. package/schema/Ceremony.schema.json +1 -1
  142. package/schema/Continent.schema.json +46 -0
  143. package/schema/DerivedCharacteristic.schema.json +1 -1
  144. package/schema/Disadvantage.schema.json +75 -0
  145. package/schema/LiturgicalChant.schema.json +1 -1
  146. package/schema/Patron.schema.json +407 -0
  147. package/schema/PatronCategory.schema.json +66 -0
  148. package/schema/Ritual.schema.json +1 -1
  149. package/schema/Spell.schema.json +1 -1
  150. package/schema/_Activatable.schema.json +1182 -0
  151. package/schema/_Enhancements.schema.json +1 -1
  152. package/schema/_I18n.schema.json +38 -0
  153. package/schema/_Identifier.schema.json +90 -113
  154. package/schema/_Influence.schema.json +77 -0
  155. package/schema/_Prerequisite.schema.json +703 -573
  156. package/schema/magicalActions/GeodeRitual.schema.json +1 -1
  157. package/schema/source/Publication.schema.json +1 -1
  158. package/schema/specialAbility/AdvancedCombatSpecialAbility.schema.json +76 -0
  159. package/schema/specialAbility/AdvancedKarmaSpecialAbility.schema.json +68 -0
  160. package/schema/specialAbility/AdvancedMagicalSpecialAbility.schema.json +68 -0
  161. package/schema/specialAbility/AdvancedSkillSpecialAbility.schema.json +68 -0
  162. package/schema/specialAbility/AncestorGlyph.schema.json +62 -0
  163. package/schema/specialAbility/BlessedTradition.schema.json +300 -0
  164. package/schema/specialAbility/BrawlingSpecialAbility.schema.json +70 -0
  165. package/schema/specialAbility/CeremonialItemSpecialAbility.schema.json +72 -0
  166. package/schema/specialAbility/CombatSpecialAbility.schema.json +76 -0
  167. package/schema/specialAbility/CombatStyleSpecialAbility.schema.json +110 -0
  168. package/schema/specialAbility/CommandSpecialAbility.schema.json +70 -0
  169. package/schema/specialAbility/FamiliarSpecialAbility.schema.json +62 -0
  170. package/schema/specialAbility/FatePointSexSpecialAbility.schema.json +62 -0
  171. package/schema/specialAbility/FatePointSpecialAbility.schema.json +68 -0
  172. package/schema/specialAbility/GeneralSpecialAbility.schema.json +68 -0
  173. package/schema/specialAbility/KarmaSpecialAbility.schema.json +62 -0
  174. package/schema/specialAbility/LiturgicalStyleSpecialAbility.schema.json +72 -0
  175. package/schema/specialAbility/LycantropicGift.schema.json +62 -0
  176. package/schema/specialAbility/MagicStyleSpecialAbility.schema.json +72 -0
  177. package/schema/specialAbility/MagicalSpecialAbility.schema.json +68 -0
  178. package/schema/specialAbility/MagicalTradition.schema.json +181 -0
  179. package/schema/specialAbility/PactGift.schema.json +215 -0
  180. package/schema/specialAbility/ProtectiveWardingCircleSpecialAbility.schema.json +70 -0
  181. package/schema/specialAbility/Sermon.schema.json +62 -0
  182. package/schema/specialAbility/SexSpecialAbility.schema.json +68 -0
  183. package/schema/specialAbility/SikaryanDrainSpecialAbility.schema.json +62 -0
  184. package/schema/specialAbility/SkillStyleSpecialAbility.schema.json +66 -0
  185. package/schema/specialAbility/VampiricGift.schema.json +62 -0
  186. package/schema/specialAbility/Vision.schema.json +62 -0
  187. package/schema/specialAbility/sub/Language.schema.json +215 -0
  188. package/schema/specialAbility/sub/Script.schema.json +127 -0
  189. package/schema/traditionArtifacts/ArcaneOrbEnchantment.schema.json +66 -0
  190. package/schema/traditionArtifacts/AttireEnchantment.schema.json +66 -0
  191. package/schema/traditionArtifacts/BowlEnchantment.schema.json +66 -0
  192. package/schema/traditionArtifacts/CauldronEnchantment.schema.json +83 -0
  193. package/schema/traditionArtifacts/ChronicleEnchantment.schema.json +66 -0
  194. package/schema/traditionArtifacts/DaggerRitual.schema.json +66 -0
  195. package/schema/traditionArtifacts/FoolsHatEnchantment.schema.json +66 -0
  196. package/schema/traditionArtifacts/InstrumentEnchantment.schema.json +66 -0
  197. package/schema/traditionArtifacts/Krallenkettenzauber.schema.json +66 -0
  198. package/schema/traditionArtifacts/OrbEnchantment.schema.json +66 -0
  199. package/schema/traditionArtifacts/RingEnchantment.schema.json +66 -0
  200. package/schema/traditionArtifacts/SickleRitual.schema.json +66 -0
  201. package/schema/traditionArtifacts/SpellSwordEnchantment.schema.json +66 -0
  202. package/schema/traditionArtifacts/StaffEnchantment.schema.json +66 -0
  203. package/schema/traditionArtifacts/ToyEnchantment.schema.json +66 -0
  204. package/schema/traditionArtifacts/Trinkhornzauber.schema.json +66 -0
  205. package/schema/traditionArtifacts/WandEnchantment.schema.json +66 -0
  206. package/schema/traditionArtifacts/WeaponEnchantment.schema.json +66 -0
  207. package/schema/traditionArtifacts/sub/AnimalShape.schema.json +57 -0
  208. package/schema/traditionArtifacts/sub/AnimalShapePath.schema.json +45 -0
  209. package/schema/traditionArtifacts/sub/AnimalShapeSize.schema.json +57 -0
  210. package/schema/traditionArtifacts/sub/Brew.schema.json +45 -0
@@ -2,716 +2,846 @@
2
2
  "$schema": "http://json-schema.org/draft-07/schema",
3
3
  "$id": "_Prerequisite.schema.json",
4
4
  "definitions": {
5
- "Single": {
6
- "DisplayOption": {
7
- "T": {
8
- "title": "Display Option",
9
- "oneOf": [
10
- {
11
- "type": "object",
12
- "properties": {
13
- "tag": {
14
- "const": "Hide"
15
- }
5
+ "Prerequisite": {
6
+ "Single": {
7
+ "DisplayOption": {
8
+ "T": {
9
+ "title": "Display Option",
10
+ "oneOf": [
11
+ {
12
+ "type": "object",
13
+ "properties": {
14
+ "tag": {
15
+ "const": "Hide"
16
+ }
17
+ },
18
+ "required": [
19
+ "tag"
20
+ ],
21
+ "additionalProperties": false
16
22
  },
17
- "required": [
18
- "tag"
19
- ],
20
- "additionalProperties": false
23
+ {
24
+ "type": "object",
25
+ "properties": {
26
+ "tag": {
27
+ "const": "ReplaceWith"
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": "string"
35
+ }
36
+ },
37
+ "minProperties": 1,
38
+ "additionalProperties": false
39
+ }
40
+ },
41
+ "required": [
42
+ "tag",
43
+ "translations"
44
+ ],
45
+ "additionalProperties": false
46
+ }
47
+ ]
48
+ }
49
+ },
50
+ "Sex": {
51
+ "T": {
52
+ "title": "Sex Prerequisite",
53
+ "description": "Requires a specific sex.",
54
+ "type": "object",
55
+ "properties": {
56
+ "tag": {
57
+ "const": "Sex"
58
+ },
59
+ "id": {
60
+ "$ref": "./_Sex.schema.json#/definitions/BinarySex"
61
+ },
62
+ "display_option": {
63
+ "$ref": "#/definitions/Prerequisite/Single/DisplayOption/T"
64
+ }
21
65
  },
22
- {
23
- "type": "object",
24
- "properties": {
25
- "tag": {
26
- "const": "ReplaceWith"
66
+ "required": [
67
+ "tag",
68
+ "id"
69
+ ],
70
+ "additionalProperties": false
71
+ }
72
+ },
73
+ "Race": {
74
+ "T": {
75
+ "title": "Race Prerequisite",
76
+ "description": "Requires a specific culture or one of a specific set of cultures.",
77
+ "type": "object",
78
+ "properties": {
79
+ "tag": {
80
+ "const": "Culture"
81
+ },
82
+ "id": {
83
+ "$ref": "#/definitions/Prerequisite/Single/Race/Identifier"
84
+ },
85
+ "active": {
86
+ "type": "boolean"
87
+ },
88
+ "display_option": {
89
+ "$ref": "#/definitions/Prerequisite/Single/DisplayOption/T"
90
+ }
91
+ },
92
+ "required": [
93
+ "tag",
94
+ "id",
95
+ "active"
96
+ ],
97
+ "additionalProperties": false
98
+ },
99
+ "Identifier": {
100
+ "oneOf": [
101
+ {
102
+ "$ref": "#/definitions/Prerequisite/Single/Race/SingleIdentifier"
103
+ },
104
+ {
105
+ "$ref": "#/definitions/Prerequisite/Single/Race/MultipleIdentifiers"
106
+ }
107
+ ]
108
+ },
109
+ "SingleIdentifier": {
110
+ "type": "number",
111
+ "minimum": 1
112
+ },
113
+ "MultipleIdentifiers": {
114
+ "type": "array",
115
+ "items": {
116
+ "$ref": "#/definitions/Prerequisite/Single/Race/SingleIdentifier"
117
+ },
118
+ "minItems": 2
119
+ }
120
+ },
121
+ "Culture": {
122
+ "T": {
123
+ "title": "Culture Prerequisite",
124
+ "description": "Requires a specific race or one of a specific set of races. You can also\nprovide an object to say whether the hero must meet one of the races or\nif the entry does not allow one of the races.",
125
+ "type": "object",
126
+ "properties": {
127
+ "tag": {
128
+ "const": "Culture"
129
+ },
130
+ "id": {
131
+ "$ref": "#/definitions/Prerequisite/Single/Culture/Identifier"
132
+ },
133
+ "display_option": {
134
+ "$ref": "#/definitions/Prerequisite/Single/DisplayOption/T"
135
+ }
136
+ },
137
+ "required": [
138
+ "tag",
139
+ "id"
140
+ ],
141
+ "additionalProperties": false
142
+ },
143
+ "Identifier": {
144
+ "oneOf": [
145
+ {
146
+ "$ref": "#/definitions/Prerequisite/Single/Culture/SingleIdentifier"
147
+ },
148
+ {
149
+ "$ref": "#/definitions/Prerequisite/Single/Culture/MultipleIdentifiers"
150
+ }
151
+ ]
152
+ },
153
+ "SingleIdentifier": {
154
+ "type": "number",
155
+ "minimum": 1
156
+ },
157
+ "MultipleIdentifiers": {
158
+ "type": "array",
159
+ "items": {
160
+ "$ref": "#/definitions/Prerequisite/Single/Culture/SingleIdentifier"
161
+ },
162
+ "minItems": 2
163
+ }
164
+ },
165
+ "Rule": {
166
+ "T": {
167
+ "title": "Rule Prerequisite",
168
+ "type": "object",
169
+ "properties": {
170
+ "tag": {
171
+ "const": "Rule"
172
+ },
173
+ "id": {
174
+ "$ref": "#/definitions/Prerequisite/Single/Rule/Identifier"
175
+ },
176
+ "display_option": {
177
+ "$ref": "#/definitions/Prerequisite/Single/DisplayOption/T"
178
+ }
179
+ },
180
+ "required": [
181
+ "tag",
182
+ "id"
183
+ ],
184
+ "additionalProperties": false
185
+ },
186
+ "Identifier": {
187
+ "oneOf": [
188
+ {
189
+ "type": "object",
190
+ "properties": {
191
+ "tag": {
192
+ "const": "FocusRule"
193
+ },
194
+ "value": {
195
+ "type": "integer",
196
+ "minimum": 1
197
+ }
27
198
  },
28
- "value": {
29
- "description": "All translations for the entry, identified by IETF language tag (BCP47).",
30
- "type": "object",
31
- "patternProperties": {
32
- "^[a-z]{2}-[A-Z]{2}$": {
33
- "type": "string"
34
- }
199
+ "required": [
200
+ "tag",
201
+ "value"
202
+ ],
203
+ "additionalProperties": false
204
+ },
205
+ {
206
+ "type": "object",
207
+ "properties": {
208
+ "tag": {
209
+ "const": "OptionalRule"
35
210
  },
36
- "minProperties": 1,
37
- "additionalProperties": false
38
- }
211
+ "value": {
212
+ "type": "integer",
213
+ "minimum": 1
214
+ }
215
+ },
216
+ "required": [
217
+ "tag",
218
+ "value"
219
+ ],
220
+ "additionalProperties": false
221
+ }
222
+ ]
223
+ }
224
+ },
225
+ "Publication": {
226
+ "T": {
227
+ "title": "Publication Prerequisite",
228
+ "type": "object",
229
+ "properties": {
230
+ "tag": {
231
+ "const": "Publication"
39
232
  },
40
- "required": [
41
- "tag",
42
- "value"
43
- ],
44
- "additionalProperties": false
45
- }
46
- ]
47
- }
48
- },
49
- "Sex": {
50
- "T": {
51
- "title": "Sex Prerequisite",
52
- "description": "Requires a specific sex.",
53
- "type": "object",
54
- "properties": {
55
- "tag": {
56
- "const": "Sex"
233
+ "id": {
234
+ "type": "integer",
235
+ "minimum": 1
236
+ },
237
+ "display_option": {
238
+ "$ref": "#/definitions/Prerequisite/Single/DisplayOption/T"
239
+ }
57
240
  },
58
- "id": {
59
- "$ref": "./_Sex.schema.json#/definitions/BinarySex"
241
+ "required": [
242
+ "tag",
243
+ "id"
244
+ ],
245
+ "additionalProperties": false
246
+ }
247
+ },
248
+ "PrimaryAttribute": {
249
+ "T": {
250
+ "title": "Primary Attribute Prerequisite",
251
+ "type": "object",
252
+ "properties": {
253
+ "tag": {
254
+ "const": "PrimaryAttribute"
255
+ },
256
+ "category": {
257
+ "description": "Is the required primary attribute for spellcasters or blessed ones?",
258
+ "$ref": "#/definitions/Prerequisite/Single/PrimaryAttribute/Category"
259
+ },
260
+ "value": {
261
+ "description": "Required value of the attribute",
262
+ "type": "integer",
263
+ "minimum": 9
264
+ },
265
+ "display_option": {
266
+ "$ref": "#/definitions/Prerequisite/Single/DisplayOption/T"
267
+ }
60
268
  },
61
- "display_option": {
62
- "$ref": "#/definitions/Single/DisplayOption/T"
63
- }
269
+ "required": [
270
+ "tag",
271
+ "category",
272
+ "value"
273
+ ],
274
+ "additionalProperties": false
64
275
  },
65
- "required": [
66
- "tag",
67
- "id"
68
- ],
69
- "additionalProperties": false
70
- }
71
- },
72
- "Race": {
73
- "T": {
74
- "title": "Race Prerequisite",
75
- "description": "Requires a specific culture or one of a specific set of cultures.",
76
- "type": "object",
77
- "properties": {
78
- "tag": {
79
- "const": "Culture"
276
+ "Category": {
277
+ "oneOf": [
278
+ {
279
+ "type": "object",
280
+ "properties": {
281
+ "tag": {
282
+ "const": "Blessed"
283
+ }
284
+ },
285
+ "required": [
286
+ "tag"
287
+ ],
288
+ "additionalProperties": false
289
+ },
290
+ {
291
+ "type": "object",
292
+ "properties": {
293
+ "tag": {
294
+ "const": "Magical"
295
+ }
296
+ },
297
+ "required": [
298
+ "tag"
299
+ ],
300
+ "additionalProperties": false
301
+ }
302
+ ]
303
+ }
304
+ },
305
+ "Pact": {
306
+ "T": {
307
+ "title": "Pact Prerequisite",
308
+ "description": "Requires a specific pact.",
309
+ "type": "object",
310
+ "properties": {
311
+ "tag": {
312
+ "const": "Pact"
313
+ },
314
+ "category_id": {
315
+ "description": "The required pact category's identifier.",
316
+ "type": "integer",
317
+ "minimum": 1
318
+ },
319
+ "domain_id": {
320
+ "description": "The required domains' identifiers.",
321
+ "type": "array",
322
+ "items": {
323
+ "$ref": "#/definitions/Prerequisite/Single/Pact/DomainId"
324
+ }
325
+ },
326
+ "level": {
327
+ "description": "The required pact level.",
328
+ "type": "integer",
329
+ "minimum": 1
330
+ },
331
+ "display_option": {
332
+ "$ref": "#/definitions/Prerequisite/Single/DisplayOption/T"
333
+ }
80
334
  },
81
- "id": {
82
- "$ref": "#/definitions/Single/Race/Identifier"
335
+ "required": [
336
+ "tag",
337
+ "category_id"
338
+ ],
339
+ "additionalProperties": false
340
+ },
341
+ "DomainId": {
342
+ "description": "A domain's identifier.",
343
+ "type": "integer",
344
+ "minimum": 1
345
+ }
346
+ },
347
+ "SocialStatus": {
348
+ "T": {
349
+ "title": "Social Status Prerequisite",
350
+ "description": "Requires a minimum social status.",
351
+ "type": "object",
352
+ "properties": {
353
+ "tag": {
354
+ "const": "SocialStatus"
355
+ },
356
+ "id": {
357
+ "description": "The minimum social status' identifier.",
358
+ "type": "integer",
359
+ "maximum": 5,
360
+ "minimum": 2
361
+ },
362
+ "display_option": {
363
+ "$ref": "#/definitions/Prerequisite/Single/DisplayOption/T"
364
+ }
365
+ },
366
+ "required": [
367
+ "tag",
368
+ "id"
369
+ ],
370
+ "additionalProperties": false
371
+ }
372
+ },
373
+ "Influence": {
374
+ "T": {
375
+ "title": "Influence Prerequisite",
376
+ "type": "object",
377
+ "properties": {
378
+ "tag": {
379
+ "const": "Influence"
380
+ },
381
+ "id": {
382
+ "description": "The influence's identifier.",
383
+ "type": "integer",
384
+ "minimum": 1
385
+ },
386
+ "active": {
387
+ "description": "If the referenced influence must or must not be chosen.",
388
+ "type": "boolean"
389
+ },
390
+ "display_option": {
391
+ "$ref": "#/definitions/Prerequisite/Single/DisplayOption/T"
392
+ }
83
393
  },
84
- "active": {
85
- "type": "boolean"
394
+ "required": [
395
+ "tag",
396
+ "id",
397
+ "active"
398
+ ],
399
+ "additionalProperties": false
400
+ }
401
+ },
402
+ "Activatable": {
403
+ "T": {
404
+ "title": "Activatable Prerequisite",
405
+ "description": "Requires a specific advantage, disadvantage, special ability.",
406
+ "type": "object",
407
+ "properties": {
408
+ "tag": {
409
+ "const": "Activatable"
410
+ },
411
+ "id": {
412
+ "description": "The activatable entry's identifier.",
413
+ "$ref": "./_Identifier.schema.json#/definitions/Identifier/Group/Activatable"
414
+ },
415
+ "active": {
416
+ "description": "If the required entry should be required to be active or inactive.",
417
+ "type": "boolean"
418
+ },
419
+ "level": {
420
+ "description": "The required minimum level of the entry.",
421
+ "type": "integer",
422
+ "minimum": 1
423
+ },
424
+ "display_option": {
425
+ "$ref": "#/definitions/Prerequisite/Single/DisplayOption/T"
426
+ }
86
427
  },
87
- "display_option": {
88
- "$ref": "#/definitions/Single/DisplayOption/T"
89
- }
428
+ "required": [
429
+ "tag",
430
+ "id",
431
+ "active"
432
+ ],
433
+ "additionalProperties": false
434
+ }
435
+ },
436
+ "Rated": {
437
+ "T": {
438
+ "title": "Rated Prerequisite",
439
+ "type": "object",
440
+ "properties": {
441
+ "tag": {
442
+ "const": "Rated"
443
+ },
444
+ "id": {
445
+ "description": "The rated entry's identifier.",
446
+ "$ref": "./_Identifier.schema.json#/definitions/Identifier/Group/Rated"
447
+ },
448
+ "value": {
449
+ "description": "The required minimum value.",
450
+ "type": "integer",
451
+ "minimum": 0
452
+ },
453
+ "display_option": {
454
+ "$ref": "#/definitions/Prerequisite/Single/DisplayOption/T"
455
+ }
456
+ },
457
+ "required": [
458
+ "tag",
459
+ "id",
460
+ "value"
461
+ ],
462
+ "additionalProperties": false
463
+ }
464
+ },
465
+ "Enhancement": {
466
+ "T": {
467
+ "title": "Enhancement Prerequisite",
468
+ "description": "Requires a specific enhancement from a skill.",
469
+ "type": "object",
470
+ "properties": {
471
+ "tag": {
472
+ "const": "Enhancement"
473
+ },
474
+ "skill": {
475
+ "description": "The required skill's identifier.",
476
+ "type": "object",
477
+ "properties": {
478
+ "tag": {
479
+ "$ref": "#/definitions/Prerequisite/Single/Enhancement/SkillCategoryWithEnhancements"
480
+ },
481
+ "id": {
482
+ "description": "The skill's identifier.",
483
+ "type": "integer",
484
+ "minimum": 1
485
+ }
486
+ },
487
+ "required": [
488
+ "tag",
489
+ "id"
490
+ ],
491
+ "additionalProperties": false
492
+ },
493
+ "enhancement": {
494
+ "description": "The required enhancement's identifier.",
495
+ "type": "object",
496
+ "properties": {
497
+ "id": {
498
+ "description": "The enhancement's identifier.",
499
+ "type": "integer",
500
+ "minimum": 1
501
+ }
502
+ },
503
+ "required": [
504
+ "id"
505
+ ],
506
+ "additionalProperties": false
507
+ },
508
+ "display_option": {
509
+ "$ref": "#/definitions/Prerequisite/Single/DisplayOption/T"
510
+ }
511
+ },
512
+ "required": [
513
+ "tag",
514
+ "skill",
515
+ "enhancement"
516
+ ],
517
+ "additionalProperties": false
90
518
  },
91
- "required": [
92
- "tag",
93
- "id",
94
- "active"
95
- ],
96
- "additionalProperties": false
519
+ "SkillCategoryWithEnhancements": {
520
+ "enum": [
521
+ "Spell",
522
+ "Ritual",
523
+ "LiturgicalChant",
524
+ "Ceremony"
525
+ ]
526
+ }
97
527
  },
98
- "Identifier": {
99
- "oneOf": [
100
- {
101
- "$ref": "#/definitions/Single/Race/SingleIdentifier"
528
+ "EnhancementInternal": {
529
+ "T": {
530
+ "title": "Internal Enhancement Prerequisite",
531
+ "description": "Requires a specific enhancement from a skill. This can only be used by an\nenhancement to require another enhancement from the same skill.",
532
+ "type": "object",
533
+ "properties": {
534
+ "tag": {
535
+ "const": "EnhancementInternal"
536
+ },
537
+ "id": {
538
+ "description": "The enhancement's identifier.",
539
+ "type": "integer",
540
+ "minimum": 1
541
+ }
102
542
  },
543
+ "required": [
544
+ "tag",
545
+ "id"
546
+ ],
547
+ "additionalProperties": false
548
+ }
549
+ },
550
+ "Ineligible": {
551
+ "T": {
552
+ "title": "Ineligible Prerequisite",
553
+ "description": "This is a placeholder for required things that can never happen with the\ncurrent set of crunch elements and rules, e. g. if a race is required\nthat does not yet exist as a crunch element.\n\nA display option must be set.",
554
+ "type": "object",
555
+ "properties": {
556
+ "tag": {
557
+ "const": "Ineligible"
558
+ },
559
+ "display_option": {
560
+ "$ref": "#/definitions/Prerequisite/Single/DisplayOption/T"
561
+ }
562
+ },
563
+ "required": [
564
+ "tag",
565
+ "display_option"
566
+ ],
567
+ "additionalProperties": false
568
+ }
569
+ }
570
+ },
571
+ "Group": {
572
+ "DerivedCharacteristic": {
573
+ "oneOf": [
103
574
  {
104
- "$ref": "#/definitions/Single/Race/MultipleIdentifiers"
575
+ "$ref": "#/definitions/Prerequisite/Single/Rule/T"
105
576
  }
106
577
  ]
107
578
  },
108
- "SingleIdentifier": {
109
- "type": "number",
110
- "minimum": 1
579
+ "Publication": {
580
+ "oneOf": [
581
+ {
582
+ "$ref": "#/definitions/Prerequisite/Single/Publication/T"
583
+ }
584
+ ]
111
585
  },
112
- "MultipleIdentifiers": {
113
- "type": "array",
114
- "items": {
115
- "$ref": "#/definitions/Single/Race/SingleIdentifier"
116
- },
117
- "minItems": 2
118
- }
119
- },
120
- "Culture": {
121
- "T": {
122
- "title": "Culture Prerequisite",
123
- "description": "Requires a specific race or one of a specific set of races. You can also\nprovide an object to say whether the hero must meet one of the races or\nif the entry does not allow one of the races.",
124
- "type": "object",
125
- "properties": {
126
- "tag": {
127
- "const": "Culture"
128
- },
129
- "id": {
130
- "$ref": "#/definitions/Single/Culture/Identifier"
586
+ "ArcaneTradition": {
587
+ "oneOf": [
588
+ {
589
+ "$ref": "#/definitions/Prerequisite/Single/Sex/T"
131
590
  },
132
- "display_option": {
133
- "$ref": "#/definitions/Single/DisplayOption/T"
591
+ {
592
+ "$ref": "#/definitions/Prerequisite/Single/Culture/T"
134
593
  }
135
- },
136
- "required": [
137
- "tag",
138
- "id"
139
- ],
140
- "additionalProperties": false
594
+ ]
141
595
  },
142
- "Identifier": {
596
+ "Spellwork": {
143
597
  "oneOf": [
144
598
  {
145
- "$ref": "#/definitions/Single/Culture/SingleIdentifier"
599
+ "$ref": "#/definitions/Prerequisite/Single/Rule/T"
146
600
  },
147
601
  {
148
- "$ref": "#/definitions/Single/Culture/MultipleIdentifiers"
602
+ "$ref": "#/definitions/Prerequisite/Single/Rated/T"
149
603
  }
150
604
  ]
151
605
  },
152
- "SingleIdentifier": {
153
- "type": "number",
154
- "minimum": 1
606
+ "Liturgy": {
607
+ "oneOf": [
608
+ {
609
+ "$ref": "#/definitions/Prerequisite/Single/Rule/T"
610
+ }
611
+ ]
155
612
  },
156
- "MultipleIdentifiers": {
157
- "type": "array",
158
- "items": {
159
- "$ref": "#/definitions/Single/Culture/SingleIdentifier"
160
- },
161
- "minItems": 2
162
- }
163
- },
164
- "Rule": {
165
- "T": {
166
- "title": "Rule Prerequisite",
167
- "type": "object",
168
- "properties": {
169
- "tag": {
170
- "const": "Rule"
613
+ "Language": {
614
+ "oneOf": [
615
+ {
616
+ "$ref": "#/definitions/Prerequisite/Single/Ineligible/T"
171
617
  },
172
- "id": {
173
- "$ref": "#/definitions/Single/Rule/Identifier"
618
+ {
619
+ "$ref": "#/definitions/Prerequisite/Single/Race/T"
174
620
  },
175
- "display_option": {
176
- "$ref": "#/definitions/Single/DisplayOption/T"
621
+ {
622
+ "$ref": "#/definitions/Prerequisite/Single/Activatable/T"
177
623
  }
178
- },
179
- "required": [
180
- "tag",
181
- "id"
182
- ],
183
- "additionalProperties": false
624
+ ]
184
625
  },
185
- "Identifier": {
626
+ "GeodeRitual": {
186
627
  "oneOf": [
187
628
  {
188
- "type": "object",
189
- "properties": {
190
- "tag": {
191
- "const": "FocusRule"
192
- },
193
- "value": {
194
- "type": "integer",
195
- "minimum": 1
196
- }
197
- },
198
- "required": [
199
- "tag",
200
- "value"
201
- ],
202
- "additionalProperties": false
203
- },
204
- {
205
- "type": "object",
206
- "properties": {
207
- "tag": {
208
- "const": "OptionalRule"
209
- },
210
- "value": {
211
- "type": "integer",
212
- "minimum": 1
213
- }
214
- },
215
- "required": [
216
- "tag",
217
- "value"
218
- ],
219
- "additionalProperties": false
629
+ "$ref": "#/definitions/Prerequisite/Single/Influence/T"
220
630
  }
221
631
  ]
222
- }
223
- },
224
- "Publication": {
225
- "T": {
226
- "title": "Publication Prerequisite",
227
- "type": "object",
228
- "properties": {
229
- "tag": {
230
- "const": "Publication"
231
- },
232
- "id": {
233
- "type": "integer",
234
- "minimum": 1
235
- },
236
- "display_option": {
237
- "$ref": "#/definitions/Single/DisplayOption/T"
632
+ },
633
+ "Enhancement": {
634
+ "oneOf": [
635
+ {
636
+ "$ref": "#/definitions/Prerequisite/Single/EnhancementInternal/T"
238
637
  }
239
- },
240
- "required": [
241
- "tag",
242
- "id"
243
- ],
244
- "additionalProperties": false
638
+ ]
245
639
  }
246
640
  },
247
- "PrimaryAttribute": {
248
- "T": {
249
- "title": "Primary Attribute Prerequisite",
641
+ "Collection": {},
642
+ "GroupCollection": {
643
+ "DerivedCharacteristic": {
250
644
  "type": "object",
251
645
  "properties": {
252
646
  "tag": {
253
- "const": "PrimaryAttribute"
254
- },
255
- "category": {
256
- "description": "Is the required primary attribute for spellcasters or blessed ones?",
257
- "$ref": "#/definitions/Single/PrimaryAttribute/Category"
647
+ "const": "Plain"
258
648
  },
259
649
  "value": {
260
- "description": "Required value of the attribute",
261
- "type": "integer",
262
- "minimum": 9
263
- },
264
- "display_option": {
265
- "$ref": "#/definitions/Single/DisplayOption/T"
650
+ "type": "array",
651
+ "items": {
652
+ "$ref": "#/definitions/Prerequisite/Group/DerivedCharacteristic"
653
+ },
654
+ "minItems": 1
266
655
  }
267
656
  },
268
657
  "required": [
269
658
  "tag",
270
- "category",
271
659
  "value"
272
660
  ],
273
661
  "additionalProperties": false
274
662
  },
275
- "Category": {
276
- "oneOf": [
277
- {
278
- "type": "object",
279
- "properties": {
280
- "tag": {
281
- "const": "Blessed"
282
- }
283
- },
284
- "required": [
285
- "tag"
286
- ],
287
- "additionalProperties": false
288
- },
289
- {
290
- "type": "object",
291
- "properties": {
292
- "tag": {
293
- "const": "Magical"
294
- }
295
- },
296
- "required": [
297
- "tag"
298
- ],
299
- "additionalProperties": false
300
- }
301
- ]
302
- }
303
- },
304
- "Pact": {
305
- "T": {
306
- "title": "Pact Prerequisite",
307
- "description": "Requires a specific pact.",
663
+ "Publication": {
308
664
  "type": "object",
309
665
  "properties": {
310
666
  "tag": {
311
- "const": "Pact"
667
+ "const": "Plain"
312
668
  },
313
- "category_id": {
314
- "description": "The required pact category's identifier.",
315
- "type": "integer",
316
- "minimum": 1
317
- },
318
- "domain_id": {
319
- "description": "The required domains' identifiers.",
669
+ "value": {
320
670
  "type": "array",
321
671
  "items": {
322
- "$ref": "#/definitions/Single/Pact/DomainId"
323
- }
324
- },
325
- "level": {
326
- "description": "The required pact level.",
327
- "type": "integer",
328
- "minimum": 1
329
- },
330
- "display_option": {
331
- "$ref": "#/definitions/Single/DisplayOption/T"
672
+ "$ref": "#/definitions/Prerequisite/Group/Publication"
673
+ },
674
+ "minItems": 1
332
675
  }
333
676
  },
334
677
  "required": [
335
678
  "tag",
336
- "category_id"
679
+ "value"
337
680
  ],
338
681
  "additionalProperties": false
339
682
  },
340
- "DomainId": {
341
- "description": "A domain's identifier.",
342
- "type": "integer",
343
- "minimum": 1
344
- }
345
- },
346
- "SocialStatus": {
347
- "T": {
348
- "title": "Social Status Prerequisite",
349
- "description": "Requires a minimum social status.",
683
+ "ArcaneTradition": {
350
684
  "type": "object",
351
685
  "properties": {
352
686
  "tag": {
353
- "const": "SocialStatus"
687
+ "const": "Plain"
354
688
  },
355
- "id": {
356
- "description": "The minimum social status' identifier.",
357
- "type": "integer",
358
- "maximum": 5,
359
- "minimum": 2
360
- },
361
- "display_option": {
362
- "$ref": "#/definitions/Single/DisplayOption/T"
689
+ "value": {
690
+ "type": "array",
691
+ "items": {
692
+ "$ref": "#/definitions/Prerequisite/Group/ArcaneTradition"
693
+ },
694
+ "minItems": 1
363
695
  }
364
696
  },
365
697
  "required": [
366
698
  "tag",
367
- "id"
699
+ "value"
368
700
  ],
369
701
  "additionalProperties": false
370
- }
371
- },
372
- "Influence": {
373
- "T": {
374
- "title": "Influence Prerequisite",
702
+ },
703
+ "Spellwork": {
375
704
  "type": "object",
376
705
  "properties": {
377
706
  "tag": {
378
- "const": "Influence"
379
- },
380
- "id": {
381
- "description": "The influence's identifier.",
382
- "type": "integer",
383
- "minimum": 1
707
+ "const": "Plain"
384
708
  },
385
- "active": {
386
- "description": "If the referenced influence must or must not be chosen.",
387
- "type": "boolean"
388
- },
389
- "display_option": {
390
- "$ref": "#/definitions/Single/DisplayOption/T"
709
+ "value": {
710
+ "type": "array",
711
+ "items": {
712
+ "$ref": "#/definitions/Prerequisite/Group/Spellwork"
713
+ },
714
+ "minItems": 1
391
715
  }
392
716
  },
393
717
  "required": [
394
718
  "tag",
395
- "id",
396
- "active"
719
+ "value"
397
720
  ],
398
721
  "additionalProperties": false
399
- }
400
- },
401
- "Rated": {
402
- "T": {
403
- "title": "Rated Prerequisite",
722
+ },
723
+ "Liturgy": {
404
724
  "type": "object",
405
725
  "properties": {
406
726
  "tag": {
407
- "const": "Rated"
408
- },
409
- "id": {
410
- "description": "The rated entry's identifier.",
411
- "$ref": "./_Identifier.schema.json#/definitions/Identifier/Group/Rated"
727
+ "const": "Plain"
412
728
  },
413
729
  "value": {
414
- "description": "The required minimum value.",
415
- "type": "integer",
416
- "minimum": 0
417
- },
418
- "display_option": {
419
- "$ref": "#/definitions/Single/DisplayOption/T"
730
+ "type": "array",
731
+ "items": {
732
+ "$ref": "#/definitions/Prerequisite/Group/Liturgy"
733
+ },
734
+ "minItems": 1
420
735
  }
421
736
  },
422
737
  "required": [
423
738
  "tag",
424
- "id",
425
739
  "value"
426
740
  ],
427
741
  "additionalProperties": false
428
- }
429
- },
430
- "Enhancement": {
431
- "T": {
432
- "title": "Enhancement Prerequisite",
433
- "description": "Requires a specific enhancement from a skill.",
434
- "type": "object",
435
- "properties": {
436
- "tag": {
437
- "const": "Enhancement"
438
- },
439
- "skill": {
440
- "description": "The required skill's identifier.",
742
+ },
743
+ "Language": {
744
+ "oneOf": [
745
+ {
441
746
  "type": "object",
442
747
  "properties": {
443
748
  "tag": {
444
- "$ref": "#/definitions/Single/Enhancement/SkillCategoryWithEnhancements"
749
+ "const": "Plain"
445
750
  },
446
- "id": {
447
- "description": "The skill's identifier.",
448
- "type": "integer",
449
- "minimum": 1
751
+ "value": {
752
+ "type": "array",
753
+ "items": {
754
+ "$ref": "#/definitions/Prerequisite/Group/Language"
755
+ },
756
+ "minItems": 1
450
757
  }
451
758
  },
452
759
  "required": [
453
760
  "tag",
454
- "id"
761
+ "value"
455
762
  ],
456
763
  "additionalProperties": false
457
764
  },
458
- "enhancement": {
459
- "description": "The required enhancement's identifier.",
765
+ {
460
766
  "type": "object",
461
767
  "properties": {
462
- "id": {
463
- "description": "The enhancement's identifier.",
464
- "type": "integer",
465
- "minimum": 1
768
+ "tag": {
769
+ "const": "ByLevel"
770
+ },
771
+ "value": {
772
+ "type": "array",
773
+ "items": {
774
+ "type": "object",
775
+ "properties": {
776
+ "level": {
777
+ "type": "integer",
778
+ "minimum": 1
779
+ },
780
+ "prerequisites": {
781
+ "type": "array",
782
+ "items": {
783
+ "$ref": "#/definitions/Prerequisite/Group/Language"
784
+ }
785
+ }
786
+ },
787
+ "required": [
788
+ "level",
789
+ "prerequisites"
790
+ ],
791
+ "additionalProperties": false
792
+ },
793
+ "minItems": 1
466
794
  }
467
795
  },
468
796
  "required": [
469
- "id"
797
+ "tag",
798
+ "value"
470
799
  ],
471
800
  "additionalProperties": false
801
+ }
802
+ ]
803
+ },
804
+ "GeodeRitual": {
805
+ "type": "object",
806
+ "properties": {
807
+ "tag": {
808
+ "const": "Plain"
472
809
  },
473
- "display_option": {
474
- "$ref": "#/definitions/Single/DisplayOption/T"
810
+ "value": {
811
+ "type": "array",
812
+ "items": {
813
+ "$ref": "#/definitions/Prerequisite/Group/GeodeRitual"
814
+ },
815
+ "minItems": 1
475
816
  }
476
817
  },
477
818
  "required": [
478
819
  "tag",
479
- "skill",
480
- "enhancement"
820
+ "value"
481
821
  ],
482
822
  "additionalProperties": false
483
823
  },
484
- "SkillCategoryWithEnhancements": {
485
- "enum": [
486
- "Spell",
487
- "Ritual",
488
- "LiturgicalChant",
489
- "Ceremony"
490
- ]
491
- }
492
- },
493
- "EnhancementInternal": {
494
- "T": {
495
- "title": "Internal Enhancement Prerequisite",
496
- "description": "Requires a specific enhancement from a skill. This can only be used by an\nenhancement to require another enhancement from the same skill.",
824
+ "Enhancement": {
497
825
  "type": "object",
498
826
  "properties": {
499
827
  "tag": {
500
- "const": "EnhancementInternal"
828
+ "const": "Plain"
501
829
  },
502
- "id": {
503
- "description": "The enhancement's identifier.",
504
- "type": "integer",
505
- "minimum": 1
830
+ "value": {
831
+ "type": "array",
832
+ "items": {
833
+ "$ref": "#/definitions/Prerequisite/Group/Enhancement"
834
+ },
835
+ "minItems": 1
506
836
  }
507
837
  },
508
838
  "required": [
509
839
  "tag",
510
- "id"
840
+ "value"
511
841
  ],
512
842
  "additionalProperties": false
513
843
  }
514
844
  }
515
- },
516
- "Group": {
517
- "DerivedCharacteristic": {
518
- "oneOf": [
519
- {
520
- "$ref": "#/definitions/Single/Rule/T"
521
- }
522
- ]
523
- },
524
- "Publication": {
525
- "oneOf": [
526
- {
527
- "$ref": "#/definitions/Single/Publication/T"
528
- }
529
- ]
530
- },
531
- "ArcaneTradition": {
532
- "oneOf": [
533
- {
534
- "$ref": "#/definitions/Single/Sex/T"
535
- },
536
- {
537
- "$ref": "#/definitions/Single/Culture/T"
538
- }
539
- ]
540
- },
541
- "Spellwork": {
542
- "oneOf": [
543
- {
544
- "$ref": "#/definitions/Single/Rule/T"
545
- },
546
- {
547
- "$ref": "#/definitions/Single/Rated/T"
548
- }
549
- ]
550
- },
551
- "Liturgy": {
552
- "oneOf": [
553
- {
554
- "$ref": "#/definitions/Single/Rule/T"
555
- }
556
- ]
557
- },
558
- "GeodeRitual": {
559
- "oneOf": [
560
- {
561
- "$ref": "#/definitions/Single/Influence/T"
562
- }
563
- ]
564
- },
565
- "Enhancement": {
566
- "oneOf": [
567
- {
568
- "$ref": "#/definitions/Single/EnhancementInternal/T"
569
- }
570
- ]
571
- }
572
- },
573
- "Collection": {},
574
- "GroupCollection": {
575
- "DerivedCharacteristic": {
576
- "type": "object",
577
- "properties": {
578
- "tag": {
579
- "const": "Plain"
580
- },
581
- "value": {
582
- "type": "array",
583
- "items": {
584
- "$ref": "#/definitions/Group/DerivedCharacteristic"
585
- },
586
- "minItems": 1
587
- }
588
- },
589
- "required": [
590
- "tag",
591
- "value"
592
- ],
593
- "additionalProperties": false
594
- },
595
- "Publication": {
596
- "type": "object",
597
- "properties": {
598
- "tag": {
599
- "const": "Plain"
600
- },
601
- "value": {
602
- "type": "array",
603
- "items": {
604
- "$ref": "#/definitions/Group/Publication"
605
- },
606
- "minItems": 1
607
- }
608
- },
609
- "required": [
610
- "tag",
611
- "value"
612
- ],
613
- "additionalProperties": false
614
- },
615
- "ArcaneTradition": {
616
- "type": "object",
617
- "properties": {
618
- "tag": {
619
- "const": "Plain"
620
- },
621
- "value": {
622
- "type": "array",
623
- "items": {
624
- "$ref": "#/definitions/Group/ArcaneTradition"
625
- },
626
- "minItems": 1
627
- }
628
- },
629
- "required": [
630
- "tag",
631
- "value"
632
- ],
633
- "additionalProperties": false
634
- },
635
- "Spellwork": {
636
- "type": "object",
637
- "properties": {
638
- "tag": {
639
- "const": "Plain"
640
- },
641
- "value": {
642
- "type": "array",
643
- "items": {
644
- "$ref": "#/definitions/Group/Spellwork"
645
- },
646
- "minItems": 1
647
- }
648
- },
649
- "required": [
650
- "tag",
651
- "value"
652
- ],
653
- "additionalProperties": false
654
- },
655
- "Liturgy": {
656
- "type": "object",
657
- "properties": {
658
- "tag": {
659
- "const": "Plain"
660
- },
661
- "value": {
662
- "type": "array",
663
- "items": {
664
- "$ref": "#/definitions/Group/Liturgy"
665
- },
666
- "minItems": 1
667
- }
668
- },
669
- "required": [
670
- "tag",
671
- "value"
672
- ],
673
- "additionalProperties": false
674
- },
675
- "GeodeRitual": {
676
- "type": "object",
677
- "properties": {
678
- "tag": {
679
- "const": "Plain"
680
- },
681
- "value": {
682
- "type": "array",
683
- "items": {
684
- "$ref": "#/definitions/Group/GeodeRitual"
685
- },
686
- "minItems": 1
687
- }
688
- },
689
- "required": [
690
- "tag",
691
- "value"
692
- ],
693
- "additionalProperties": false
694
- },
695
- "Enhancement": {
696
- "type": "object",
697
- "properties": {
698
- "tag": {
699
- "const": "Plain"
700
- },
701
- "value": {
702
- "type": "array",
703
- "items": {
704
- "$ref": "#/definitions/Group/Enhancement"
705
- },
706
- "minItems": 1
707
- }
708
- },
709
- "required": [
710
- "tag",
711
- "value"
712
- ],
713
- "additionalProperties": false
714
- }
715
845
  }
716
846
  }
717
847
  }