optolith-database-schema 0.8.1 → 0.10.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 (106) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/lib/config.d.ts +2 -0
  3. package/lib/config.js +2 -0
  4. package/lib/main.js +8 -3
  5. package/lib/types/Advantage.d.ts +13 -2
  6. package/lib/types/Disadvantage.d.ts +12 -2
  7. package/lib/types/Profession.d.ts +12 -2
  8. package/lib/types/Talisman.d.ts +6 -6
  9. package/lib/types/_Activatable.d.ts +113 -4
  10. package/lib/types/_Activatable.js +4 -35
  11. package/lib/types/_ActivatableSelectOptionCategory.d.ts +30 -0
  12. package/lib/types/_Identifier.d.ts +9 -0
  13. package/lib/types/_IdentifierGroup.d.ts +2 -2
  14. package/lib/types/equipment/item/Poison.d.ts +21 -1
  15. package/lib/types/equipment/item/Poison.js +1 -0
  16. package/lib/types/equipment/item/Weapon.d.ts +4 -3
  17. package/lib/types/equipment/item/sub/ArmorType.d.ts +3 -3
  18. package/lib/types/magicalActions/MagicalRune.d.ts +82 -16
  19. package/lib/types/prerequisites/DisplayOption.d.ts +14 -0
  20. package/lib/types/prerequisites/PrerequisiteGroups.d.ts +23 -1
  21. package/lib/types/prerequisites/single/AncestorBloodPrerequisite.d.ts +5 -0
  22. package/lib/types/prerequisites/single/AncestorBloodPrerequisite.js +1 -0
  23. package/lib/types/prerequisites/single/RatedMinimumNumberPrerequisite.d.ts +67 -0
  24. package/lib/types/prerequisites/single/RatedMinimumNumberPrerequisite.js +6 -0
  25. package/lib/types/prerequisites/single/RatedPrerequisite.d.ts +0 -55
  26. package/lib/types/prerequisites/single/RatedSumPrerequisite.d.ts +19 -0
  27. package/lib/types/prerequisites/single/RatedSumPrerequisite.js +1 -0
  28. package/lib/types/prerequisites/single/SexualCharacteristicPrerequisite.d.ts +11 -0
  29. package/lib/types/prerequisites/single/SexualCharacteristicPrerequisite.js +5 -0
  30. package/lib/types/prerequisites/single/TextPrerequisite.d.ts +29 -0
  31. package/lib/types/prerequisites/single/TextPrerequisite.js +5 -0
  32. package/lib/types/specialAbility/AdvancedCombatSpecialAbility.d.ts +11 -0
  33. package/lib/types/specialAbility/CeremonialItemSpecialAbility.d.ts +7 -2
  34. package/lib/types/specialAbility/CombatSpecialAbility.d.ts +6 -2
  35. package/lib/types/specialAbility/FatePointSpecialAbility.d.ts +5 -0
  36. package/lib/types/specialAbility/GeneralSpecialAbility.d.ts +12 -2
  37. package/lib/types/specialAbility/KarmaSpecialAbility.d.ts +7 -2
  38. package/lib/types/specialAbility/MagicalSign.d.ts +38 -0
  39. package/lib/types/specialAbility/MagicalSign.js +5 -0
  40. package/lib/types/specialAbility/MagicalSpecialAbility.d.ts +11 -2
  41. package/lib/types/specialAbility/MagicalTradition.d.ts +2 -2
  42. package/lib/types/specialAbility/ProtectiveWardingCircleSpecialAbility.d.ts +6 -0
  43. package/lib/types/specialAbility/SikaryanDrainSpecialAbility.d.ts +5 -0
  44. package/lib/types/specialAbility/VampiricGift.d.ts +7 -2
  45. package/lib/types/traditionArtifacts/ArcaneOrbEnchantment.d.ts +2 -2
  46. package/lib/types/traditionArtifacts/AttireEnchantment.d.ts +2 -2
  47. package/lib/types/traditionArtifacts/BowlEnchantment.d.ts +2 -2
  48. package/lib/types/traditionArtifacts/CauldronEnchantment.d.ts +2 -2
  49. package/lib/types/traditionArtifacts/ChronicleEnchantment.d.ts +2 -2
  50. package/lib/types/traditionArtifacts/DaggerRitual.d.ts +3 -3
  51. package/lib/types/traditionArtifacts/FoolsHatEnchantment.d.ts +2 -2
  52. package/lib/types/traditionArtifacts/InstrumentEnchantment.d.ts +2 -2
  53. package/lib/types/traditionArtifacts/Krallenkettenzauber.d.ts +2 -2
  54. package/lib/types/traditionArtifacts/OrbEnchantment.d.ts +2 -2
  55. package/lib/types/traditionArtifacts/RingEnchantment.d.ts +2 -2
  56. package/lib/types/traditionArtifacts/SickleRitual.d.ts +2 -2
  57. package/lib/types/traditionArtifacts/SpellSwordEnchantment.d.ts +7 -2
  58. package/lib/types/traditionArtifacts/StaffEnchantment.d.ts +13 -3
  59. package/lib/types/traditionArtifacts/ToyEnchantment.d.ts +3 -3
  60. package/lib/types/traditionArtifacts/Trinkhornzauber.d.ts +2 -2
  61. package/lib/types/traditionArtifacts/WandEnchantment.d.ts +2 -7
  62. package/lib/types/traditionArtifacts/WeaponEnchantment.d.ts +4 -3
  63. package/lib/validation/schema.js +2 -2
  64. package/package.json +1 -1
  65. package/schema/Advantage.schema.json +11 -0
  66. package/schema/Disadvantage.schema.json +8 -0
  67. package/schema/Profession.schema.json +8 -0
  68. package/schema/Talisman.schema.json +2 -4
  69. package/schema/_Activatable.schema.json +166 -0
  70. package/schema/_ActivatableSelectOptionCategory.schema.json +141 -0
  71. package/schema/_Identifier.schema.json +18 -0
  72. package/schema/_IdentifierGroup.schema.json +6 -0
  73. package/schema/equipment/item/Poison.schema.json +55 -1
  74. package/schema/equipment/item/Weapon.schema.json +5 -1
  75. package/schema/equipment/item/sub/ArmorType.schema.json +1 -2
  76. package/schema/magicalActions/MagicalRune.schema.json +213 -21
  77. package/schema/prerequisites/DisplayOption.schema.json +4 -0
  78. package/schema/prerequisites/PrerequisiteGroups.schema.json +98 -2
  79. package/schema/prerequisites/single/AncestorBloodPrerequisite.schema.json +14 -0
  80. package/schema/prerequisites/single/RatedMinimumNumberPrerequisite.schema.json +166 -0
  81. package/schema/prerequisites/single/RatedPrerequisite.schema.json +0 -125
  82. package/schema/prerequisites/single/RatedSumPrerequisite.schema.json +33 -0
  83. package/schema/prerequisites/single/SexualCharacteristicPrerequisite.schema.json +26 -0
  84. package/schema/prerequisites/single/TextPrerequisite.schema.json +14 -0
  85. package/schema/specialAbility/AdvancedCombatSpecialAbility.schema.json +8 -0
  86. package/schema/specialAbility/CeremonialItemSpecialAbility.schema.json +4 -0
  87. package/schema/specialAbility/CombatSpecialAbility.schema.json +4 -0
  88. package/schema/specialAbility/CombatStyleSpecialAbility.schema.json +42 -27
  89. package/schema/specialAbility/FatePointSpecialAbility.schema.json +4 -0
  90. package/schema/specialAbility/GeneralSpecialAbility.schema.json +8 -0
  91. package/schema/specialAbility/KarmaSpecialAbility.schema.json +4 -0
  92. package/schema/specialAbility/LiturgicalStyleSpecialAbility.schema.json +42 -27
  93. package/schema/specialAbility/MagicStyleSpecialAbility.schema.json +42 -27
  94. package/schema/specialAbility/MagicalSign.schema.json +72 -0
  95. package/schema/specialAbility/MagicalSpecialAbility.schema.json +8 -0
  96. package/schema/specialAbility/MagicalTradition.schema.json +0 -2
  97. package/schema/specialAbility/ProtectiveWardingCircleSpecialAbility.schema.json +6 -0
  98. package/schema/specialAbility/SikaryanDrainSpecialAbility.schema.json +4 -0
  99. package/schema/specialAbility/SkillStyleSpecialAbility.schema.json +42 -27
  100. package/schema/specialAbility/VampiricGift.schema.json +4 -0
  101. package/schema/traditionArtifacts/DaggerRitual.schema.json +0 -1
  102. package/schema/traditionArtifacts/SpellSwordEnchantment.schema.json +4 -0
  103. package/schema/traditionArtifacts/StaffEnchantment.schema.json +8 -1
  104. package/schema/traditionArtifacts/ToyEnchantment.schema.json +0 -1
  105. package/schema/traditionArtifacts/WandEnchantment.schema.json +1 -9
  106. package/schema/traditionArtifacts/WeaponEnchantment.schema.json +8 -1
