optolith-database-schema 0.4.1 → 0.5.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 (118) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/lib/config.d.ts +2 -0
  3. package/lib/config.js +2 -0
  4. package/lib/main.d.ts +6 -3
  5. package/lib/main.js +55 -28
  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.d.ts +5 -2
  65. package/lib/validation/schema.js +8 -6
  66. package/package.json +2 -2
  67. package/schema/Cantrip.schema.json +1 -2
  68. package/schema/Culture.schema.json +51 -10
  69. package/schema/Lessons_Curriculum.schema.json +8 -12
  70. package/schema/Lessons_Guideline.schema.json +1 -1
  71. package/schema/Patron.schema.json +24 -6
  72. package/schema/Profession.schema.json +57 -15
  73. package/schema/Race.schema.json +121 -13
  74. package/schema/TargetCategory.schema.json +1 -2
  75. package/schema/_Activatable.schema.json +5 -181
  76. package/schema/_ActivatableSelectOptionCategory.schema.json +4 -4
  77. package/schema/_ActivatableSkillCost.schema.json +61 -0
  78. package/schema/_ActivatableSkillDuration.schema.json +1 -3
  79. package/schema/_ActivatableSkillRange.schema.json +19 -0
  80. package/schema/_DiseasePoison.schema.json +0 -2
  81. package/schema/_Identifier.schema.json +2099 -347
  82. package/schema/_IdentifierGroup.schema.json +601 -0
  83. package/schema/_Prerequisite.schema.json +1284 -1049
  84. package/schema/_ResponsiveText.schema.json +2 -2
  85. package/schema/_SimpleReferences.schema.json +54 -130
  86. package/schema/equipment/EquipmentPackage.schema.json +1 -1
  87. package/schema/equipment/item/Elixir.schema.json +123 -0
  88. package/schema/equipment/item/EquipmentOfBlessedOnes.schema.json +4 -1
  89. package/schema/equipment/item/Poison.schema.json +431 -68
  90. package/schema/equipment/item/ToolOfTheTrade.schema.json +15 -4
  91. package/schema/equipment/item/_Herbary.schema.json +42 -0
  92. package/schema/equipment/item/_MeleeWeapon.schema.json +1 -13
  93. package/schema/equipment/item/_RangedWeapon.schema.json +1 -2
  94. package/schema/magicalActions/AnimistPower.schema.json +0 -1
  95. package/schema/magicalActions/MagicalRune.schema.json +38 -3
  96. package/schema/magicalActions/_SkillReference.schema.json +15 -3
  97. package/schema/prerequisites/PrerequisiteGroups.schema.json +0 -96
  98. package/schema/prerequisites/single/ActivatablePrerequisite.schema.json +2 -87
  99. package/schema/prerequisites/single/AnimistPowerPrerequisite.schema.json +1 -2
  100. package/schema/prerequisites/single/CulturePrerequisite.schema.json +2 -1
  101. package/schema/prerequisites/single/EnhancementPrerequisite.schema.json +1 -1
  102. package/schema/prerequisites/single/InfluencePrerequisite.schema.json +1 -2
  103. package/schema/prerequisites/single/RacePrerequisite.schema.json +2 -1
  104. package/schema/prerequisites/single/RatedPrerequisite.schema.json +1 -28
  105. package/schema/prerequisites/single/RulePrerequisite.schema.json +1 -1
  106. package/schema/prerequisites/single/SocialStatusPrerequisite.schema.json +1 -3
  107. package/schema/prerequisites/single/StatePrerequisite.schema.json +1 -1
  108. package/schema/rule/CoreRule.schema.json +3 -5
  109. package/schema/source/_PublicationRef.schema.json +1 -2
  110. package/schema/specialAbility/BlessedTradition.schema.json +2 -2
  111. package/schema/specialAbility/CombatStyleSpecialAbility.schema.json +511 -1
  112. package/schema/specialAbility/LiturgicalStyleSpecialAbility.schema.json +511 -1
  113. package/schema/specialAbility/MagicStyleSpecialAbility.schema.json +511 -1
  114. package/schema/specialAbility/MagicalTradition.schema.json +1 -2
  115. package/schema/specialAbility/PactGift.schema.json +1 -1
  116. package/schema/specialAbility/SkillStyleSpecialAbility.schema.json +511 -1
  117. package/schema/specialAbility/sub/_LanguageScript.schema.json +1 -3
  118. package/schema/_CommonnessRatedAdvantageDisadvantage.schema.json +0 -22
