optolith-database-schema 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (169) hide show
  1. package/AUTHORS +1 -0
  2. package/CHANGELOG.md +27 -0
  3. package/CODEOWNERS +1 -0
  4. package/LICENSE +378 -0
  5. package/README.md +17 -0
  6. package/lib/main.d.ts +1 -0
  7. package/lib/main.js +1 -0
  8. package/lib/types/ArcaneBardTradition.d.ts +32 -0
  9. package/lib/types/ArcaneBardTradition.js +4 -0
  10. package/lib/types/ArcaneDancerTradition.d.ts +32 -0
  11. package/lib/types/ArcaneDancerTradition.js +4 -0
  12. package/lib/types/Aspect.d.ts +36 -0
  13. package/lib/types/Aspect.js +4 -0
  14. package/lib/types/Attribute.d.ts +42 -0
  15. package/lib/types/Attribute.js +5 -0
  16. package/lib/types/CombatTechnique_Close.d.ts +80 -0
  17. package/lib/types/CombatTechnique_Close.js +4 -0
  18. package/lib/types/CombatTechnique_Ranged.d.ts +62 -0
  19. package/lib/types/CombatTechnique_Ranged.js +4 -0
  20. package/lib/types/Condition.d.ts +51 -0
  21. package/lib/types/Condition.js +4 -0
  22. package/lib/types/Culture.d.ts +494 -0
  23. package/lib/types/Culture.js +4 -0
  24. package/lib/types/DerivedCharacteristic.d.ts +65 -0
  25. package/lib/types/DerivedCharacteristic.js +4 -0
  26. package/lib/types/Element.d.ts +30 -0
  27. package/lib/types/Element.js +4 -0
  28. package/lib/types/ExperienceLevel.d.ts +68 -0
  29. package/lib/types/ExperienceLevel.js +4 -0
  30. package/lib/types/EyeColor.d.ts +30 -0
  31. package/lib/types/EyeColor.js +4 -0
  32. package/lib/types/HairColor.d.ts +30 -0
  33. package/lib/types/HairColor.js +4 -0
  34. package/lib/types/Lessons_Curriculum.d.ts +297 -0
  35. package/lib/types/Lessons_Curriculum.js +4 -0
  36. package/lib/types/Lessons_Guideline.d.ts +36 -0
  37. package/lib/types/Lessons_Guideline.js +4 -0
  38. package/lib/types/Locale.d.ts +38 -0
  39. package/lib/types/Locale.js +4 -0
  40. package/lib/types/MetaCondition.d.ts +54 -0
  41. package/lib/types/MetaCondition.js +4 -0
  42. package/lib/types/Property.d.ts +36 -0
  43. package/lib/types/Property.js +4 -0
  44. package/lib/types/Race.d.ts +524 -0
  45. package/lib/types/Race.js +13 -0
  46. package/lib/types/Region.d.ts +30 -0
  47. package/lib/types/Region.js +4 -0
  48. package/lib/types/Service.d.ts +40 -0
  49. package/lib/types/Service.js +4 -0
  50. package/lib/types/SexPractice.d.ts +53 -0
  51. package/lib/types/SexPractice.js +4 -0
  52. package/lib/types/Skill.d.ts +169 -0
  53. package/lib/types/Skill.js +4 -0
  54. package/lib/types/SkillGroup.d.ts +40 -0
  55. package/lib/types/SkillGroup.js +4 -0
  56. package/lib/types/SkillModificationIncrement.d.ts +82 -0
  57. package/lib/types/SkillModificationIncrement.js +4 -0
  58. package/lib/types/SocialStatus.d.ts +30 -0
  59. package/lib/types/SocialStatus.js +4 -0
  60. package/lib/types/State.d.ts +40 -0
  61. package/lib/types/State.js +4 -0
  62. package/lib/types/TargetCategory.d.ts +36 -0
  63. package/lib/types/TargetCategory.js +4 -0
  64. package/lib/types/_ActivatableSkill.d.ts +919 -0
  65. package/lib/types/_ActivatableSkill.js +38 -0
  66. package/lib/types/_CommonnessRatedAdvantageDisadvantage.d.ts +12 -0
  67. package/lib/types/_CommonnessRatedAdvantageDisadvantage.js +1 -0
  68. package/lib/types/_ImprovementCost.d.ts +9 -0
  69. package/lib/types/_ImprovementCost.js +10 -0
  70. package/lib/types/_Prerequisite.d.ts +274 -0
  71. package/lib/types/_Prerequisite.js +4 -0
  72. package/lib/types/_Sex.d.ts +11 -0
  73. package/lib/types/_Sex.js +4 -0
  74. package/lib/types/_SkillCheck.d.ts +28 -0
  75. package/lib/types/_SkillCheck.js +1 -0
  76. package/lib/types/magicalActions/AnimistPower.d.ts +227 -0
  77. package/lib/types/magicalActions/AnimistPower.js +4 -0
  78. package/lib/types/magicalActions/AnimistPower_Tribe.d.ts +30 -0
  79. package/lib/types/magicalActions/AnimistPower_Tribe.js +4 -0
  80. package/lib/types/magicalActions/Curse.d.ts +228 -0
  81. package/lib/types/magicalActions/Curse.js +4 -0
  82. package/lib/types/magicalActions/DominationRitual.d.ts +181 -0
  83. package/lib/types/magicalActions/DominationRitual.js +4 -0
  84. package/lib/types/magicalActions/ElvenMagicalSong.d.ts +149 -0
  85. package/lib/types/magicalActions/ElvenMagicalSong.js +4 -0
  86. package/lib/types/magicalActions/GeodeRitual.d.ts +162 -0
  87. package/lib/types/magicalActions/GeodeRitual.js +4 -0
  88. package/lib/types/magicalActions/JesterTrick.d.ts +167 -0
  89. package/lib/types/magicalActions/JesterTrick.js +4 -0
  90. package/lib/types/magicalActions/MagicalDance.d.ts +184 -0
  91. package/lib/types/magicalActions/MagicalDance.js +4 -0
  92. package/lib/types/magicalActions/MagicalMelody.d.ts +132 -0
  93. package/lib/types/magicalActions/MagicalMelody.js +4 -0
  94. package/lib/types/magicalActions/MagicalRune.d.ts +241 -0
  95. package/lib/types/magicalActions/MagicalRune.js +4 -0
  96. package/lib/types/magicalActions/ZibiljaRitual.d.ts +101 -0
  97. package/lib/types/magicalActions/ZibiljaRitual.js +4 -0
  98. package/lib/types/magicalActions/_MusicTradition.d.ts +28 -0
  99. package/lib/types/magicalActions/_MusicTradition.js +1 -0
  100. package/lib/types/magicalActions/_SkillReference.d.ts +13 -0
  101. package/lib/types/magicalActions/_SkillReference.js +5 -0
  102. package/lib/types/rule/FocusRule.d.ts +53 -0
  103. package/lib/types/rule/FocusRule.js +4 -0
  104. package/lib/types/rule/FocusRule_Subject.d.ts +31 -0
  105. package/lib/types/rule/FocusRule_Subject.js +4 -0
  106. package/lib/types/rule/OptionalRule.d.ts +65 -0
  107. package/lib/types/rule/OptionalRule.js +4 -0
  108. package/lib/types/source/Publication.d.ts +4 -0
  109. package/lib/types/source/Publication.js +4 -0
  110. package/lib/types/source/_Erratum.d.ts +25 -0
  111. package/lib/types/source/_Erratum.js +4 -0
  112. package/lib/types/source/_PublicationRef.d.ts +146 -0
  113. package/lib/types/source/_PublicationRef.js +4 -0
  114. package/lib/validation/integrity.d.ts +16 -0
  115. package/lib/validation/integrity.js +3 -0
  116. package/package.json +37 -0
  117. package/schema/ArcaneBardTradition.schema.json +49 -0
  118. package/schema/ArcaneDancerTradition.schema.json +49 -0
  119. package/schema/Aspect.schema.json +50 -0
  120. package/schema/Attribute.schema.json +57 -0
  121. package/schema/CombatTechnique_Close.schema.json +127 -0
  122. package/schema/CombatTechnique_Ranged.schema.json +83 -0
  123. package/schema/Condition.schema.json +84 -0
  124. package/schema/Culture.schema.json +858 -0
  125. package/schema/DerivedCharacteristic.schema.json +90 -0
  126. package/schema/Element.schema.json +45 -0
  127. package/schema/ExperienceLevel.schema.json +84 -0
  128. package/schema/EyeColor.schema.json +45 -0
  129. package/schema/HairColor.schema.json +45 -0
  130. package/schema/Lessons_Curriculum.schema.json +500 -0
  131. package/schema/Lessons_Guideline.schema.json +51 -0
  132. package/schema/Locale.schema.json +45 -0
  133. package/schema/MetaCondition.schema.json +85 -0
  134. package/schema/Property.schema.json +49 -0
  135. package/schema/Race.schema.json +724 -0
  136. package/schema/Region.schema.json +45 -0
  137. package/schema/Service.schema.json +58 -0
  138. package/schema/SexPractice.schema.json +72 -0
  139. package/schema/Skill.schema.json +278 -0
  140. package/schema/SkillGroup.schema.json +56 -0
  141. package/schema/SkillModificationIncrement.schema.json +98 -0
  142. package/schema/SocialStatus.schema.json +45 -0
  143. package/schema/State.schema.json +58 -0
  144. package/schema/TargetCategory.schema.json +51 -0
  145. package/schema/_ActivatableSkill.schema.json +1534 -0
  146. package/schema/_CommonnessRatedAdvantageDisadvantage.schema.json +22 -0
  147. package/schema/_ImprovementCost.schema.json +15 -0
  148. package/schema/_Prerequisite.schema.json +519 -0
  149. package/schema/_Sex.schema.json +36 -0
  150. package/schema/_SkillCheck.schema.json +94 -0
  151. package/schema/magicalActions/AnimistPower.schema.json +411 -0
  152. package/schema/magicalActions/AnimistPower_Tribe.schema.json +45 -0
  153. package/schema/magicalActions/Curse.schema.json +378 -0
  154. package/schema/magicalActions/DominationRitual.schema.json +288 -0
  155. package/schema/magicalActions/ElvenMagicalSong.schema.json +194 -0
  156. package/schema/magicalActions/GeodeRitual.schema.json +303 -0
  157. package/schema/magicalActions/JesterTrick.schema.json +292 -0
  158. package/schema/magicalActions/MagicalDance.schema.json +328 -0
  159. package/schema/magicalActions/MagicalMelody.schema.json +254 -0
  160. package/schema/magicalActions/MagicalRune.schema.json +426 -0
  161. package/schema/magicalActions/ZibiljaRitual.schema.json +159 -0
  162. package/schema/magicalActions/_MusicTradition.schema.json +44 -0
  163. package/schema/magicalActions/_SkillReference.schema.json +26 -0
  164. package/schema/rule/FocusRule.schema.json +71 -0
  165. package/schema/rule/FocusRule_Subject.schema.json +46 -0
  166. package/schema/rule/OptionalRule.schema.json +96 -0
  167. package/schema/source/Publication.schema.json +165 -0
  168. package/schema/source/_Erratum.schema.json +37 -0
  169. package/schema/source/_PublicationRef.schema.json +242 -0