@@ -12,8 +12,12 @@
12
12
  "type": "integer",
13
13
  "minimum": 1
14
14
  },
15
- "option": {
16
- "$ref": "#/$defs/MagicalRuneOption"
15
+ "options": {
16
+ "description": "The options the magical rune has, if any.\n\nIf there are multiple options, the magical rune may be activated for each\noption, that is, multiple times.",
17
+ "type": "array",
18
+ "items": {
19
+ "$ref": "#/$defs/MagicalRuneOption"
20
+ }
17
21
  },
18
22
  "check": {
19
23
  "description": "Lists the linked three attributes used to make a skill check.",
@@ -33,7 +37,7 @@
33
37
  },
34
38
  "improvement_cost": {
35
39
  "description": "States which column is used to improve the skill.",
36
- "$ref": "../_ImprovementCost.schema.json#/$defs/ImprovementCost"
40
+ "$ref": "#/$defs/MagicalRuneImprovementCost"
37
41
  },
38
42
  "src": {
39
43
  "$ref": "../source/_PublicationRef.schema.json#/$defs/PublicationRefs"
@@ -68,6 +72,10 @@
68
72
  "description": "The name of the magical rune.\n\nIf the rune has an option, the option’s name will/should not be included in\nthe name as well as its surrounding parenthesis. It will/should be combined\non demand.",
69
73
  "$ref": "../_NonEmptyString.schema.json#/$defs/NonEmptyString"
70
74
  },
75
+ "name_in_library": {
76
+ "description": "The full name of the entry as stated in the sources. Only use when `name`\nneeds to be different from full name for text generation purposes.",
77
+ "$ref": "../_NonEmptyString.schema.json#/$defs/NonEmptyString"
78
+ },
71
79
  "native_name": {
72
80
  "description": "The native name of the magical rune.",
73
81
  "$ref": "../_NonEmptyString.schema.json#/$defs/NonEmptyString"
@@ -182,7 +190,6 @@
182
190
  },
183
191
  "required": [
184
192
  "name",
185
- "native_name",
186
193
  "effect",
187
194
  "cost",
188
195
  "crafting_time",
@@ -196,33 +203,33 @@
196
203
  "type": "object",
197
204
  "properties": {
198
205
  "tag": {
199
- "const": "CloseCombatTechnique"
206
+ "const": "CombatTechnique"
200
207
  },
201
- "close_combat_technique": {
202
- "$ref": "#/$defs/MagicalRuneCloseCombatTechniqueCheckPenalty"
208
+ "combat_technique": {
209
+ "$ref": "#/$defs/MagicalRuneCombatTechniqueCheckPenalty"
203
210
  }
204
211
  },
205
212
  "required": [
206
213
  "tag",
207
- "close_combat_technique"
214
+ "combat_technique"
208
215
  ],
209
216
  "additionalProperties": false
210
217
  }
211
218
  ]
212
219
  },
