optolith-database-schema 0.4.1 → 0.5.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 (117) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/lib/config.d.ts +2 -0
  3. package/lib/config.js +2 -0
  4. package/lib/main.d.ts +1 -1
  5. package/lib/main.js +28 -19
  6. package/lib/types/Cantrip.d.ts +2 -3
  7. package/lib/types/Culture.d.ts +8 -11
  8. package/lib/types/Lessons_Curriculum.d.ts +5 -4
  9. package/lib/types/Lessons_Guideline.d.ts +1 -1
  10. package/lib/types/Patron.d.ts +28 -4
  11. package/lib/types/Profession.d.ts +7 -6
  12. package/lib/types/Race.d.ts +12 -14
  13. package/lib/types/TargetCategory.d.ts +2 -3
  14. package/lib/types/_Activatable.d.ts +21 -22
  15. package/lib/types/_ActivatableSelectOptionCategory.d.ts +1 -1
  16. package/lib/types/_ActivatableSkillCost.d.ts +28 -1
  17. package/lib/types/_ActivatableSkillDuration.d.ts +1 -1
  18. package/lib/types/_ActivatableSkillRange.d.ts +3 -0
  19. package/lib/types/_CommonnessRatedAdvantageDisadvantage.d.ts +2 -4
  20. package/lib/types/_DiseasePoison.d.ts +3 -3
  21. package/lib/types/_Identifier.d.ts +1175 -247
  22. package/lib/types/_Identifier.js +0 -228
  23. package/lib/types/_IdentifierGroup.d.ts +27 -0
  24. package/lib/types/_IdentifierGroup.js +1 -0
  25. package/lib/types/_Prerequisite.d.ts +38 -36
  26. package/lib/types/_ResponsiveText.d.ts +1 -1
  27. package/lib/types/_SimpleReferences.d.ts +50 -253
  28. package/lib/types/equipment/EquipmentPackage.d.ts +1 -1
  29. package/lib/types/equipment/item/Elixir.d.ts +75 -0
  30. package/lib/types/equipment/item/Elixir.js +5 -0
  31. package/lib/types/equipment/item/EquipmentOfBlessedOnes.d.ts +1 -1
  32. package/lib/types/equipment/item/Poison.d.ts +220 -47
  33. package/lib/types/equipment/item/Poison.js +10 -0
  34. package/lib/types/equipment/item/ToolOfTheTrade.d.ts +6 -2
  35. package/lib/types/equipment/item/_Herbary.d.ts +31 -0
  36. package/lib/types/equipment/item/_Herbary.js +22 -0
  37. package/lib/types/equipment/item/_MeleeWeapon.d.ts +2 -9
  38. package/lib/types/equipment/item/_RangedWeapon.d.ts +2 -3
  39. package/lib/types/magicalActions/AnimistPower.d.ts +0 -1
  40. package/lib/types/magicalActions/MagicalRune.d.ts +22 -3
  41. package/lib/types/magicalActions/_SkillReference.d.ts +3 -2
  42. package/lib/types/magicalActions/_SkillReference.js +5 -5
  43. package/lib/types/prerequisites/PrerequisiteGroups.d.ts +2 -20
  44. package/lib/types/prerequisites/single/ActivatablePrerequisite.d.ts +1 -62
  45. package/lib/types/prerequisites/single/AnimistPowerPrerequisite.d.ts +2 -3
  46. package/lib/types/prerequisites/single/CulturePrerequisite.d.ts +5 -2
  47. package/lib/types/prerequisites/single/EnhancementPrerequisite.d.ts +1 -1
  48. package/lib/types/prerequisites/single/InfluencePrerequisite.d.ts +2 -3
  49. package/lib/types/prerequisites/single/RacePrerequisite.d.ts +5 -2
  50. package/lib/types/prerequisites/single/RatedPrerequisite.d.ts +1 -18
  51. package/lib/types/prerequisites/single/RulePrerequisite.d.ts +1 -1
  52. package/lib/types/prerequisites/single/SocialStatusPrerequisite.d.ts +2 -4
  53. package/lib/types/prerequisites/single/StatePrerequisite.d.ts +2 -2
  54. package/lib/types/rule/CoreRule.d.ts +4 -7
  55. package/lib/types/source/_PublicationRef.d.ts +2 -3
  56. package/lib/types/specialAbility/BlessedTradition.d.ts +1 -1
  57. package/lib/types/specialAbility/CombatStyleSpecialAbility.d.ts +2 -1
  58. package/lib/types/specialAbility/LiturgicalStyleSpecialAbility.d.ts +2 -1
  59. package/lib/types/specialAbility/MagicStyleSpecialAbility.d.ts +2 -1
  60. package/lib/types/specialAbility/MagicalTradition.d.ts +2 -3
  61. package/lib/types/specialAbility/PactGift.d.ts +1 -1
  62. package/lib/types/specialAbility/SkillStyleSpecialAbility.d.ts +2 -1
  63. package/lib/types/specialAbility/sub/_LanguageScript.d.ts +2 -4
  64. package/lib/validation/schema.js +1 -1
  65. package/package.json +2 -2
  66. package/schema/Cantrip.schema.json +1 -2
  67. package/schema/Culture.schema.json +51 -10
  68. package/schema/Lessons_Curriculum.schema.json +8 -12
  69. package/schema/Lessons_Guideline.schema.json +1 -1
  70. package/schema/Patron.schema.json +24 -6
  71. package/schema/Profession.schema.json +57 -15
  72. package/schema/Race.schema.json +121 -13
  73. package/schema/TargetCategory.schema.json +1 -2
  74. package/schema/_Activatable.schema.json +5 -181
  75. package/schema/_ActivatableSelectOptionCategory.schema.json +4 -4
  76. package/schema/_ActivatableSkillCost.schema.json +61 -0
  77. package/schema/_ActivatableSkillDuration.schema.json +1 -3
  78. package/schema/_ActivatableSkillRange.schema.json +19 -0
  79. package/schema/_DiseasePoison.schema.json +0 -2
  80. package/schema/_Identifier.schema.json +2099 -347
  81. package/schema/_IdentifierGroup.schema.json +601 -0
  82. package/schema/_Prerequisite.schema.json +1284 -1049
  83. package/schema/_ResponsiveText.schema.json +2 -2
  84. package/schema/_SimpleReferences.schema.json +54 -130
  85. package/schema/equipment/EquipmentPackage.schema.json +1 -1
  86. package/schema/equipment/item/Elixir.schema.json +123 -0
  87. package/schema/equipment/item/EquipmentOfBlessedOnes.schema.json +4 -1
  88. package/schema/equipment/item/Poison.schema.json +431 -68
  89. package/schema/equipment/item/ToolOfTheTrade.schema.json +15 -4
  90. package/schema/equipment/item/_Herbary.schema.json +42 -0
  91. package/schema/equipment/item/_MeleeWeapon.schema.json +1 -13
  92. package/schema/equipment/item/_RangedWeapon.schema.json +1 -2
  93. package/schema/magicalActions/AnimistPower.schema.json +0 -1
  94. package/schema/magicalActions/MagicalRune.schema.json +38 -3
  95. package/schema/magicalActions/_SkillReference.schema.json +15 -3
  96. package/schema/prerequisites/PrerequisiteGroups.schema.json +0 -96
  97. package/schema/prerequisites/single/ActivatablePrerequisite.schema.json +2 -87
  98. package/schema/prerequisites/single/AnimistPowerPrerequisite.schema.json +1 -2
  99. package/schema/prerequisites/single/CulturePrerequisite.schema.json +2 -1
  100. package/schema/prerequisites/single/EnhancementPrerequisite.schema.json +1 -1
  101. package/schema/prerequisites/single/InfluencePrerequisite.schema.json +1 -2
  102. package/schema/prerequisites/single/RacePrerequisite.schema.json +2 -1
  103. package/schema/prerequisites/single/RatedPrerequisite.schema.json +1 -28
  104. package/schema/prerequisites/single/RulePrerequisite.schema.json +1 -1
  105. package/schema/prerequisites/single/SocialStatusPrerequisite.schema.json +1 -3
  106. package/schema/prerequisites/single/StatePrerequisite.schema.json +1 -1
  107. package/schema/rule/CoreRule.schema.json +3 -5
  108. package/schema/source/_PublicationRef.schema.json +1 -2
  109. package/schema/specialAbility/BlessedTradition.schema.json +2 -2
  110. package/schema/specialAbility/CombatStyleSpecialAbility.schema.json +511 -1
  111. package/schema/specialAbility/LiturgicalStyleSpecialAbility.schema.json +511 -1
  112. package/schema/specialAbility/MagicStyleSpecialAbility.schema.json +511 -1
  113. package/schema/specialAbility/MagicalTradition.schema.json +1 -2
  114. package/schema/specialAbility/PactGift.schema.json +1 -1
  115. package/schema/specialAbility/SkillStyleSpecialAbility.schema.json +511 -1
  116. package/schema/specialAbility/sub/_LanguageScript.schema.json +1 -3
  117. package/schema/_CommonnessRatedAdvantageDisadvantage.schema.json +0 -22
@@ -3,1236 +3,1471 @@
3
3
  "$id": "/_Prerequisite.schema.json",