@@ -25,7 +25,7 @@
25
25
  "description": "A text from the source that can be also displayed in small areas using a\ncompressed version. It is used as a replacement for a generated text while\nthe generated text is still provided and should be used.",
26
26
  "type": "object",
27
27
  "properties": {
28
- "default": {
28
+ "full": {
29
29
  "description": "The full replacement string. It must contain `$1`, which is going to be\nreplaced with the generated string, so additional information can be\nprovided without duplicating concrete numeric values.",
30
30
  "type": "string",
31
31
  "minLength": 1,
@@ -39,7 +39,7 @@
39
39
  }
40
40
  },
41
41
  "required": [
42
- "default",
42
+ "full",
43
43
  "compressed"
44
44
  ],
45
45
  "additionalProperties": false
@@ -6,9 +6,7 @@
6
6
  "type": "object",
7
7
  "properties": {
8
8
  "id": {
9
- "description": "The focus rule subject's identifier.",
10
- "type": "integer",
11
- "minimum": 1
9
+ "$ref": "./_Identifier.schema.json#/$defs/SubjectIdentifier"
12
10
  }
13
11
  },
14
12
  "required": [
@@ -20,9 +18,7 @@
20
18
  "type": "object",
21
19
  "properties": {
22
20
  "id": {
23
- "description": "The race's identifier.",
24
- "type": "integer",
25
- "minimum": 1
21
+ "$ref": "./_Identifier.schema.json#/$defs/RaceIdentifier"
26
22
  }
27
23
  },
28
24
  "required": [
@@ -34,9 +30,7 @@
34
30
  "type": "object",
35
31
  "properties": {
36
32
  "id": {
37
- "description": "The culture's identifier.",
38
- "type": "integer",
39
- "minimum": 1
33
+ "$ref": "./_Identifier.schema.json#/$defs/CultureIdentifier"
40
34
  }
41
35
  },
42
36
  "required": [
@@ -48,9 +42,7 @@
48
42
  "type": "object",
49
43
  "properties": {
50
44
  "id": {
51
- "description": "The profession's identifier.",
52
- "type": "integer",
53
- "minimum": 1
45
+ "$ref": "./_Identifier.schema.json#/$defs/ProfessionIdentifier"
54
46
  }
55
47
  },
56
48
  "required": [
@@ -62,9 +54,7 @@
62
54
  "type": "object",
63
55
  "properties": {
64
56
  "id": {
65
- "description": "The profession variant's identifier.",
66
- "type": "integer",
67
- "minimum": 1
57
+ "$ref": "./_Identifier.schema.json#/$defs/ProfessionVariantIdentifier"
68
58
  }
69
59
  },
70
60
  "required": [
@@ -76,10 +66,7 @@
76
66
  "type": "object",
77
67
  "properties": {
78
68
  "id": {
79
- "description": "The attribute's identifier.",
80
- "type": "integer",
81
- "maximum": 8,
82
- "minimum": 1
69
+ "$ref": "./_Identifier.schema.json#/$defs/AttributeIdentifier"
83
70
  }
84
71
  },
85
72
  "required": [
@@ -91,9 +78,7 @@
91
78
  "type": "object",
92
79
  "properties": {
93
80
  "id": {
94
- "description": "The skill's identifier.",
95
- "type": "integer",
96
- "minimum": 1
81
+ "$ref": "./_Identifier.schema.json#/$defs/SkillIdentifier"
97
82
  }
98
83
  },
99
84
  "required": [
@@ -105,10 +90,7 @@
105
90
  "type": "object",
106
91
  "properties": {
107
92
  "id": {
108
- "description": "The skill group's identifier.",
109
- "type": "integer",
110
- "maximum": 5,
111
- "minimum": 1
93
+ "$ref": "./_Identifier.schema.json#/$defs/SkillGroupIdentifier"
112
94
  }
113
95
  },
114
96
  "required": [
@@ -120,8 +102,7 @@
120
102
  "type": "object",
121
103
  "properties": {
122
104
  "id": {
123
- "description": "The combat technique's identifier.",
124
- "$ref": "./_Identifier.schema.json#/$defs/CombatTechniqueIdentifier"
105
+ "$ref": "./_IdentifierGroup.schema.json#/$defs/CombatTechniqueIdentifier"
125
106
  }
126
107
  },
127
108
  "required": [
@@ -133,9 +114,7 @@
133
114
  "type": "object",
134
115
  "properties": {
135
116
  "id": {
136
- "description": "The close combat technique's identifier.",
137
- "type": "integer",
138
- "minimum": 1
117
+ "$ref": "./_Identifier.schema.json#/$defs/CloseCombatTechniqueIdentifier"
139
118
  }
140
119
  },
141
120
  "required": [
@@ -147,9 +126,7 @@
147
126
  "type": "object",
148
127
  "properties": {
149
128
  "id": {
150
- "description": "The ranged combat technique's identifier.",
151
- "type": "integer",
152
- "minimum": 1
129
+ "$ref": "./_Identifier.schema.json#/$defs/RangedCombatTechniqueIdentifier"
153
130
  }
154
131
  },
155
132
  "required": [
@@ -161,9 +138,7 @@
161
138
  "type": "object",
162
139
  "properties": {
163
140
  "id": {
164
- "description": "The magical tradition's identifier.",
165
- "type": "integer",
166
- "minimum": 1
141
+ "$ref": "./_Identifier.schema.json#/$defs/MagicalTraditionIdentifier"
167
142
  }
168
143
  },
169
144
  "required": [
@@ -175,9 +150,7 @@
175
150
  "type": "object",
176
151
  "properties": {
177
152
  "id": {
178
- "description": "The cantrip's identifier.",
179
- "type": "integer",
180
- "minimum": 1
153
+ "$ref": "./_Identifier.schema.json#/$defs/CantripIdentifier"
181
154
  }
182
155
  },
183
156
  "required": [
@@ -189,9 +162,7 @@
189
162
  "type": "object",
190
163
  "properties": {
191
164
  "id": {
192
- "description": "The spell's identifier.",
193
- "type": "integer",
194
- "minimum": 1
165
+ "$ref": "./_Identifier.schema.json#/$defs/SpellIdentifier"
195
166
  }
196
167
  },
197
168
  "required": [
@@ -203,9 +174,19 @@
203
174
  "type": "object",
204
175
  "properties": {
205
176
  "id": {
206
- "description": "The ritual's identifier.",
207
- "type": "integer",
208
- "minimum": 1
177
+ "$ref": "./_Identifier.schema.json#/$defs/RitualIdentifier"
178
+ }
179
+ },
180
+ "required": [
181
+ "id"
182
+ ],
183
+ "additionalProperties": false
184
+ },
185
+ "SpellworkReference": {
186
+ "type": "object",
187
+ "properties": {
188
+ "id": {
189
+ "$ref": "./_IdentifierGroup.schema.json#/$defs/SpellworkIdentifier"
209
190
  }
210
191
  },
211
192
  "required": [
@@ -217,9 +198,7 @@
217
198
  "type": "object",
218
199
  "properties": {
219
200
  "id": {
220
- "description": "The property's identifier.",
221
- "type": "integer",
222
- "minimum": 1
201
+ "$ref": "./_Identifier.schema.json#/$defs/PropertyIdentifier"
223
202
  }
224
203
  },
225
204
  "required": [
@@ -231,9 +210,7 @@
231
210
  "type": "object",
232
211
  "properties": {
233
212
  "id": {
234
- "description": "The blessed tradition's identifier.",
235
- "type": "integer",
236
- "minimum": 1
213
+ "$ref": "./_Identifier.schema.json#/$defs/BlessedTraditionIdentifier"
237
214
  }
238
215
  },
239
216
  "required": [
@@ -245,9 +222,7 @@
245
222
  "type": "object",
246
223
  "properties": {
247
224
  "id": {
248
- "description": "The blessing's identifier.",
249
- "type": "integer",
250
- "minimum": 1
225
+ "$ref": "./_Identifier.schema.json#/$defs/BlessingIdentifier"
251
226
  }
252
227
  },
253
228
  "required": [
@@ -259,9 +234,7 @@
259
234
  "type": "object",
260
235
  "properties": {
261
236
  "id": {
262
- "description": "The liturgical chant's identifier.",
263
- "type": "integer",
264
- "minimum": 1
237
+ "$ref": "./_Identifier.schema.json#/$defs/LiturgicalChantIdentifier"
265
238
  }
266
239
  },
267
240
  "required": [
@@ -273,9 +246,7 @@
273
246
  "type": "object",
274
247
  "properties": {
275
248
  "id": {
276
- "description": "The ceremony's identifier.",
277
- "type": "integer",
278
- "minimum": 1
249
+ "$ref": "./_Identifier.schema.json#/$defs/CeremonyIdentifier"
279
250
  }
280
251
  },
281
252
  "required": [
@@ -287,9 +258,7 @@
287
258
  "type": "object",
288
259
  "properties": {
289
260
  "id": {
290
- "description": "The aspect's identifier.",
291
- "type": "integer",
292
- "minimum": 1
261
+ "$ref": "./_Identifier.schema.json#/$defs/AspectIdentifier"
293
262
  }
294
263
  },
295
264
  "required": [
@@ -301,9 +270,7 @@
301
270
  "type": "object",
302
271
  "properties": {
303
272
  "id": {
304
- "description": "The advantage's identifier.",
305
- "type": "integer",
306
- "minimum": 1
273
+ "$ref": "./_Identifier.schema.json#/$defs/AdvantageIdentifier"
307
274
  }
308
275
  },
309
276
  "required": [
@@ -311,13 +278,11 @@
311
278
  ],
312
279
  "additionalProperties": false
313
280
  },
314
- "AdvancedSpecialAbilityReference": {
281
+ "DisadvantageReference": {
315
282
  "type": "object",
316
283
  "properties": {
317
284
  "id": {
318
- "description": "The advanced special ability's identifier.",
319
- "type": "integer",
320
- "minimum": 1
285
+ "$ref": "./_Identifier.schema.json#/$defs/DisadvantageIdentifier"
321
286
  }
322
287
  },
323
288
  "required": [
@@ -329,9 +294,7 @@
329
294
  "type": "object",
330
295
  "properties": {
331
296
  "id": {
332
- "description": "The language's identifier.",
333
- "type": "integer",
334
- "minimum": 1
297
+ "$ref": "./_Identifier.schema.json#/$defs/LanguageIdentifier"
335
298
  }
336
299
  },
337
300
  "required": [
@@ -343,9 +306,7 @@
343
306
  "type": "object",
344
307
  "properties": {
345
308
  "id": {
346
- "description": "The script's identifier.",
347
- "type": "integer",
348
- "minimum": 1
309
+ "$ref": "./_Identifier.schema.json#/$defs/ScriptIdentifier"
349
310
  }
350
311
  },
351
312
  "required": [
@@ -357,10 +318,7 @@
357
318
  "type": "object",
358
319
  "properties": {
359
320
  "id": {
360
- "description": "The social status's identifier.",
361
- "type": "integer",
362
- "maximum": 5,
363
- "minimum": 1
321
+ "$ref": "./_Identifier.schema.json#/$defs/SocialStatusIdentifier"
364
322
  }
365
323
  },
366
324
  "required": [
@@ -372,9 +330,7 @@
372
330
  "type": "object",
373
331
  "properties": {
374
332
  "id": {
375
- "description": "The institution's curriculum's identifier.",
376
- "type": "integer",
377
- "minimum": 1
333
+ "$ref": "./_Identifier.schema.json#/$defs/CurriculumIdentifier"
378
334
  }
379
335
  },
380
336
  "required": [
@@ -386,10 +342,7 @@
386
342
  "type": "object",
387
343
  "properties": {
388
344
  "id": {
389
- "description": "The institution's guideline's identifier.",
390
- "type": "integer",
391
- "maximum": 6,
392
- "minimum": 1
345
+ "$ref": "./_Identifier.schema.json#/$defs/GuidelineIdentifier"
393
346
  }
394
347
  },
395
348
  "required": [
@@ -401,9 +354,7 @@
401
354
  "type": "object",
402
355
  "properties": {
403
356
  "id": {
404
- "description": "The animal type's identifier.",
405
- "type": "integer",
406
- "minimum": 1
357
+ "$ref": "./_Identifier.schema.json#/$defs/AnimalTypeIdentifier"
407
358
  }
408
359
  },
409
360
  "required": [
@@ -415,10 +366,7 @@
415
366
  "type": "object",
416
367
  "properties": {
417
368
  "id": {
418
- "description": "The target category's identifier.",
419
- "type": "integer",
420
- "maximum": 24,
421
- "minimum": 1
369
+ "$ref": "./_Identifier.schema.json#/$defs/TargetCategoryIdentifier"
422
370
  }
423
371
  },
424
372
  "required": [
@@ -430,9 +378,7 @@
430
378
  "type": "object",
431
379
  "properties": {
432
380
  "id": {
433
- "description": "The patron category's identifier.",
434
- "type": "integer",
435
- "minimum": 1
381
+ "$ref": "./_Identifier.schema.json#/$defs/PatronCategoryIdentifier"
436
382
  }
437
383
  },
438
384
  "required": [
@@ -444,9 +390,7 @@
444
390
  "type": "object",
445
391
  "properties": {
446
392
  "id": {
447
- "description": "The personality trait's identifier.",
448
- "type": "integer",
449
- "minimum": 1
393
+ "$ref": "./_Identifier.schema.json#/$defs/PersonalityTraitIdentifier"
450
394
  }
451
395
  },
452
396
  "required": [
@@ -458,9 +402,7 @@
458
402
  "type": "object",
459
403
  "properties": {
460
404
  "id": {
461
- "description": "The hair color's identifier.",
462
- "type": "integer",
463
- "minimum": 1
405
+ "$ref": "./_Identifier.schema.json#/$defs/HairColorIdentifier"
464
406
  }
465
407
  },
466
408
  "required": [
@@ -472,9 +414,7 @@
472
414
  "type": "object",
473
415
  "properties": {
474
416
  "id": {
475
- "description": "The hair color's identifier.",
476
- "type": "integer",
477
- "minimum": 1
417
+ "$ref": "./_Identifier.schema.json#/$defs/EyeColorIdentifier"
478
418
  }
479
419
  },
480
420
  "required": [
@@ -486,9 +426,7 @@
486
426
  "type": "object",
487
427
  "properties": {
488
428
  "id": {
489
- "description": "The pact category's identifier.",
490
- "type": "integer",
491
- "minimum": 1
429
+ "$ref": "./_Identifier.schema.json#/$defs/PactCategoryIdentifier"
492
430
  }
493
431
  },
494
432
  "required": [
@@ -500,9 +438,7 @@
500
438
  "type": "object",
501
439
  "properties": {
502
440
  "id": {
503
- "description": "The domain's identifier.",
504
- "type": "integer",
505
- "minimum": 1
441
+ "$ref": "./_Identifier.schema.json#/$defs/PactDomainIdentifier"
506
442
  }
507
443
  },
508
444
  "required": [
@@ -514,9 +450,7 @@
514
450
  "type": "object",
515
451
  "properties": {
516
452
  "id": {
517
- "description": "The patron's identifier.",
518
- "type": "integer",
519
- "minimum": 1
453
+ "$ref": "./_Identifier.schema.json#/$defs/PatronIdentifier"
520
454
  }
521
455
  },
522
456
  "required": [
@@ -528,10 +462,7 @@
528
462
  "type": "object",
529
463
  "properties": {
530
464
  "id": {
531
- "description": "The tribe's identifier.",
532
- "type": "integer",
533
- "maximum": 6,
534
- "minimum": 1
465
+ "$ref": "./_Identifier.schema.json#/$defs/AnimistTribeIdentifier"
535
466
  }
536
467
  },
537
468
  "required": [
@@ -543,10 +474,7 @@
543
474
  "type": "object",
544
475
  "properties": {
545
476
  "id": {
546
- "description": "The element's identifier.",
547
- "type": "integer",
548
- "maximum": 6,
549
- "minimum": 1
477
+ "$ref": "./_Identifier.schema.json#/$defs/ElementIdentifier"
550
478
  }
551
479
  },
552
480
  "required": [
@@ -558,9 +486,7 @@
558
486
  "type": "object",
559
487
  "properties": {
560
488
  "id": {
561
- "description": "The weapon's identifier.",
562
- "type": "integer",
563
- "minimum": 1
489
+ "$ref": "./_Identifier.schema.json#/$defs/WeaponIdentifier"
564
490
  }
565
491
  },
566
492
  "required": [
@@ -572,9 +498,7 @@
572
498
  "type": "object",
573
499
  "properties": {
574
500
  "id": {
575
- "description": "The armor's identifier.",
576
- "type": "integer",
577
- "minimum": 1
501
+ "$ref": "./_Identifier.schema.json#/$defs/ArmorIdentifier"
578
502
  }
579
503
  },
580
504
  "required": [
@@ -44,7 +44,7 @@
44
44
  "properties": {
45
45
  "id": {
46
46
  "description": "The item's identifier.",
47
- "$ref": "../_Identifier.schema.json#/$defs/EquipmentIdentifier"
47
+ "$ref": "../_IdentifierGroup.schema.json#/$defs/EquipmentIdentifier"
48
48
  },
49
49
  "number": {
50
50
  "description": "The number of how often the item is included in the package.",
@@ -0,0 +1,123 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2019-09/schema",
3
+ "$id": "/equipment/item/Elixir.schema.json",
4
+ "$ref": "#/$defs/Elixir",
5
+ "$defs": {
6
+ "Elixir": {
7
+ "type": "object",
8
+ "properties": {
9
+ "id": {
10
+ "description": "The elixir's identifier. An unique, increasing integer.",
11
+ "type": "integer",
12
+ "minimum": 1
13
+ },
14
+ "cost_per_ingredient_level": {
15
+ "description": "The cost per ingredient level in silverthalers.",
16
+ "type": "number"
17
+ },
18
+ "laboratory": {
19
+ "description": "The laboratory level needed to brew the elixir.",
20
+ "$ref": "./_Herbary.schema.json#/$defs/LaboratoryLevel"
21
+ },
22
+ "brewing_difficulty": {
23
+ "description": "The brewing difficulty, which represents the challenge of creating an\nelixir.",
24
+ "type": "integer"
25
+ },
26
+ "trade_secret": {
27
+ "description": "AP value and prerequisites of the elixir recipe’s trade secret.",
28
+ "$ref": "./_Herbary.schema.json#/$defs/RecipeTradeSecret"
29
+ },
30
+ "src": {
31
+ "$ref": "../../source/_PublicationRef.schema.json#/$defs/PublicationRefs"
32
+ },
33
+ "translations": {
34
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
35
+ "type": "object",
36
+ "patternProperties": {
37
+ "^[a-z]{2}-[A-Z]{2}$": {
38
+ "$ref": "#/$defs/ElixirTranslation"
39
+ }
40
+ },
41
+ "minProperties": 1,
42
+ "additionalProperties": false
43
+ }
44
+ },
45
+ "required": [
46
+ "id",
47
+ "cost_per_ingredient_level",
48
+ "laboratory",
49
+ "brewing_difficulty",
50
+ "trade_secret",
51
+ "src",
52
+ "translations"
53
+ ],
54
+ "additionalProperties": false
55
+ },
56
+ "ElixirTranslation": {
57
+ "type": "object",
58
+ "properties": {
59
+ "name": {
60
+ "description": "The name of the elixir.",
61
+ "$ref": "../../_NonEmptyString.schema.json#/$defs/NonEmptyString"
62
+ },
63
+ "alternative_names": {
64
+ "description": "A list of alternative names.",
65
+ "type": "array",
66
+ "items": {
67
+ "$ref": "../../_AlternativeNames.schema.json#/$defs/AlternativeName"
68
+ },
69
+ "minItems": 1
70
+ },
71
+ "common_ingredients": {
72
+ "description": "A list of common ingredients.",
73
+ "type": "array",
74
+ "items": {
75
+ "$ref": "../../_NonEmptyString.schema.json#/$defs/NonEmptyString"
76
+ },
77
+ "minItems": 1,
78
+ "uniqueItems": true
79
+ },
80
+ "brewing_process_prerequisites": {
81
+ "description": "Prerequsites for the brewing process, if any.",
82
+ "$ref": "../../_NonEmptyString.schema.json#/$defs/NonEmptyMarkdown"
83
+ },
84
+ "quality_levels": {
85
+ "description": "The list of effects for each quality level. The first element\nrepresents QL 1, the second element QL 2, and so on.",
86
+ "type": "array",
87
+ "items": [
88
+ {
89
+ "$ref": "../../_NonEmptyString.schema.json#/$defs/NonEmptyMarkdown"
90
+ },
91
+ {
92
+ "$ref": "../../_NonEmptyString.schema.json#/$defs/NonEmptyMarkdown"
93
+ },
94
+ {
95
+ "$ref": "../../_NonEmptyString.schema.json#/$defs/NonEmptyMarkdown"
96
+ },
97
+ {
98
+ "$ref": "../../_NonEmptyString.schema.json#/$defs/NonEmptyMarkdown"
99
+ },
100
+ {
101
+ "$ref": "../../_NonEmptyString.schema.json#/$defs/NonEmptyMarkdown"
102
+ },
103
+ {
104
+ "$ref": "../../_NonEmptyString.schema.json#/$defs/NonEmptyMarkdown"
105
+ }
106
+ ],
107
+ "minItems": 6,
108
+ "maxItems": 6,
109
+ "additionalItems": false
110
+ },
111
+ "errata": {
112
+ "$ref": "../../source/_Erratum.schema.json#/$defs/Errata"
113
+ }
114
+ },
115
+ "required": [
116
+ "name",
117
+ "common_ingredients",
118
+ "quality_levels"
119
+ ],
120
+ "additionalProperties": false
121
+ }
122
+ }
123
+ }
@@ -16,7 +16,10 @@
16
16
  },
17
17
  "associated_tradition": {
18
18
  "description": "The deity associated with the equipment item.",
19
- "$ref": "../../_SimpleReferences.schema.json#/$defs/BlessedTraditionReference"
19
+ "type": "array",
20
+ "items": {
21
+ "$ref": "../../_SimpleReferences.schema.json#/$defs/BlessedTraditionReference"
22
+ }
20
23
  },
21
24
  "src": {
22
25
  "$ref": "../../source/_PublicationRef.schema.json#/$defs/PublicationRefs"