213
- "MagicalRuneCloseCombatTechniqueCheckPenalty": {
220
+ "MagicalRuneCombatTechniqueCheckPenalty": {
214
221
  "type": "object",
215
222
  "properties": {
216
223
  "map": {
217
- "description": "A map from close combat techniques to their modifiers.",
224
+ "description": "A map from combat techniques to their modifiers.",
218
225
  "type": "array",
219
226
  "items": {
220
- "$ref": "#/$defs/MagicalRuneCloseCombatTechniqueCheckPenaltyMapping"
227
+ "$ref": "#/$defs/MagicalRuneCombatTechniqueCheckPenaltyMapping"
221
228
  },
222
229
  "minItems": 1
223
230
  },
224
231
  "rest": {
225
- "$ref": "#/$defs/MagicalRuneCloseCombatTechniqueCheckPenaltyRest"
232
+ "$ref": "#/$defs/MagicalRuneCombatTechniqueCheckPenaltyRest"
226
233
  }
227
234
  },
228
235
  "required": [
@@ -231,29 +238,29 @@
231
238
  ],
232
239
  "additionalProperties": false
233
240
  },
234
- "MagicalRuneCloseCombatTechniqueCheckPenaltyMapping": {
241
+ "MagicalRuneCombatTechniqueCheckPenaltyMapping": {
235
242
  "type": "object",
236
243
  "properties": {
237
- "combat_technique_id": {
238
- "description": "The close combat technique's identifier.",
239
- "$ref": "../_Identifier.schema.json#/$defs/CloseCombatTechniqueIdentifier"
244
+ "id": {
245
+ "description": "The combat technique's identifier.",
246
+ "$ref": "../_IdentifierGroup.schema.json#/$defs/CombatTechniqueIdentifier"
240
247
  },
241
248
  "modifier": {
242
- "description": "The check modifier for the specified close combat technique.",
249
+ "description": "The check modifier for the specified combat technique.",
243
250
  "type": "integer"
244
251
  }
245
252
  },
246
253
  "required": [
247
- "combat_technique_id",
254
+ "id",
248
255
  "modifier"
249
256
  ],
250
257
  "additionalProperties": false
251
258
  },
252
- "MagicalRuneCloseCombatTechniqueCheckPenaltyRest": {
259
+ "MagicalRuneCombatTechniqueCheckPenaltyRest": {
253
260
  "type": "object",
254
261
  "properties": {
255
262
  "modifier": {
256
- "description": "The check modifier for close combat techniques not specified in `map`.",
263
+ "description": "The check modifier for combat techniques not specified in `map`.",
257
264
  "type": "integer"
258
265
  }
259
266
  },
@@ -287,6 +294,61 @@
287
294
  "additionalProperties": false
288
295
  },
289
296
  "MagicalRuneCost": {
297
+ "oneOf": [
298
+ {
299
+ "type": "object",
300
+ "properties": {
301
+ "tag": {
302
+ "const": "Single"
303
+ },
304
+ "single": {
305
+ "$ref": "#/$defs/SingleMagicalRuneCost"
306
+ }
307
+ },
308
+ "required": [
309
+ "tag",
310
+ "single"
311
+ ],
312
+ "additionalProperties": false
313
+ },
314
+ {
315
+ "type": "object",
316
+ "properties": {
317
+ "tag": {
318
+ "const": "Disjunction"
319
+ },
320
+ "disjunction": {
321
+ "$ref": "#/$defs/MagicalRuneCostDisjunction"
322
+ }
323
+ },
324
+ "required": [
325
+ "tag",
326
+ "disjunction"
327
+ ],
328
+ "additionalProperties": false
329
+ },
330
+ {
331
+ "type": "object",
332
+ "properties": {
333
+ "tag": {
334
+ "const": "DerivedFromOption"
335
+ },
336
+ "derived_from_option": {
337
+ "type": "object",
338
+ "properties": {},
339
+ "required": [],
340
+ "additionalProperties": false
341
+ }
342
+ },
343
+ "required": [
344
+ "tag",
345
+ "derived_from_option"
346
+ ],
347
+ "additionalProperties": false
348
+ }
349
+ ]
350
+ },
351
+ "MagicalRuneOptionCost": {
290
352
  "oneOf": [
291
353
  {
292
354
  "type": "object",
@@ -442,9 +504,76 @@
442
504
  ],
443
505
  "additionalProperties": false
444
506
  },
507
+ "MagicalRuneImprovementCost": {
508
+ "oneOf": [
509
+ {
510
+ "type": "object",
511
+ "properties": {
512
+ "tag": {
513
+ "const": "Constant"
514
+ },
515
+ "constant": {
516
+ "$ref": "#/$defs/ConstantMagicalRuneImprovementCost"
517
+ }
518
+ },
519
+ "required": [
520
+ "tag",
521
+ "constant"
522
+ ],
523
+ "additionalProperties": false
524
+ },
525
+ {
526
+ "type": "object",
527
+ "properties": {
528
+ "tag": {
529
+ "const": "DerivedFromOption"
530
+ },
531
+ "derived_from_option": {
532
+ "type": "object",
533
+ "properties": {},
534
+ "required": [],
535
+ "additionalProperties": false
536
+ }
537
+ },
538
+ "required": [
539
+ "tag",
540
+ "derived_from_option"
541
+ ],
542
+ "additionalProperties": false
543
+ }
544
+ ]
545
+ },
546
+ "ConstantMagicalRuneImprovementCost": {
547
+ "type": "object",
548
+ "properties": {
549
+ "value": {
550
+ "$ref": "../_ImprovementCost.schema.json#/$defs/ImprovementCost"
551
+ }
552
+ },
553
+ "required": [
554
+ "value"
555
+ ],
556
+ "additionalProperties": false
557
+ },
445
558
  "MagicalRuneOption": {
446
559
  "type": "object",
447
560
  "properties": {
561
+ "id": {
562
+ "description": "The magical rune option’s identifier. An unique, increasing integer.",
563
+ "type": "integer",
564
+ "minimum": 1
565
+ },
566
+ "cost": {
567
+ "description": "The option-specific AE cost.",
568
+ "$ref": "#/$defs/MagicalRuneOptionCost"
569
+ },
570
+ "improvement_cost": {
571
+ "description": "The option-specific improvement cost.",
572
+ "$ref": "../_ImprovementCost.schema.json#/$defs/ImprovementCost"
573
+ },
574
+ "suboption": {
575
+ "$ref": "#/$defs/MagicalRuneSuboption"
576
+ },
448
577
  "translations": {
449
578
  "description": "All translations for the entry, identified by IETF language tag (BCP47).",
450
579
  "type": "object",
@@ -458,20 +587,83 @@
458
587
  }
459
588
  },
460
589
  "required": [
590
+ "id",
591
+ "cost",
592
+ "improvement_cost",
593
+ "suboption",
461
594
  "translations"
462
595
  ],
463
596
  "additionalProperties": false
464
597
  },
598
+ "MagicalRuneSuboption": {
599
+ "oneOf": [
600
+ {
601
+ "type": "object",
602
+ "properties": {
603
+ "tag": {
604
+ "const": "Custom"
605
+ },
606
+ "custom": {
607
+ "$ref": "#/$defs/CustomMagicalRuneSuboption"
608
+ }
609
+ },
610
+ "required": [
611
+ "tag",
612
+ "custom"
613
+ ],
614
+ "additionalProperties": false
615
+ }
616
+ ]
617
+ },
618
+ "CustomMagicalRuneSuboption": {
619
+ "type": "object",
620
+ "properties": {
621
+ "translations": {
622
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
623
+ "type": "object",
624
+ "patternProperties": {
625
+ "^[a-z]{2}-[A-Z]{2}$": {
626
+ "$ref": "#/$defs/CustomMagicalRuneSuboptionTranslation"
627
+ }
628
+ },
629
+ "minProperties": 1,
630
+ "additionalProperties": false
631
+ }
632
+ },
633
+ "required": [
634
+ "translations"
635
+ ],
636
+ "additionalProperties": false
637
+ },
638
+ "CustomMagicalRuneSuboptionTranslation": {
639
+ "type": "object",
640
+ "properties": {
641
+ "examples": {
642
+ "description": "One or more examples for the suboption.",
643
+ "type": "array",
644
+ "items": {
645
+ "$ref": "../_NonEmptyString.schema.json#/$defs/NonEmptyString"
646
+ }
647
+ }
648
+ },
649
+ "required": [],
650
+ "additionalProperties": false
651
+ },
465
652
  "MagicalRuneOptionTranslation": {
466
653
  "type": "object",
467
654
  "properties": {
468
655
  "name": {
469
656
  "description": "The name of the option.\n\nThe surrounding parenthesis will/should not be included, they will/should\nbe generated.",
470
657
  "$ref": "../_NonEmptyString.schema.json#/$defs/NonEmptyString"
658
+ },
659
+ "native_name": {
660
+ "description": "The native name of the magical rune option.",
661
+ "$ref": "../_NonEmptyString.schema.json#/$defs/NonEmptyString"
471
662
  }
472
663
  },
473
664
  "required": [
474
- "name"
665
+ "name",
666
+ "native_name"
475
667
  ],
476
668
  "additionalProperties": false
477
669
  }
@@ -45,6 +45,10 @@
45
45
  "ReplacementDisplayOption": {
46
46
  "type": "object",
47
47
  "properties": {
48
+ "sentence_type": {
49
+ "description": "If the replacement text is a sentence or sentence-like fragment, this\nproperty ensures it is integrated into the prerequisite string correctly.\n\nA standalone sentence is connected to the previous prerequisite string with\na period and a period is also added at the end of the sentence\nautomatically, if it is not present. A connected sentence is connected to\nthe previous prerequisite string with a semicolon and a period is not added\nto the end of the sentence. In this case, if there are prerequisites after\nthis one, they will be connected using a semicolon again, unless a\ndifferent punctuation mark is present at the end of the given text.",
50
+ "$ref": "./single/TextPrerequisite.schema.json#/$defs/SentenceType"
51
+ },
48
52
  "translations": {
49
53
  "description": "All translations for the entry, identified by IETF language tag (BCP47).",
50
54
  "type": "object",
@@ -243,7 +243,7 @@
243
243
  "const": "RatedMinimumNumber"
244
244
  },
245
245
  "rated_minimum_number": {
246
- "$ref": "./single/RatedPrerequisite.schema.json#/$defs/RatedMinimumNumberPrerequisite"
246
+ "$ref": "./single/RatedMinimumNumberPrerequisite.schema.json#/$defs/RatedMinimumNumberPrerequisite"
247
247
  }
248
248
  },
249
249
  "required": [
@@ -252,6 +252,22 @@
252
252
  ],
253
253
  "additionalProperties": false
254
254
  },
255
+ {
256
+ "type": "object",
257
+ "properties": {
258
+ "tag": {
259
+ "const": "RatedSum"
260
+ },
261
+ "rated_sum": {
262
+ "$ref": "./single/RatedSumPrerequisite.schema.json#/$defs/RatedSumPrerequisite"
263
+ }
264
+ },
265
+ "required": [
266
+ "tag",
267
+ "rated_sum"
268
+ ],
269
+ "additionalProperties": false
270
+ },
255
271
  {
256
272
  "type": "object",
257
273
  "properties": {
@@ -283,6 +299,22 @@
283
299
  "text"
284
300
  ],
285
301
  "additionalProperties": false
302
+ },
303
+ {
304
+ "type": "object",
305
+ "properties": {
306
+ "tag": {
307
+ "const": "SexualCharacteristic"
308
+ },
309
+ "sexual_characteristic": {
310
+ "$ref": "./single/SexualCharacteristicPrerequisite.schema.json#/$defs/SexualCharacteristicPrerequisite"
311
+ }
312
+ },
313
+ "required": [
314
+ "tag",
315
+ "sexual_characteristic"
316
+ ],
317
+ "additionalProperties": false
286
318
  }
287
319
  ]
288
320
  },
@@ -590,7 +622,7 @@
590
622
  "const": "RatedMinimumNumber"
591
623
  },
592
624
  "rated_minimum_number": {
593
- "$ref": "./single/RatedPrerequisite.schema.json#/$defs/RatedMinimumNumberPrerequisite"
625
+ "$ref": "./single/RatedMinimumNumberPrerequisite.schema.json#/$defs/RatedMinimumNumberPrerequisite"
594
626
  }
595
627
  },
596
628
  "required": [
@@ -599,6 +631,22 @@
599
631
  ],
600
632
  "additionalProperties": false
601
633
  },
