optolith-database-schema 0.2.3 → 0.4.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 (518) hide show
  1. package/CHANGELOG.md +73 -0
  2. package/lib/config.d.ts +302 -250
  3. package/lib/config.js +302 -250
  4. package/lib/main.d.ts +3 -2
  5. package/lib/main.js +1 -1
  6. package/lib/types/Advantage.d.ts +23 -25
  7. package/lib/types/AnimalDisease.d.ts +18 -212
  8. package/lib/types/AnimalType.d.ts +9 -13
  9. package/lib/types/ArcaneBardTradition.d.ts +3 -27
  10. package/lib/types/ArcaneDancerTradition.d.ts +3 -27
  11. package/lib/types/Aspect.d.ts +14 -19
  12. package/lib/types/Attribute.d.ts +17 -23
  13. package/lib/types/Blessing.d.ts +81 -94
  14. package/lib/types/Cantrip.d.ts +135 -148
  15. package/lib/types/Ceremony.d.ts +55 -88
  16. package/lib/types/CombatTechnique_Close.d.ts +30 -39
  17. package/lib/types/CombatTechnique_Ranged.d.ts +28 -26
  18. package/lib/types/Condition.d.ts +18 -31
  19. package/lib/types/Continent.d.ts +9 -13
  20. package/lib/types/Culture.d.ts +164 -290
  21. package/lib/types/Culture.js +38 -0
  22. package/lib/types/DerivedCharacteristic.d.ts +4 -10
  23. package/lib/types/Disadvantage.d.ts +20 -24
  24. package/lib/types/Disease.d.ts +5 -140
  25. package/lib/types/Element.d.ts +9 -13
  26. package/lib/types/ExperienceLevel.d.ts +3 -9
  27. package/lib/types/EyeColor.d.ts +9 -13
  28. package/lib/types/FamiliarsTrick.d.ts +201 -290
  29. package/lib/types/HairColor.d.ts +9 -13
  30. package/lib/types/Lessons_Curriculum.d.ts +77 -138
  31. package/lib/types/Lessons_Guideline.d.ts +9 -13
  32. package/lib/types/LiturgicalChant.d.ts +55 -88
  33. package/lib/types/Locale.d.ts +1 -1
  34. package/lib/types/Locale.js +1 -1
  35. package/lib/types/MetaCondition.d.ts +18 -31
  36. package/lib/types/PactCategory.d.ts +48 -62
  37. package/lib/types/Patron.d.ts +60 -76
  38. package/lib/types/Patron.js +20 -0
  39. package/lib/types/PatronCategory.d.ts +11 -21
  40. package/lib/types/PersonalityTrait.d.ts +31 -39
  41. package/lib/types/Profession.d.ts +293 -435
  42. package/lib/types/Profession.js +6 -0
  43. package/lib/types/Property.d.ts +9 -13
  44. package/lib/types/Race.d.ts +95 -192
  45. package/lib/types/Race.js +11 -0
  46. package/lib/types/Region.d.ts +9 -13
  47. package/lib/types/Ritual.d.ts +58 -83
  48. package/lib/types/Service.d.ts +19 -25
  49. package/lib/types/Service.js +5 -0
  50. package/lib/types/SexPractice.d.ts +26 -34
  51. package/lib/types/Skill.d.ts +73 -102
  52. package/lib/types/Skill.js +19 -0
  53. package/lib/types/SkillGroup.d.ts +13 -18
  54. package/lib/types/SkillModificationLevel.d.ts +72 -76
  55. package/lib/types/SocialStatus.d.ts +9 -13
  56. package/lib/types/Spell.d.ts +58 -83
  57. package/lib/types/State.d.ts +14 -20
  58. package/lib/types/Talisman.d.ts +40 -54
  59. package/lib/types/Talisman.js +8 -0
  60. package/lib/types/TargetCategory.d.ts +21 -16
  61. package/lib/types/UI.d.ts +1 -5
  62. package/lib/types/_Activatable.d.ts +643 -1221
  63. package/lib/types/_Activatable.js +44 -13
  64. package/lib/types/_ActivatableSelectOptionCategory.d.ts +359 -0
  65. package/lib/types/_ActivatableSelectOptionCategory.js +8 -0
  66. package/lib/types/_ActivatableSkill.d.ts +24 -1013
  67. package/lib/types/_ActivatableSkill.js +1 -31
  68. package/lib/types/_ActivatableSkillCastingTime.d.ts +69 -0
  69. package/lib/types/_ActivatableSkillCastingTime.js +5 -0
  70. package/lib/types/_ActivatableSkillCheckResultBased.d.ts +39 -0
  71. package/lib/types/_ActivatableSkillCheckResultBased.js +16 -0
  72. package/lib/types/_ActivatableSkillCost.d.ts +223 -0
  73. package/lib/types/{prerequisites/single/CommonSuggestedByRCPPrerequisite.js → _ActivatableSkillCost.js} +0 -0
  74. package/lib/types/_ActivatableSkillDuration.d.ts +138 -0
  75. package/lib/types/_ActivatableSkillDuration.js +13 -0
  76. package/lib/types/_ActivatableSkillEffect.d.ts +68 -0
  77. package/lib/types/{equipment/_Armor.js → _ActivatableSkillEffect.js} +0 -3
  78. package/lib/types/_ActivatableSkillRange.d.ts +107 -0
  79. package/lib/types/_ActivatableSkillRange.js +5 -0
  80. package/lib/types/_ActivatableSkillTargetCategory.d.ts +39 -0
  81. package/lib/types/_ActivatableSkillTargetCategory.js +1 -0
  82. package/lib/types/_AlternativeNames.d.ts +11 -0
  83. package/lib/types/_AlternativeNames.js +1 -0
  84. package/lib/types/_ArcaneTradition.d.ts +28 -0
  85. package/lib/types/_ArcaneTradition.js +4 -0
  86. package/lib/types/_Blessed.d.ts +22 -0
  87. package/lib/types/_Blessed.js +1 -0
  88. package/lib/types/_DiseasePoison.d.ts +114 -0
  89. package/lib/types/_DiseasePoison.js +15 -0
  90. package/lib/types/_Enhancements.d.ts +16 -20
  91. package/lib/types/_I18n.d.ts +1 -5
  92. package/lib/types/_Identifier.d.ts +32 -0
  93. package/lib/types/_Identifier.js +32 -0
  94. package/lib/types/_Influence.d.ts +27 -32
  95. package/lib/types/_LocaleMap.d.ts +10 -0
  96. package/lib/types/_LocaleMap.js +1 -0
  97. package/lib/types/_NonEmptyString.d.ts +9 -0
  98. package/lib/types/_NonEmptyString.js +1 -0
  99. package/lib/types/_Prerequisite.d.ts +61 -65
  100. package/lib/types/_ResponsiveText.d.ts +54 -0
  101. package/lib/types/_ResponsiveText.js +1 -0
  102. package/lib/types/_Sex.d.ts +4 -5
  103. package/lib/types/_Sex.js +8 -1
  104. package/lib/types/_SimpleReferences.d.ts +334 -0
  105. package/lib/types/_SimpleReferences.js +1 -0
  106. package/lib/types/_SkillCheck.d.ts +12 -20
  107. package/lib/types/_SkillCheck.js +11 -1
  108. package/lib/types/_Spellwork.d.ts +18 -0
  109. package/lib/types/_Spellwork.js +1 -0
  110. package/lib/types/equipment/EquipmentPackage.d.ts +24 -28
  111. package/lib/types/equipment/item/Alchemicum.d.ts +6 -0
  112. package/lib/types/equipment/item/Alchemicum.js +5 -0
  113. package/lib/types/equipment/item/Ammunition.d.ts +31 -0
  114. package/lib/types/equipment/item/Ammunition.js +5 -0
  115. package/lib/types/equipment/item/Animal.d.ts +18 -0
  116. package/lib/types/equipment/item/Animal.js +5 -0
  117. package/lib/types/equipment/item/AnimalCare.d.ts +48 -0
  118. package/lib/types/equipment/item/AnimalCare.js +5 -0
  119. package/lib/types/equipment/item/Armor.d.ts +185 -0
  120. package/lib/types/equipment/item/Armor.js +5 -0
  121. package/lib/types/equipment/item/BandageOrRemedy.d.ts +36 -0
  122. package/lib/types/equipment/item/BandageOrRemedy.js +5 -0
  123. package/lib/types/equipment/item/Book.d.ts +60 -0
  124. package/lib/types/equipment/item/Book.js +5 -0
  125. package/lib/types/equipment/item/CeremonialItem.d.ts +41 -0
  126. package/lib/types/equipment/item/CeremonialItem.js +5 -0
  127. package/lib/types/equipment/item/Clothes.d.ts +6 -0
  128. package/lib/types/equipment/item/Clothes.js +5 -0
  129. package/lib/types/equipment/item/Container.d.ts +6 -0
  130. package/lib/types/equipment/item/Container.js +5 -0
  131. package/lib/types/equipment/item/EquipmentOfBlessedOnes.d.ts +28 -0
  132. package/lib/types/equipment/item/EquipmentOfBlessedOnes.js +5 -0
  133. package/lib/types/equipment/item/GemOrPreciousStone.d.ts +43 -0
  134. package/lib/types/equipment/item/GemOrPreciousStone.js +5 -0
  135. package/lib/types/equipment/item/IlluminationLightSource.d.ts +62 -0
  136. package/lib/types/equipment/item/IlluminationLightSource.js +9 -0
  137. package/lib/types/equipment/item/IlluminationRefillsOrSupplies.d.ts +6 -0
  138. package/lib/types/equipment/item/IlluminationRefillsOrSupplies.js +5 -0
  139. package/lib/types/equipment/item/Jewelry.d.ts +60 -0
  140. package/lib/types/equipment/item/Jewelry.js +5 -0
  141. package/lib/types/equipment/item/Liebesspielzeug.d.ts +6 -0
  142. package/lib/types/equipment/item/Liebesspielzeug.js +5 -0
  143. package/lib/types/equipment/item/LuxuryGood.d.ts +36 -0
  144. package/lib/types/equipment/item/LuxuryGood.js +5 -0
  145. package/lib/types/equipment/item/MagicalArtifact.d.ts +39 -0
  146. package/lib/types/equipment/item/MagicalArtifact.js +5 -0
  147. package/lib/types/equipment/item/MusicalInstrument.d.ts +22 -0
  148. package/lib/types/equipment/item/MusicalInstrument.js +5 -0
  149. package/lib/types/equipment/item/OrienteeringAid.d.ts +6 -0
  150. package/lib/types/equipment/item/OrienteeringAid.js +5 -0
  151. package/lib/types/equipment/item/Poison.d.ts +165 -0
  152. package/lib/types/equipment/item/Poison.js +12 -0
  153. package/lib/types/equipment/item/RopeOrChain.d.ts +6 -0
  154. package/lib/types/equipment/item/RopeOrChain.js +5 -0
  155. package/lib/types/equipment/item/Stationary.d.ts +6 -0
  156. package/lib/types/equipment/item/Stationary.js +5 -0
  157. package/lib/types/equipment/item/ThievesTool.d.ts +6 -0
  158. package/lib/types/equipment/item/ThievesTool.js +5 -0
  159. package/lib/types/equipment/item/ToolOfTheTrade.d.ts +56 -0
  160. package/lib/types/equipment/item/ToolOfTheTrade.js +5 -0
  161. package/lib/types/equipment/item/TravelGearOrTool.d.ts +6 -0
  162. package/lib/types/equipment/item/TravelGearOrTool.js +5 -0
  163. package/lib/types/equipment/item/Vehicle.d.ts +18 -0
  164. package/lib/types/equipment/item/Vehicle.js +5 -0
  165. package/lib/types/equipment/item/Weapon.d.ts +152 -0
  166. package/lib/types/equipment/item/Weapon.js +5 -0
  167. package/lib/types/equipment/item/WeaponAccessory.d.ts +6 -0
  168. package/lib/types/equipment/item/WeaponAccessory.js +5 -0
  169. package/lib/types/equipment/item/_Item.d.ts +163 -0
  170. package/lib/types/equipment/item/_Item.js +1 -0
  171. package/lib/types/equipment/item/_MeleeWeapon.d.ts +115 -0
  172. package/lib/types/equipment/item/_MeleeWeapon.js +4 -0
  173. package/lib/types/equipment/item/_RangedWeapon.d.ts +110 -0
  174. package/lib/types/equipment/item/_RangedWeapon.js +4 -0
  175. package/lib/types/equipment/item/_Weapon.d.ts +57 -0
  176. package/lib/types/equipment/{_Weapon.js → item/_Weapon.js} +0 -3
  177. package/lib/types/equipment/item/sub/ArmorType.d.ts +36 -0
  178. package/lib/types/equipment/{ArmorType.js → item/sub/ArmorType.js} +1 -1
  179. package/lib/types/equipment/item/sub/Reach.d.ts +27 -0
  180. package/lib/types/equipment/{Reach.js → item/sub/Reach.js} +1 -1
  181. package/lib/types/magicalActions/AnimistPower.d.ts +170 -225
  182. package/lib/types/magicalActions/AnimistPower_Tribe.d.ts +9 -13
  183. package/lib/types/magicalActions/Curse.d.ts +116 -184
  184. package/lib/types/magicalActions/DominationRitual.d.ts +98 -136
  185. package/lib/types/magicalActions/ElvenMagicalSong.d.ts +79 -123
  186. package/lib/types/magicalActions/GeodeRitual.d.ts +126 -111
  187. package/lib/types/magicalActions/JesterTrick.d.ts +117 -109
  188. package/lib/types/magicalActions/MagicalDance.d.ts +71 -138
  189. package/lib/types/magicalActions/MagicalMelody.d.ts +65 -75
  190. package/lib/types/magicalActions/MagicalRune.d.ts +155 -189
  191. package/lib/types/magicalActions/ZibiljaRitual.d.ts +57 -65
  192. package/lib/types/magicalActions/_MusicTradition.d.ts +21 -13
  193. package/lib/types/magicalActions/_MusicTradition.js +10 -1
  194. package/lib/types/magicalActions/_SkillReference.d.ts +1 -1
  195. package/lib/types/prerequisites/DisplayOption.d.ts +7 -8
  196. package/lib/types/prerequisites/PrerequisiteGroups.d.ts +195 -16
  197. package/lib/types/prerequisites/single/ActivatablePrerequisite.d.ts +0 -3
  198. package/lib/types/prerequisites/single/AnimistPowerPrerequisite.d.ts +0 -1
  199. package/lib/types/prerequisites/single/CulturePrerequisite.d.ts +0 -1
  200. package/lib/types/prerequisites/single/EnhancementPrerequisite.d.ts +17 -14
  201. package/lib/types/prerequisites/single/InfluencePrerequisite.d.ts +0 -1
  202. package/lib/types/prerequisites/single/PactPrerequisite.d.ts +5 -14
  203. package/lib/types/prerequisites/single/PrimaryAttributePrerequisite.d.ts +5 -6
  204. package/lib/types/prerequisites/single/PrimaryAttributePrerequisite.js +5 -1
  205. package/lib/types/prerequisites/single/PublicationPrerequisite.d.ts +0 -1
  206. package/lib/types/prerequisites/single/RacePrerequisite.d.ts +0 -1
  207. package/lib/types/prerequisites/single/RatedPrerequisite.d.ts +32 -41
  208. package/lib/types/prerequisites/single/RulePrerequisite.d.ts +0 -1
  209. package/lib/types/prerequisites/single/SexPrerequisite.d.ts +0 -1
  210. package/lib/types/prerequisites/single/SocialStatusPrerequisite.d.ts +0 -1
  211. package/lib/types/prerequisites/single/StatePrerequisite.d.ts +0 -1
  212. package/lib/types/prerequisites/single/TextPrerequisite.d.ts +9 -14
  213. package/lib/types/prerequisites/single/TextPrerequisite.js +5 -1
  214. package/lib/types/prerequisites/single/TraditionPrerequisite.d.ts +18 -12
  215. package/lib/types/prerequisites/single/TraditionPrerequisite.js +18 -1
  216. package/lib/types/rule/CoreRule.d.ts +256 -206
  217. package/lib/types/rule/CoreRule.js +5 -0
  218. package/lib/types/rule/FocusRule.d.ts +19 -24
  219. package/lib/types/rule/FocusRule_Subject.d.ts +9 -13
  220. package/lib/types/rule/OptionalRule.d.ts +12 -35
  221. package/lib/types/rule/_Rule.d.ts +20 -0
  222. package/lib/types/rule/_Rule.js +1 -0
  223. package/lib/types/source/Publication.d.ts +39 -56
  224. package/lib/types/source/Publication.js +10 -0
  225. package/lib/types/source/_Erratum.d.ts +2 -1
  226. package/lib/types/source/_PublicationRef.d.ts +43 -37
  227. package/lib/types/specialAbility/AdvancedCombatSpecialAbility.d.ts +13 -17
  228. package/lib/types/specialAbility/AdvancedKarmaSpecialAbility.d.ts +8 -12
  229. package/lib/types/specialAbility/AdvancedMagicalSpecialAbility.d.ts +8 -12
  230. package/lib/types/specialAbility/AdvancedSkillSpecialAbility.d.ts +8 -12
  231. package/lib/types/specialAbility/AncestorGlyph.d.ts +8 -12
  232. package/lib/types/specialAbility/BlessedTradition.d.ts +95 -123
  233. package/lib/types/specialAbility/BrawlingSpecialAbility.d.ts +9 -13
  234. package/lib/types/specialAbility/CeremonialItemSpecialAbility.d.ts +8 -12
  235. package/lib/types/specialAbility/CombatSpecialAbility.d.ts +13 -17
  236. package/lib/types/specialAbility/CombatStyleSpecialAbility.d.ts +10 -18
  237. package/lib/types/specialAbility/CommandSpecialAbility.d.ts +1 -1
  238. package/lib/types/specialAbility/FamiliarSpecialAbility.d.ts +8 -12
  239. package/lib/types/specialAbility/FatePointSexSpecialAbility.d.ts +8 -12
  240. package/lib/types/specialAbility/FatePointSpecialAbility.d.ts +8 -12
  241. package/lib/types/specialAbility/GeneralSpecialAbility.d.ts +8 -12
  242. package/lib/types/specialAbility/KarmaSpecialAbility.d.ts +8 -12
  243. package/lib/types/specialAbility/LiturgicalStyleSpecialAbility.d.ts +8 -12
  244. package/lib/types/specialAbility/LycantropicGift.d.ts +8 -12
  245. package/lib/types/specialAbility/MagicStyleSpecialAbility.d.ts +8 -12
  246. package/lib/types/specialAbility/MagicalSpecialAbility.d.ts +8 -12
  247. package/lib/types/specialAbility/MagicalTradition.d.ts +38 -58
  248. package/lib/types/specialAbility/PactGift.d.ts +73 -62
  249. package/lib/types/specialAbility/PactGift.js +10 -0
  250. package/lib/types/specialAbility/ProtectiveWardingCircleSpecialAbility.d.ts +16 -23
  251. package/lib/types/specialAbility/Sermon.d.ts +8 -12
  252. package/lib/types/specialAbility/SexSpecialAbility.d.ts +8 -12
  253. package/lib/types/specialAbility/SikaryanDrainSpecialAbility.d.ts +8 -12
  254. package/lib/types/specialAbility/SkillStyleSpecialAbility.d.ts +8 -12
  255. package/lib/types/specialAbility/VampiricGift.d.ts +8 -12
  256. package/lib/types/specialAbility/Vision.d.ts +8 -12
  257. package/lib/types/specialAbility/_Tradition.d.ts +12 -0
  258. package/lib/types/specialAbility/_Tradition.js +1 -0
  259. package/lib/types/specialAbility/sub/Language.d.ts +78 -104
  260. package/lib/types/specialAbility/sub/Script.d.ts +24 -51
  261. package/lib/types/specialAbility/sub/TradeSecret.d.ts +14 -20
  262. package/lib/types/specialAbility/sub/_LanguageScript.d.ts +13 -0
  263. package/lib/types/specialAbility/sub/_LanguageScript.js +1 -0
  264. package/lib/types/traditionArtifacts/ArcaneOrbEnchantment.d.ts +20 -24
  265. package/lib/types/traditionArtifacts/AttireEnchantment.d.ts +21 -25
  266. package/lib/types/traditionArtifacts/BowlEnchantment.d.ts +20 -24
  267. package/lib/types/traditionArtifacts/CauldronEnchantment.d.ts +31 -34
  268. package/lib/types/traditionArtifacts/ChronicleEnchantment.d.ts +20 -24
  269. package/lib/types/traditionArtifacts/DaggerRitual.d.ts +45 -25
  270. package/lib/types/traditionArtifacts/FoolsHatEnchantment.d.ts +20 -24
  271. package/lib/types/traditionArtifacts/InstrumentEnchantment.d.ts +20 -24
  272. package/lib/types/traditionArtifacts/Krallenkettenzauber.d.ts +20 -24
  273. package/lib/types/traditionArtifacts/OrbEnchantment.d.ts +20 -24
  274. package/lib/types/traditionArtifacts/RingEnchantment.d.ts +20 -24
  275. package/lib/types/traditionArtifacts/SickleRitual.d.ts +20 -24
  276. package/lib/types/traditionArtifacts/SpellSwordEnchantment.d.ts +20 -24
  277. package/lib/types/traditionArtifacts/StaffEnchantment.d.ts +21 -25
  278. package/lib/types/traditionArtifacts/ToyEnchantment.d.ts +21 -25
  279. package/lib/types/traditionArtifacts/Trinkhornzauber.d.ts +20 -24
  280. package/lib/types/traditionArtifacts/WandEnchantment.d.ts +20 -24
  281. package/lib/types/traditionArtifacts/WeaponEnchantment.d.ts +19 -24
  282. package/lib/types/traditionArtifacts/sub/AnimalShape.d.ts +24 -16
  283. package/lib/types/traditionArtifacts/sub/AnimalShapePath.d.ts +9 -13
  284. package/lib/types/traditionArtifacts/sub/AnimalShapeSize.d.ts +9 -13
  285. package/lib/types/traditionArtifacts/sub/Brew.d.ts +9 -13
  286. package/lib/validation/schema.d.ts +11 -2
  287. package/lib/validation/schema.js +16 -4
  288. package/package.json +8 -7
  289. package/schema/Advantage.schema.json +49 -42
  290. package/schema/AnimalDisease.schema.json +17 -325
  291. package/schema/AnimalType.schema.json +17 -15
  292. package/schema/ArcaneBardTradition.schema.json +4 -42
  293. package/schema/ArcaneDancerTradition.schema.json +4 -42
  294. package/schema/Aspect.schema.json +21 -20
  295. package/schema/Attribute.schema.json +27 -27
  296. package/schema/Blessing.schema.json +202 -163
  297. package/schema/Cantrip.schema.json +353 -271
  298. package/schema/Ceremony.schema.json +90 -149
  299. package/schema/CombatTechnique_Close.schema.json +56 -67
  300. package/schema/CombatTechnique_Ranged.schema.json +46 -30
  301. package/schema/Condition.schema.json +46 -50
  302. package/schema/Continent.schema.json +18 -15
  303. package/schema/Culture.schema.json +324 -495
  304. package/schema/DerivedCharacteristic.schema.json +8 -8
  305. package/schema/Disadvantage.schema.json +45 -40
  306. package/schema/Disease.schema.json +7 -193
  307. package/schema/Element.schema.json +18 -15
  308. package/schema/ExperienceLevel.schema.json +5 -5
  309. package/schema/EyeColor.schema.json +17 -15
  310. package/schema/FamiliarsTrick.schema.json +491 -513
  311. package/schema/HairColor.schema.json +17 -15
  312. package/schema/Kirchenpraegung.schema.json +4 -4
  313. package/schema/Lessons_Curriculum.schema.json +234 -236
  314. package/schema/Lessons_Guideline.schema.json +17 -15
  315. package/schema/LiturgicalChant.schema.json +90 -149
  316. package/schema/Locale.schema.json +5 -5
  317. package/schema/MetaCondition.schema.json +46 -50
  318. package/schema/PactCategory.schema.json +101 -89
  319. package/schema/Patron.schema.json +151 -229
  320. package/schema/PatronCategory.schema.json +18 -27
  321. package/schema/PersonalityTrait.schema.json +50 -57
  322. package/schema/Profession.schema.json +833 -993
  323. package/schema/Property.schema.json +18 -16
  324. package/schema/Race.schema.json +170 -311
  325. package/schema/Region.schema.json +17 -15
  326. package/schema/Ritual.schema.json +111 -158
  327. package/schema/Service.schema.json +33 -51
  328. package/schema/SexPractice.schema.json +37 -39
  329. package/schema/Skill.schema.json +95 -162
  330. package/schema/SkillGroup.schema.json +23 -22
  331. package/schema/SkillModificationLevel.schema.json +93 -82
  332. package/schema/SocialStatus.schema.json +17 -15
  333. package/schema/Spell.schema.json +110 -158
  334. package/schema/State.schema.json +26 -25
  335. package/schema/Talisman.schema.json +60 -121
  336. package/schema/TargetCategory.schema.json +35 -20
  337. package/schema/UI.schema.json +830 -834
  338. package/schema/_Activatable.schema.json +1609 -2258
  339. package/schema/_ActivatableSelectOptionCategory.schema.json +1172 -0
  340. package/schema/_ActivatableSkill.schema.json +96 -1679
  341. package/schema/_ActivatableSkillCastingTime.schema.json +177 -0
  342. package/schema/_ActivatableSkillCheckResultBased.schema.json +57 -0
  343. package/schema/_ActivatableSkillCost.schema.json +448 -0
  344. package/schema/_ActivatableSkillDuration.schema.json +335 -0
  345. package/schema/_ActivatableSkillEffect.schema.json +153 -0
  346. package/schema/_ActivatableSkillRange.schema.json +241 -0
  347. package/schema/_ActivatableSkillTargetCategory.schema.json +145 -0
  348. package/schema/_AlternativeNames.schema.json +23 -0
  349. package/schema/_ArcaneTradition.schema.json +51 -0
  350. package/schema/_Blessed.schema.json +64 -0
  351. package/schema/_CommonnessRatedAdvantageDisadvantage.schema.json +2 -2
  352. package/schema/_Dice.schema.json +3 -3
  353. package/schema/_DiseasePoison.schema.json +140 -0
  354. package/schema/_Enhancements.schema.json +29 -26
  355. package/schema/_I18n.schema.json +8 -12
  356. package/schema/_Identifier.schema.json +73 -22
  357. package/schema/_ImprovementCost.schema.json +2 -2
  358. package/schema/_Influence.schema.json +48 -45
  359. package/schema/_NonEmptyString.schema.json +14 -0
  360. package/schema/_Prerequisite.schema.json +953 -765
  361. package/schema/_ResponsiveText.schema.json +66 -0
  362. package/schema/_Sex.schema.json +6 -28
  363. package/schema/_SimpleReferences.schema.json +586 -0
  364. package/schema/_SkillCheck.schema.json +10 -69
  365. package/schema/_Spellwork.schema.json +54 -0
  366. package/schema/equipment/EquipmentPackage.schema.json +37 -32
  367. package/schema/equipment/item/Alchemicum.schema.json +10 -0
  368. package/schema/equipment/item/Ammunition.schema.json +56 -0
  369. package/schema/equipment/item/Animal.schema.json +36 -0
  370. package/schema/equipment/item/AnimalCare.schema.json +124 -0
  371. package/schema/equipment/item/Armor.schema.json +309 -0
  372. package/schema/equipment/item/BandageOrRemedy.schema.json +53 -0
  373. package/schema/equipment/item/Book.schema.json +89 -0
  374. package/schema/equipment/item/CeremonialItem.schema.json +59 -0
  375. package/schema/equipment/item/Clothes.schema.json +10 -0
  376. package/schema/equipment/item/Container.schema.json +10 -0
  377. package/schema/equipment/item/EquipmentOfBlessedOnes.schema.json +46 -0
  378. package/schema/equipment/item/GemOrPreciousStone.schema.json +69 -0
  379. package/schema/equipment/item/IlluminationLightSource.schema.json +122 -0
  380. package/schema/equipment/item/IlluminationRefillsOrSupplies.schema.json +10 -0
  381. package/schema/equipment/item/Jewelry.schema.json +113 -0
  382. package/schema/equipment/item/Liebesspielzeug.schema.json +10 -0
  383. package/schema/equipment/item/LuxuryGood.schema.json +53 -0
  384. package/schema/equipment/item/MagicalArtifact.schema.json +64 -0
  385. package/schema/equipment/item/MusicalInstrument.schema.json +41 -0
  386. package/schema/equipment/item/OrienteeringAid.schema.json +10 -0
  387. package/schema/equipment/item/Poison.schema.json +369 -0
  388. package/schema/equipment/item/RopeOrChain.schema.json +10 -0
  389. package/schema/equipment/item/Stationary.schema.json +10 -0
  390. package/schema/equipment/item/ThievesTool.schema.json +10 -0
  391. package/schema/equipment/item/ToolOfTheTrade.schema.json +82 -0
  392. package/schema/equipment/item/TravelGearOrTool.schema.json +10 -0
  393. package/schema/equipment/item/Vehicle.schema.json +36 -0
  394. package/schema/equipment/item/Weapon.schema.json +265 -0
  395. package/schema/equipment/item/WeaponAccessory.schema.json +10 -0
  396. package/schema/equipment/item/_Item.schema.json +403 -0
  397. package/schema/equipment/item/_MeleeWeapon.schema.json +180 -0
  398. package/schema/equipment/item/_RangedWeapon.schema.json +186 -0
  399. package/schema/equipment/item/_Weapon.schema.json +99 -0
  400. package/schema/equipment/item/sub/ArmorType.schema.json +53 -0
  401. package/schema/equipment/{Reach.schema.json → item/sub/Reach.schema.json} +18 -16
  402. package/schema/magicalActions/AnimistPower.schema.json +427 -402
  403. package/schema/magicalActions/AnimistPower_Tribe.schema.json +17 -15
  404. package/schema/magicalActions/Curse.schema.json +293 -313
  405. package/schema/magicalActions/DominationRitual.schema.json +233 -220
  406. package/schema/magicalActions/ElvenMagicalSong.schema.json +132 -154
  407. package/schema/magicalActions/GeodeRitual.schema.json +296 -220
  408. package/schema/magicalActions/JesterTrick.schema.json +269 -198
  409. package/schema/magicalActions/MagicalDance.schema.json +147 -251
  410. package/schema/magicalActions/MagicalMelody.schema.json +129 -164
  411. package/schema/magicalActions/MagicalRune.schema.json +341 -323
  412. package/schema/magicalActions/ZibiljaRitual.schema.json +139 -112
  413. package/schema/magicalActions/_MusicTradition.schema.json +44 -14
  414. package/schema/magicalActions/_SkillReference.schema.json +4 -4
  415. package/schema/prerequisites/ConditionalPrerequisites.schema.json +3 -3
  416. package/schema/prerequisites/DisplayOption.schema.json +33 -15
  417. package/schema/prerequisites/PrerequisiteGroups.schema.json +845 -62
  418. package/schema/prerequisites/single/ActivatablePrerequisite.schema.json +13 -25
  419. package/schema/prerequisites/single/AnimistPowerPrerequisite.schema.json +4 -7
  420. package/schema/prerequisites/single/CulturePrerequisite.schema.json +4 -8
  421. package/schema/prerequisites/single/EnhancementPrerequisite.schema.json +30 -23
  422. package/schema/prerequisites/single/InfluencePrerequisite.schema.json +3 -7
  423. package/schema/prerequisites/single/PactPrerequisite.schema.json +9 -19
  424. package/schema/prerequisites/single/PrimaryAttributePrerequisite.schema.json +10 -33
  425. package/schema/prerequisites/single/PublicationPrerequisite.schema.json +3 -7
  426. package/schema/prerequisites/single/RacePrerequisite.schema.json +4 -8
  427. package/schema/prerequisites/single/RatedPrerequisite.schema.json +104 -107
  428. package/schema/prerequisites/single/RulePrerequisite.schema.json +4 -8
  429. package/schema/prerequisites/single/SexPrerequisite.schema.json +4 -8
  430. package/schema/prerequisites/single/SocialStatusPrerequisite.schema.json +3 -7
  431. package/schema/prerequisites/single/StatePrerequisite.schema.json +4 -8
  432. package/schema/prerequisites/single/TextPrerequisite.schema.json +13 -34
  433. package/schema/prerequisites/single/TraditionPrerequisite.schema.json +22 -68
  434. package/schema/rule/CoreRule.schema.json +1295 -859
  435. package/schema/rule/FocusRule.schema.json +34 -30
  436. package/schema/rule/FocusRule_Subject.schema.json +17 -15
  437. package/schema/rule/OptionalRule.schema.json +24 -56
  438. package/schema/rule/_Rule.schema.json +59 -0
  439. package/schema/source/Publication.schema.json +47 -117
  440. package/schema/source/_Erratum.schema.json +5 -6
  441. package/schema/source/_PublicationRef.schema.json +103 -59
  442. package/schema/specialAbility/AdvancedCombatSpecialAbility.schema.json +41 -38
  443. package/schema/specialAbility/AdvancedKarmaSpecialAbility.schema.json +35 -32
  444. package/schema/specialAbility/AdvancedMagicalSpecialAbility.schema.json +35 -32
  445. package/schema/specialAbility/AdvancedSkillSpecialAbility.schema.json +35 -32
  446. package/schema/specialAbility/AncestorGlyph.schema.json +33 -30
  447. package/schema/specialAbility/BlessedTradition.schema.json +251 -225
  448. package/schema/specialAbility/BrawlingSpecialAbility.schema.json +35 -32
  449. package/schema/specialAbility/CeremonialItemSpecialAbility.schema.json +36 -33
  450. package/schema/specialAbility/CombatSpecialAbility.schema.json +41 -38
  451. package/schema/specialAbility/CombatStyleSpecialAbility.schema.json +39 -61
  452. package/schema/specialAbility/CommandSpecialAbility.schema.json +16 -16
  453. package/schema/specialAbility/FamiliarSpecialAbility.schema.json +33 -30
  454. package/schema/specialAbility/FatePointSexSpecialAbility.schema.json +33 -30
  455. package/schema/specialAbility/FatePointSpecialAbility.schema.json +35 -32
  456. package/schema/specialAbility/GeneralSpecialAbility.schema.json +35 -32
  457. package/schema/specialAbility/KarmaSpecialAbility.schema.json +33 -30
  458. package/schema/specialAbility/LiturgicalStyleSpecialAbility.schema.json +36 -33
  459. package/schema/specialAbility/LycantropicGift.schema.json +33 -30
  460. package/schema/specialAbility/MagicStyleSpecialAbility.schema.json +36 -33
  461. package/schema/specialAbility/MagicalSpecialAbility.schema.json +35 -32
  462. package/schema/specialAbility/MagicalTradition.schema.json +66 -87
  463. package/schema/specialAbility/PactGift.schema.json +196 -174
  464. package/schema/specialAbility/ProtectiveWardingCircleSpecialAbility.schema.json +39 -38
  465. package/schema/specialAbility/Sermon.schema.json +33 -30
  466. package/schema/specialAbility/SexSpecialAbility.schema.json +35 -32
  467. package/schema/specialAbility/SikaryanDrainSpecialAbility.schema.json +33 -30
  468. package/schema/specialAbility/SkillStyleSpecialAbility.schema.json +34 -31
  469. package/schema/specialAbility/VampiricGift.schema.json +33 -30
  470. package/schema/specialAbility/Vision.schema.json +33 -30
  471. package/schema/specialAbility/_Tradition.schema.json +23 -0
  472. package/schema/specialAbility/sub/Language.schema.json +170 -162
  473. package/schema/specialAbility/sub/Script.schema.json +35 -72
  474. package/schema/specialAbility/sub/TradeSecret.schema.json +26 -25
  475. package/schema/specialAbility/sub/_LanguageScript.schema.json +26 -0
  476. package/schema/traditionArtifacts/ArcaneOrbEnchantment.schema.json +46 -43
  477. package/schema/traditionArtifacts/AttireEnchantment.schema.json +47 -43
  478. package/schema/traditionArtifacts/BowlEnchantment.schema.json +46 -43
  479. package/schema/traditionArtifacts/CauldronEnchantment.schema.json +63 -56
  480. package/schema/traditionArtifacts/ChronicleEnchantment.schema.json +46 -43
  481. package/schema/traditionArtifacts/DaggerRitual.schema.json +132 -43
  482. package/schema/traditionArtifacts/FoolsHatEnchantment.schema.json +46 -43
  483. package/schema/traditionArtifacts/InstrumentEnchantment.schema.json +46 -43
  484. package/schema/traditionArtifacts/Krallenkettenzauber.schema.json +46 -43
  485. package/schema/traditionArtifacts/OrbEnchantment.schema.json +46 -43
  486. package/schema/traditionArtifacts/RingEnchantment.schema.json +46 -43
  487. package/schema/traditionArtifacts/SickleRitual.schema.json +46 -43
  488. package/schema/traditionArtifacts/SpellSwordEnchantment.schema.json +46 -43
  489. package/schema/traditionArtifacts/StaffEnchantment.schema.json +47 -43
  490. package/schema/traditionArtifacts/ToyEnchantment.schema.json +47 -43
  491. package/schema/traditionArtifacts/Trinkhornzauber.schema.json +46 -43
  492. package/schema/traditionArtifacts/WandEnchantment.schema.json +46 -43
  493. package/schema/traditionArtifacts/WeaponEnchantment.schema.json +46 -50
  494. package/schema/traditionArtifacts/sub/AnimalShape.schema.json +53 -25
  495. package/schema/traditionArtifacts/sub/AnimalShapePath.schema.json +17 -15
  496. package/schema/traditionArtifacts/sub/AnimalShapeSize.schema.json +17 -15
  497. package/schema/traditionArtifacts/sub/Brew.schema.json +17 -15
  498. package/lib/types/MagicalTraditionPlaceholder.d.ts +0 -32
  499. package/lib/types/MagicalTraditionPlaceholder.js +0 -5
  500. package/lib/types/Poison.d.ts +0 -208
  501. package/lib/types/Poison.js +0 -5
  502. package/lib/types/equipment/ArmorType.d.ts +0 -31
  503. package/lib/types/equipment/Item.d.ts +0 -308
  504. package/lib/types/equipment/Item.js +0 -35
  505. package/lib/types/equipment/ItemGroup.d.ts +0 -31
  506. package/lib/types/equipment/ItemGroup.js +0 -5
  507. package/lib/types/equipment/Reach.d.ts +0 -31
  508. package/lib/types/equipment/_Armor.d.ts +0 -70
  509. package/lib/types/equipment/_Weapon.d.ts +0 -330
  510. package/lib/types/prerequisites/single/CommonSuggestedByRCPPrerequisite.d.ts +0 -3
  511. package/schema/MagicalTraditionPlaceholder.schema.json +0 -45
  512. package/schema/Poison.schema.json +0 -417
  513. package/schema/equipment/ArmorType.schema.json +0 -45
  514. package/schema/equipment/Item.schema.json +0 -621
  515. package/schema/equipment/ItemGroup.schema.json +0 -45
  516. package/schema/equipment/_Armor.schema.json +0 -125
  517. package/schema/equipment/_Weapon.schema.json +0 -664
  518. package/schema/prerequisites/single/CommonSuggestedByRCPPrerequisite.schema.json +0 -18