4
4
  "$defs": {
5
5
  "DerivedCharacteristicPrerequisites": {
6
- "oneOf": [
7
- {
8
- "type": "object",
9
- "properties": {
10
- "tag": {
11
- "const": "Plain"
6
+ "type": "array",
7
+ "items": {
8
+ "oneOf": [
9
+ {
10
+ "type": "object",
11
+ "properties": {
12
+ "tag": {
13
+ "const": "Single"
14
+ },
15
+ "single": {
16
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/DerivedCharacteristicPrerequisiteGroup"
17
+ }
18
+ },
19
+ "required": [
20
+ "tag",
21
+ "single"
22
+ ],
23
+ "additionalProperties": false
24
+ },
25
+ {
26
+ "type": "object",
27
+ "properties": {
28
+ "tag": {
29
+ "const": "Disjunction"
30
+ },
31
+ "disjunction": {
32
+ "type": "object",
33
+ "properties": {
34
+ "list": {
35
+ "type": "array",
36
+ "items": {
37
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/DerivedCharacteristicPrerequisiteGroup"
38
+ },
39
+ "minItems": 2
40
+ }
41
+ },
42
+ "required": [
43
+ "list"
44
+ ],
45
+ "additionalProperties": false
46
+ }
12
47
  },
13
- "plain": {
14
- "type": "array",
15
- "items": {
16
- "oneOf": [
17
- {
18
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/DerivedCharacteristicPrerequisiteGroup"
48
+ "required": [
49
+ "tag",
50
+ "disjunction"
51
+ ],
52
+ "additionalProperties": false
53
+ },
54
+ {
55
+ "type": "object",
56
+ "properties": {
57
+ "tag": {
58
+ "const": "Group"
59
+ },
60
+ "group": {
61
+ "description": "A prerequisite group has no influence on validation logic. It serves as a\nsingle unit for displaying purposes, where the source uses a prerequisites\nitem that cannot be represented as a single prerequisite.",
62
+ "type": "object",
63
+ "properties": {
64
+ "list": {
65
+ "type": "array",
66
+ "items": {
67
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/DerivedCharacteristicPrerequisiteGroup"
68
+ },
69
+ "minItems": 2
19
70
  },
20
- {
71
+ "translations": {
72
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
21
73
  "type": "object",
22
- "properties": {
23
- "tag": {
24
- "const": "Group"
25
- },
26
- "group": {
27
- "description": "A prerequisite group has no influence on validation logic. It serves as a\nsingle unit for displaying purposes, where the source uses a prerequisites\nitem that cannot be represented as a single prerequisite.",
28
- "type": "object",
29
- "properties": {
30
- "list": {
31
- "type": "array",
32
- "items": {
33
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/DerivedCharacteristicPrerequisiteGroup"
34
- },
35
- "minItems": 2
36
- },
37
- "translations": {
38
- "description": "All translations for the entry, identified by IETF language tag (BCP47).",
39
- "type": "object",
40
- "patternProperties": {
41
- "^[a-z]{2}-[A-Z]{2}$": {
42
- "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
43
- }
44
- },
45
- "minProperties": 1,
46
- "additionalProperties": false
47
- }
48
- },
49
- "required": [
50
- "list",
51
- "translations"
52
- ],
53
- "additionalProperties": false
74
+ "patternProperties": {
75
+ "^[a-z]{2}-[A-Z]{2}$": {
76
+ "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
54
77
  }
55
78
  },
56
- "required": [
57
- "tag",
58
- "group"
59
- ],
79
+ "minProperties": 1,
60
80
  "additionalProperties": false
61
81
  }
62
- ]
63
- },
64
- "minItems": 1
65
- }
66
- },
67
- "required": [
68
- "tag",
69
- "plain"
70
- ],
71
- "additionalProperties": false
72
- }
73
- ]
82
+ },
83
+ "required": [
84
+ "list",
85
+ "translations"
86
+ ],
87
+ "additionalProperties": false
88
+ }
89
+ },
90
+ "required": [
91
+ "tag",
92
+ "group"
93
+ ],
94
+ "additionalProperties": false
95
+ }
96
+ ]
97
+ },
98
+ "minItems": 1
74
99
  },
75
100
  "PublicationPrerequisites": {
76
- "oneOf": [
77
- {
78
- "type": "object",
79
- "properties": {
80
- "tag": {
81
- "const": "Plain"
101
+ "type": "array",
102
+ "items": {
103
+ "oneOf": [
104
+ {
105
+ "type": "object",
106
+ "properties": {
107
+ "tag": {
108
+ "const": "Single"
109
+ },
110
+ "single": {
111
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/PublicationPrerequisiteGroup"
112
+ }
113
+ },
114
+ "required": [
115
+ "tag",
116
+ "single"
117
+ ],
118
+ "additionalProperties": false
119
+ },
120
+ {
121
+ "type": "object",
122
+ "properties": {
123
+ "tag": {
124
+ "const": "Disjunction"
125
+ },
126
+ "disjunction": {
127
+ "type": "object",
128
+ "properties": {
129
+ "list": {
130
+ "type": "array",
131
+ "items": {
132
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/PublicationPrerequisiteGroup"
133
+ },
134
+ "minItems": 2
135
+ }
136
+ },
137
+ "required": [
138
+ "list"
139
+ ],
140
+ "additionalProperties": false
141
+ }
82
142
  },
83
- "plain": {
84
- "type": "array",
85
- "items": {
86
- "oneOf": [
87
- {
88
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/PublicationPrerequisiteGroup"
143
+ "required": [
144
+ "tag",
145
+ "disjunction"
146
+ ],
147
+ "additionalProperties": false
148
+ },
149
+ {
150
+ "type": "object",
151
+ "properties": {
152
+ "tag": {
153
+ "const": "Group"
154
+ },
155
+ "group": {
156
+ "description": "A prerequisite group has no influence on validation logic. It serves as a\nsingle unit for displaying purposes, where the source uses a prerequisites\nitem that cannot be represented as a single prerequisite.",
157
+ "type": "object",
158
+ "properties": {
159
+ "list": {
160
+ "type": "array",
161
+ "items": {
162
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/PublicationPrerequisiteGroup"
163
+ },
164
+ "minItems": 2
89
165
  },
90
- {
166
+ "translations": {
167
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
91
168
  "type": "object",
92
- "properties": {
93
- "tag": {
94
- "const": "Group"
95
- },
96
- "group": {
97
- "description": "A prerequisite group has no influence on validation logic. It serves as a\nsingle unit for displaying purposes, where the source uses a prerequisites\nitem that cannot be represented as a single prerequisite.",
98
- "type": "object",
99
- "properties": {
100
- "list": {
101
- "type": "array",
102
- "items": {
103
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/PublicationPrerequisiteGroup"
104
- },
105
- "minItems": 2
106
- },
107
- "translations": {
108
- "description": "All translations for the entry, identified by IETF language tag (BCP47).",
109
- "type": "object",
110
- "patternProperties": {
111
- "^[a-z]{2}-[A-Z]{2}$": {
112
- "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
113
- }
114
- },
115
- "minProperties": 1,
116
- "additionalProperties": false
117
- }
118
- },
119
- "required": [
120
- "list",
121
- "translations"
122
- ],
123
- "additionalProperties": false
169
+ "patternProperties": {
170
+ "^[a-z]{2}-[A-Z]{2}$": {
171
+ "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
124
172
  }
125
173
  },
126
- "required": [
127
- "tag",
128
- "group"
129
- ],
174
+ "minProperties": 1,
130
175
  "additionalProperties": false
131
176
  }
132
- ]
177
+ },
178
+ "required": [
179
+ "list",
180
+ "translations"
181
+ ],
182
+ "additionalProperties": false
183
+ }
184
+ },
185
+ "required": [
186
+ "tag",
187
+ "group"
188
+ ],
189
+ "additionalProperties": false
190
+ }
191
+ ]
192
+ },
193
+ "minItems": 1
194
+ },
195
+ "PlainGeneralPrerequisites": {
196
+ "type": "array",
197
+ "items": {
198
+ "oneOf": [
199
+ {
200
+ "type": "object",
201
+ "properties": {
202
+ "tag": {
203
+ "const": "Single"
133
204
  },
134
- "minItems": 1
135
- }
205
+ "single": {
206
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/GeneralPrerequisiteGroup"
207
+ }
208
+ },
209
+ "required": [
210
+ "tag",
211
+ "single"
212
+ ],
213
+ "additionalProperties": false
136
214
  },
137
- "required": [
138
- "tag",
139
- "plain"
140
- ],
141
- "additionalProperties": false
142
- }
143
- ]
144
- },
145
- "GeneralPrerequisites": {
146
- "oneOf": [
147
- {
148
- "type": "object",
149
- "properties": {
150
- "tag": {
151
- "const": "Plain"
215
+ {
216
+ "type": "object",
217
+ "properties": {
218
+ "tag": {
219
+ "const": "Disjunction"
220
+ },
221
+ "disjunction": {
222
+ "type": "object",
223
+ "properties": {
224
+ "list": {
225
+ "type": "array",
226
+ "items": {
227
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/GeneralPrerequisiteGroup"
228
+ },
229
+ "minItems": 2
230
+ }
231
+ },
232
+ "required": [
233
+ "list"
234
+ ],
235
+ "additionalProperties": false
236
+ }
152
237
  },
153
- "plain": {
154
- "type": "array",
155
- "items": {
156
- "oneOf": [
157
- {
158
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/GeneralPrerequisiteGroup"
238
+ "required": [
239
+ "tag",
240
+ "disjunction"
241
+ ],
242
+ "additionalProperties": false
243
+ },
244
+ {
245
+ "type": "object",
246
+ "properties": {
247
+ "tag": {
248
+ "const": "Group"
249
+ },
250
+ "group": {
251
+ "description": "A prerequisite group has no influence on validation logic. It serves as a\nsingle unit for displaying purposes, where the source uses a prerequisites\nitem that cannot be represented as a single prerequisite.",
252
+ "type": "object",
253
+ "properties": {
254
+ "list": {
255
+ "type": "array",
256
+ "items": {
257
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/GeneralPrerequisiteGroup"
258
+ },
259
+ "minItems": 2
159
260
  },
160
- {
261
+ "translations": {
262
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
161
263
  "type": "object",
162
- "properties": {
163
- "tag": {
164
- "const": "Group"
165
- },
166
- "group": {
167
- "description": "A prerequisite group has no influence on validation logic. It serves as a\nsingle unit for displaying purposes, where the source uses a prerequisites\nitem that cannot be represented as a single prerequisite.",
168
- "type": "object",
169
- "properties": {
170
- "list": {
171
- "type": "array",
172
- "items": {
173
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/GeneralPrerequisiteGroup"
174
- },
175
- "minItems": 2
176
- },
177
- "translations": {
178
- "description": "All translations for the entry, identified by IETF language tag (BCP47).",
179
- "type": "object",
180
- "patternProperties": {
181
- "^[a-z]{2}-[A-Z]{2}$": {
182
- "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
183
- }
184
- },
185
- "minProperties": 1,
186
- "additionalProperties": false
187
- }
188
- },
189
- "required": [
190
- "list",
191
- "translations"
192
- ],
193
- "additionalProperties": false
264
+ "patternProperties": {
265
+ "^[a-z]{2}-[A-Z]{2}$": {
266
+ "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
194
267
  }
195
268
  },
196
- "required": [
197
- "tag",
198
- "group"
199
- ],
269
+ "minProperties": 1,
200
270
  "additionalProperties": false
201
271
  }
202
- ]
203
- },
204
- "minItems": 1
205
- }
206
- },
207
- "required": [
208
- "tag",
209
- "plain"
210
- ],
211
- "additionalProperties": false
212
- },
213
- {
214
- "type": "object",
215
- "properties": {
216
- "tag": {
217
- "const": "ByLevel"
272
+ },
273
+ "required": [
274
+ "list",
275
+ "translations"
276
+ ],
277
+ "additionalProperties": false
278
+ }
218
279
  },
219
- "by_level": {
220
- "type": "array",
221
- "items": {
280
+ "required": [
281
+ "tag",
282
+ "group"
283
+ ],
284
+ "additionalProperties": false
285
+ }
286
+ ]
287
+ },
288
+ "minItems": 1
289
+ },
290
+ "GeneralPrerequisites": {
291
+ "type": "array",
292
+ "items": {
293
+ "type": "object",
294
+ "properties": {
295
+ "level": {
296
+ "type": "integer",
297
+ "minimum": 1
298
+ },
299
+ "prerequisite": {
300
+ "oneOf": [
301
+ {
222
302
  "type": "object",
223
303
  "properties": {
224
- "level": {
225
- "type": "integer",
226
- "minimum": 1
304
+ "tag": {
305
+ "const": "Single"
227
306
  },
228
- "prerequisites": {
229
- "type": "array",
230
- "items": {
231
- "oneOf": [
232
- {
233
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/GeneralPrerequisiteGroup"
234
- },
235
- {
236
- "type": "object",
237
- "properties": {
238
- "tag": {
239
- "const": "Group"
240
- },
241
- "group": {
242
- "description": "A prerequisite group has no influence on validation logic. It serves as a\nsingle unit for displaying purposes, where the source uses a prerequisites\nitem that cannot be represented as a single prerequisite.",
243
- "type": "object",
244
- "properties": {
245
- "list": {
246
- "type": "array",
247
- "items": {
248
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/GeneralPrerequisiteGroup"
249
- },
250
- "minItems": 2
251
- },
252
- "translations": {
253
- "description": "All translations for the entry, identified by IETF language tag (BCP47).",
254
- "type": "object",
255
- "patternProperties": {
256
- "^[a-z]{2}-[A-Z]{2}$": {
257
- "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
258
- }
259
- },
260
- "minProperties": 1,
261
- "additionalProperties": false
262
- }
263
- },
264
- "required": [
265
- "list",
266
- "translations"
267
- ],
268
- "additionalProperties": false
269
- }
270
- },
271
- "required": [
272
- "tag",
273
- "group"
274
- ],
275
- "additionalProperties": false
276
- }
277
- ]
278
- },
279
- "minItems": 1
307
+ "single": {
308
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/GeneralPrerequisiteGroup"
280
309
  }
281
310
  },
282
311
  "required": [
283
- "level",
284
- "prerequisites"
312
+ "tag",
313
+ "single"
285
314
  ],
286
315
  "additionalProperties": false
287
316
  },
288
- "minItems": 1
289
- }
290
- },
291
- "required": [
292
- "tag",
293
- "by_level"
294
- ],
295
- "additionalProperties": false
296
- }
297
- ]
298
- },
299
- "ProfessionPrerequisites": {
300
- "oneOf": [
301
- {
302
- "type": "object",
303
- "properties": {
304
- "tag": {
305
- "const": "Plain"
306
- },
307
- "plain": {
308
- "type": "array",
309
- "items": {
310
- "oneOf": [
311
- {
312
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/ProfessionPrerequisiteGroup"
317
+ {
318
+ "type": "object",
319
+ "properties": {
320
+ "tag": {
321
+ "const": "Disjunction"
313
322
  },
314
- {
323
+ "disjunction": {
315
324
  "type": "object",
316
325
  "properties": {
317
- "tag": {
318
- "const": "Group"
319
- },
320
- "group": {
321
- "description": "A prerequisite group has no influence on validation logic. It serves as a\nsingle unit for displaying purposes, where the source uses a prerequisites\nitem that cannot be represented as a single prerequisite.",
322
- "type": "object",
323
- "properties": {
324
- "list": {
325
- "type": "array",
326
- "items": {
327
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/ProfessionPrerequisiteGroup"
328
- },
329
- "minItems": 2
330
- },
331
- "translations": {
332
- "description": "All translations for the entry, identified by IETF language tag (BCP47).",
333
- "type": "object",
334
- "patternProperties": {
335
- "^[a-z]{2}-[A-Z]{2}$": {
336
- "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
337
- }
338
- },
339
- "minProperties": 1,
340
- "additionalProperties": false
341
- }
326
+ "list": {
327
+ "type": "array",
328
+ "items": {
329
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/GeneralPrerequisiteGroup"
342
330
  },
343
- "required": [
344
- "list",
345
- "translations"
346
- ],
347
- "additionalProperties": false
331
+ "minItems": 2
348
332
  }
349
333
  },
350
334
  "required": [
351
- "tag",
352
- "group"
335
+ "list"
353
336
  ],
354
337
  "additionalProperties": false
355
338
  }
356
- ]
339
+ },
340
+ "required": [
341
+ "tag",
342
+ "disjunction"
343
+ ],
344
+ "additionalProperties": false
357
345
  },
358
- "minItems": 1
359
- }
360
- },
361
- "required": [
362
- "tag",
363
- "plain"
364
- ],
365
- "additionalProperties": false
366
- }
367
- ]
368
- },
369
- "AdvantageDisadvantagePrerequisites": {
370
- "oneOf": [
371
- {
372
- "type": "object",
373
- "properties": {
374
- "tag": {
375
- "const": "Plain"
376
- },
377
- "plain": {
378
- "type": "array",
379
- "items": {
380
- "oneOf": [
381
- {
382
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/AdvantageDisadvantagePrerequisiteGroup"
346
+ {
347
+ "type": "object",
348
+ "properties": {
349
+ "tag": {
350
+ "const": "Group"
383
351
  },
384
- {
352
+ "group": {
353
+ "description": "A prerequisite group has no influence on validation logic. It serves as a\nsingle unit for displaying purposes, where the source uses a prerequisites\nitem that cannot be represented as a single prerequisite.",
385
354
  "type": "object",
386
355
  "properties": {
387
- "tag": {
388
- "const": "Group"
356
+ "list": {
357
+ "type": "array",
358
+ "items": {
359
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/GeneralPrerequisiteGroup"
360
+ },
361
+ "minItems": 2
389
362
  },
390
- "group": {
391
- "description": "A prerequisite group has no influence on validation logic. It serves as a\nsingle unit for displaying purposes, where the source uses a prerequisites\nitem that cannot be represented as a single prerequisite.",
363
+ "translations": {
364
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
392
365
  "type": "object",
393
- "properties": {
394
- "list": {
395
- "type": "array",
396
- "items": {
397
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/AdvantageDisadvantagePrerequisiteGroup"
398
- },
399
- "minItems": 2
400
- },
401
- "translations": {
402
- "description": "All translations for the entry, identified by IETF language tag (BCP47).",
403
- "type": "object",
404
- "patternProperties": {
405
- "^[a-z]{2}-[A-Z]{2}$": {
406
- "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
407
- }
408
- },
409
- "minProperties": 1,
410
- "additionalProperties": false
366
+ "patternProperties": {
367
+ "^[a-z]{2}-[A-Z]{2}$": {
368
+ "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
411
369
  }
412
370
  },
413
- "required": [
414
- "list",
415
- "translations"
416
- ],
371
+ "minProperties": 1,
417
372
  "additionalProperties": false
418
373
  }
419
374
  },
420
375
  "required": [
421
- "tag",
422
- "group"
376
+ "list",
377
+ "translations"
423
378
  ],
424
379
  "additionalProperties": false
425
380
  }
426
- ]
427
- },
428
- "minItems": 1
429
- }
430
- },
431
- "required": [
432
- "tag",
433
- "plain"
434
- ],
435
- "additionalProperties": false
381
+ },
382
+ "required": [
383
+ "tag",
384
+ "group"
385
+ ],
386
+ "additionalProperties": false
387
+ }
388
+ ]
389
+ }
436
390
  },
437
- {
438
- "type": "object",
439
- "properties": {
440
- "tag": {
441
- "const": "ByLevel"
391
+ "required": [
392
+ "level",
393
+ "prerequisite"
394
+ ],
395
+ "additionalProperties": false
396
+ },
397
+ "minItems": 1
398
+ },
399
+ "ProfessionPrerequisites": {
400
+ "type": "array",
401
+ "items": {
402
+ "oneOf": [
403
+ {
404
+ "type": "object",
405
+ "properties": {
406
+ "tag": {
407
+ "const": "Single"
408
+ },
409
+ "single": {
410
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/ProfessionPrerequisiteGroup"
411
+ }
442
412
  },
443
- "by_level": {
444
- "type": "array",
445
- "items": {
413
+ "required": [
414
+ "tag",
415
+ "single"
416
+ ],
417
+ "additionalProperties": false
418
+ },
419
+ {
420
+ "type": "object",
421
+ "properties": {
422
+ "tag": {
423
+ "const": "Disjunction"
424
+ },
425
+ "disjunction": {
446
426
  "type": "object",
447
427
  "properties": {
448
- "level": {
449
- "type": "integer",
450
- "minimum": 1
451
- },
452
- "prerequisites": {
428
+ "list": {
453
429
  "type": "array",
454
430
  "items": {
455
- "oneOf": [
456
- {
457
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/AdvantageDisadvantagePrerequisiteGroup"
458
- },
459
- {
460
- "type": "object",
461
- "properties": {
462
- "tag": {
463
- "const": "Group"
464
- },
465
- "group": {
466
- "description": "A prerequisite group has no influence on validation logic. It serves as a\nsingle unit for displaying purposes, where the source uses a prerequisites\nitem that cannot be represented as a single prerequisite.",
467
- "type": "object",
468
- "properties": {
469
- "list": {
470
- "type": "array",
471
- "items": {
472
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/AdvantageDisadvantagePrerequisiteGroup"
473
- },
474
- "minItems": 2
475
- },
476
- "translations": {
477
- "description": "All translations for the entry, identified by IETF language tag (BCP47).",
478
- "type": "object",
479
- "patternProperties": {
480
- "^[a-z]{2}-[A-Z]{2}$": {
481
- "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
482
- }
483
- },
484
- "minProperties": 1,
485
- "additionalProperties": false
486
- }
487
- },
488
- "required": [
489
- "list",
490
- "translations"
491
- ],
492
- "additionalProperties": false
493
- }
494
- },
495
- "required": [
496
- "tag",
497
- "group"
498
- ],
499
- "additionalProperties": false
500
- }
501
- ]
431
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/ProfessionPrerequisiteGroup"
502
432
  },
503
- "minItems": 1
433
+ "minItems": 2
504
434
  }
505
435
  },
506
436
  "required": [
507
- "level",
508
- "prerequisites"
437
+ "list"
509
438
  ],
510
439
  "additionalProperties": false
511
- },
512
- "minItems": 1
513
- }
514
- },
515
- "required": [
516
- "tag",
517
- "by_level"
518
- ],
519
- "additionalProperties": false
520
- }
521
- ]
522
- },
523
- "ArcaneTraditionPrerequisites": {
524
- "oneOf": [
525
- {
526
- "type": "object",
527
- "properties": {
528
- "tag": {
529
- "const": "Plain"
440
+ }
530
441
  },
531
- "plain": {
532
- "type": "array",
533
- "items": {
534
- "oneOf": [
535
- {
536
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/ArcaneTraditionPrerequisiteGroup"
442
+ "required": [
443
+ "tag",
444
+ "disjunction"
445
+ ],
446
+ "additionalProperties": false
447
+ },
448
+ {
449
+ "type": "object",
450
+ "properties": {
451
+ "tag": {
452
+ "const": "Group"
453
+ },
454
+ "group": {
455
+ "description": "A prerequisite group has no influence on validation logic. It serves as a\nsingle unit for displaying purposes, where the source uses a prerequisites\nitem that cannot be represented as a single prerequisite.",
456
+ "type": "object",
457
+ "properties": {
458
+ "list": {
459
+ "type": "array",
460
+ "items": {
461
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/ProfessionPrerequisiteGroup"
462
+ },
463
+ "minItems": 2
537
464
  },
538
- {
465
+ "translations": {
466
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
539
467
  "type": "object",
540
- "properties": {
541
- "tag": {
542
- "const": "Group"
543
- },
544
- "group": {
545
- "description": "A prerequisite group has no influence on validation logic. It serves as a\nsingle unit for displaying purposes, where the source uses a prerequisites\nitem that cannot be represented as a single prerequisite.",
546
- "type": "object",
547
- "properties": {
548
- "list": {
549
- "type": "array",
550
- "items": {
551
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/ArcaneTraditionPrerequisiteGroup"
552
- },
553
- "minItems": 2
554
- },
555
- "translations": {
556
- "description": "All translations for the entry, identified by IETF language tag (BCP47).",
557
- "type": "object",
558
- "patternProperties": {
559
- "^[a-z]{2}-[A-Z]{2}$": {
560
- "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
561
- }
562
- },
563
- "minProperties": 1,
564
- "additionalProperties": false
565
- }
566
- },
567
- "required": [
568
- "list",
569
- "translations"
570
- ],
571
- "additionalProperties": false
468
+ "patternProperties": {
469
+ "^[a-z]{2}-[A-Z]{2}$": {
470
+ "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
572
471
  }
573
472
  },
574
- "required": [
575
- "tag",
576
- "group"
577
- ],
473
+ "minProperties": 1,
578
474
  "additionalProperties": false
579
475
  }
580
- ]
581
- },
582
- "minItems": 1
583
- }
584
- },
585
- "required": [
586
- "tag",
587
- "plain"
588
- ],
589
- "additionalProperties": false
590
- }
591
- ]
592
- },
593
- "PersonalityTraitPrerequisites": {
594
- "oneOf": [
595
- {
596
- "type": "object",
597
- "properties": {
598
- "tag": {
599
- "const": "Plain"
476
+ },
477
+ "required": [
478
+ "list",
479
+ "translations"
480
+ ],
481
+ "additionalProperties": false
482
+ }
600
483
  },
601
- "plain": {
602
- "type": "array",
603
- "items": {
604
- "oneOf": [
605
- {
606
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/PersonalityTraitPrerequisiteGroup"
484
+ "required": [
485
+ "tag",
486
+ "group"
487
+ ],
488
+ "additionalProperties": false
489
+ }
490
+ ]
491
+ },
492
+ "minItems": 1
493
+ },
494
+ "AdvantageDisadvantagePrerequisites": {
495
+ "type": "array",
496
+ "items": {
497
+ "type": "object",
498
+ "properties": {
499
+ "level": {
500
+ "type": "integer",
501
+ "minimum": 1
502
+ },
503
+ "prerequisite": {
504
+ "oneOf": [
505
+ {
506
+ "type": "object",
507
+ "properties": {
508
+ "tag": {
509
+ "const": "Single"
510
+ },
511
+ "single": {
512
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/AdvantageDisadvantagePrerequisiteGroup"
513
+ }
514
+ },
515
+ "required": [
516
+ "tag",
517
+ "single"
518
+ ],
519
+ "additionalProperties": false
520
+ },
521
+ {
522
+ "type": "object",
523
+ "properties": {
524
+ "tag": {
525
+ "const": "Disjunction"
607
526
  },
608
- {
527
+ "disjunction": {
609
528
  "type": "object",
610
529
  "properties": {
611
- "tag": {
612
- "const": "Group"
613
- },
614
- "group": {
615
- "description": "A prerequisite group has no influence on validation logic. It serves as a\nsingle unit for displaying purposes, where the source uses a prerequisites\nitem that cannot be represented as a single prerequisite.",
616
- "type": "object",
617
- "properties": {
618
- "list": {
619
- "type": "array",
620
- "items": {
621
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/PersonalityTraitPrerequisiteGroup"
622
- },
623
- "minItems": 2
624
- },
625
- "translations": {
626
- "description": "All translations for the entry, identified by IETF language tag (BCP47).",
627
- "type": "object",
628
- "patternProperties": {
629
- "^[a-z]{2}-[A-Z]{2}$": {
630
- "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
631
- }
632
- },
633
- "minProperties": 1,
634
- "additionalProperties": false
635
- }
530
+ "list": {
531
+ "type": "array",
532
+ "items": {
533
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/AdvantageDisadvantagePrerequisiteGroup"
636
534
  },
637
- "required": [
638
- "list",
639
- "translations"
640
- ],
641
- "additionalProperties": false
535
+ "minItems": 2
642
536
  }
643
537
  },
644
538
  "required": [
645
- "tag",
646
- "group"
539
+ "list"
647
540
  ],
648
541
  "additionalProperties": false
649
542
  }
650
- ]
543
+ },
544
+ "required": [
545
+ "tag",
546
+ "disjunction"
547
+ ],
548
+ "additionalProperties": false
651
549
  },
652
- "minItems": 1
653
- }
654
- },
655
- "required": [
656
- "tag",
657
- "plain"
658
- ],
659
- "additionalProperties": false
660
- }
661
- ]
662
- },
663
- "SpellworkPrerequisites": {
664
- "oneOf": [
665
- {
666
- "type": "object",
667
- "properties": {
668
- "tag": {
669
- "const": "Plain"
670
- },
671
- "plain": {
672
- "type": "array",
673
- "items": {
674
- "oneOf": [
675
- {
676
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/SpellworkPrerequisiteGroup"
550
+ {
551
+ "type": "object",
552
+ "properties": {
553
+ "tag": {
554
+ "const": "Group"
677
555
  },
678
- {
556
+ "group": {
557
+ "description": "A prerequisite group has no influence on validation logic. It serves as a\nsingle unit for displaying purposes, where the source uses a prerequisites\nitem that cannot be represented as a single prerequisite.",
679
558
  "type": "object",
680
559
  "properties": {
681
- "tag": {
682
- "const": "Group"
560
+ "list": {
561
+ "type": "array",
562
+ "items": {
563
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/AdvantageDisadvantagePrerequisiteGroup"
564
+ },
565
+ "minItems": 2
683
566
  },
684
- "group": {
685
- "description": "A prerequisite group has no influence on validation logic. It serves as a\nsingle unit for displaying purposes, where the source uses a prerequisites\nitem that cannot be represented as a single prerequisite.",
567
+ "translations": {
568
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
686
569
  "type": "object",
687
- "properties": {
688
- "list": {
689
- "type": "array",
690
- "items": {
691
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/SpellworkPrerequisiteGroup"
692
- },
693
- "minItems": 2
694
- },
695
- "translations": {
696
- "description": "All translations for the entry, identified by IETF language tag (BCP47).",
697
- "type": "object",
698
- "patternProperties": {
699
- "^[a-z]{2}-[A-Z]{2}$": {
700
- "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
701
- }
702
- },
703
- "minProperties": 1,
704
- "additionalProperties": false
570
+ "patternProperties": {
571
+ "^[a-z]{2}-[A-Z]{2}$": {
572
+ "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
705
573
  }
706
574
  },
707
- "required": [
708
- "list",
709
- "translations"
710
- ],
575
+ "minProperties": 1,
711
576
  "additionalProperties": false
712
577
  }
713
578
  },
714
579
  "required": [
715
- "tag",
716
- "group"
580
+ "list",
581
+ "translations"
717
582
  ],
718
583
  "additionalProperties": false
719
584
  }
720
- ]
585
+ },
586
+ "required": [
587
+ "tag",
588
+ "group"
589
+ ],
590
+ "additionalProperties": false
591
+ }
592
+ ]
593
+ }
594
+ },
595
+ "required": [
596
+ "level",
597
+ "prerequisite"
598
+ ],
599
+ "additionalProperties": false
600
+ },
601
+ "minItems": 1
602
+ },
603
+ "ArcaneTraditionPrerequisites": {
604
+ "type": "array",
605
+ "items": {
606
+ "oneOf": [
607
+ {
608
+ "type": "object",
609
+ "properties": {
610
+ "tag": {
611
+ "const": "Single"
721
612
  },
722
- "minItems": 1
723
- }
613
+ "single": {
614
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/ArcaneTraditionPrerequisiteGroup"
615
+ }
616
+ },
617
+ "required": [
618
+ "tag",
619
+ "single"
620
+ ],
621
+ "additionalProperties": false
724
622
  },
725
- "required": [
726
- "tag",
727
- "plain"
728
- ],
729
- "additionalProperties": false
730
- }
731
- ]
732
- },
733
- "LiturgyPrerequisites": {
734
- "oneOf": [
735
- {
736
- "type": "object",
737
- "properties": {
738
- "tag": {
739
- "const": "Plain"
623
+ {
624
+ "type": "object",
625
+ "properties": {
626
+ "tag": {
627
+ "const": "Disjunction"
628
+ },
629
+ "disjunction": {
630
+ "type": "object",
631
+ "properties": {
632
+ "list": {
633
+ "type": "array",
634
+ "items": {
635
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/ArcaneTraditionPrerequisiteGroup"
636
+ },
637
+ "minItems": 2
638
+ }
639
+ },
640
+ "required": [
641
+ "list"
642
+ ],
643
+ "additionalProperties": false
644
+ }
740
645
  },
741
- "plain": {
742
- "type": "array",
743
- "items": {
744
- "oneOf": [
745
- {
746
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/LiturgyPrerequisiteGroup"
646
+ "required": [
647
+ "tag",
648
+ "disjunction"
649
+ ],
650
+ "additionalProperties": false
651
+ },
652
+ {
653
+ "type": "object",
654
+ "properties": {
655
+ "tag": {
656
+ "const": "Group"
657
+ },
658
+ "group": {
659
+ "description": "A prerequisite group has no influence on validation logic. It serves as a\nsingle unit for displaying purposes, where the source uses a prerequisites\nitem that cannot be represented as a single prerequisite.",
660
+ "type": "object",
661
+ "properties": {
662
+ "list": {
663
+ "type": "array",
664
+ "items": {
665
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/ArcaneTraditionPrerequisiteGroup"
666
+ },
667
+ "minItems": 2
747
668
  },
748
- {
669
+ "translations": {
670
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
749
671
  "type": "object",
750
- "properties": {
751
- "tag": {
752
- "const": "Group"
753
- },
754
- "group": {
755
- "description": "A prerequisite group has no influence on validation logic. It serves as a\nsingle unit for displaying purposes, where the source uses a prerequisites\nitem that cannot be represented as a single prerequisite.",
756
- "type": "object",
757
- "properties": {
758
- "list": {
759
- "type": "array",
760
- "items": {
761
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/LiturgyPrerequisiteGroup"
762
- },
763
- "minItems": 2
764
- },
765
- "translations": {
766
- "description": "All translations for the entry, identified by IETF language tag (BCP47).",
767
- "type": "object",
768
- "patternProperties": {
769
- "^[a-z]{2}-[A-Z]{2}$": {
770
- "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
771
- }
772
- },
773
- "minProperties": 1,
774
- "additionalProperties": false
775
- }
776
- },
777
- "required": [
778
- "list",
779
- "translations"
780
- ],
781
- "additionalProperties": false
672
+ "patternProperties": {
673
+ "^[a-z]{2}-[A-Z]{2}$": {
674
+ "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
782
675
  }
783
676
  },
784
- "required": [
785
- "tag",
786
- "group"
787
- ],
677
+ "minProperties": 1,
788
678
  "additionalProperties": false
789
679
  }
790
- ]
791
- },
792
- "minItems": 1
793
- }
794
- },
795
- "required": [
796
- "tag",
797
- "plain"
798
- ],
799
- "additionalProperties": false
800
- }
801
- ]
802
- },
803
- "InfluencePrerequisites": {
804
- "oneOf": [
805
- {
806
- "type": "object",
807
- "properties": {
808
- "tag": {
809
- "const": "Plain"
810
- },
811
- "plain": {
812
- "type": "array",
813
- "items": {
814
- "oneOf": [
815
- {
816
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/InfluencePrerequisiteGroup"
817
- },
818
- {
680
+ },
681
+ "required": [
682
+ "list",
683
+ "translations"
684
+ ],
685
+ "additionalProperties": false
686
+ }
687
+ },
688
+ "required": [
689
+ "tag",
690
+ "group"
691
+ ],
692
+ "additionalProperties": false
693
+ }
694
+ ]
695
+ },
696
+ "minItems": 1
697
+ },
698
+ "PersonalityTraitPrerequisites": {
699
+ "type": "array",
700
+ "items": {
701
+ "oneOf": [
702
+ {
703
+ "type": "object",
704
+ "properties": {
705
+ "tag": {
706
+ "const": "Single"
707
+ },
708
+ "single": {
709
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/PersonalityTraitPrerequisiteGroup"
710
+ }
711
+ },
712
+ "required": [
713
+ "tag",
714
+ "single"
715
+ ],
716
+ "additionalProperties": false
717
+ },
718
+ {
719
+ "type": "object",
720
+ "properties": {
721
+ "tag": {
722
+ "const": "Disjunction"
723
+ },
724
+ "disjunction": {
725
+ "type": "object",
726
+ "properties": {
727
+ "list": {
728
+ "type": "array",
729
+ "items": {
730
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/PersonalityTraitPrerequisiteGroup"
731
+ },
732
+ "minItems": 2
733
+ }
734
+ },
735
+ "required": [
736
+ "list"
737
+ ],
738
+ "additionalProperties": false
739
+ }
740
+ },
741
+ "required": [
742
+ "tag",
743
+ "disjunction"
744
+ ],
745
+ "additionalProperties": false
746
+ },
747
+ {
748
+ "type": "object",
749
+ "properties": {
750
+ "tag": {
751
+ "const": "Group"
752
+ },
753
+ "group": {
754
+ "description": "A prerequisite group has no influence on validation logic. It serves as a\nsingle unit for displaying purposes, where the source uses a prerequisites\nitem that cannot be represented as a single prerequisite.",
755
+ "type": "object",
756
+ "properties": {
757
+ "list": {
758
+ "type": "array",
759
+ "items": {
760
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/PersonalityTraitPrerequisiteGroup"
761
+ },
762
+ "minItems": 2
763
+ },
764
+ "translations": {
765
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
819
766
  "type": "object",
820
- "properties": {
821
- "tag": {
822
- "const": "Group"
823
- },
824
- "group": {
825
- "description": "A prerequisite group has no influence on validation logic. It serves as a\nsingle unit for displaying purposes, where the source uses a prerequisites\nitem that cannot be represented as a single prerequisite.",
826
- "type": "object",
827
- "properties": {
828
- "list": {
829
- "type": "array",
830
- "items": {
831
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/InfluencePrerequisiteGroup"
832
- },
833
- "minItems": 2
834
- },
835
- "translations": {
836
- "description": "All translations for the entry, identified by IETF language tag (BCP47).",
837
- "type": "object",
838
- "patternProperties": {
839
- "^[a-z]{2}-[A-Z]{2}$": {
840
- "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
841
- }
842
- },
843
- "minProperties": 1,
844
- "additionalProperties": false
845
- }
846
- },
847
- "required": [
848
- "list",
849
- "translations"
850
- ],
851
- "additionalProperties": false
767
+ "patternProperties": {
768
+ "^[a-z]{2}-[A-Z]{2}$": {
769
+ "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
852
770
  }
853
771
  },
854
- "required": [
855
- "tag",
856
- "group"
857
- ],
772
+ "minProperties": 1,
858
773
  "additionalProperties": false
859
774
  }
860
- ]
775
+ },
776
+ "required": [
777
+ "list",
778
+ "translations"
779
+ ],
780
+ "additionalProperties": false
781
+ }
782
+ },
783
+ "required": [
784
+ "tag",
785
+ "group"
786
+ ],
787
+ "additionalProperties": false
788
+ }
789
+ ]
790
+ },
791
+ "minItems": 1
792
+ },
793
+ "SpellworkPrerequisites": {
794
+ "type": "array",
795
+ "items": {
796
+ "oneOf": [
797
+ {
798
+ "type": "object",
799
+ "properties": {
800
+ "tag": {
801
+ "const": "Single"
861
802
  },
862
- "minItems": 1
863
- }
803
+ "single": {
804
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/SpellworkPrerequisiteGroup"
805
+ }
806
+ },
807
+ "required": [
808
+ "tag",
809
+ "single"
810
+ ],
811
+ "additionalProperties": false
864
812
  },
865
- "required": [
866
- "tag",
867
- "plain"
868
- ],
869
- "additionalProperties": false
870
- }
871
- ]
872
- },
873
- "LanguagePrerequisites": {
874
- "oneOf": [
875
- {
876
- "type": "object",
877
- "properties": {
878
- "tag": {
879
- "const": "Plain"
813
+ {
814
+ "type": "object",
815
+ "properties": {
816
+ "tag": {
817
+ "const": "Disjunction"
818
+ },
819
+ "disjunction": {
820
+ "type": "object",
821
+ "properties": {
822
+ "list": {
823
+ "type": "array",
824
+ "items": {
825
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/SpellworkPrerequisiteGroup"
826
+ },
827
+ "minItems": 2
828
+ }
829
+ },
830
+ "required": [
831
+ "list"
832
+ ],
833
+ "additionalProperties": false
834
+ }
880
835
  },
881
- "plain": {
882
- "type": "array",
883
- "items": {
884
- "oneOf": [
885
- {
886
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/LanguagePrerequisiteGroup"
836
+ "required": [
837
+ "tag",
838
+ "disjunction"
839
+ ],
840
+ "additionalProperties": false
841
+ },
842
+ {
843
+ "type": "object",
844
+ "properties": {
845
+ "tag": {
846
+ "const": "Group"
847
+ },
848
+ "group": {
849
+ "description": "A prerequisite group has no influence on validation logic. It serves as a\nsingle unit for displaying purposes, where the source uses a prerequisites\nitem that cannot be represented as a single prerequisite.",
850
+ "type": "object",
851
+ "properties": {
852
+ "list": {
853
+ "type": "array",
854
+ "items": {
855
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/SpellworkPrerequisiteGroup"
856
+ },
857
+ "minItems": 2
887
858
  },
888
- {
859
+ "translations": {
860
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
889
861
  "type": "object",
890
- "properties": {
891
- "tag": {
892
- "const": "Group"
893
- },
894
- "group": {
895
- "description": "A prerequisite group has no influence on validation logic. It serves as a\nsingle unit for displaying purposes, where the source uses a prerequisites\nitem that cannot be represented as a single prerequisite.",
896
- "type": "object",
897
- "properties": {
898
- "list": {
899
- "type": "array",
900
- "items": {
901
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/LanguagePrerequisiteGroup"
902
- },
903
- "minItems": 2
904
- },
905
- "translations": {
906
- "description": "All translations for the entry, identified by IETF language tag (BCP47).",
907
- "type": "object",
908
- "patternProperties": {
909
- "^[a-z]{2}-[A-Z]{2}$": {
910
- "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
911
- }
912
- },
913
- "minProperties": 1,
914
- "additionalProperties": false
915
- }
916
- },
917
- "required": [
918
- "list",
919
- "translations"
920
- ],
921
- "additionalProperties": false
862
+ "patternProperties": {
863
+ "^[a-z]{2}-[A-Z]{2}$": {
864
+ "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
922
865
  }
923
866
  },
924
- "required": [
925
- "tag",
926
- "group"
927
- ],
867
+ "minProperties": 1,
928
868
  "additionalProperties": false
929
869
  }
930
- ]
870
+ },
871
+ "required": [
872
+ "list",
873
+ "translations"
874
+ ],
875
+ "additionalProperties": false
876
+ }
877
+ },
878
+ "required": [
879
+ "tag",
880
+ "group"
881
+ ],
882
+ "additionalProperties": false
883
+ }
884
+ ]
885
+ },
886
+ "minItems": 1
887
+ },
888
+ "LiturgyPrerequisites": {
889
+ "type": "array",
890
+ "items": {
891
+ "oneOf": [
892
+ {
893
+ "type": "object",
894
+ "properties": {
895
+ "tag": {
896
+ "const": "Single"
931
897
  },
932
- "minItems": 1
933
- }
898
+ "single": {
899
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/LiturgyPrerequisiteGroup"
900
+ }
901
+ },
902
+ "required": [
903
+ "tag",
904
+ "single"
905
+ ],
906
+ "additionalProperties": false
934
907
  },
935
- "required": [
936
- "tag",
937
- "plain"
938
- ],
939
- "additionalProperties": false
940
- },
941
- {
942
- "type": "object",
943
- "properties": {
944
- "tag": {
945
- "const": "ByLevel"
908
+ {
909
+ "type": "object",
910
+ "properties": {
911
+ "tag": {
912
+ "const": "Disjunction"
913
+ },
914
+ "disjunction": {
915
+ "type": "object",
916
+ "properties": {
917
+ "list": {
918
+ "type": "array",
919
+ "items": {
920
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/LiturgyPrerequisiteGroup"
921
+ },
922
+ "minItems": 2
923
+ }
924
+ },
925
+ "required": [
926
+ "list"
927
+ ],
928
+ "additionalProperties": false
929
+ }
946
930
  },
947
- "by_level": {
948
- "type": "array",
949
- "items": {
931
+ "required": [
932
+ "tag",
933
+ "disjunction"
934
+ ],
935
+ "additionalProperties": false
936
+ },
937
+ {
938
+ "type": "object",
939
+ "properties": {
940
+ "tag": {
941
+ "const": "Group"
942
+ },
943
+ "group": {
944
+ "description": "A prerequisite group has no influence on validation logic. It serves as a\nsingle unit for displaying purposes, where the source uses a prerequisites\nitem that cannot be represented as a single prerequisite.",
950
945
  "type": "object",
951
946
  "properties": {
952
- "level": {
953
- "type": "integer",
954
- "minimum": 1
955
- },
956
- "prerequisites": {
947
+ "list": {
957
948
  "type": "array",
958
949
  "items": {
959
- "oneOf": [
960
- {
961
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/LanguagePrerequisiteGroup"
962
- },
963
- {
964
- "type": "object",
965
- "properties": {
966
- "tag": {
967
- "const": "Group"
968
- },
969
- "group": {
970
- "description": "A prerequisite group has no influence on validation logic. It serves as a\nsingle unit for displaying purposes, where the source uses a prerequisites\nitem that cannot be represented as a single prerequisite.",
971
- "type": "object",
972
- "properties": {
973
- "list": {
974
- "type": "array",
975
- "items": {
976
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/LanguagePrerequisiteGroup"
977
- },
978
- "minItems": 2
979
- },
980
- "translations": {
981
- "description": "All translations for the entry, identified by IETF language tag (BCP47).",
982
- "type": "object",
983
- "patternProperties": {
984
- "^[a-z]{2}-[A-Z]{2}$": {
985
- "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
986
- }
987
- },
988
- "minProperties": 1,
989
- "additionalProperties": false
990
- }
991
- },
992
- "required": [
993
- "list",
994
- "translations"
995
- ],
996
- "additionalProperties": false
997
- }
998
- },
999
- "required": [
1000
- "tag",
1001
- "group"
1002
- ],
1003
- "additionalProperties": false
1004
- }
1005
- ]
950
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/LiturgyPrerequisiteGroup"
951
+ },
952
+ "minItems": 2
953
+ },
954
+ "translations": {
955
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
956
+ "type": "object",
957
+ "patternProperties": {
958
+ "^[a-z]{2}-[A-Z]{2}$": {
959
+ "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
960
+ }
1006
961
  },
1007
- "minItems": 1
962
+ "minProperties": 1,
963
+ "additionalProperties": false
1008
964
  }
1009
965
  },
1010
966
  "required": [
1011
- "level",
1012
- "prerequisites"
967
+ "list",
968
+ "translations"
1013
969
  ],
1014
970
  "additionalProperties": false
971
+ }
972
+ },
973
+ "required": [
974
+ "tag",
975
+ "group"
976
+ ],
977
+ "additionalProperties": false
978
+ }
979
+ ]
980
+ },
981
+ "minItems": 1
982
+ },
983
+ "InfluencePrerequisites": {
984
+ "type": "array",
985
+ "items": {
986
+ "oneOf": [
987
+ {
988
+ "type": "object",
989
+ "properties": {
990
+ "tag": {
991
+ "const": "Single"
1015
992
  },
1016
- "minItems": 1
1017
- }
993
+ "single": {
994
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/InfluencePrerequisiteGroup"
995
+ }
996
+ },
997
+ "required": [
998
+ "tag",
999
+ "single"
1000
+ ],
1001
+ "additionalProperties": false
1018
1002
  },
1019
- "required": [
1020
- "tag",
1021
- "by_level"
1022
- ],
1023
- "additionalProperties": false
1024
- }
1025
- ]
1026
- },
1027
- "AnimistPowerPrerequisites": {
1028
- "oneOf": [
1029
- {
1030
- "type": "object",
1031
- "properties": {
1032
- "tag": {
1033
- "const": "Plain"
1003
+ {
1004
+ "type": "object",
1005
+ "properties": {
1006
+ "tag": {
1007
+ "const": "Disjunction"
1008
+ },
1009
+ "disjunction": {
1010
+ "type": "object",
1011
+ "properties": {
1012
+ "list": {
1013
+ "type": "array",
1014
+ "items": {
1015
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/InfluencePrerequisiteGroup"
1016
+ },
1017
+ "minItems": 2
1018
+ }
1019
+ },
1020
+ "required": [
1021
+ "list"
1022
+ ],
1023
+ "additionalProperties": false
1024
+ }
1034
1025
  },
1035
- "plain": {
1036
- "type": "array",
1037
- "items": {
1038
- "oneOf": [
1039
- {
1040
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/AnimistPowerPrerequisiteGroup"
1026
+ "required": [
1027
+ "tag",
1028
+ "disjunction"
1029
+ ],
1030
+ "additionalProperties": false
1031
+ },
1032
+ {
1033
+ "type": "object",
1034
+ "properties": {
1035
+ "tag": {
1036
+ "const": "Group"
1037
+ },
1038
+ "group": {
1039
+ "description": "A prerequisite group has no influence on validation logic. It serves as a\nsingle unit for displaying purposes, where the source uses a prerequisites\nitem that cannot be represented as a single prerequisite.",
1040
+ "type": "object",
1041
+ "properties": {
1042
+ "list": {
1043
+ "type": "array",
1044
+ "items": {
1045
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/InfluencePrerequisiteGroup"
1046
+ },
1047
+ "minItems": 2
1041
1048
  },
1042
- {
1049
+ "translations": {
1050
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
1051
+ "type": "object",
1052
+ "patternProperties": {
1053
+ "^[a-z]{2}-[A-Z]{2}$": {
1054
+ "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
1055
+ }
1056
+ },
1057
+ "minProperties": 1,
1058
+ "additionalProperties": false
1059
+ }
1060
+ },
1061
+ "required": [
1062
+ "list",
1063
+ "translations"
1064
+ ],
1065
+ "additionalProperties": false
1066
+ }
1067
+ },
1068
+ "required": [
1069
+ "tag",
1070
+ "group"
1071
+ ],
1072
+ "additionalProperties": false
1073
+ }
1074
+ ]
1075
+ },
1076
+ "minItems": 1
1077
+ },
1078
+ "LanguagePrerequisites": {
1079
+ "type": "array",
1080
+ "items": {
1081
+ "type": "object",
1082
+ "properties": {
1083
+ "level": {
1084
+ "type": "integer",
1085
+ "minimum": 1
1086
+ },
1087
+ "prerequisite": {
1088
+ "oneOf": [
1089
+ {
1090
+ "type": "object",
1091
+ "properties": {
1092
+ "tag": {
1093
+ "const": "Single"
1094
+ },
1095
+ "single": {
1096
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/LanguagePrerequisiteGroup"
1097
+ }
1098
+ },
1099
+ "required": [
1100
+ "tag",
1101
+ "single"
1102
+ ],
1103
+ "additionalProperties": false
1104
+ },
1105
+ {
1106
+ "type": "object",
1107
+ "properties": {
1108
+ "tag": {
1109
+ "const": "Disjunction"
1110
+ },
1111
+ "disjunction": {
1043
1112
  "type": "object",
1044
1113
  "properties": {
1045
- "tag": {
1046
- "const": "Group"
1047
- },
1048
- "group": {
1049
- "description": "A prerequisite group has no influence on validation logic. It serves as a\nsingle unit for displaying purposes, where the source uses a prerequisites\nitem that cannot be represented as a single prerequisite.",
1050
- "type": "object",
1051
- "properties": {
1052
- "list": {
1053
- "type": "array",
1054
- "items": {
1055
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/AnimistPowerPrerequisiteGroup"
1056
- },
1057
- "minItems": 2
1058
- },
1059
- "translations": {
1060
- "description": "All translations for the entry, identified by IETF language tag (BCP47).",
1061
- "type": "object",
1062
- "patternProperties": {
1063
- "^[a-z]{2}-[A-Z]{2}$": {
1064
- "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
1065
- }
1066
- },
1067
- "minProperties": 1,
1068
- "additionalProperties": false
1069
- }
1114
+ "list": {
1115
+ "type": "array",
1116
+ "items": {
1117
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/LanguagePrerequisiteGroup"
1070
1118
  },
1071
- "required": [
1072
- "list",
1073
- "translations"
1074
- ],
1075
- "additionalProperties": false
1119
+ "minItems": 2
1076
1120
  }
1077
1121
  },
1078
1122
  "required": [
1079
- "tag",
1080
- "group"
1123
+ "list"
1081
1124
  ],
1082
1125
  "additionalProperties": false
1083
1126
  }
1084
- ]
1127
+ },
1128
+ "required": [
1129
+ "tag",
1130
+ "disjunction"
1131
+ ],
1132
+ "additionalProperties": false
1085
1133
  },
1086
- "minItems": 1
1087
- }
1088
- },
1089
- "required": [
1090
- "tag",
1091
- "plain"
1092
- ],
1093
- "additionalProperties": false
1094
- }
1095
- ]
1096
- },
1097
- "GeodeRitualPrerequisites": {
1098
- "oneOf": [
1099
- {
1100
- "type": "object",
1101
- "properties": {
1102
- "tag": {
1103
- "const": "Plain"
1104
- },
1105
- "plain": {
1106
- "type": "array",
1107
- "items": {
1108
- "oneOf": [
1109
- {
1110
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/GeodeRitualPrerequisiteGroup"
1134
+ {
1135
+ "type": "object",
1136
+ "properties": {
1137
+ "tag": {
1138
+ "const": "Group"
1111
1139
  },
1112
- {
1140
+ "group": {
1141
+ "description": "A prerequisite group has no influence on validation logic. It serves as a\nsingle unit for displaying purposes, where the source uses a prerequisites\nitem that cannot be represented as a single prerequisite.",
1113
1142
  "type": "object",
1114
1143
  "properties": {
1115
- "tag": {
1116
- "const": "Group"
1144
+ "list": {
1145
+ "type": "array",
1146
+ "items": {
1147
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/LanguagePrerequisiteGroup"
1148
+ },
1149
+ "minItems": 2
1117
1150
  },
1118
- "group": {
1119
- "description": "A prerequisite group has no influence on validation logic. It serves as a\nsingle unit for displaying purposes, where the source uses a prerequisites\nitem that cannot be represented as a single prerequisite.",
1151
+ "translations": {
1152
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
1120
1153
  "type": "object",
1121
- "properties": {
1122
- "list": {
1123
- "type": "array",
1124
- "items": {
1125
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/GeodeRitualPrerequisiteGroup"
1126
- },
1127
- "minItems": 2
1128
- },
1129
- "translations": {
1130
- "description": "All translations for the entry, identified by IETF language tag (BCP47).",
1131
- "type": "object",
1132
- "patternProperties": {
1133
- "^[a-z]{2}-[A-Z]{2}$": {
1134
- "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
1135
- }
1136
- },
1137
- "minProperties": 1,
1138
- "additionalProperties": false
1154
+ "patternProperties": {
1155
+ "^[a-z]{2}-[A-Z]{2}$": {
1156
+ "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
1139
1157
  }
1140
1158
  },
1141
- "required": [
1142
- "list",
1143
- "translations"
1144
- ],
1159
+ "minProperties": 1,
1145
1160
  "additionalProperties": false
1146
1161
  }
1147
1162
  },
1148
1163
  "required": [
1149
- "tag",
1150
- "group"
1164
+ "list",
1165
+ "translations"
1151
1166
  ],
1152
1167
  "additionalProperties": false
1153
1168
  }
1154
- ]
1169
+ },
1170
+ "required": [
1171
+ "tag",
1172
+ "group"
1173
+ ],
1174
+ "additionalProperties": false
1175
+ }
1176
+ ]
1177
+ }
1178
+ },
1179
+ "required": [
1180
+ "level",
1181
+ "prerequisite"
1182
+ ],
1183
+ "additionalProperties": false
1184
+ },
1185
+ "minItems": 1
1186
+ },
1187
+ "AnimistPowerPrerequisites": {
1188
+ "type": "array",
1189
+ "items": {
1190
+ "oneOf": [
1191
+ {
1192
+ "type": "object",
1193
+ "properties": {
1194
+ "tag": {
1195
+ "const": "Single"
1155
1196
  },
1156
- "minItems": 1
1157
- }
1197
+ "single": {
1198
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/AnimistPowerPrerequisiteGroup"
1199
+ }
1200
+ },
1201
+ "required": [
1202
+ "tag",
1203
+ "single"
1204
+ ],
1205
+ "additionalProperties": false
1206
+ },
1207
+ {
1208
+ "type": "object",
1209
+ "properties": {
1210
+ "tag": {
1211
+ "const": "Disjunction"
1212
+ },
1213
+ "disjunction": {
1214
+ "type": "object",
1215
+ "properties": {
1216
+ "list": {
1217
+ "type": "array",
1218
+ "items": {
1219
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/AnimistPowerPrerequisiteGroup"
1220
+ },
1221
+ "minItems": 2
1222
+ }
1223
+ },
1224
+ "required": [
1225
+ "list"
1226
+ ],
1227
+ "additionalProperties": false
1228
+ }
1229
+ },
1230
+ "required": [
1231
+ "tag",
1232
+ "disjunction"
1233
+ ],
1234
+ "additionalProperties": false
1158
1235
  },
1159
- "required": [
1160
- "tag",
1161
- "plain"
1162
- ],
1163
- "additionalProperties": false
1164
- }
1165
- ]
1236
+ {
1237
+ "type": "object",
1238
+ "properties": {
1239
+ "tag": {
1240
+ "const": "Group"
1241
+ },
1242
+ "group": {
1243
+ "description": "A prerequisite group has no influence on validation logic. It serves as a\nsingle unit for displaying purposes, where the source uses a prerequisites\nitem that cannot be represented as a single prerequisite.",
1244
+ "type": "object",
1245
+ "properties": {
1246
+ "list": {
1247
+ "type": "array",
1248
+ "items": {
1249
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/AnimistPowerPrerequisiteGroup"
1250
+ },
1251
+ "minItems": 2
1252
+ },
1253
+ "translations": {
1254
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
1255
+ "type": "object",
1256
+ "patternProperties": {
1257
+ "^[a-z]{2}-[A-Z]{2}$": {
1258
+ "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
1259
+ }
1260
+ },
1261
+ "minProperties": 1,
1262
+ "additionalProperties": false
1263
+ }
1264
+ },
1265
+ "required": [
1266
+ "list",
1267
+ "translations"
1268
+ ],
1269
+ "additionalProperties": false
1270
+ }
1271
+ },
1272
+ "required": [
1273
+ "tag",
1274
+ "group"
1275
+ ],
1276
+ "additionalProperties": false
1277
+ }
1278
+ ]
1279
+ },
1280
+ "minItems": 1
1166
1281
  },
1167
- "EnhancementPrerequisites": {
1168
- "oneOf": [
1169
- {
1170
- "type": "object",
1171
- "properties": {
1172
- "tag": {
1173
- "const": "Plain"
1282
+ "GeodeRitualPrerequisites": {
1283
+ "type": "array",
1284
+ "items": {
1285
+ "oneOf": [
1286
+ {
1287
+ "type": "object",
1288
+ "properties": {
1289
+ "tag": {
1290
+ "const": "Single"
1291
+ },
1292
+ "single": {
1293
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/GeodeRitualPrerequisiteGroup"
1294
+ }
1295
+ },
1296
+ "required": [
1297
+ "tag",
1298
+ "single"
1299
+ ],
1300
+ "additionalProperties": false
1301
+ },
1302
+ {
1303
+ "type": "object",
1304
+ "properties": {
1305
+ "tag": {
1306
+ "const": "Disjunction"
1307
+ },
1308
+ "disjunction": {
1309
+ "type": "object",
1310
+ "properties": {
1311
+ "list": {
1312
+ "type": "array",
1313
+ "items": {
1314
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/GeodeRitualPrerequisiteGroup"
1315
+ },
1316
+ "minItems": 2
1317
+ }
1318
+ },
1319
+ "required": [
1320
+ "list"
1321
+ ],
1322
+ "additionalProperties": false
1323
+ }
1174
1324
  },
1175
- "plain": {
1176
- "type": "array",
1177
- "items": {
1178
- "oneOf": [
1179
- {
1180
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/EnhancementPrerequisiteGroup"
1325
+ "required": [
1326
+ "tag",
1327
+ "disjunction"
1328
+ ],
1329
+ "additionalProperties": false
1330
+ },
1331
+ {
1332
+ "type": "object",
1333
+ "properties": {
1334
+ "tag": {
1335
+ "const": "Group"
1336
+ },
1337
+ "group": {
1338
+ "description": "A prerequisite group has no influence on validation logic. It serves as a\nsingle unit for displaying purposes, where the source uses a prerequisites\nitem that cannot be represented as a single prerequisite.",
1339
+ "type": "object",
1340
+ "properties": {
1341
+ "list": {
1342
+ "type": "array",
1343
+ "items": {
1344
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/GeodeRitualPrerequisiteGroup"
1345
+ },
1346
+ "minItems": 2
1181
1347
  },
1182
- {
1348
+ "translations": {
1349
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
1183
1350
  "type": "object",
1184
- "properties": {
1185
- "tag": {
1186
- "const": "Group"
1187
- },
1188
- "group": {
1189
- "description": "A prerequisite group has no influence on validation logic. It serves as a\nsingle unit for displaying purposes, where the source uses a prerequisites\nitem that cannot be represented as a single prerequisite.",
1190
- "type": "object",
1191
- "properties": {
1192
- "list": {
1193
- "type": "array",
1194
- "items": {
1195
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/EnhancementPrerequisiteGroup"
1196
- },
1197
- "minItems": 2
1198
- },
1199
- "translations": {
1200
- "description": "All translations for the entry, identified by IETF language tag (BCP47).",
1201
- "type": "object",
1202
- "patternProperties": {
1203
- "^[a-z]{2}-[A-Z]{2}$": {
1204
- "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
1205
- }
1206
- },
1207
- "minProperties": 1,
1208
- "additionalProperties": false
1209
- }
1210
- },
1211
- "required": [
1212
- "list",
1213
- "translations"
1214
- ],
1215
- "additionalProperties": false
1351
+ "patternProperties": {
1352
+ "^[a-z]{2}-[A-Z]{2}$": {
1353
+ "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
1216
1354
  }
1217
1355
  },
1218
- "required": [
1219
- "tag",
1220
- "group"
1221
- ],
1356
+ "minProperties": 1,
1222
1357
  "additionalProperties": false
1223
1358
  }
1224
- ]
1359
+ },
1360
+ "required": [
1361
+ "list",
1362
+ "translations"
1363
+ ],
1364
+ "additionalProperties": false
1365
+ }
1366
+ },
1367
+ "required": [
1368
+ "tag",
1369
+ "group"
1370
+ ],
1371
+ "additionalProperties": false
1372
+ }
1373
+ ]
1374
+ },
1375
+ "minItems": 1
1376
+ },
1377
+ "EnhancementPrerequisites": {
1378
+ "type": "array",
1379
+ "items": {
1380
+ "oneOf": [
1381
+ {
1382
+ "type": "object",
1383
+ "properties": {
1384
+ "tag": {
1385
+ "const": "Single"
1225
1386
  },
1226
- "minItems": 1
1227
- }
1387
+ "single": {
1388
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/EnhancementPrerequisiteGroup"
1389
+ }
1390
+ },
1391
+ "required": [
1392
+ "tag",
1393
+ "single"
1394
+ ],
1395
+ "additionalProperties": false
1396
+ },
1397
+ {
1398
+ "type": "object",
1399
+ "properties": {
1400
+ "tag": {
1401
+ "const": "Disjunction"
1402
+ },
1403
+ "disjunction": {
1404
+ "type": "object",
1405
+ "properties": {
1406
+ "list": {
1407
+ "type": "array",
1408
+ "items": {
1409
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/EnhancementPrerequisiteGroup"
1410
+ },
1411
+ "minItems": 2
1412
+ }
1413
+ },
1414
+ "required": [
1415
+ "list"
1416
+ ],
1417
+ "additionalProperties": false
1418
+ }
1419
+ },
1420
+ "required": [
1421
+ "tag",
1422
+ "disjunction"
1423
+ ],
1424
+ "additionalProperties": false
1228
1425
  },
1229
- "required": [
1230
- "tag",
1231
- "plain"
1232
- ],
1233
- "additionalProperties": false
1234
- }
1235
- ]
1426
+ {
1427
+ "type": "object",
1428
+ "properties": {
1429
+ "tag": {
1430
+ "const": "Group"
1431
+ },
1432
+ "group": {
1433
+ "description": "A prerequisite group has no influence on validation logic. It serves as a\nsingle unit for displaying purposes, where the source uses a prerequisites\nitem that cannot be represented as a single prerequisite.",
1434
+ "type": "object",
1435
+ "properties": {
1436
+ "list": {
1437
+ "type": "array",
1438
+ "items": {
1439
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/EnhancementPrerequisiteGroup"
1440
+ },
1441
+ "minItems": 2
1442
+ },
1443
+ "translations": {
1444
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
1445
+ "type": "object",
1446
+ "patternProperties": {
1447
+ "^[a-z]{2}-[A-Z]{2}$": {
1448
+ "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
1449
+ }
1450
+ },
1451
+ "minProperties": 1,
1452
+ "additionalProperties": false
1453
+ }
1454
+ },
1455
+ "required": [
1456
+ "list",
1457
+ "translations"
1458
+ ],
1459
+ "additionalProperties": false
1460
+ }
1461
+ },
1462
+ "required": [
1463
+ "tag",
1464
+ "group"
1465
+ ],
1466
+ "additionalProperties": false
1467
+ }
1468
+ ]
1469
+ },
1470
+ "minItems": 1
1236
1471
  }
1237
1472
  }
1238
1473
  }