634
+ {
635
+ "type": "object",
636
+ "properties": {
637
+ "tag": {
638
+ "const": "RatedSum"
639
+ },
640
+ "rated_sum": {
641
+ "$ref": "./single/RatedSumPrerequisite.schema.json#/$defs/RatedSumPrerequisite"
642
+ }
643
+ },
644
+ "required": [
645
+ "tag",
646
+ "rated_sum"
647
+ ],
648
+ "additionalProperties": false
649
+ },
602
650
  {
603
651
  "type": "object",
604
652
  "properties": {
@@ -630,6 +678,38 @@
630
678
  "text"
631
679
  ],
632
680
  "additionalProperties": false
681
+ },
682
+ {
683
+ "type": "object",
684
+ "properties": {
685
+ "tag": {
686
+ "const": "NoOtherAncestorBloodAdvantage"
687
+ },
688
+ "no_other_ancestor_blood_advantage": {
689
+ "$ref": "./single/AncestorBloodPrerequisite.schema.json#/$defs/AncestorBloodPrerequisite"
690
+ }
691
+ },
692
+ "required": [
693
+ "tag",
694
+ "no_other_ancestor_blood_advantage"
695
+ ],
696
+ "additionalProperties": false
697
+ },
698
+ {
699
+ "type": "object",
700
+ "properties": {
701
+ "tag": {
702
+ "const": "SexualCharacteristic"
703
+ },
704
+ "sexual_characteristic": {
705
+ "$ref": "./single/SexualCharacteristicPrerequisite.schema.json#/$defs/SexualCharacteristicPrerequisite"
706
+ }
707
+ },
708
+ "required": [
709
+ "tag",
710
+ "sexual_characteristic"
711
+ ],
712
+ "additionalProperties": false
633
713
  }