@@ -1,123 +1,146 @@
1
1
  {
2
- "$schema": "http://json-schema.org/draft-07/schema",
2
+ "$schema": "https://json-schema.org/draft/2019-09/schema",
3
3
  "$id": "/_Prerequisite.schema.json",
4
- "definitions": {
5
- "PrerequisiteCollection": {},
4
+ "$defs": {
6
5
  "DerivedCharacteristicPrerequisites": {
7
- "type": "object",
8
- "properties": {
9
- "tag": {
10
- "const": "Plain"
11
- },
12
- "list": {
13
- "type": "array",
14
- "items": {
15
- "oneOf": [
16
- {
17
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/definitions/DerivedCharacteristicPrerequisiteGroup"
18
- },
19
- {
20
- "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.",
21
- "type": "object",
22
- "properties": {
23
- "tag": {
24
- "const": "Group"
25
- },
26
- "list": {
27
- "type": "array",
28
- "items": {
29
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/definitions/DerivedCharacteristicPrerequisiteGroup"
30
- },
31
- "minItems": 2
6
+ "oneOf": [
7
+ {
8
+ "type": "object",
9
+ "properties": {
10
+ "tag": {
11
+ "const": "Plain"
12
+ },
13
+ "plain": {
14
+ "type": "array",
15
+ "items": {
16
+ "oneOf": [
17
+ {
18
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/DerivedCharacteristicPrerequisiteGroup"
32
19
  },
33
- "translations": {
34
- "description": "All translations for the entry, identified by IETF language tag (BCP47).",
20
+ {
35
21
  "type": "object",
36
- "patternProperties": {
37
- "^[a-z]{2}-[A-Z]{2}$": {
38
- "type": "string",
39
- "minLength": 1
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
40
54
  }
41
55
  },
42
- "minProperties": 1,
56
+ "required": [
57
+ "tag",
58
+ "group"
59
+ ],
43
60
  "additionalProperties": false
44
61
  }
45
- },
46
- "required": [
47
- "tag",
48
- "list",
49
- "translations"
50
- ],
51
- "additionalProperties": false
52
- }
53
- ]
62
+ ]
63
+ },
64
+ "minItems": 1
65
+ }
54
66
  },
55
- "minItems": 1
67
+ "required": [
68
+ "tag",
69
+ "plain"
70
+ ],
71
+ "additionalProperties": false
56
72
  }
57
- },
58
- "required": [
59
- "tag",
60
- "list"
61
- ],
62
- "additionalProperties": false
73
+ ]
63
74
  },
64
75
  "PublicationPrerequisites": {
65
- "type": "object",
66
- "properties": {
67
- "tag": {
68
- "const": "Plain"
69
- },
70
- "list": {
71
- "type": "array",
72
- "items": {
73
- "oneOf": [
74
- {
75
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/definitions/PublicationPrerequisiteGroup"
76
- },
77
- {
78
- "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.",
79
- "type": "object",
80
- "properties": {
81
- "tag": {
82
- "const": "Group"
83
- },
84
- "list": {
85
- "type": "array",
86
- "items": {
87
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/definitions/PublicationPrerequisiteGroup"
88
- },
89
- "minItems": 2
76
+ "oneOf": [
77
+ {
78
+ "type": "object",
79
+ "properties": {
80
+ "tag": {
81
+ "const": "Plain"
82
+ },
83
+ "plain": {
84
+ "type": "array",
85
+ "items": {
86
+ "oneOf": [
87
+ {
88
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/PublicationPrerequisiteGroup"
90
89
  },
91
- "translations": {
92
- "description": "All translations for the entry, identified by IETF language tag (BCP47).",
90
+ {
93
91
  "type": "object",
94
- "patternProperties": {
95
- "^[a-z]{2}-[A-Z]{2}$": {
96
- "type": "string",
97
- "minLength": 1
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
98
124
  }
99
125
  },
100
- "minProperties": 1,
126
+ "required": [
127
+ "tag",
128
+ "group"
129
+ ],
101
130
  "additionalProperties": false
102
131
  }
103
- },
104
- "required": [
105
- "tag",
106
- "list",
107
- "translations"
108
- ],
109
- "additionalProperties": false
110
- }
111
- ]
132
+ ]
133
+ },
134
+ "minItems": 1
135
+ }
112
136
  },
113
- "minItems": 1
137
+ "required": [
138
+ "tag",
139
+ "plain"
140
+ ],
141
+ "additionalProperties": false
114
142
  }
115
- },
116
- "required": [
117
- "tag",
118
- "list"
119
- ],
120
- "additionalProperties": false
143
+ ]
121
144
  },
122
145
  "GeneralPrerequisites": {
123
146
  "oneOf": [
@@ -127,44 +150,52 @@
127
150
  "tag": {
128
151
  "const": "Plain"
129
152
  },
130
- "list": {
153
+ "plain": {
131
154
  "type": "array",
132
155
  "items": {
133
156
  "oneOf": [
134
157
  {
135
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/definitions/GeneralPrerequisiteGroup"
158
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/GeneralPrerequisiteGroup"
136
159
  },
137
160
  {
138
- "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.",
139
161
  "type": "object",
140
162
  "properties": {
141
163
  "tag": {
142
164
  "const": "Group"
143
165
  },
144
- "list": {
145
- "type": "array",
146
- "items": {
147
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/definitions/GeneralPrerequisiteGroup"
148
- },
149
- "minItems": 2
150
- },
151
- "translations": {
152
- "description": "All translations for the entry, identified by IETF language tag (BCP47).",
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.",
153
168
  "type": "object",
154
- "patternProperties": {
155
- "^[a-z]{2}-[A-Z]{2}$": {
156
- "type": "string",
157
- "minLength": 1
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
158
187
  }
159
188
  },
160
- "minProperties": 1,
189
+ "required": [
190
+ "list",
191
+ "translations"
192
+ ],
161
193
  "additionalProperties": false
162
194
  }
163
195
  },
164
196
  "required": [
165
197
  "tag",
166
- "list",
167
- "translations"
198
+ "group"
168
199
  ],
169
200
  "additionalProperties": false
170
201
  }
@@ -175,7 +206,7 @@
175
206
  },
176
207
  "required": [
177
208
  "tag",
178
- "list"
209
+ "plain"
179
210
  ],
180
211
  "additionalProperties": false
181
212
  },
@@ -185,135 +216,158 @@
185
216
  "tag": {
186
217
  "const": "ByLevel"
187
218
  },
188
- "list": {
219
+ "by_level": {
189
220
  "type": "array",
190
221
  "items": {
191
- "type": "object",
192
- "properties": {
193
- "level": {
194
- "type": "integer",
195
- "minimum": 1
196
- },
197
- "prerequisites": {
198
- "type": "array",
199
- "items": {
200
- "oneOf": [
201
- {
202
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/definitions/GeneralPrerequisiteGroup"
203
- },
204
- {
205
- "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.",
206
- "type": "object",
207
- "properties": {
208
- "tag": {
209
- "const": "Group"
210
- },
211
- "list": {
212
- "type": "array",
213
- "items": {
214
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/definitions/GeneralPrerequisiteGroup"
222
+ "type": "array",
223
+ "items": {
224
+ "type": "object",
225
+ "properties": {
226
+ "level": {
227
+ "type": "integer",
228
+ "minimum": 1
229
+ },
230
+ "prerequisites": {
231
+ "type": "array",
232
+ "items": {
233
+ "oneOf": [
234
+ {
235
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/GeneralPrerequisiteGroup"
236
+ },
237
+ {
238
+ "type": "object",
239
+ "properties": {
240
+ "tag": {
241
+ "const": "Group"
215
242
  },
216
- "minItems": 2
243
+ "group": {
244
+ "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.",
245
+ "type": "object",
246
+ "properties": {
247
+ "list": {
248
+ "type": "array",
249
+ "items": {
250
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/GeneralPrerequisiteGroup"
251
+ },
252
+ "minItems": 2
253
+ },
254
+ "translations": {
255
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
256
+ "type": "object",
257
+ "patternProperties": {
258
+ "^[a-z]{2}-[A-Z]{2}$": {
259
+ "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
260
+ }
261
+ },
262
+ "minProperties": 1,
263
+ "additionalProperties": false
264
+ }
265
+ },
266
+ "required": [
267
+ "list",
268
+ "translations"
269
+ ],
270
+ "additionalProperties": false
271
+ }
217
272
  },
218
- "translations": {
219
- "description": "All translations for the entry, identified by IETF language tag (BCP47).",
220
- "type": "object",
221
- "patternProperties": {
222
- "^[a-z]{2}-[A-Z]{2}$": {
223
- "type": "string",
224
- "minLength": 1
225
- }
226
- },
227
- "minProperties": 1,
228
- "additionalProperties": false
229
- }
230
- },
231
- "required": [
232
- "tag",
233
- "list",
234
- "translations"
235
- ],
236
- "additionalProperties": false
237
- }
238
- ]
239
- },
240
- "minItems": 1
241
- }
273
+ "required": [
274
+ "tag",
275
+ "group"
276
+ ],
277
+ "additionalProperties": false
278
+ }
279
+ ]
280
+ },
281
+ "minItems": 1
282
+ }
283
+ },
284
+ "required": [
285
+ "level",
286
+ "prerequisites"
287
+ ],
288
+ "additionalProperties": false
242
289
  },
243
- "required": [
244
- "level",
245
- "prerequisites"
246
- ],
247
- "additionalProperties": false
248
- },
249
- "minItems": 1
290
+ "minItems": 1
291
+ }
250
292
  }
251
293
  },
252
294
  "required": [
253
295
  "tag",
254
- "list"
296
+ "by_level"
255
297
  ],
256
298
  "additionalProperties": false
257
299
  }
258
300
  ]
259
301
  },
260
302
  "ProfessionPrerequisites": {
261
- "type": "object",
262
- "properties": {
263
- "tag": {
264
- "const": "Plain"
265
- },
266
- "list": {
267
- "type": "array",
268
- "items": {
269
- "oneOf": [
270
- {
271
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/definitions/ProfessionPrerequisiteGroup"
272
- },
273
- {
274
- "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.",
275
- "type": "object",
276
- "properties": {
277
- "tag": {
278
- "const": "Group"
279
- },
280
- "list": {
281
- "type": "array",
282
- "items": {
283
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/definitions/ProfessionPrerequisiteGroup"
284
- },
285
- "minItems": 2
303
+ "oneOf": [
304
+ {
305
+ "type": "object",
306
+ "properties": {
307
+ "tag": {
308
+ "const": "Plain"
309
+ },
310
+ "plain": {
311
+ "type": "array",
312
+ "items": {
313
+ "oneOf": [
314
+ {
315
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/ProfessionPrerequisiteGroup"
286
316
  },
287
- "translations": {
288
- "description": "All translations for the entry, identified by IETF language tag (BCP47).",
317
+ {
289
318
  "type": "object",
290
- "patternProperties": {
291
- "^[a-z]{2}-[A-Z]{2}$": {
292
- "type": "string",
293
- "minLength": 1
319
+ "properties": {
320
+ "tag": {
321
+ "const": "Group"
322
+ },
323
+ "group": {
324
+ "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.",
325
+ "type": "object",
326
+ "properties": {
327
+ "list": {
328
+ "type": "array",
329
+ "items": {
330
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/ProfessionPrerequisiteGroup"
331
+ },
332
+ "minItems": 2
333
+ },
334
+ "translations": {
335
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
336
+ "type": "object",
337
+ "patternProperties": {
338
+ "^[a-z]{2}-[A-Z]{2}$": {
339
+ "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
340
+ }
341
+ },
342
+ "minProperties": 1,
343
+ "additionalProperties": false
344
+ }
345
+ },
346
+ "required": [
347
+ "list",
348
+ "translations"
349
+ ],
350
+ "additionalProperties": false
294
351
  }
295
352
  },
296
- "minProperties": 1,
353
+ "required": [
354
+ "tag",
355
+ "group"
356
+ ],
297
357
  "additionalProperties": false
298
358
  }
299
- },
300
- "required": [
301
- "tag",
302
- "list",
303
- "translations"
304
- ],
305
- "additionalProperties": false
306
- }
307
- ]
359
+ ]
360
+ },
361
+ "minItems": 1
362
+ }
308
363
  },
309
- "minItems": 1
364
+ "required": [
365
+ "tag",
366
+ "plain"
367
+ ],
368
+ "additionalProperties": false
310
369
  }
311
- },
312
- "required": [
313
- "tag",
314
- "list"
315
- ],
316
- "additionalProperties": false
370
+ ]
317
371
  },
318
372
  "AdvantageDisadvantagePrerequisites": {
319
373
  "oneOf": [
@@ -323,44 +377,52 @@
323
377
  "tag": {
324
378
  "const": "Plain"
325
379
  },
326
- "list": {
380
+ "plain": {
327
381
  "type": "array",
328
382
  "items": {
329
383
  "oneOf": [
330
384
  {
331
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/definitions/AdvantageDisadvantagePrerequisiteGroup"
385
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/AdvantageDisadvantagePrerequisiteGroup"
332
386
  },
333
387
  {
334
- "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.",
335
388
  "type": "object",
336
389
  "properties": {
337
390
  "tag": {
338
391
  "const": "Group"
339
392
  },
340
- "list": {
341
- "type": "array",
342
- "items": {
343
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/definitions/AdvantageDisadvantagePrerequisiteGroup"
344
- },
345
- "minItems": 2
346
- },
347
- "translations": {
348
- "description": "All translations for the entry, identified by IETF language tag (BCP47).",
393
+ "group": {
394
+ "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.",
349
395
  "type": "object",
350
- "patternProperties": {
351
- "^[a-z]{2}-[A-Z]{2}$": {
352
- "type": "string",
353
- "minLength": 1
396
+ "properties": {
397
+ "list": {
398
+ "type": "array",
399
+ "items": {
400
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/AdvantageDisadvantagePrerequisiteGroup"
401
+ },
402
+ "minItems": 2
403
+ },
404
+ "translations": {
405
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
406
+ "type": "object",
407
+ "patternProperties": {
408
+ "^[a-z]{2}-[A-Z]{2}$": {
409
+ "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
410
+ }
411
+ },
412
+ "minProperties": 1,
413
+ "additionalProperties": false
354
414
  }
355
415
  },
356
- "minProperties": 1,
416
+ "required": [
417
+ "list",
418
+ "translations"
419
+ ],
357
420
  "additionalProperties": false
358
421
  }
359
422
  },
360
423
  "required": [
361
424
  "tag",
362
- "list",
363
- "translations"
425
+ "group"
364
426
  ],
365
427
  "additionalProperties": false
366
428
  }
@@ -371,7 +433,7 @@
371
433
  },
372
434
  "required": [
373
435
  "tag",
374
- "list"
436
+ "plain"
375
437
  ],
376
438
  "additionalProperties": false
377
439
  },
@@ -381,367 +443,438 @@
381
443
  "tag": {
382
444
  "const": "ByLevel"
383
445
  },
384
- "list": {
446
+ "by_level": {
385
447
  "type": "array",
386
448
  "items": {
387
- "type": "object",
388
- "properties": {
389
- "level": {
390
- "type": "integer",
391
- "minimum": 1
392
- },
393
- "prerequisites": {
394
- "type": "array",
395
- "items": {
396
- "oneOf": [
397
- {
398
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/definitions/AdvantageDisadvantagePrerequisiteGroup"
399
- },
400
- {
401
- "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.",
402
- "type": "object",
403
- "properties": {
404
- "tag": {
405
- "const": "Group"
406
- },
407
- "list": {
408
- "type": "array",
409
- "items": {
410
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/definitions/AdvantageDisadvantagePrerequisiteGroup"
449
+ "type": "array",
450
+ "items": {
451
+ "type": "object",
452
+ "properties": {
453
+ "level": {
454
+ "type": "integer",
455
+ "minimum": 1
456
+ },
457
+ "prerequisites": {
458
+ "type": "array",
459
+ "items": {
460
+ "oneOf": [
461
+ {
462
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/AdvantageDisadvantagePrerequisiteGroup"
463
+ },
464
+ {
465
+ "type": "object",
466
+ "properties": {
467
+ "tag": {
468
+ "const": "Group"
411
469
  },
412
- "minItems": 2
470
+ "group": {
471
+ "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.",
472
+ "type": "object",
473
+ "properties": {
474
+ "list": {
475
+ "type": "array",
476
+ "items": {
477
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/AdvantageDisadvantagePrerequisiteGroup"
478
+ },
479
+ "minItems": 2
480
+ },
481
+ "translations": {
482
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
483
+ "type": "object",
484
+ "patternProperties": {
485
+ "^[a-z]{2}-[A-Z]{2}$": {
486
+ "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
487
+ }
488
+ },
489
+ "minProperties": 1,
490
+ "additionalProperties": false
491
+ }
492
+ },
493
+ "required": [
494
+ "list",
495
+ "translations"
496
+ ],
497
+ "additionalProperties": false
498
+ }
413
499
  },
414
- "translations": {
415
- "description": "All translations for the entry, identified by IETF language tag (BCP47).",
416
- "type": "object",
417
- "patternProperties": {
418
- "^[a-z]{2}-[A-Z]{2}$": {
419
- "type": "string",
420
- "minLength": 1
421
- }
422
- },
423
- "minProperties": 1,
424
- "additionalProperties": false
425
- }
426
- },
427
- "required": [
428
- "tag",
429
- "list",
430
- "translations"
431
- ],
432
- "additionalProperties": false
433
- }
434
- ]
435
- },
436
- "minItems": 1
437
- }
500
+ "required": [
501
+ "tag",
502
+ "group"
503
+ ],
504
+ "additionalProperties": false
505
+ }
506
+ ]
507
+ },
508
+ "minItems": 1
509
+ }
510
+ },
511
+ "required": [
512
+ "level",
513
+ "prerequisites"
514
+ ],
515
+ "additionalProperties": false
438
516
  },
439
- "required": [
440
- "level",
441
- "prerequisites"
442
- ],
443
- "additionalProperties": false
444
- },
445
- "minItems": 1
517
+ "minItems": 1
518
+ }
446
519
  }
447
520
  },
448
521
  "required": [
449
522
  "tag",
450
- "list"
523
+ "by_level"
451
524
  ],
452
525
  "additionalProperties": false
453
526
  }
454
527
  ]
455
528
  },
456
529
  "ArcaneTraditionPrerequisites": {
457
- "type": "object",
458
- "properties": {
459
- "tag": {
460
- "const": "Plain"
461
- },
462
- "list": {
463
- "type": "array",
464
- "items": {
465
- "oneOf": [
466
- {
467
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/definitions/ArcaneTraditionPrerequisiteGroup"
468
- },
469
- {
470
- "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.",
471
- "type": "object",
472
- "properties": {
473
- "tag": {
474
- "const": "Group"
475
- },
476
- "list": {
477
- "type": "array",
478
- "items": {
479
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/definitions/ArcaneTraditionPrerequisiteGroup"
480
- },
481
- "minItems": 2
530
+ "oneOf": [
531
+ {
532
+ "type": "object",
533
+ "properties": {
534
+ "tag": {
535
+ "const": "Plain"
536
+ },
537
+ "plain": {
538
+ "type": "array",
539
+ "items": {
540
+ "oneOf": [
541
+ {
542
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/ArcaneTraditionPrerequisiteGroup"
482
543
  },
483
- "translations": {
484
- "description": "All translations for the entry, identified by IETF language tag (BCP47).",
544
+ {
485
545
  "type": "object",
486
- "patternProperties": {
487
- "^[a-z]{2}-[A-Z]{2}$": {
488
- "type": "string",
489
- "minLength": 1
546
+ "properties": {
547
+ "tag": {
548
+ "const": "Group"
549
+ },
550
+ "group": {
551
+ "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.",
552
+ "type": "object",
553
+ "properties": {
554
+ "list": {
555
+ "type": "array",
556
+ "items": {
557
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/ArcaneTraditionPrerequisiteGroup"
558
+ },
559
+ "minItems": 2
560
+ },
561
+ "translations": {
562
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
563
+ "type": "object",
564
+ "patternProperties": {
565
+ "^[a-z]{2}-[A-Z]{2}$": {
566
+ "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
567
+ }
568
+ },
569
+ "minProperties": 1,
570
+ "additionalProperties": false
571
+ }
572
+ },
573
+ "required": [
574
+ "list",
575
+ "translations"
576
+ ],
577
+ "additionalProperties": false
490
578
  }
491
579
  },
492
- "minProperties": 1,
580
+ "required": [
581
+ "tag",
582
+ "group"
583
+ ],
493
584
  "additionalProperties": false
494
585
  }
495
- },
496
- "required": [
497
- "tag",
498
- "list",
499
- "translations"
500
- ],
501
- "additionalProperties": false
502
- }
503
- ]
586
+ ]
587
+ },
588
+ "minItems": 1
589
+ }
504
590
  },
505
- "minItems": 1
591
+ "required": [
592
+ "tag",
593
+ "plain"
594
+ ],
595
+ "additionalProperties": false
506
596
  }
507
- },
508
- "required": [
509
- "tag",
510
- "list"
511
- ],
512
- "additionalProperties": false
597
+ ]
513
598
  },
514
599
  "PersonalityTraitPrerequisites": {
515
- "type": "object",
516
- "properties": {
517
- "tag": {
518
- "const": "Plain"
519
- },
520
- "list": {
521
- "type": "array",
522
- "items": {
523
- "oneOf": [
524
- {
525
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/definitions/PersonalityTraitPrerequisiteGroup"
526
- },
527
- {
528
- "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.",
529
- "type": "object",
530
- "properties": {
531
- "tag": {
532
- "const": "Group"
533
- },
534
- "list": {
535
- "type": "array",
536
- "items": {
537
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/definitions/PersonalityTraitPrerequisiteGroup"
538
- },
539
- "minItems": 2
600
+ "oneOf": [
601
+ {
602
+ "type": "object",
603
+ "properties": {
604
+ "tag": {
605
+ "const": "Plain"
606
+ },
607
+ "plain": {
608
+ "type": "array",
609
+ "items": {
610
+ "oneOf": [
611
+ {
612
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/PersonalityTraitPrerequisiteGroup"
540
613
  },
541
- "translations": {
542
- "description": "All translations for the entry, identified by IETF language tag (BCP47).",
614
+ {
543
615
  "type": "object",
544
- "patternProperties": {
545
- "^[a-z]{2}-[A-Z]{2}$": {
546
- "type": "string",
547
- "minLength": 1
616
+ "properties": {
617
+ "tag": {
618
+ "const": "Group"
619
+ },
620
+ "group": {
621
+ "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.",
622
+ "type": "object",
623
+ "properties": {
624
+ "list": {
625
+ "type": "array",
626
+ "items": {
627
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/PersonalityTraitPrerequisiteGroup"
628
+ },
629
+ "minItems": 2
630
+ },
631
+ "translations": {
632
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
633
+ "type": "object",
634
+ "patternProperties": {
635
+ "^[a-z]{2}-[A-Z]{2}$": {
636
+ "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
637
+ }
638
+ },
639
+ "minProperties": 1,
640
+ "additionalProperties": false
641
+ }
642
+ },
643
+ "required": [
644
+ "list",
645
+ "translations"
646
+ ],
647
+ "additionalProperties": false
548
648
  }
549
649
  },
550
- "minProperties": 1,
650
+ "required": [
651
+ "tag",
652
+ "group"
653
+ ],
551
654
  "additionalProperties": false
552
655
  }
553
- },
554
- "required": [
555
- "tag",
556
- "list",
557
- "translations"
558
- ],
559
- "additionalProperties": false
560
- }
561
- ]
656
+ ]
657
+ },
658
+ "minItems": 1
659
+ }
562
660
  },
563
- "minItems": 1
661
+ "required": [
662
+ "tag",
663
+ "plain"
664
+ ],
665
+ "additionalProperties": false
564
666
  }
565
- },
566
- "required": [
567
- "tag",
568
- "list"
569
- ],
570
- "additionalProperties": false
667
+ ]
571
668
  },
572
669
  "SpellworkPrerequisites": {
573
- "type": "object",
574
- "properties": {
575
- "tag": {
576
- "const": "Plain"
577
- },
578
- "list": {
579
- "type": "array",
580
- "items": {
581
- "oneOf": [
582
- {
583
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/definitions/SpellworkPrerequisiteGroup"
584
- },
585
- {
586
- "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.",
587
- "type": "object",
588
- "properties": {
589
- "tag": {
590
- "const": "Group"
591
- },
592
- "list": {
593
- "type": "array",
594
- "items": {
595
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/definitions/SpellworkPrerequisiteGroup"
596
- },
597
- "minItems": 2
670
+ "oneOf": [
671
+ {
672
+ "type": "object",
673
+ "properties": {
674
+ "tag": {
675
+ "const": "Plain"
676
+ },
677
+ "plain": {
678
+ "type": "array",
679
+ "items": {
680
+ "oneOf": [
681
+ {
682
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/SpellworkPrerequisiteGroup"
598
683
  },
599
- "translations": {
600
- "description": "All translations for the entry, identified by IETF language tag (BCP47).",
684
+ {
601
685
  "type": "object",
602
- "patternProperties": {
603
- "^[a-z]{2}-[A-Z]{2}$": {
604
- "type": "string",
605
- "minLength": 1
686
+ "properties": {
687
+ "tag": {
688
+ "const": "Group"
689
+ },
690
+ "group": {
691
+ "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.",
692
+ "type": "object",
693
+ "properties": {
694
+ "list": {
695
+ "type": "array",
696
+ "items": {
697
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/SpellworkPrerequisiteGroup"
698
+ },
699
+ "minItems": 2
700
+ },
701
+ "translations": {
702
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
703
+ "type": "object",
704
+ "patternProperties": {
705
+ "^[a-z]{2}-[A-Z]{2}$": {
706
+ "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
707
+ }
708
+ },
709
+ "minProperties": 1,
710
+ "additionalProperties": false
711
+ }
712
+ },
713
+ "required": [
714
+ "list",
715
+ "translations"
716
+ ],
717
+ "additionalProperties": false
606
718
  }
607
719
  },
608
- "minProperties": 1,
720
+ "required": [
721
+ "tag",
722
+ "group"
723
+ ],
609
724
  "additionalProperties": false
610
725
  }
611
- },
612
- "required": [
613
- "tag",
614
- "list",
615
- "translations"
616
- ],
617
- "additionalProperties": false
618
- }
619
- ]
726
+ ]
727
+ },
728
+ "minItems": 1
729
+ }
620
730
  },
621
- "minItems": 1
731
+ "required": [
732
+ "tag",
733
+ "plain"
734
+ ],
735
+ "additionalProperties": false
622
736
  }
623
- },
624
- "required": [
625
- "tag",
626
- "list"
627
- ],
628
- "additionalProperties": false
737
+ ]
629
738
  },
630
739
  "LiturgyPrerequisites": {
631
- "type": "object",
632
- "properties": {
633
- "tag": {
634
- "const": "Plain"
635
- },
636
- "list": {
637
- "type": "array",
638
- "items": {
639
- "oneOf": [
640
- {
641
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/definitions/LiturgyPrerequisiteGroup"
642
- },
643
- {
644
- "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.",
645
- "type": "object",
646
- "properties": {
647
- "tag": {
648
- "const": "Group"
649
- },
650
- "list": {
651
- "type": "array",
652
- "items": {
653
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/definitions/LiturgyPrerequisiteGroup"
654
- },
655
- "minItems": 2
740
+ "oneOf": [
741
+ {
742
+ "type": "object",
743
+ "properties": {
744
+ "tag": {
745
+ "const": "Plain"
746
+ },
747
+ "plain": {
748
+ "type": "array",
749
+ "items": {
750
+ "oneOf": [
751
+ {
752
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/LiturgyPrerequisiteGroup"
656
753
  },
657
- "translations": {
658
- "description": "All translations for the entry, identified by IETF language tag (BCP47).",
754
+ {
659
755
  "type": "object",
660
- "patternProperties": {
661
- "^[a-z]{2}-[A-Z]{2}$": {
662
- "type": "string",
663
- "minLength": 1
756
+ "properties": {
757
+ "tag": {
758
+ "const": "Group"
759
+ },
760
+ "group": {
761
+ "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.",
762
+ "type": "object",
763
+ "properties": {
764
+ "list": {
765
+ "type": "array",
766
+ "items": {
767
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/LiturgyPrerequisiteGroup"
768
+ },
769
+ "minItems": 2
770
+ },
771
+ "translations": {
772
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
773
+ "type": "object",
774
+ "patternProperties": {
775
+ "^[a-z]{2}-[A-Z]{2}$": {
776
+ "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
777
+ }
778
+ },
779
+ "minProperties": 1,
780
+ "additionalProperties": false
781
+ }
782
+ },
783
+ "required": [
784
+ "list",
785
+ "translations"
786
+ ],
787
+ "additionalProperties": false
664
788
  }
665
789
  },
666
- "minProperties": 1,
790
+ "required": [
791
+ "tag",
792
+ "group"
793
+ ],
667
794
  "additionalProperties": false
668
795
  }
669
- },
670
- "required": [
671
- "tag",
672
- "list",
673
- "translations"
674
- ],
675
- "additionalProperties": false
676
- }
677
- ]
796
+ ]
797
+ },
798
+ "minItems": 1
799
+ }
678
800
  },
679
- "minItems": 1
801
+ "required": [
802
+ "tag",
803
+ "plain"
804
+ ],
805
+ "additionalProperties": false
680
806
  }
681
- },
682
- "required": [
683
- "tag",
684
- "list"
685
- ],
686
- "additionalProperties": false
807
+ ]
687
808
  },
688
809
  "InfluencePrerequisites": {
689
- "type": "object",
690
- "properties": {
691
- "tag": {
692
- "const": "Plain"
693
- },
694
- "list": {
695
- "type": "array",
696
- "items": {
697
- "oneOf": [
698
- {
699
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/definitions/InfluencePrerequisiteGroup"
700
- },
701
- {
702
- "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.",
703
- "type": "object",
704
- "properties": {
705
- "tag": {
706
- "const": "Group"
707
- },
708
- "list": {
709
- "type": "array",
710
- "items": {
711
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/definitions/InfluencePrerequisiteGroup"
712
- },
713
- "minItems": 2
810
+ "oneOf": [
811
+ {
812
+ "type": "object",
813
+ "properties": {
814
+ "tag": {
815
+ "const": "Plain"
816
+ },
817
+ "plain": {
818
+ "type": "array",
819
+ "items": {
820
+ "oneOf": [
821
+ {
822
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/InfluencePrerequisiteGroup"
714
823
  },
715
- "translations": {
716
- "description": "All translations for the entry, identified by IETF language tag (BCP47).",
824
+ {
717
825
  "type": "object",
718
- "patternProperties": {
719
- "^[a-z]{2}-[A-Z]{2}$": {
720
- "type": "string",
721
- "minLength": 1
826
+ "properties": {
827
+ "tag": {
828
+ "const": "Group"
829
+ },
830
+ "group": {
831
+ "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.",
832
+ "type": "object",
833
+ "properties": {
834
+ "list": {
835
+ "type": "array",
836
+ "items": {
837
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/InfluencePrerequisiteGroup"
838
+ },
839
+ "minItems": 2
840
+ },
841
+ "translations": {
842
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
843
+ "type": "object",
844
+ "patternProperties": {
845
+ "^[a-z]{2}-[A-Z]{2}$": {
846
+ "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
847
+ }
848
+ },
849
+ "minProperties": 1,
850
+ "additionalProperties": false
851
+ }
852
+ },
853
+ "required": [
854
+ "list",
855
+ "translations"
856
+ ],
857
+ "additionalProperties": false
722
858
  }
723
859
  },
724
- "minProperties": 1,
860
+ "required": [
861
+ "tag",
862
+ "group"
863
+ ],
725
864
  "additionalProperties": false
726
865
  }
727
- },
728
- "required": [
729
- "tag",
730
- "list",
731
- "translations"
732
- ],
733
- "additionalProperties": false
734
- }
735
- ]
866
+ ]
867
+ },
868
+ "minItems": 1
869
+ }
736
870
  },
737
- "minItems": 1
871
+ "required": [
872
+ "tag",
873
+ "plain"
874
+ ],
875
+ "additionalProperties": false
738
876
  }
739
- },
740
- "required": [
741
- "tag",
742
- "list"
743
- ],
744
- "additionalProperties": false
877
+ ]
745
878
  },
746
879
  "LanguagePrerequisites": {
747
880
  "oneOf": [
@@ -751,44 +884,52 @@
751
884
  "tag": {
752
885
  "const": "Plain"
753
886
  },
754
- "list": {
887
+ "plain": {
755
888
  "type": "array",
756
889
  "items": {
757
890
  "oneOf": [
758
891
  {
759
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/definitions/LanguagePrerequisiteGroup"
892
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/LanguagePrerequisiteGroup"
760
893
  },
761
894
  {
762
- "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.",
763
895
  "type": "object",
764
896
  "properties": {
765
897
  "tag": {
766
898
  "const": "Group"
767
899
  },
768
- "list": {
769
- "type": "array",
770
- "items": {
771
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/definitions/LanguagePrerequisiteGroup"
772
- },
773
- "minItems": 2
774
- },
775
- "translations": {
776
- "description": "All translations for the entry, identified by IETF language tag (BCP47).",
900
+ "group": {
901
+ "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.",
777
902
  "type": "object",
778
- "patternProperties": {
779
- "^[a-z]{2}-[A-Z]{2}$": {
780
- "type": "string",
781
- "minLength": 1
903
+ "properties": {
904
+ "list": {
905
+ "type": "array",
906
+ "items": {
907
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/LanguagePrerequisiteGroup"
908
+ },
909
+ "minItems": 2
910
+ },
911
+ "translations": {
912
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
913
+ "type": "object",
914
+ "patternProperties": {
915
+ "^[a-z]{2}-[A-Z]{2}$": {
916
+ "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
917
+ }
918
+ },
919
+ "minProperties": 1,
920
+ "additionalProperties": false
782
921
  }
783
922
  },
784
- "minProperties": 1,
923
+ "required": [
924
+ "list",
925
+ "translations"
926
+ ],
785
927
  "additionalProperties": false
786
928
  }
787
929
  },
788
930
  "required": [
789
931
  "tag",
790
- "list",
791
- "translations"
932
+ "group"
792
933
  ],
793
934
  "additionalProperties": false
794
935
  }
@@ -799,7 +940,7 @@
799
940
  },
800
941
  "required": [
801
942
  "tag",
802
- "list"
943
+ "plain"
803
944
  ],
804
945
  "additionalProperties": false
805
946
  },
@@ -809,251 +950,298 @@
809
950
  "tag": {
810
951
  "const": "ByLevel"
811
952
  },
812
- "list": {
953
+ "by_level": {
813
954
  "type": "array",
814
955
  "items": {
815
- "type": "object",
816
- "properties": {
817
- "level": {
818
- "type": "integer",
819
- "minimum": 1
820
- },
821
- "prerequisites": {
822
- "type": "array",
823
- "items": {
824
- "oneOf": [
825
- {
826
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/definitions/LanguagePrerequisiteGroup"
827
- },
828
- {
829
- "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.",
830
- "type": "object",
831
- "properties": {
832
- "tag": {
833
- "const": "Group"
834
- },
835
- "list": {
836
- "type": "array",
837
- "items": {
838
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/definitions/LanguagePrerequisiteGroup"
956
+ "type": "array",
957
+ "items": {
958
+ "type": "object",
959
+ "properties": {
960
+ "level": {
961
+ "type": "integer",
962
+ "minimum": 1
963
+ },
964
+ "prerequisites": {
965
+ "type": "array",
966
+ "items": {
967
+ "oneOf": [
968
+ {
969
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/LanguagePrerequisiteGroup"
970
+ },
971
+ {
972
+ "type": "object",
973
+ "properties": {
974
+ "tag": {
975
+ "const": "Group"
839
976
  },
840
- "minItems": 2
977
+ "group": {
978
+ "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.",
979
+ "type": "object",
980
+ "properties": {
981
+ "list": {
982
+ "type": "array",
983
+ "items": {
984
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/LanguagePrerequisiteGroup"
985
+ },
986
+ "minItems": 2
987
+ },
988
+ "translations": {
989
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
990
+ "type": "object",
991
+ "patternProperties": {
992
+ "^[a-z]{2}-[A-Z]{2}$": {
993
+ "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
994
+ }
995
+ },
996
+ "minProperties": 1,
997
+ "additionalProperties": false
998
+ }
999
+ },
1000
+ "required": [
1001
+ "list",
1002
+ "translations"
1003
+ ],
1004
+ "additionalProperties": false
1005
+ }
841
1006
  },
842
- "translations": {
843
- "description": "All translations for the entry, identified by IETF language tag (BCP47).",
844
- "type": "object",
845
- "patternProperties": {
846
- "^[a-z]{2}-[A-Z]{2}$": {
847
- "type": "string",
848
- "minLength": 1
849
- }
850
- },
851
- "minProperties": 1,
852
- "additionalProperties": false
853
- }
854
- },
855
- "required": [
856
- "tag",
857
- "list",
858
- "translations"
859
- ],
860
- "additionalProperties": false
861
- }
862
- ]
863
- },
864
- "minItems": 1
865
- }
1007
+ "required": [
1008
+ "tag",
1009
+ "group"
1010
+ ],
1011
+ "additionalProperties": false
1012
+ }
1013
+ ]
1014
+ },
1015
+ "minItems": 1
1016
+ }
1017
+ },
1018
+ "required": [
1019
+ "level",
1020
+ "prerequisites"
1021
+ ],
1022
+ "additionalProperties": false
866
1023
  },
867
- "required": [
868
- "level",
869
- "prerequisites"
870
- ],
871
- "additionalProperties": false
872
- },
873
- "minItems": 1
1024
+ "minItems": 1
1025
+ }
874
1026
  }
875
1027
  },
876
1028
  "required": [
877
1029
  "tag",
878
- "list"
1030
+ "by_level"
879
1031
  ],
880
1032
  "additionalProperties": false
881
1033
  }
882
1034
  ]
883
1035
  },
884
1036
  "AnimistPowerPrerequisites": {
885
- "type": "object",
886
- "properties": {
887
- "tag": {
888
- "const": "Plain"
889
- },
890
- "list": {
891
- "type": "array",
892
- "items": {
893
- "oneOf": [
894
- {
895
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/definitions/AnimistPowerPrerequisiteGroup"
896
- },
897
- {
898
- "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.",
899
- "type": "object",
900
- "properties": {
901
- "tag": {
902
- "const": "Group"
903
- },
904
- "list": {
905
- "type": "array",
906
- "items": {
907
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/definitions/AnimistPowerPrerequisiteGroup"
908
- },
909
- "minItems": 2
1037
+ "oneOf": [
1038
+ {
1039
+ "type": "object",
1040
+ "properties": {
1041
+ "tag": {
1042
+ "const": "Plain"
1043
+ },
1044
+ "plain": {
1045
+ "type": "array",
1046
+ "items": {
1047
+ "oneOf": [
1048
+ {
1049
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/AnimistPowerPrerequisiteGroup"
910
1050
  },
911
- "translations": {
912
- "description": "All translations for the entry, identified by IETF language tag (BCP47).",
1051
+ {
913
1052
  "type": "object",
914
- "patternProperties": {
915
- "^[a-z]{2}-[A-Z]{2}$": {
916
- "type": "string",
917
- "minLength": 1
1053
+ "properties": {
1054
+ "tag": {
1055
+ "const": "Group"
1056
+ },
1057
+ "group": {
1058
+ "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.",
1059
+ "type": "object",
1060
+ "properties": {
1061
+ "list": {
1062
+ "type": "array",
1063
+ "items": {
1064
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/AnimistPowerPrerequisiteGroup"
1065
+ },
1066
+ "minItems": 2
1067
+ },
1068
+ "translations": {
1069
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
1070
+ "type": "object",
1071
+ "patternProperties": {
1072
+ "^[a-z]{2}-[A-Z]{2}$": {
1073
+ "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
1074
+ }
1075
+ },
1076
+ "minProperties": 1,
1077
+ "additionalProperties": false
1078
+ }
1079
+ },
1080
+ "required": [
1081
+ "list",
1082
+ "translations"
1083
+ ],
1084
+ "additionalProperties": false
918
1085
  }
919
1086
  },
920
- "minProperties": 1,
1087
+ "required": [
1088
+ "tag",
1089
+ "group"
1090
+ ],
921
1091
  "additionalProperties": false
922
1092
  }
923
- },
924
- "required": [
925
- "tag",
926
- "list",
927
- "translations"
928
- ],
929
- "additionalProperties": false
930
- }
931
- ]
1093
+ ]
1094
+ },
1095
+ "minItems": 1
1096
+ }
932
1097
  },
933
- "minItems": 1
1098
+ "required": [
1099
+ "tag",
1100
+ "plain"
1101
+ ],
1102
+ "additionalProperties": false
934
1103
  }
935
- },
936
- "required": [
937
- "tag",
938
- "list"
939
- ],
940
- "additionalProperties": false
1104
+ ]
941
1105
  },
942
1106
  "GeodeRitualPrerequisites": {
943
- "type": "object",
944
- "properties": {
945
- "tag": {
946
- "const": "Plain"
947
- },
948
- "list": {
949
- "type": "array",
950
- "items": {
951
- "oneOf": [
952
- {
953
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/definitions/GeodeRitualPrerequisiteGroup"
954
- },
955
- {
956
- "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.",
957
- "type": "object",
958
- "properties": {
959
- "tag": {
960
- "const": "Group"
961
- },
962
- "list": {
963
- "type": "array",
964
- "items": {
965
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/definitions/GeodeRitualPrerequisiteGroup"
966
- },
967
- "minItems": 2
1107
+ "oneOf": [
1108
+ {
1109
+ "type": "object",
1110
+ "properties": {
1111
+ "tag": {
1112
+ "const": "Plain"
1113
+ },
1114
+ "plain": {
1115
+ "type": "array",
1116
+ "items": {
1117
+ "oneOf": [
1118
+ {
1119
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/GeodeRitualPrerequisiteGroup"
968
1120
  },
969
- "translations": {
970
- "description": "All translations for the entry, identified by IETF language tag (BCP47).",
1121
+ {
971
1122
  "type": "object",
972
- "patternProperties": {
973
- "^[a-z]{2}-[A-Z]{2}$": {
974
- "type": "string",
975
- "minLength": 1
1123
+ "properties": {
1124
+ "tag": {
1125
+ "const": "Group"
1126
+ },
1127
+ "group": {
1128
+ "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.",
1129
+ "type": "object",
1130
+ "properties": {
1131
+ "list": {
1132
+ "type": "array",
1133
+ "items": {
1134
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/GeodeRitualPrerequisiteGroup"
1135
+ },
1136
+ "minItems": 2
1137
+ },
1138
+ "translations": {
1139
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
1140
+ "type": "object",
1141
+ "patternProperties": {
1142
+ "^[a-z]{2}-[A-Z]{2}$": {
1143
+ "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
1144
+ }
1145
+ },
1146
+ "minProperties": 1,
1147
+ "additionalProperties": false
1148
+ }
1149
+ },
1150
+ "required": [
1151
+ "list",
1152
+ "translations"
1153
+ ],
1154
+ "additionalProperties": false
976
1155
  }
977
1156
  },
978
- "minProperties": 1,
1157
+ "required": [
1158
+ "tag",
1159
+ "group"
1160
+ ],
979
1161
  "additionalProperties": false
980
1162
  }
981
- },
982
- "required": [
983
- "tag",
984
- "list",
985
- "translations"
986
- ],
987
- "additionalProperties": false
988
- }
989
- ]
1163
+ ]
1164
+ },
1165
+ "minItems": 1
1166
+ }
990
1167
  },
991
- "minItems": 1
1168
+ "required": [
1169
+ "tag",
1170
+ "plain"
1171
+ ],
1172
+ "additionalProperties": false
992
1173
  }
993
- },
994
- "required": [
995
- "tag",
996
- "list"
997
- ],
998
- "additionalProperties": false
1174
+ ]
999
1175
  },
1000
1176
  "EnhancementPrerequisites": {
1001
- "type": "object",
1002
- "properties": {
1003
- "tag": {
1004
- "const": "Plain"
1005
- },
1006
- "list": {
1007
- "type": "array",
1008
- "items": {
1009
- "oneOf": [
1010
- {
1011
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/definitions/EnhancementPrerequisiteGroup"
1012
- },
1013
- {
1014
- "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.",
1015
- "type": "object",
1016
- "properties": {
1017
- "tag": {
1018
- "const": "Group"
1019
- },
1020
- "list": {
1021
- "type": "array",
1022
- "items": {
1023
- "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/definitions/EnhancementPrerequisiteGroup"
1024
- },
1025
- "minItems": 2
1177
+ "oneOf": [
1178
+ {
1179
+ "type": "object",
1180
+ "properties": {
1181
+ "tag": {
1182
+ "const": "Plain"
1183
+ },
1184
+ "plain": {
1185
+ "type": "array",
1186
+ "items": {
1187
+ "oneOf": [
1188
+ {
1189
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/EnhancementPrerequisiteGroup"
1026
1190
  },
1027
- "translations": {
1028
- "description": "All translations for the entry, identified by IETF language tag (BCP47).",
1191
+ {
1029
1192
  "type": "object",
1030
- "patternProperties": {
1031
- "^[a-z]{2}-[A-Z]{2}$": {
1032
- "type": "string",
1033
- "minLength": 1
1193
+ "properties": {
1194
+ "tag": {
1195
+ "const": "Group"
1196
+ },
1197
+ "group": {
1198
+ "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.",
1199
+ "type": "object",
1200
+ "properties": {
1201
+ "list": {
1202
+ "type": "array",
1203
+ "items": {
1204
+ "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/EnhancementPrerequisiteGroup"
1205
+ },
1206
+ "minItems": 2
1207
+ },
1208
+ "translations": {
1209
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
1210
+ "type": "object",
1211
+ "patternProperties": {
1212
+ "^[a-z]{2}-[A-Z]{2}$": {
1213
+ "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
1214
+ }
1215
+ },
1216
+ "minProperties": 1,
1217
+ "additionalProperties": false
1218
+ }
1219
+ },
1220
+ "required": [
1221
+ "list",
1222
+ "translations"
1223
+ ],
1224
+ "additionalProperties": false
1034
1225
  }
1035
1226
  },
1036
- "minProperties": 1,
1227
+ "required": [
1228
+ "tag",
1229
+ "group"
1230
+ ],
1037
1231
  "additionalProperties": false
1038
1232
  }
1039
- },
1040
- "required": [
1041
- "tag",
1042
- "list",
1043
- "translations"
1044
- ],
1045
- "additionalProperties": false
1046
- }
1047
- ]
1233
+ ]
1234
+ },
1235
+ "minItems": 1
1236
+ }
1048
1237
  },
1049
- "minItems": 1
1238
+ "required": [
1239
+ "tag",
1240
+ "plain"
1241
+ ],
1242
+ "additionalProperties": false
1050
1243
  }
1051
- },
1052
- "required": [
1053
- "tag",
1054
- "list"
1055
- ],
1056
- "additionalProperties": false
1244
+ ]
1057
1245
  }
1058
1246
  }
1059
1247
  }