@@ -0,0 +1,22 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema",
3
+ "$id": "_CommonnessRatedAdvantageDisadvantage.schema.json",
4
+ "definitions": {
5
+ "CommonnessRatedAdvantageDisadvantage": {
6
+ "title": "Commonness-rated Advantage/Disadvantage",
7
+ "description": "Reference to a commonness-rated advantage or disadvantage. Commonness-rating terms used in the source books are strongly recommended, common, uncommon, suggested and unsuitable.",
8
+ "type": "object",
9
+ "properties": {
10
+ "id": {
11
+ "description": "The advantage's or disadvantage's identifier.",
12
+ "type": "integer",
13
+ "minimum": 1
14
+ }
15
+ },
16
+ "required": [
17
+ "id"
18
+ ],
19
+ "additionalProperties": false
20
+ }
21
+ }
22
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema",
3
+ "$id": "_ImprovementCost.schema.json",
4
+ "definitions": {
5
+ "ImprovementCost": {
6
+ "title": "Improvement Cost",
7
+ "enum": [
8
+ "A",
9
+ "B",
10
+ "C",
11
+ "D"
12
+ ]
13
+ }
14
+ }
15
+ }
@@ -0,0 +1,519 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema",
3
+ "$id": "_Prerequisite.schema.json",
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
+ }
16
+ },
17
+ "required": [
18
+ "tag"
19
+ ],
20
+ "additionalProperties": false
21
+ },
22
+ {
23
+ "type": "object",
24
+ "properties": {
25
+ "tag": {
26
+ "const": "ReplaceWith"
27
+ },
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
+ }
35
+ },
36
+ "minProperties": 1,
37
+ "additionalProperties": false
38
+ }
39
+ },
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"
57
+ },
58
+ "id": {
59
+ "$ref": "./_Sex.schema.json#/definitions/BinarySex"
60
+ },
61
+ "display_option": {
62
+ "$ref": "#/definitions/Single/DisplayOption/T"
63
+ }
64
+ },
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"
80
+ },
81
+ "id": {
82
+ "$ref": "#/definitions/Single/Race/Identifier"
83
+ },
84
+ "active": {
85
+ "type": "boolean"
86
+ },
87
+ "display_option": {
88
+ "$ref": "#/definitions/Single/DisplayOption/T"
89
+ }
90
+ },
91
+ "required": [
92
+ "tag",
93
+ "id",
94
+ "active"
95
+ ],
96
+ "additionalProperties": false
97
+ },
98
+ "Identifier": {
99
+ "oneOf": [
100
+ {
101
+ "$ref": "#/definitions/Single/Race/SingleIdentifier"
102
+ },
103
+ {
104
+ "$ref": "#/definitions/Single/Race/MultipleIdentifiers"
105
+ }
106
+ ]
107
+ },
108
+ "SingleIdentifier": {
109
+ "type": "number",
110
+ "minimum": 1
111
+ },
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"
131
+ },
132
+ "display_option": {
133
+ "$ref": "#/definitions/Single/DisplayOption/T"
134
+ }
135
+ },
136
+ "required": [
137
+ "tag",
138
+ "id"
139
+ ],
140
+ "additionalProperties": false
141
+ },
142
+ "Identifier": {
143
+ "oneOf": [
144
+ {
145
+ "$ref": "#/definitions/Single/Culture/SingleIdentifier"
146
+ },
147
+ {
148
+ "$ref": "#/definitions/Single/Culture/MultipleIdentifiers"
149
+ }
150
+ ]
151
+ },
152
+ "SingleIdentifier": {
153
+ "type": "number",
154
+ "minimum": 1
155
+ },
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"
171
+ },
172
+ "id": {
173
+ "$ref": "#/definitions/Single/Rule/Identifier"
174
+ },
175
+ "display_option": {
176
+ "$ref": "#/definitions/Single/DisplayOption/T"
177
+ }
178
+ },
179
+ "required": [
180
+ "tag",
181
+ "id"
182
+ ],
183
+ "additionalProperties": false
184
+ },
185
+ "Identifier": {
186
+ "oneOf": [
187
+ {
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
220
+ }
221
+ ]
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"
238
+ }
239
+ },
240
+ "required": [
241
+ "tag",
242
+ "id"
243
+ ],
244
+ "additionalProperties": false
245
+ }
246
+ },
247
+ "PrimaryAttribute": {
248
+ "T": {
249
+ "title": "Primary Attribute Prerequisite",
250
+ "type": "object",
251
+ "properties": {
252
+ "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"
258
+ },
259
+ "value": {
260
+ "description": "Required value of the attribute",
261
+ "type": "integer",
262
+ "minimum": 9
263
+ },
264
+ "display_option": {
265
+ "$ref": "#/definitions/Single/DisplayOption/T"
266
+ }
267
+ },
268
+ "required": [
269
+ "tag",
270
+ "category",
271
+ "value"
272
+ ],
273
+ "additionalProperties": false
274
+ },
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.",
308
+ "type": "object",
309
+ "properties": {
310
+ "tag": {
311
+ "const": "Pact"
312
+ },
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.",
320
+ "type": "array",
321
+ "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"
332
+ }
333
+ },
334
+ "required": [
335
+ "tag",
336
+ "category_id"
337
+ ],
338
+ "additionalProperties": false
339
+ },
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.",
350
+ "type": "object",
351
+ "properties": {
352
+ "tag": {
353
+ "const": "SocialStatus"
354
+ },
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"
363
+ }
364
+ },
365
+ "required": [
366
+ "tag",
367
+ "id"
368
+ ],
369
+ "additionalProperties": false
370
+ }
371
+ },
372
+ "Influence": {
373
+ "T": {
374
+ "title": "Influence Prerequisite",
375
+ "type": "object",
376
+ "properties": {
377
+ "tag": {
378
+ "const": "Influence"
379
+ },
380
+ "id": {
381
+ "description": "The influence' identifier.",
382
+ "type": "integer",
383
+ "minimum": 1
384
+ },
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"
391
+ }
392
+ },
393
+ "required": [
394
+ "tag",
395
+ "id",
396
+ "active"
397
+ ],
398
+ "additionalProperties": false
399
+ }
400
+ }
401
+ },
402
+ "Group": {
403
+ "DerivedCharacteristic": {
404
+ "oneOf": [
405
+ {
406
+ "$ref": "#/definitions/Single/Rule/T"
407
+ }
408
+ ]
409
+ },
410
+ "Publication": {
411
+ "oneOf": [
412
+ {
413
+ "$ref": "#/definitions/Single/Publication/T"
414
+ }
415
+ ]
416
+ },
417
+ "ArcaneTradition": {
418
+ "oneOf": [
419
+ {
420
+ "$ref": "#/definitions/Single/Sex/T"
421
+ },
422
+ {
423
+ "$ref": "#/definitions/Single/Culture/T"
424
+ }
425
+ ]
426
+ },
427
+ "GeodeRitual": {
428
+ "oneOf": [
429
+ {
430
+ "$ref": "#/definitions/Single/Influence/T"
431
+ }
432
+ ]
433
+ }
434
+ },
435
+ "Collection": {},
436
+ "GroupCollection": {
437
+ "DerivedCharacteristic": {
438
+ "type": "object",
439
+ "properties": {
440
+ "tag": {
441
+ "const": "Plain"
442
+ },
443
+ "value": {
444
+ "type": "array",
445
+ "items": {
446
+ "$ref": "#/definitions/Group/DerivedCharacteristic"
447
+ },
448
+ "minItems": 1
449
+ }
450
+ },
451
+ "required": [
452
+ "tag",
453
+ "value"
454
+ ],
455
+ "additionalProperties": false
456
+ },
457
+ "Publication": {
458
+ "type": "object",
459
+ "properties": {
460
+ "tag": {
461
+ "const": "Plain"
462
+ },
463
+ "value": {
464
+ "type": "array",
465
+ "items": {
466
+ "$ref": "#/definitions/Group/Publication"
467
+ },
468
+ "minItems": 1
469
+ }
470
+ },
471
+ "required": [
472
+ "tag",
473
+ "value"
474
+ ],
475
+ "additionalProperties": false
476
+ },
477
+ "ArcaneTradition": {
478
+ "type": "object",
479
+ "properties": {
480
+ "tag": {
481
+ "const": "Plain"
482
+ },
483
+ "value": {
484
+ "type": "array",
485
+ "items": {
486
+ "$ref": "#/definitions/Group/ArcaneTradition"
487
+ },
488
+ "minItems": 1
489
+ }
490
+ },
491
+ "required": [
492
+ "tag",
493
+ "value"
494
+ ],
495
+ "additionalProperties": false
496
+ },
497
+ "GeodeRitual": {
498
+ "type": "object",
499
+ "properties": {
500
+ "tag": {
501
+ "const": "Plain"
502
+ },
503
+ "value": {
504
+ "type": "array",
505
+ "items": {
506
+ "$ref": "#/definitions/Group/GeodeRitual"
507
+ },
508
+ "minItems": 1
509
+ }
510
+ },
511
+ "required": [
512
+ "tag",
513
+ "value"
514
+ ],
515
+ "additionalProperties": false
516
+ }
517
+ }
518
+ }
519
+ }
@@ -0,0 +1,36 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema",
3
+ "$id": "_Sex.schema.json",
4
+ "$ref": "#/definitions/BinarySex",
5
+ "definitions": {
6
+ "BinarySex": {
7
+ "title": "Binary Sex",
8
+ "oneOf": [
9
+ {
10
+ "type": "object",
11
+ "properties": {
12
+ "tag": {
13
+ "const": "Male"
14
+ }
15
+ },
16
+ "required": [
17
+ "tag"
18
+ ],
19
+ "additionalProperties": false
20
+ },
21
+ {
22
+ "type": "object",
23
+ "properties": {
24
+ "tag": {
25
+ "const": "Female"
26
+ }
27
+ },
28
+ "required": [
29
+ "tag"
30
+ ],
31
+ "additionalProperties": false
32
+ }
33
+ ]
34
+ }
35
+ }
36
+ }
@@ -0,0 +1,94 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema",
3
+ "$id": "_SkillCheck.schema.json",
4
+ "definitions": {
5
+ "SkillCheck": {
6
+ "title": "Skill Check",
7
+ "description": "The attributes' identifiers of the skill check.",
8
+ "type": "array",
9
+ "items": [
10
+ {
11
+ "$ref": "#/definitions/Attribute"
12
+ },
13
+ {
14
+ "$ref": "#/definitions/Attribute"
15
+ },
16
+ {
17
+ "$ref": "#/definitions/Attribute"
18
+ }
19
+ ],
20
+ "minItems": 3,
21
+ "maxItems": 3,
22
+ "additionalItems": false
23
+ },
24
+ "Attribute": {
25
+ "type": "object",
26
+ "properties": {
27
+ "id": {
28
+ "description": "The attribute's identifier.",
29
+ "type": "integer",
30
+ "maximum": 8,
31
+ "minimum": 1
32
+ }
33
+ },
34
+ "required": [
35
+ "id"
36
+ ],
37
+ "additionalProperties": false
38
+ },
39
+ "SkillCheckPenalty": {
40
+ "title": "Skill Check Penalty",
41
+ "description": "A specific value that represents a penalty for the associated skill check.",
42
+ "oneOf": [
43
+ {
44
+ "type": "object",
45
+ "properties": {
46
+ "tag": {
47
+ "const": "SPI"
48
+ }
49
+ },
50
+ "required": [
51
+ "tag"
52
+ ],
53
+ "additionalProperties": false
54
+ },
55
+ {
56
+ "type": "object",
57
+ "properties": {
58
+ "tag": {
59
+ "const": "SPI/2"
60
+ }
61
+ },
62
+ "required": [
63
+ "tag"
64
+ ],
65
+ "additionalProperties": false
66
+ },
67
+ {
68
+ "type": "object",
69
+ "properties": {
70
+ "tag": {
71
+ "const": "TOU"
72
+ }
73
+ },
74
+ "required": [
75
+ "tag"
76
+ ],
77
+ "additionalProperties": false
78
+ },
79
+ {
80
+ "type": "object",
81
+ "properties": {
82
+ "tag": {
83
+ "const": "SPI/TOU"
84
+ }
85
+ },
86
+ "required": [
87
+ "tag"
88
+ ],
89
+ "additionalProperties": false
90
+ }
91
+ ]
92
+ }
93
+ }
94
+ }