634
714
  ]
635
715
  },
@@ -926,6 +1006,22 @@
926
1006
  "publication"
927
1007
  ],
928
1008
  "additionalProperties": false
1009
+ },
1010
+ {
1011
+ "type": "object",
1012
+ "properties": {
1013
+ "tag": {
1014
+ "const": "SexualCharacteristic"
1015
+ },
1016
+ "sexual_characteristic": {
1017
+ "$ref": "./single/SexualCharacteristicPrerequisite.schema.json#/$defs/SexualCharacteristicPrerequisite"
1018
+ }
1019
+ },
1020
+ "required": [
1021
+ "tag",
1022
+ "sexual_characteristic"
1023
+ ],
1024
+ "additionalProperties": false
929
1025
  }
930
1026
  ]
931
1027
  }
@@ -0,0 +1,14 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2019-09/schema",
3
+ "$id": "/prerequisites/single/AncestorBloodPrerequisite.schema.json",
4
+ "$defs": {
5
+ "AncestorBloodPrerequisite": {
6
+ "title": "Ancestor Blood Prerequisite",
7
+ "description": "Requires that no other Ancestor Blood advantage is active.",
8
+ "type": "object",
9
+ "properties": {},
10
+ "required": [],
11
+ "additionalProperties": false
12
+ }
13
+ }
14
+ }
@@ -0,0 +1,166 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2019-09/schema",
3
+ "$id": "/prerequisites/single/RatedMinimumNumberPrerequisite.schema.json",
4
+ "$defs": {
5
+ "RatedMinimumNumberPrerequisite": {
6
+ "title": "Rated Minimum Number Prerequisite",
7
+ "type": "object",
8
+ "properties": {
9
+ "number": {
10
+ "description": "The minimum number of skills that need to be on the defined minimum skill\nrating.",
11
+ "type": "integer",
12
+ "minimum": 1
13
+ },
14
+ "value": {
15
+ "description": "The minimum skill rating the defined minimum number of skills need to be\non.",
16
+ "type": "integer",
17
+ "minimum": 1
18
+ },
19
+ "targets": {
20
+ "description": "The targets that contribute to satisfying the prerequisite.",
21
+ "$ref": "#/$defs/RatedMinimumNumberPrerequisiteTarget"
22
+ },
23
+ "display_option": {
24
+ "$ref": "../DisplayOption.schema.json#/$defs/DisplayOption"
25
+ }
26
+ },
27
+ "required": [
28
+ "number",
29
+ "value",
30
+ "targets"
31
+ ],
32
+ "additionalProperties": false
33
+ },
34
+ "RatedMinimumNumberPrerequisiteTarget": {
35
+ "oneOf": [
36
+ {
37
+ "type": "object",
38
+ "properties": {
39
+ "tag": {
40
+ "const": "Skills"
41
+ },
42
+ "skills": {
43
+ "$ref": "#/$defs/RatedMinimumNumberPrerequisiteSkillsTarget"
44
+ }
45
+ },
46
+ "required": [
47
+ "tag",
48
+ "skills"
49
+ ],
50
+ "additionalProperties": false
51
+ },
52
+ {
53
+ "type": "object",
54
+ "properties": {
55
+ "tag": {
56
+ "const": "CombatTechniques"
57
+ },
58
+ "combat_techniques": {
59
+ "$ref": "#/$defs/CombatTechniquesTarget"
60
+ }
61
+ },
62
+ "required": [
63
+ "tag",
64
+ "combat_techniques"
65
+ ],
66
+ "additionalProperties": false
67
+ },
68
+ {
69
+ "type": "object",
70
+ "properties": {
71
+ "tag": {
72
+ "const": "Spellworks"
73
+ },
74
+ "spellworks": {
75
+ "$ref": "../../_SimpleReferences.schema.json#/$defs/PropertyReference"
76
+ }
77
+ },
78
+ "required": [
79
+ "tag",
80
+ "spellworks"
81
+ ],
82
+ "additionalProperties": false
83
+ },
84
+ {
85
+ "type": "object",
86
+ "properties": {
87
+ "tag": {
88
+ "const": "Liturgies"
89
+ },
90
+ "liturgies": {
91
+ "$ref": "../../_SimpleReferences.schema.json#/$defs/AspectReference"
92
+ }
93
+ },
94
+ "required": [
95
+ "tag",
96
+ "liturgies"
97
+ ],
98
+ "additionalProperties": false
99
+ }
100
+ ]
101
+ },
102
+ "RatedMinimumNumberPrerequisiteSkillsTarget": {
103
+ "type": "object",
104
+ "properties": {
105
+ "list": {
106
+ "description": "The skills that are taken into account for satisfying the prerequisite.",
107
+ "type": "array",
108
+ "items": {
109
+ "$ref": "../../_SimpleReferences.schema.json#/$defs/SkillReference"
110
+ },
111
+ "minItems": 2,
112
+ "uniqueItems": true
113
+ }
114
+ },
115
+ "required": [
116
+ "list"
117
+ ],
118
+ "additionalProperties": false
119
+ },
120
+ "CombatTechniquesTarget": {
121
+ "type": "object",
122
+ "properties": {
123
+ "group": {
124
+ "$ref": "#/$defs/CombatTechniquesTargetGroup"
125
+ }
126
+ },
127
+ "required": [
128
+ "group"
129
+ ],
130
+ "additionalProperties": false
131
+ },
132
+ "CombatTechniquesTargetGroup": {
133
+ "enum": [
134
+ "All",
135
+ "Close",
136
+ "Ranged"
137
+ ]
138
+ },
139
+ "RatedMinimumNumberPrerequisiteSpellworksTarget": {
140
+ "type": "object",
141
+ "properties": {
142
+ "property": {
143
+ "description": "The skills that are taken into account for satisfying the prerequisite.",
144
+ "$ref": "../../_SimpleReferences.schema.json#/$defs/PropertyReference"
145
+ }
146
+ },
147
+ "required": [
148
+ "property"
149
+ ],
150
+ "additionalProperties": false
151
+ },
152
+ "RatedMinimumNumberPrerequisiteLiturgiesTarget": {
153
+ "type": "object",
154
+ "properties": {
155
+ "aspect": {
156
+ "description": "The skills that are taken into account for satisfying the prerequisite.",
157
+ "$ref": "../../_SimpleReferences.schema.json#/$defs/AspectReference"
158
+ }
159
+ },
160
+ "required": [
161
+ "aspect"
162
+ ],
163
+ "additionalProperties": false
164
+ }
165
+ }
166
+ }