optolith-database-schema 0.1.4 → 0.1.7

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 (425) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/lib/config.d.ts +228 -0
  3. package/lib/config.js +224 -0
  4. package/lib/main.d.ts +16 -0
  5. package/lib/main.js +111 -1
  6. package/lib/types/Advantage.d.ts +7 -3
  7. package/lib/types/Advantage.js +2 -1
  8. package/lib/types/ArcaneBardTradition.d.ts +3 -2
  9. package/lib/types/ArcaneBardTradition.js +2 -1
  10. package/lib/types/ArcaneDancerTradition.d.ts +3 -2
  11. package/lib/types/ArcaneDancerTradition.js +2 -1
  12. package/lib/types/Aspect.d.ts +1 -0
  13. package/lib/types/Aspect.js +2 -1
  14. package/lib/types/Attribute.d.ts +2 -1
  15. package/lib/types/Attribute.js +3 -1
  16. package/lib/types/Blessing.d.ts +4 -3
  17. package/lib/types/Blessing.js +2 -1
  18. package/lib/types/Cantrip.d.ts +9 -13
  19. package/lib/types/Cantrip.js +2 -1
  20. package/lib/types/Ceremony.d.ts +9 -8
  21. package/lib/types/Ceremony.js +2 -1
  22. package/lib/types/CombatTechnique_Close.d.ts +4 -3
  23. package/lib/types/CombatTechnique_Close.js +2 -1
  24. package/lib/types/CombatTechnique_Ranged.d.ts +4 -3
  25. package/lib/types/CombatTechnique_Ranged.js +2 -1
  26. package/lib/types/Condition.d.ts +3 -2
  27. package/lib/types/Condition.js +2 -1
  28. package/lib/types/Continent.d.ts +1 -0
  29. package/lib/types/Continent.js +2 -1
  30. package/lib/types/Culture.d.ts +5 -4
  31. package/lib/types/Culture.js +2 -1
  32. package/lib/types/DerivedCharacteristic.d.ts +4 -3
  33. package/lib/types/DerivedCharacteristic.js +2 -1
  34. package/lib/types/Disadvantage.d.ts +7 -3
  35. package/lib/types/Disadvantage.js +2 -1
  36. package/lib/types/Element.d.ts +1 -0
  37. package/lib/types/Element.js +2 -1
  38. package/lib/types/ExperienceLevel.d.ts +1 -0
  39. package/lib/types/ExperienceLevel.js +2 -1
  40. package/lib/types/EyeColor.d.ts +1 -0
  41. package/lib/types/EyeColor.js +2 -1
  42. package/lib/types/FamiliarsTrick.d.ts +4 -3
  43. package/lib/types/FamiliarsTrick.js +2 -1
  44. package/lib/types/FamiliarsTrick_AnimalType.d.ts +1 -0
  45. package/lib/types/FamiliarsTrick_AnimalType.js +2 -1
  46. package/lib/types/HairColor.d.ts +1 -0
  47. package/lib/types/HairColor.js +2 -1
  48. package/lib/types/Lessons_Curriculum.d.ts +3 -2
  49. package/lib/types/Lessons_Curriculum.js +2 -1
  50. package/lib/types/Lessons_Guideline.d.ts +1 -0
  51. package/lib/types/Lessons_Guideline.js +2 -1
  52. package/lib/types/LiturgicalChant.d.ts +9 -8
  53. package/lib/types/LiturgicalChant.js +2 -1
  54. package/lib/types/Locale.d.ts +3 -2
  55. package/lib/types/Locale.js +2 -1
  56. package/lib/types/MetaCondition.d.ts +3 -2
  57. package/lib/types/MetaCondition.js +2 -1
  58. package/lib/types/PactCategory.d.ts +3 -2
  59. package/lib/types/PactCategory.js +2 -1
  60. package/lib/types/Patron.d.ts +2 -1
  61. package/lib/types/Patron.js +2 -1
  62. package/lib/types/PatronCategory.d.ts +1 -0
  63. package/lib/types/PatronCategory.js +2 -1
  64. package/lib/types/Property.d.ts +2 -1
  65. package/lib/types/Property.js +2 -1
  66. package/lib/types/Race.d.ts +4 -3
  67. package/lib/types/Race.js +2 -1
  68. package/lib/types/Region.d.ts +1 -0
  69. package/lib/types/Region.js +2 -1
  70. package/lib/types/Ritual.d.ts +9 -8
  71. package/lib/types/Ritual.js +2 -1
  72. package/lib/types/Service.d.ts +3 -2
  73. package/lib/types/Service.js +2 -1
  74. package/lib/types/SexPractice.d.ts +2 -1
  75. package/lib/types/SexPractice.js +2 -1
  76. package/lib/types/Skill.d.ts +5 -4
  77. package/lib/types/Skill.js +2 -1
  78. package/lib/types/SkillGroup.d.ts +2 -1
  79. package/lib/types/SkillGroup.js +2 -1
  80. package/lib/types/SkillModificationLevel.d.ts +1 -0
  81. package/lib/types/SkillModificationLevel.js +2 -0
  82. package/lib/types/SocialStatus.d.ts +1 -0
  83. package/lib/types/SocialStatus.js +2 -1
  84. package/lib/types/Spell.d.ts +9 -8
  85. package/lib/types/Spell.js +2 -1
  86. package/lib/types/State.d.ts +3 -2
  87. package/lib/types/State.js +2 -1
  88. package/lib/types/TargetCategory.d.ts +1 -0
  89. package/lib/types/TargetCategory.js +2 -1
  90. package/lib/types/_Activatable.d.ts +583 -15
  91. package/lib/types/_Activatable.js +44 -0
  92. package/lib/types/_ActivatableSkill.d.ts +1 -1
  93. package/lib/types/_Enhancements.d.ts +4 -4
  94. package/lib/types/_Identifier.d.ts +127 -96
  95. package/lib/types/_Identifier.js +110 -88
  96. package/lib/types/_Influence.d.ts +4 -2
  97. package/lib/types/_Prerequisite.d.ts +93 -397
  98. package/lib/types/_Prerequisite.js +1 -136
  99. package/lib/types/magicalActions/AnimistPower.d.ts +11 -5
  100. package/lib/types/magicalActions/AnimistPower.js +2 -1
  101. package/lib/types/magicalActions/AnimistPower_Tribe.d.ts +1 -0
  102. package/lib/types/magicalActions/AnimistPower_Tribe.js +2 -1
  103. package/lib/types/magicalActions/Curse.d.ts +5 -4
  104. package/lib/types/magicalActions/Curse.js +2 -1
  105. package/lib/types/magicalActions/DominationRitual.d.ts +5 -4
  106. package/lib/types/magicalActions/DominationRitual.js +2 -1
  107. package/lib/types/magicalActions/ElvenMagicalSong.d.ts +7 -6
  108. package/lib/types/magicalActions/ElvenMagicalSong.js +2 -1
  109. package/lib/types/magicalActions/GeodeRitual.d.ts +8 -7
  110. package/lib/types/magicalActions/GeodeRitual.js +2 -1
  111. package/lib/types/magicalActions/JesterTrick.d.ts +6 -5
  112. package/lib/types/magicalActions/JesterTrick.js +2 -1
  113. package/lib/types/magicalActions/MagicalDance.d.ts +7 -6
  114. package/lib/types/magicalActions/MagicalDance.js +2 -1
  115. package/lib/types/magicalActions/MagicalMelody.d.ts +8 -7
  116. package/lib/types/magicalActions/MagicalMelody.js +2 -1
  117. package/lib/types/magicalActions/MagicalRune.d.ts +6 -5
  118. package/lib/types/magicalActions/MagicalRune.js +2 -1
  119. package/lib/types/magicalActions/ZibiljaRitual.d.ts +6 -5
  120. package/lib/types/magicalActions/ZibiljaRitual.js +2 -1
  121. package/lib/types/prerequisites/ConditionalPrerequisites.d.ts +10 -0
  122. package/lib/types/prerequisites/ConditionalPrerequisites.js +1 -0
  123. package/lib/types/prerequisites/DisplayOption.d.ts +19 -0
  124. package/lib/types/prerequisites/DisplayOption.js +1 -0
  125. package/lib/types/prerequisites/PrerequisiteGroups.d.ts +32 -0
  126. package/lib/types/prerequisites/PrerequisiteGroups.js +1 -0
  127. package/lib/types/prerequisites/single/ActivatablePrerequisite.d.ts +95 -0
  128. package/lib/types/prerequisites/single/ActivatablePrerequisite.js +1 -0
  129. package/lib/types/prerequisites/single/AnimistPowerPrerequisite.d.ts +28 -0
  130. package/lib/types/prerequisites/single/AnimistPowerPrerequisite.js +1 -0
  131. package/lib/types/prerequisites/single/CommonSuggestedByRCPPrerequisite.d.ts +3 -0
  132. package/lib/types/prerequisites/single/CommonSuggestedByRCPPrerequisite.js +1 -0
  133. package/lib/types/prerequisites/single/CulturePrerequisite.d.ts +11 -0
  134. package/lib/types/prerequisites/single/CulturePrerequisite.js +1 -0
  135. package/lib/types/prerequisites/single/EnhancementPrerequisite.d.ts +36 -0
  136. package/lib/types/prerequisites/single/EnhancementPrerequisite.js +1 -0
  137. package/lib/types/prerequisites/single/InfluencePrerequisite.d.ts +18 -0
  138. package/lib/types/prerequisites/single/InfluencePrerequisite.js +1 -0
  139. package/lib/types/prerequisites/single/PactPrerequisite.d.ts +32 -0
  140. package/lib/types/prerequisites/single/PactPrerequisite.js +1 -0
  141. package/lib/types/prerequisites/single/PrimaryAttributePrerequisite.d.ts +22 -0
  142. package/lib/types/prerequisites/single/PrimaryAttributePrerequisite.js +1 -0
  143. package/lib/types/prerequisites/single/PublicationPrerequisite.d.ts +13 -0
  144. package/lib/types/prerequisites/single/PublicationPrerequisite.js +1 -0
  145. package/lib/types/prerequisites/single/RacePrerequisite.d.ts +14 -0
  146. package/lib/types/prerequisites/single/RacePrerequisite.js +1 -0
  147. package/lib/types/prerequisites/single/RatedPrerequisite.d.ts +99 -0
  148. package/lib/types/prerequisites/single/RatedPrerequisite.js +1 -0
  149. package/lib/types/prerequisites/single/RulePrerequisite.d.ts +10 -0
  150. package/lib/types/prerequisites/single/RulePrerequisite.js +1 -0
  151. package/lib/types/prerequisites/single/SexPrerequisite.d.ts +11 -0
  152. package/lib/types/prerequisites/single/SexPrerequisite.js +1 -0
  153. package/lib/types/prerequisites/single/SocialStatusPrerequisite.d.ts +16 -0
  154. package/lib/types/prerequisites/single/SocialStatusPrerequisite.js +1 -0
  155. package/lib/types/prerequisites/single/StatePrerequisite.d.ts +11 -0
  156. package/lib/types/prerequisites/single/StatePrerequisite.js +1 -0
  157. package/lib/types/prerequisites/single/TextPrerequisite.d.ts +31 -0
  158. package/lib/types/prerequisites/single/TextPrerequisite.js +1 -0
  159. package/lib/types/prerequisites/single/TraditionPrerequisite.d.ts +33 -0
  160. package/lib/types/prerequisites/single/TraditionPrerequisite.js +1 -0
  161. package/lib/types/rule/FocusRule.d.ts +3 -2
  162. package/lib/types/rule/FocusRule.js +2 -1
  163. package/lib/types/rule/FocusRule_Subject.d.ts +1 -0
  164. package/lib/types/rule/FocusRule_Subject.js +2 -1
  165. package/lib/types/rule/OptionalRule.d.ts +3 -2
  166. package/lib/types/rule/OptionalRule.js +2 -1
  167. package/lib/types/source/Publication.d.ts +87 -0
  168. package/lib/types/source/Publication.js +2 -1
  169. package/lib/types/specialAbility/AdvancedCombatSpecialAbility.d.ts +11 -3
  170. package/lib/types/specialAbility/AdvancedCombatSpecialAbility.js +2 -1
  171. package/lib/types/specialAbility/AdvancedKarmaSpecialAbility.d.ts +7 -3
  172. package/lib/types/specialAbility/AdvancedKarmaSpecialAbility.js +2 -1
  173. package/lib/types/specialAbility/AdvancedMagicalSpecialAbility.d.ts +7 -3
  174. package/lib/types/specialAbility/AdvancedMagicalSpecialAbility.js +2 -1
  175. package/lib/types/specialAbility/AdvancedSkillSpecialAbility.d.ts +7 -3
  176. package/lib/types/specialAbility/AdvancedSkillSpecialAbility.js +2 -1
  177. package/lib/types/specialAbility/AncestorGlyph.d.ts +7 -3
  178. package/lib/types/specialAbility/AncestorGlyph.js +2 -1
  179. package/lib/types/specialAbility/BlessedTradition.d.ts +9 -5
  180. package/lib/types/specialAbility/BlessedTradition.js +2 -1
  181. package/lib/types/specialAbility/BrawlingSpecialAbility.d.ts +7 -3
  182. package/lib/types/specialAbility/BrawlingSpecialAbility.js +2 -1
  183. package/lib/types/specialAbility/CeremonialItemSpecialAbility.d.ts +7 -3
  184. package/lib/types/specialAbility/CeremonialItemSpecialAbility.js +2 -1
  185. package/lib/types/specialAbility/CombatSpecialAbility.d.ts +11 -3
  186. package/lib/types/specialAbility/CombatSpecialAbility.js +2 -1
  187. package/lib/types/specialAbility/CombatStyleSpecialAbility.d.ts +7 -3
  188. package/lib/types/specialAbility/CombatStyleSpecialAbility.js +2 -1
  189. package/lib/types/specialAbility/CommandSpecialAbility.d.ts +10 -6
  190. package/lib/types/specialAbility/CommandSpecialAbility.js +3 -2
  191. package/lib/types/specialAbility/FamiliarSpecialAbility.d.ts +7 -3
  192. package/lib/types/specialAbility/FamiliarSpecialAbility.js +2 -1
  193. package/lib/types/specialAbility/FatePointSexSpecialAbility.d.ts +7 -3
  194. package/lib/types/specialAbility/FatePointSexSpecialAbility.js +2 -1
  195. package/lib/types/specialAbility/FatePointSpecialAbility.d.ts +7 -3
  196. package/lib/types/specialAbility/FatePointSpecialAbility.js +2 -1
  197. package/lib/types/specialAbility/GeneralSpecialAbility.d.ts +7 -3
  198. package/lib/types/specialAbility/GeneralSpecialAbility.js +2 -1
  199. package/lib/types/specialAbility/KarmaSpecialAbility.d.ts +7 -3
  200. package/lib/types/specialAbility/KarmaSpecialAbility.js +2 -1
  201. package/lib/types/specialAbility/LiturgicalStyleSpecialAbility.d.ts +10 -6
  202. package/lib/types/specialAbility/LiturgicalStyleSpecialAbility.js +3 -2
  203. package/lib/types/specialAbility/LycantropicGift.d.ts +7 -3
  204. package/lib/types/specialAbility/LycantropicGift.js +2 -1
  205. package/lib/types/specialAbility/MagicStyleSpecialAbility.d.ts +7 -3
  206. package/lib/types/specialAbility/MagicStyleSpecialAbility.js +2 -1
  207. package/lib/types/specialAbility/MagicalSpecialAbility.d.ts +7 -3
  208. package/lib/types/specialAbility/MagicalSpecialAbility.js +2 -1
  209. package/lib/types/specialAbility/MagicalTradition.d.ts +8 -4
  210. package/lib/types/specialAbility/MagicalTradition.js +2 -1
  211. package/lib/types/specialAbility/PactGift.d.ts +9 -5
  212. package/lib/types/specialAbility/PactGift.js +2 -1
  213. package/lib/types/specialAbility/ProtectiveWardingCircleSpecialAbility.d.ts +7 -3
  214. package/lib/types/specialAbility/ProtectiveWardingCircleSpecialAbility.js +2 -1
  215. package/lib/types/specialAbility/Sermon.d.ts +7 -3
  216. package/lib/types/specialAbility/Sermon.js +2 -1
  217. package/lib/types/specialAbility/SexSpecialAbility.d.ts +7 -3
  218. package/lib/types/specialAbility/SexSpecialAbility.js +2 -1
  219. package/lib/types/specialAbility/SikaryanDrainSpecialAbility.d.ts +7 -3
  220. package/lib/types/specialAbility/SikaryanDrainSpecialAbility.js +2 -1
  221. package/lib/types/specialAbility/SkillStyleSpecialAbility.d.ts +10 -6
  222. package/lib/types/specialAbility/SkillStyleSpecialAbility.js +3 -2
  223. package/lib/types/specialAbility/VampiricGift.d.ts +7 -3
  224. package/lib/types/specialAbility/VampiricGift.js +2 -1
  225. package/lib/types/specialAbility/Vision.d.ts +7 -3
  226. package/lib/types/specialAbility/Vision.js +2 -1
  227. package/lib/types/specialAbility/sub/Language.d.ts +5 -4
  228. package/lib/types/specialAbility/sub/Language.js +2 -1
  229. package/lib/types/specialAbility/sub/Script.d.ts +3 -2
  230. package/lib/types/specialAbility/sub/Script.js +2 -1
  231. package/lib/types/specialAbility/sub/TradeSecret.d.ts +5 -2
  232. package/lib/types/specialAbility/sub/TradeSecret.js +2 -1
  233. package/lib/types/traditionArtifacts/ArcaneOrbEnchantment.d.ts +19 -3
  234. package/lib/types/traditionArtifacts/ArcaneOrbEnchantment.js +2 -1
  235. package/lib/types/traditionArtifacts/AttireEnchantment.d.ts +19 -3
  236. package/lib/types/traditionArtifacts/AttireEnchantment.js +2 -1
  237. package/lib/types/traditionArtifacts/BowlEnchantment.d.ts +19 -3
  238. package/lib/types/traditionArtifacts/BowlEnchantment.js +2 -1
  239. package/lib/types/traditionArtifacts/CauldronEnchantment.d.ts +19 -3
  240. package/lib/types/traditionArtifacts/CauldronEnchantment.js +2 -1
  241. package/lib/types/traditionArtifacts/ChronicleEnchantment.d.ts +19 -3
  242. package/lib/types/traditionArtifacts/ChronicleEnchantment.js +2 -1
  243. package/lib/types/traditionArtifacts/DaggerRitual.d.ts +19 -3
  244. package/lib/types/traditionArtifacts/DaggerRitual.js +2 -1
  245. package/lib/types/traditionArtifacts/FoolsHatEnchantment.d.ts +19 -3
  246. package/lib/types/traditionArtifacts/FoolsHatEnchantment.js +2 -1
  247. package/lib/types/traditionArtifacts/InstrumentEnchantment.d.ts +19 -3
  248. package/lib/types/traditionArtifacts/InstrumentEnchantment.js +2 -1
  249. package/lib/types/traditionArtifacts/Krallenkettenzauber.d.ts +19 -3
  250. package/lib/types/traditionArtifacts/Krallenkettenzauber.js +2 -1
  251. package/lib/types/traditionArtifacts/OrbEnchantment.d.ts +19 -3
  252. package/lib/types/traditionArtifacts/OrbEnchantment.js +2 -1
  253. package/lib/types/traditionArtifacts/RingEnchantment.d.ts +19 -3
  254. package/lib/types/traditionArtifacts/RingEnchantment.js +2 -1
  255. package/lib/types/traditionArtifacts/SickleRitual.d.ts +19 -3
  256. package/lib/types/traditionArtifacts/SickleRitual.js +2 -1
  257. package/lib/types/traditionArtifacts/SpellSwordEnchantment.d.ts +19 -3
  258. package/lib/types/traditionArtifacts/SpellSwordEnchantment.js +2 -1
  259. package/lib/types/traditionArtifacts/StaffEnchantment.d.ts +19 -3
  260. package/lib/types/traditionArtifacts/StaffEnchantment.js +2 -1
  261. package/lib/types/traditionArtifacts/ToyEnchantment.d.ts +19 -3
  262. package/lib/types/traditionArtifacts/ToyEnchantment.js +2 -1
  263. package/lib/types/traditionArtifacts/Trinkhornzauber.d.ts +19 -3
  264. package/lib/types/traditionArtifacts/Trinkhornzauber.js +2 -1
  265. package/lib/types/traditionArtifacts/WandEnchantment.d.ts +19 -3
  266. package/lib/types/traditionArtifacts/WandEnchantment.js +2 -1
  267. package/lib/types/traditionArtifacts/WeaponEnchantment.d.ts +19 -3
  268. package/lib/types/traditionArtifacts/WeaponEnchantment.js +2 -1
  269. package/lib/types/traditionArtifacts/sub/AnimalShape.d.ts +1 -0
  270. package/lib/types/traditionArtifacts/sub/AnimalShape.js +2 -1
  271. package/lib/types/traditionArtifacts/sub/AnimalShapePath.d.ts +1 -0
  272. package/lib/types/traditionArtifacts/sub/AnimalShapePath.js +2 -1
  273. package/lib/types/traditionArtifacts/sub/AnimalShapeSize.d.ts +4 -3
  274. package/lib/types/traditionArtifacts/sub/AnimalShapeSize.js +3 -2
  275. package/lib/types/traditionArtifacts/sub/Brew.d.ts +1 -0
  276. package/lib/types/traditionArtifacts/sub/Brew.js +2 -1
  277. package/lib/validation/schema.d.ts +10 -0
  278. package/lib/validation/schema.js +20 -0
  279. package/package.json +4 -2
  280. package/schema/Advantage.schema.json +7 -1
  281. package/schema/ArcaneBardTradition.schema.json +2 -2
  282. package/schema/ArcaneDancerTradition.schema.json +2 -2
  283. package/schema/Aspect.schema.json +1 -1
  284. package/schema/Attribute.schema.json +1 -1
  285. package/schema/Blessing.schema.json +1 -1
  286. package/schema/Cantrip.schema.json +5 -10
  287. package/schema/Ceremony.schema.json +2 -2
  288. package/schema/CombatTechnique_Close.schema.json +1 -1
  289. package/schema/CombatTechnique_Ranged.schema.json +1 -1
  290. package/schema/Condition.schema.json +1 -1
  291. package/schema/Continent.schema.json +1 -1
  292. package/schema/Culture.schema.json +1 -1
  293. package/schema/DerivedCharacteristic.schema.json +2 -2
  294. package/schema/Disadvantage.schema.json +7 -1
  295. package/schema/Element.schema.json +1 -1
  296. package/schema/ExperienceLevel.schema.json +1 -1
  297. package/schema/EyeColor.schema.json +1 -1
  298. package/schema/FamiliarsTrick.schema.json +1 -1
  299. package/schema/FamiliarsTrick_AnimalType.schema.json +1 -1
  300. package/schema/HairColor.schema.json +1 -1
  301. package/schema/Lessons_Curriculum.schema.json +1 -1
  302. package/schema/Lessons_Guideline.schema.json +1 -1
  303. package/schema/LiturgicalChant.schema.json +2 -2
  304. package/schema/Locale.schema.json +1 -1
  305. package/schema/MetaCondition.schema.json +1 -1
  306. package/schema/PactCategory.schema.json +1 -1
  307. package/schema/Patron.schema.json +1 -1
  308. package/schema/PatronCategory.schema.json +1 -1
  309. package/schema/Property.schema.json +1 -1
  310. package/schema/Race.schema.json +1 -1
  311. package/schema/Region.schema.json +1 -1
  312. package/schema/Ritual.schema.json +2 -2
  313. package/schema/Service.schema.json +1 -1
  314. package/schema/SexPractice.schema.json +1 -1
  315. package/schema/Skill.schema.json +1 -1
  316. package/schema/SkillGroup.schema.json +1 -1
  317. package/schema/SkillModificationLevel.schema.json +1 -1
  318. package/schema/SocialStatus.schema.json +1 -1
  319. package/schema/Spell.schema.json +2 -2
  320. package/schema/State.schema.json +1 -1
  321. package/schema/TargetCategory.schema.json +1 -1
  322. package/schema/_Activatable.schema.json +1002 -44
  323. package/schema/_ActivatableSkill.schema.json +1 -1
  324. package/schema/_CommonnessRatedAdvantageDisadvantage.schema.json +1 -1
  325. package/schema/_Enhancements.schema.json +2 -2
  326. package/schema/_I18n.schema.json +1 -1
  327. package/schema/_Identifier.schema.json +326 -189
  328. package/schema/_ImprovementCost.schema.json +1 -1
  329. package/schema/_Influence.schema.json +5 -1
  330. package/schema/_Prerequisite.schema.json +888 -676
  331. package/schema/_Sex.schema.json +1 -1
  332. package/schema/_SkillCheck.schema.json +1 -1
  333. package/schema/magicalActions/AnimistPower.schema.json +5 -1
  334. package/schema/magicalActions/AnimistPower_Tribe.schema.json +1 -1
  335. package/schema/magicalActions/Curse.schema.json +1 -1
  336. package/schema/magicalActions/DominationRitual.schema.json +1 -1
  337. package/schema/magicalActions/ElvenMagicalSong.schema.json +1 -1
  338. package/schema/magicalActions/GeodeRitual.schema.json +2 -2
  339. package/schema/magicalActions/JesterTrick.schema.json +1 -1
  340. package/schema/magicalActions/MagicalDance.schema.json +1 -1
  341. package/schema/magicalActions/MagicalMelody.schema.json +1 -1
  342. package/schema/magicalActions/MagicalRune.schema.json +1 -1
  343. package/schema/magicalActions/ZibiljaRitual.schema.json +1 -1
  344. package/schema/magicalActions/_MusicTradition.schema.json +1 -1
  345. package/schema/magicalActions/_SkillReference.schema.json +1 -1
  346. package/schema/prerequisites/ConditionalPrerequisites.schema.json +15 -0
  347. package/schema/prerequisites/DisplayOption.schema.json +48 -0
  348. package/schema/prerequisites/PrerequisiteGroups.schema.json +246 -0
  349. package/schema/prerequisites/single/ActivatablePrerequisite.schema.json +142 -0
  350. package/schema/prerequisites/single/AnimistPowerPrerequisite.schema.json +40 -0
  351. package/schema/prerequisites/single/CommonSuggestedByRCPPrerequisite.schema.json +18 -0
  352. package/schema/prerequisites/single/CulturePrerequisite.schema.json +27 -0
  353. package/schema/prerequisites/single/EnhancementPrerequisite.schema.json +54 -0
  354. package/schema/prerequisites/single/InfluencePrerequisite.schema.json +33 -0
  355. package/schema/prerequisites/single/PactPrerequisite.schema.json +46 -0
  356. package/schema/prerequisites/single/PrimaryAttributePrerequisite.schema.json +58 -0
  357. package/schema/prerequisites/single/PublicationPrerequisite.schema.json +27 -0
  358. package/schema/prerequisites/single/RacePrerequisite.schema.json +31 -0
  359. package/schema/prerequisites/single/RatedPrerequisite.schema.json +184 -0
  360. package/schema/prerequisites/single/RulePrerequisite.schema.json +26 -0
  361. package/schema/prerequisites/single/SexPrerequisite.schema.json +27 -0
  362. package/schema/prerequisites/single/SocialStatusPrerequisite.schema.json +30 -0
  363. package/schema/prerequisites/single/StatePrerequisite.schema.json +27 -0
  364. package/schema/prerequisites/single/TextPrerequisite.schema.json +63 -0
  365. package/schema/prerequisites/single/TraditionPrerequisite.schema.json +96 -0
  366. package/schema/rule/FocusRule.schema.json +1 -1
  367. package/schema/rule/FocusRule_Subject.schema.json +1 -1
  368. package/schema/rule/OptionalRule.schema.json +1 -1
  369. package/schema/source/Publication.schema.json +2 -2
  370. package/schema/source/_Erratum.schema.json +1 -1
  371. package/schema/source/_PublicationRef.schema.json +1 -1
  372. package/schema/specialAbility/AdvancedCombatSpecialAbility.schema.json +10 -1
  373. package/schema/specialAbility/AdvancedKarmaSpecialAbility.schema.json +7 -1
  374. package/schema/specialAbility/AdvancedMagicalSpecialAbility.schema.json +7 -1
  375. package/schema/specialAbility/AdvancedSkillSpecialAbility.schema.json +7 -1
  376. package/schema/specialAbility/AncestorGlyph.schema.json +7 -1
  377. package/schema/specialAbility/BlessedTradition.schema.json +8 -2
  378. package/schema/specialAbility/BrawlingSpecialAbility.schema.json +7 -1
  379. package/schema/specialAbility/CeremonialItemSpecialAbility.schema.json +7 -1
  380. package/schema/specialAbility/CombatSpecialAbility.schema.json +10 -1
  381. package/schema/specialAbility/CombatStyleSpecialAbility.schema.json +7 -1
  382. package/schema/specialAbility/CommandSpecialAbility.schema.json +10 -4
  383. package/schema/specialAbility/FamiliarSpecialAbility.schema.json +7 -1
  384. package/schema/specialAbility/FatePointSexSpecialAbility.schema.json +7 -1
  385. package/schema/specialAbility/FatePointSpecialAbility.schema.json +7 -1
  386. package/schema/specialAbility/GeneralSpecialAbility.schema.json +7 -1
  387. package/schema/specialAbility/KarmaSpecialAbility.schema.json +7 -1
  388. package/schema/specialAbility/LiturgicalStyleSpecialAbility.schema.json +10 -4
  389. package/schema/specialAbility/LycantropicGift.schema.json +7 -1
  390. package/schema/specialAbility/MagicStyleSpecialAbility.schema.json +7 -1
  391. package/schema/specialAbility/MagicalSpecialAbility.schema.json +7 -1
  392. package/schema/specialAbility/MagicalTradition.schema.json +7 -1
  393. package/schema/specialAbility/PactGift.schema.json +8 -2
  394. package/schema/specialAbility/ProtectiveWardingCircleSpecialAbility.schema.json +7 -1
  395. package/schema/specialAbility/Sermon.schema.json +7 -1
  396. package/schema/specialAbility/SexSpecialAbility.schema.json +7 -1
  397. package/schema/specialAbility/SikaryanDrainSpecialAbility.schema.json +7 -1
  398. package/schema/specialAbility/SkillStyleSpecialAbility.schema.json +10 -4
  399. package/schema/specialAbility/VampiricGift.schema.json +7 -1
  400. package/schema/specialAbility/Vision.schema.json +7 -1
  401. package/schema/specialAbility/sub/Language.schema.json +2 -2
  402. package/schema/specialAbility/sub/Script.schema.json +1 -1
  403. package/schema/specialAbility/sub/TradeSecret.schema.json +4 -1
  404. package/schema/traditionArtifacts/ArcaneOrbEnchantment.schema.json +18 -2
  405. package/schema/traditionArtifacts/AttireEnchantment.schema.json +18 -2
  406. package/schema/traditionArtifacts/BowlEnchantment.schema.json +18 -2
  407. package/schema/traditionArtifacts/CauldronEnchantment.schema.json +18 -2
  408. package/schema/traditionArtifacts/ChronicleEnchantment.schema.json +18 -2
  409. package/schema/traditionArtifacts/DaggerRitual.schema.json +18 -2
  410. package/schema/traditionArtifacts/FoolsHatEnchantment.schema.json +18 -2
  411. package/schema/traditionArtifacts/InstrumentEnchantment.schema.json +18 -2
  412. package/schema/traditionArtifacts/Krallenkettenzauber.schema.json +18 -2
  413. package/schema/traditionArtifacts/OrbEnchantment.schema.json +18 -2
  414. package/schema/traditionArtifacts/RingEnchantment.schema.json +18 -2
  415. package/schema/traditionArtifacts/SickleRitual.schema.json +18 -2
  416. package/schema/traditionArtifacts/SpellSwordEnchantment.schema.json +18 -2
  417. package/schema/traditionArtifacts/StaffEnchantment.schema.json +18 -2
  418. package/schema/traditionArtifacts/ToyEnchantment.schema.json +18 -2
  419. package/schema/traditionArtifacts/Trinkhornzauber.schema.json +18 -2
  420. package/schema/traditionArtifacts/WandEnchantment.schema.json +18 -2
  421. package/schema/traditionArtifacts/WeaponEnchantment.schema.json +18 -2
  422. package/schema/traditionArtifacts/sub/AnimalShape.schema.json +1 -1
  423. package/schema/traditionArtifacts/sub/AnimalShapePath.schema.json +1 -1
  424. package/schema/traditionArtifacts/sub/AnimalShapeSize.schema.json +4 -4
  425. package/schema/traditionArtifacts/sub/Brew.schema.json +1 -1
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "http://json-schema.org/draft-07/schema",
3
- "$id": "_Activatable.schema.json",
3
+ "$id": "/_Activatable.schema.json",
4
4
  "definitions": {
5
5
  "Id": {
6
6
  "description": "The activatable entry's identifier. An unique, increasing integer.",
@@ -27,8 +27,996 @@
27
27
  "type": "integer",
28
28
  "minimum": 1
29
29
  },
30
- "Options": {
31
- "const": ""
30
+ "SelectOptions": {
31
+ "description": "Definitions for possible options for the activatable entry. They can either\nbe derived from entry categories or be defined explicitly. Both can happen as\nwell, but if there is an explicitly defined select option and a derived\nselect option has the same identifier (which may only happen if skill or\ncombat technique identifiers are used for explicit select options), the\nexplicit definition overwrites the derived option.\n\nNote that this is only a full definition of options for simple logic that can\nbe made explicit using the more detailed configuration for both derived\ncategories and explicit options. There are quite a few entries whose option\nlogic cannot be fully represented here, so that it needs to be implemented\nmanually.",
32
+ "type": "object",
33
+ "properties": {
34
+ "derived": {
35
+ "description": "A list of categories with optional further configuration. All available\nentries from the specified categories will be included as separate select\noptions. You can also specify a set of groups that should only be\nincluded. Groups not mentioned will be excluded then.",
36
+ "type": "array",
37
+ "items": {
38
+ "$ref": "#/definitions/CategoryOption"
39
+ },
40
+ "minItems": 1
41
+ },
42
+ "explicit": {
43
+ "description": "A list of explicit select options. If the identifier has a specific type,\nits entry is the base of this select option, where values defined here\noverride values from the base. Define the `src` property if the options\nare not derived from the rules text of the advantage/disadvantage/special\nability but instead are listed in a separate block and/or on a separate\npage.",
44
+ "type": "array",
45
+ "items": {
46
+ "$ref": "#/definitions/ExplicitOption"
47
+ },
48
+ "minItems": 1
49
+ }
50
+ },
51
+ "required": [],
52
+ "minProperties": 1,
53
+ "additionalProperties": false
54
+ },
55
+ "CategoryOption": {
56
+ "oneOf": [
57
+ {
58
+ "type": "object",
59
+ "properties": {
60
+ "tag": {
61
+ "const": "Blessings"
62
+ }
63
+ },
64
+ "required": [
65
+ "tag"
66
+ ],
67
+ "additionalProperties": false
68
+ },
69
+ {
70
+ "type": "object",
71
+ "properties": {
72
+ "tag": {
73
+ "const": "Cantrips"
74
+ }
75
+ },
76
+ "required": [
77
+ "tag"
78
+ ],
79
+ "additionalProperties": false
80
+ },
81
+ {
82
+ "type": "object",
83
+ "properties": {
84
+ "tag": {
85
+ "const": "TradeSecrets"
86
+ }
87
+ },
88
+ "required": [
89
+ "tag"
90
+ ],
91
+ "additionalProperties": false
92
+ },
93
+ {
94
+ "type": "object",
95
+ "properties": {
96
+ "tag": {
97
+ "const": "Scripts"
98
+ }
99
+ },
100
+ "required": [
101
+ "tag"
102
+ ],
103
+ "additionalProperties": false
104
+ },
105
+ {
106
+ "type": "object",
107
+ "properties": {
108
+ "tag": {
109
+ "const": "AnimalShapes"
110
+ }
111
+ },
112
+ "required": [
113
+ "tag"
114
+ ],
115
+ "additionalProperties": false
116
+ },
117
+ {
118
+ "type": "object",
119
+ "properties": {
120
+ "tag": {
121
+ "const": "ArcaneBardTraditions"
122
+ }
123
+ },
124
+ "required": [
125
+ "tag"
126
+ ],
127
+ "additionalProperties": false
128
+ },
129
+ {
130
+ "type": "object",
131
+ "properties": {
132
+ "tag": {
133
+ "const": "ArcaneDancerTraditions"
134
+ }
135
+ },
136
+ "required": [
137
+ "tag"
138
+ ],
139
+ "additionalProperties": false
140
+ },
141
+ {
142
+ "type": "object",
143
+ "properties": {
144
+ "tag": {
145
+ "const": "SexPractices"
146
+ }
147
+ },
148
+ "required": [
149
+ "tag"
150
+ ],
151
+ "additionalProperties": false
152
+ },
153
+ {
154
+ "type": "object",
155
+ "properties": {
156
+ "tag": {
157
+ "const": "Races"
158
+ }
159
+ },
160
+ "required": [
161
+ "tag"
162
+ ],
163
+ "additionalProperties": false
164
+ },
165
+ {
166
+ "type": "object",
167
+ "properties": {
168
+ "tag": {
169
+ "const": "Cultures"
170
+ }
171
+ },
172
+ "required": [
173
+ "tag"
174
+ ],
175
+ "additionalProperties": false
176
+ },
177
+ {
178
+ "type": "object",
179
+ "properties": {
180
+ "tag": {
181
+ "const": "BlessedTraditions"
182
+ },
183
+ "require_principles": {
184
+ "description": "Should the principles (code) of the tradition be required to select the\nrespective tradition?",
185
+ "const": true
186
+ }
187
+ },
188
+ "required": [
189
+ "tag"
190
+ ],
191
+ "additionalProperties": false
192
+ },
193
+ {
194
+ "type": "object",
195
+ "properties": {
196
+ "tag": {
197
+ "const": "Elements"
198
+ },
199
+ "specific": {
200
+ "description": "Only include entries with the listed identifiers.",
201
+ "type": "array",
202
+ "items": {
203
+ "type": "object",
204
+ "properties": {
205
+ "id": {
206
+ "description": "The element's identifier.",
207
+ "type": "integer",
208
+ "maximum": 6,
209
+ "minimum": 1
210
+ }
211
+ },
212
+ "required": [
213
+ "id"
214
+ ],
215
+ "additionalProperties": false
216
+ },
217
+ "minItems": 1,
218
+ "uniqueItems": true
219
+ }
220
+ },
221
+ "required": [
222
+ "tag"
223
+ ],
224
+ "additionalProperties": false
225
+ },
226
+ {
227
+ "type": "object",
228
+ "properties": {
229
+ "tag": {
230
+ "const": "Properties"
231
+ },
232
+ "require_knowledge": {
233
+ "description": "Does each property require it's corresponding property knowledge?",
234
+ "const": true
235
+ },
236
+ "require_minimum_spellworks_on": {
237
+ "description": "Require a minimum number of spellworks of the respective property to be\non a minimum skill rating.",
238
+ "type": "object",
239
+ "properties": {
240
+ "number": {
241
+ "description": "The minimum number of spellworks that need to be on the defined minimum\nskill rating.",
242
+ "type": "integer",
243
+ "minimum": 1
244
+ },
245
+ "value": {
246
+ "description": "The minimum skill rating the defined minimum number of spellworks need\nto be on.",
247
+ "type": "integer",
248
+ "minimum": 1
249
+ }
250
+ },
251
+ "required": [
252
+ "number",
253
+ "value"
254
+ ],
255
+ "additionalProperties": false
256
+ }
257
+ },
258
+ "required": [
259
+ "tag"
260
+ ],
261
+ "additionalProperties": false
262
+ },
263
+ {
264
+ "type": "object",
265
+ "properties": {
266
+ "tag": {
267
+ "const": "Aspects"
268
+ },
269
+ "require_knowledge": {
270
+ "description": "Does each aspect require it's corresponding aspect knowledge?",
271
+ "const": true
272
+ },
273
+ "use_master_of_suffix_as_name": {
274
+ "description": "The generated name should be the *Master of (Aspect)* suffix for this\naspect instead of the aspect's name. If an aspect does not provide a\nsuffix (such as the General aspect), it is automatically excluded from\nthe list.",
275
+ "const": true
276
+ },
277
+ "require_minimum_liturgies_on": {
278
+ "description": "Require a minimum number of liturgies of the respective aspect to be on a\nminimum skill rating.",
279
+ "type": "object",
280
+ "properties": {
281
+ "number": {
282
+ "description": "The minimum number of liturgies that need to be on the defined minimum\nskill rating.",
283
+ "type": "integer",
284
+ "minimum": 1
285
+ },
286
+ "value": {
287
+ "description": "The minimum skill rating the defined minimum number of liturgies need\nto be on.",
288
+ "type": "integer",
289
+ "minimum": 1
290
+ }
291
+ },
292
+ "required": [
293
+ "number",
294
+ "value"
295
+ ],
296
+ "additionalProperties": false
297
+ }
298
+ },
299
+ "required": [
300
+ "tag"
301
+ ],
302
+ "additionalProperties": false
303
+ },
304
+ {
305
+ "type": "object",
306
+ "properties": {
307
+ "tag": {
308
+ "const": "Diseases"
309
+ },
310
+ "use_half_level_as_ap_value": {
311
+ "description": "Only convert half the disease level into the AP value.",
312
+ "const": true
313
+ }
314
+ },
315
+ "required": [
316
+ "tag"
317
+ ],
318
+ "additionalProperties": false
319
+ },
320
+ {
321
+ "type": "object",
322
+ "properties": {
323
+ "tag": {
324
+ "const": "Poisons"
325
+ },
326
+ "use_half_level_as_ap_value": {
327
+ "description": "Only convert half the poison level into the AP value.",
328
+ "const": true
329
+ }
330
+ },
331
+ "required": [
332
+ "tag"
333
+ ],
334
+ "additionalProperties": false
335
+ },
336
+ {
337
+ "type": "object",
338
+ "properties": {
339
+ "tag": {
340
+ "const": "Languages"
341
+ },
342
+ "prerequisites": {
343
+ "description": "Generate prerequisites for each entry of the category.",
344
+ "type": "array",
345
+ "items": {
346
+ "$ref": "#/definitions/OptionOptionPrerequisite"
347
+ },
348
+ "minItems": 1
349
+ }
350
+ },
351
+ "required": [
352
+ "tag"
353
+ ],
354
+ "additionalProperties": false
355
+ },
356
+ {
357
+ "type": "object",
358
+ "properties": {
359
+ "tag": {
360
+ "const": "Skills"
361
+ },
362
+ "groups": {
363
+ "description": "Only include entries of the specified groups.",
364
+ "type": "array",
365
+ "items": {
366
+ "type": "object",
367
+ "properties": {
368
+ "id": {
369
+ "description": "The skill group's identifier.",
370
+ "type": "integer",
371
+ "maximum": 5,
372
+ "minimum": 1
373
+ }
374
+ },
375
+ "required": [
376
+ "id"
377
+ ],
378
+ "additionalProperties": false
379
+ },
380
+ "minItems": 1
381
+ },
382
+ "specific": {
383
+ "description": "Only include (`Intersection`) or exclude (`Difference`) specific skills.",
384
+ "type": "object",
385
+ "properties": {
386
+ "operation": {
387
+ "oneOf": [
388
+ {
389
+ "type": "object",
390
+ "properties": {
391
+ "tag": {
392
+ "const": "Intersection"
393
+ }
394
+ },
395
+ "required": [
396
+ "tag"
397
+ ],
398
+ "additionalProperties": false
399
+ },
400
+ {
401
+ "type": "object",
402
+ "properties": {
403
+ "tag": {
404
+ "const": "Difference"
405
+ }
406
+ },
407
+ "required": [
408
+ "tag"
409
+ ],
410
+ "additionalProperties": false
411
+ }
412
+ ]
413
+ },
414
+ "list": {
415
+ "description": "The list of specific skills.",
416
+ "type": "array",
417
+ "items": {
418
+ "type": "object",
419
+ "properties": {
420
+ "id": {
421
+ "description": "The skill's identifier.",
422
+ "type": "integer",
423
+ "maximum": 59,
424
+ "minimum": 1
425
+ }
426
+ },
427
+ "required": [
428
+ "id"
429
+ ],
430
+ "additionalProperties": false
431
+ },
432
+ "minItems": 1,
433
+ "uniqueItems": true
434
+ }
435
+ },
436
+ "required": [
437
+ "operation",
438
+ "list"
439
+ ],
440
+ "additionalProperties": false
441
+ },
442
+ "skill_applications": {
443
+ "description": "Registers new applications, which get enabled once this entry is\nactivated with its respective select option. It specifies an entry-unique\nidentifier, the skill it belongs to is derived from the select option\nautomatically. A translation can be left out if its name equals the name\nof the origin entry.",
444
+ "type": "array",
445
+ "items": {
446
+ "type": "object",
447
+ "properties": {
448
+ "id": {
449
+ "description": "The application's identifier. An entry-unique, increasing integer.",
450
+ "type": "integer",
451
+ "minimum": 1
452
+ },
453
+ "translations": {
454
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
455
+ "type": "object",
456
+ "patternProperties": {
457
+ "^[a-z]{2}-[A-Z]{2}$": {
458
+ "type": "object",
459
+ "properties": {
460
+ "name": {
461
+ "description": "The name of the application if different from the activatable entry's\nname.",
462
+ "type": "string",
463
+ "minLength": 1
464
+ }
465
+ },
466
+ "required": [
467
+ "name"
468
+ ],
469
+ "additionalProperties": false
470
+ }
471
+ },
472
+ "minProperties": 1,
473
+ "additionalProperties": false
474
+ }
475
+ },
476
+ "required": [
477
+ "id"
478
+ ],
479
+ "additionalProperties": false
480
+ },
481
+ "minItems": 1
482
+ },
483
+ "skill_uses": {
484
+ "description": "Registers uses, which get enabled once this entry is activated with its\nrespective select option. It specifies an entry-unique identifier, the\nskill it belongs to is derived from the select option automatically. A\ntranslation can be left out if its name equals the name of the origin\nentry.",
485
+ "type": "array",
486
+ "items": {
487
+ "type": "object",
488
+ "properties": {
489
+ "id": {
490
+ "description": "The use's identifier. An entry-unique, increasing integer.",
491
+ "type": "integer",
492
+ "minimum": 1
493
+ },
494
+ "translations": {
495
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
496
+ "type": "object",
497
+ "patternProperties": {
498
+ "^[a-z]{2}-[A-Z]{2}$": {
499
+ "type": "object",
500
+ "properties": {
501
+ "name": {
502
+ "description": "The name of the use if different from the activatable entry's name.",
503
+ "type": "string",
504
+ "minLength": 1
505
+ }
506
+ },
507
+ "required": [
508
+ "name"
509
+ ],
510
+ "additionalProperties": false
511
+ }
512
+ },
513
+ "minProperties": 1,
514
+ "additionalProperties": false
515
+ }
516
+ },
517
+ "required": [
518
+ "id"
519
+ ],
520
+ "additionalProperties": false
521
+ },
522
+ "minItems": 1
523
+ },
524
+ "prerequisites": {
525
+ "description": "Generate prerequisites for each entry of the category.",
526
+ "type": "array",
527
+ "items": {
528
+ "oneOf": [
529
+ {
530
+ "$ref": "#/definitions/OptionSkillSelfPrerequisite"
531
+ },
532
+ {
533
+ "$ref": "#/definitions/OptionOptionPrerequisite"
534
+ }
535
+ ]
536
+ },
537
+ "minItems": 1
538
+ },
539
+ "ap_value": {
540
+ "description": "Generate AP values for each entry.",
541
+ "$ref": "#/definitions/OptionSkillDeriveAdventurePointsValue"
542
+ }
543
+ },
544
+ "required": [
545
+ "tag"
546
+ ],
547
+ "additionalProperties": false
548
+ },
549
+ {
550
+ "type": "object",
551
+ "properties": {
552
+ "tag": {
553
+ "$ref": "#/definitions/NonSkillSkillCategory"
554
+ },
555
+ "specific": {
556
+ "description": "Only include (`Intersection`) or exclude (`Difference`) specific entries.",
557
+ "type": "object",
558
+ "properties": {
559
+ "operation": {
560
+ "oneOf": [
561
+ {
562
+ "type": "object",
563
+ "properties": {
564
+ "tag": {
565
+ "const": "Intersection"
566
+ }
567
+ },
568
+ "required": [
569
+ "tag"
570
+ ],
571
+ "additionalProperties": false
572
+ },
573
+ {
574
+ "type": "object",
575
+ "properties": {
576
+ "tag": {
577
+ "const": "Difference"
578
+ }
579
+ },
580
+ "required": [
581
+ "tag"
582
+ ],
583
+ "additionalProperties": false
584
+ }
585
+ ]
586
+ },
587
+ "list": {
588
+ "description": "The list of specific entries.",
589
+ "type": "array",
590
+ "items": {
591
+ "type": "object",
592
+ "properties": {
593
+ "id": {
594
+ "description": "The entry's identifier.",
595
+ "type": "integer",
596
+ "maximum": 59,
597
+ "minimum": 1
598
+ }
599
+ },
600
+ "required": [
601
+ "id"
602
+ ],
603
+ "additionalProperties": false
604
+ },
605
+ "minItems": 1,
606
+ "uniqueItems": true
607
+ }
608
+ },
609
+ "required": [
610
+ "operation",
611
+ "list"
612
+ ],
613
+ "additionalProperties": false
614
+ },
615
+ "prerequisites": {
616
+ "description": "Generate prerequisites for each entry of the category.",
617
+ "type": "array",
618
+ "items": {
619
+ "oneOf": [
620
+ {
621
+ "$ref": "#/definitions/OptionSkillSelfPrerequisite"
622
+ },
623
+ {
624
+ "$ref": "#/definitions/OptionOptionPrerequisite"
625
+ }
626
+ ]
627
+ },
628
+ "minItems": 1
629
+ },
630
+ "ap_value": {
631
+ "description": "Generate AP values for each entry.",
632
+ "$ref": "#/definitions/OptionSkillDeriveAdventurePointsValue"
633
+ }
634
+ },
635
+ "required": [
636
+ "tag"
637
+ ],
638
+ "additionalProperties": false
639
+ }
640
+ ]
641
+ },
642
+ "NonSkillSkillCategory": {
643
+ "enum": [
644
+ "CloseCombatTechniques",
645
+ "RangedCombatTechniques",
646
+ "LiturgicalChants",
647
+ "Ceremonies",
648
+ "Spells",
649
+ "Rituals"
650
+ ]
651
+ },
652
+ "OptionSkillSelfPrerequisite": {
653
+ "type": "object",
654
+ "properties": {
655
+ "tag": {
656
+ "const": "Self"
657
+ },
658
+ "value": {
659
+ "description": "The entry requires itself on a certain Skill Rating.",
660
+ "type": "integer",
661
+ "minimum": 1
662
+ }
663
+ },
664
+ "required": [
665
+ "tag",
666
+ "value"
667
+ ],
668
+ "additionalProperties": false
669
+ },
670
+ "OptionOptionPrerequisite": {
671
+ "description": "The entry requires or prohibits itself as a select option of another entry.",
672
+ "type": "object",
673
+ "properties": {
674
+ "tag": {
675
+ "const": "SelectOption"
676
+ },
677
+ "id": {
678
+ "description": "The target entry's identifier.",
679
+ "$ref": "./_Identifier.schema.json#/definitions/ActivatableIdentifier"
680
+ },
681
+ "active": {
682
+ "description": "Is the select option required (`true`) or prohibited (`false`)?",
683
+ "type": "boolean"
684
+ },
685
+ "level": {
686
+ "description": "The required level, if any.",
687
+ "type": "integer",
688
+ "minimum": 2
689
+ }
690
+ },
691
+ "required": [
692
+ "tag",
693
+ "id",
694
+ "active"
695
+ ],
696
+ "additionalProperties": false
697
+ },
698
+ "OptionSkillDeriveAdventurePointsValue": {
699
+ "description": "Generate AP values for each entry.",
700
+ "oneOf": [
701
+ {
702
+ "type": "object",
703
+ "properties": {
704
+ "tag": {
705
+ "const": "DerivedFromImprovementCost"
706
+ },
707
+ "multiplier": {
708
+ "description": "This number is multiplied with the improvement cost of the entry\n(A = 1 to D = 4).",
709
+ "type": "integer",
710
+ "minimum": 2
711
+ }
712
+ },
713
+ "required": [
714
+ "tag"
715
+ ],
716
+ "additionalProperties": false
717
+ },
718
+ {
719
+ "type": "object",
720
+ "properties": {
721
+ "tag": {
722
+ "const": "Fixed"
723
+ },
724
+ "map": {
725
+ "description": "A mapping of skill identifiers to their specific AP values.",
726
+ "type": "array",
727
+ "items": {
728
+ "type": "object",
729
+ "properties": {
730
+ "id": {
731
+ "description": "The skill's identifier.",
732
+ "type": "integer",
733
+ "minimum": 1
734
+ },
735
+ "ap_value": {
736
+ "description": "The AP value for the specified entry.",
737
+ "type": "integer",
738
+ "minimum": 1
739
+ }
740
+ },
741
+ "required": [
742
+ "id",
743
+ "ap_value"
744
+ ],
745
+ "additionalProperties": false
746
+ }
747
+ },
748
+ "default": {
749
+ "description": "The default value of an entry. Used as a fallback if no value is\nfound in `list`.",
750
+ "type": "integer",
751
+ "minimum": 1
752
+ }
753
+ },
754
+ "required": [
755
+ "tag",
756
+ "map",
757
+ "default"
758
+ ],
759
+ "additionalProperties": false
760
+ }
761
+ ]
762
+ },
763
+ "ExplicitOption": {
764
+ "oneOf": [
765
+ {
766
+ "type": "object",
767
+ "properties": {
768
+ "tag": {
769
+ "const": "General"
770
+ },
771
+ "id": {
772
+ "description": "The option's identifier. An unique, increasing integer.",
773
+ "type": "integer",
774
+ "minimum": 1
775
+ },
776
+ "profession_only": {
777
+ "description": "Sometimes, professions use specific text selections that are not\ncontained in described lists. This ensures you can use them for\nprofessions only. They are not going to be displayed as options to the\nuser.",
778
+ "const": true
779
+ },
780
+ "skill_applications": {
781
+ "description": "Registers new applications, which get enabled once this entry is\nactivated with its respective select option. It specifies an entry-unique\nidentifier and the skill it belongs to. A translation can be left out if\nits name equals the name of the origin select option.",
782
+ "$ref": "#/definitions/SkillApplications"
783
+ },
784
+ "skill_uses": {
785
+ "description": "Registers uses, which get enabled once this entry is activated with its\nrespective select option. It specifies an entry-unique identifier and the\nskill it belongs to. A translation can be left out if its name equals the\nname of the origin select option.",
786
+ "$ref": "#/definitions/SkillUses"
787
+ },
788
+ "prerequisites": {
789
+ "$ref": "./_Prerequisite.schema.json#/definitions/GeneralPrerequisites"
790
+ },
791
+ "ap_value": {
792
+ "description": "Specific AP cost for the select option.",
793
+ "type": "integer",
794
+ "minimum": 1
795
+ },
796
+ "src": {
797
+ "$ref": "./source/_PublicationRef.schema.json#/definitions/PublicationRefs"
798
+ },
799
+ "translations": {
800
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
801
+ "type": "object",
802
+ "patternProperties": {
803
+ "^[a-z]{2}-[A-Z]{2}$": {
804
+ "type": "object",
805
+ "properties": {
806
+ "name": {
807
+ "description": "The name of the select option.",
808
+ "type": "string",
809
+ "minLength": 1
810
+ },
811
+ "name_in_profession": {
812
+ "description": "The name of the select option when displayed in a generated\nprofession text.",
813
+ "type": "string",
814
+ "minLength": 1
815
+ },
816
+ "description": {
817
+ "description": "The description of the select option. Useful for Bad Habits, Trade\nSecrets and other entries where a description is available.",
818
+ "type": "string",
819
+ "minLength": 1
820
+ },
821
+ "errata": {
822
+ "$ref": "./source/_Erratum.schema.json#/definitions/Errata"
823
+ }
824
+ },
825
+ "required": [
826
+ "name"
827
+ ],
828
+ "additionalProperties": false
829
+ }
830
+ },
831
+ "minProperties": 1,
832
+ "additionalProperties": false
833
+ }
834
+ },
835
+ "required": [
836
+ "tag",
837
+ "id",
838
+ "translations"
839
+ ],
840
+ "additionalProperties": false
841
+ },
842
+ {
843
+ "type": "object",
844
+ "properties": {
845
+ "tag": {
846
+ "const": "Skill"
847
+ },
848
+ "id": {
849
+ "description": "The skill's identifier. An unique, increasing integer.",
850
+ "type": "integer",
851
+ "minimum": 1
852
+ },
853
+ "skill_applications": {
854
+ "description": "Registers new applications, which get enabled once this entry is\nactivated with its respective select option. It specifies an entry-unique\nidentifier and the skill it belongs to. A translation can be left out if\nits name equals the name of the origin select option.",
855
+ "type": "array",
856
+ "items": {
857
+ "type": "object",
858
+ "properties": {
859
+ "id": {
860
+ "description": "The application's identifier. An entry-unique, increasing integer.",
861
+ "type": "integer",
862
+ "minimum": 1
863
+ },
864
+ "translations": {
865
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
866
+ "type": "object",
867
+ "patternProperties": {
868
+ "^[a-z]{2}-[A-Z]{2}$": {
869
+ "type": "object",
870
+ "properties": {
871
+ "name": {
872
+ "description": "The name of the application if different from the activatable entry's\nname.",
873
+ "type": "string",
874
+ "minLength": 1
875
+ }
876
+ },
877
+ "required": [
878
+ "name"
879
+ ],
880
+ "additionalProperties": false
881
+ }
882
+ },
883
+ "minProperties": 1,
884
+ "additionalProperties": false
885
+ }
886
+ },
887
+ "required": [
888
+ "id"
889
+ ],
890
+ "additionalProperties": false
891
+ },
892
+ "minItems": 1
893
+ },
894
+ "skill_uses": {
895
+ "description": "Registers uses, which get enabled once this entry is activated with its\nrespective select option. It specifies an entry-unique identifier and the\nskill it belongs to. A translation can be left out if its name equals the\nname of the origin select option.",
896
+ "type": "array",
897
+ "items": {
898
+ "type": "object",
899
+ "properties": {
900
+ "id": {
901
+ "description": "The use's identifier. An entry-unique, increasing integer.",
902
+ "type": "integer",
903
+ "minimum": 1
904
+ },
905
+ "translations": {
906
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
907
+ "type": "object",
908
+ "patternProperties": {
909
+ "^[a-z]{2}-[A-Z]{2}$": {
910
+ "type": "object",
911
+ "properties": {
912
+ "name": {
913
+ "description": "The name of the use if different from the activatable entry's name.",
914
+ "type": "string",
915
+ "minLength": 1
916
+ }
917
+ },
918
+ "required": [
919
+ "name"
920
+ ],
921
+ "additionalProperties": false
922
+ }
923
+ },
924
+ "minProperties": 1,
925
+ "additionalProperties": false
926
+ }
927
+ },
928
+ "required": [
929
+ "id"
930
+ ],
931
+ "additionalProperties": false
932
+ },
933
+ "minItems": 1
934
+ },
935
+ "prerequisites": {
936
+ "$ref": "./_Prerequisite.schema.json#/definitions/GeneralPrerequisites"
937
+ },
938
+ "ap_value": {
939
+ "description": "Specific AP cost for the select option.",
940
+ "type": "integer",
941
+ "minimum": 1
942
+ },
943
+ "src": {
944
+ "$ref": "./source/_PublicationRef.schema.json#/definitions/PublicationRefs"
945
+ },
946
+ "translations": {
947
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
948
+ "type": "object",
949
+ "patternProperties": {
950
+ "^[a-z]{2}-[A-Z]{2}$": {
951
+ "type": "object",
952
+ "properties": {
953
+ "errata": {
954
+ "$ref": "./source/_Erratum.schema.json#/definitions/Errata"
955
+ }
956
+ },
957
+ "required": [],
958
+ "minProperties": 1,
959
+ "additionalProperties": false
960
+ }
961
+ },
962
+ "minProperties": 1,
963
+ "additionalProperties": false
964
+ }
965
+ },
966
+ "required": [
967
+ "tag",
968
+ "id"
969
+ ],
970
+ "additionalProperties": false
971
+ },
972
+ {
973
+ "type": "object",
974
+ "properties": {
975
+ "tag": {
976
+ "const": "CombatTechnique"
977
+ },
978
+ "id": {
979
+ "description": "The combat technique's identifier.",
980
+ "$ref": "./_Identifier.schema.json#/definitions/CombatTechniqueIdentifier"
981
+ },
982
+ "prerequisites": {
983
+ "$ref": "./_Prerequisite.schema.json#/definitions/GeneralPrerequisites"
984
+ },
985
+ "ap_value": {
986
+ "description": "Specific AP cost for the select option.",
987
+ "type": "integer",
988
+ "minimum": 1
989
+ },
990
+ "src": {
991
+ "$ref": "./source/_PublicationRef.schema.json#/definitions/PublicationRefs"
992
+ },
993
+ "translations": {
994
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
995
+ "type": "object",
996
+ "patternProperties": {
997
+ "^[a-z]{2}-[A-Z]{2}$": {
998
+ "type": "object",
999
+ "properties": {
1000
+ "errata": {
1001
+ "$ref": "./source/_Erratum.schema.json#/definitions/Errata"
1002
+ }
1003
+ },
1004
+ "required": [],
1005
+ "minProperties": 1,
1006
+ "additionalProperties": false
1007
+ }
1008
+ },
1009
+ "minProperties": 1,
1010
+ "additionalProperties": false
1011
+ }
1012
+ },
1013
+ "required": [
1014
+ "tag",
1015
+ "id"
1016
+ ],
1017
+ "additionalProperties": false
1018
+ }
1019
+ ]
32
1020
  },
33
1021
  "Rules": {
34
1022
  "description": "The rule text.",
@@ -453,7 +1441,7 @@
453
1441
  },
454
1442
  "external_id": {
455
1443
  "description": "The identifier of the combat-related special ability of which the level\ndefines the penalty instead.",
456
- "$ref": "./_Identifier.schema.json#/definitions/Identifier/Group/CombatRelatedSpecialAbility"
1444
+ "$ref": "./_Identifier.schema.json#/definitions/CombatRelatedSpecialAbilityIdentifier"
457
1445
  }
458
1446
  },
459
1447
  "required": [
@@ -1165,7 +2153,7 @@
1165
2153
  "properties": {
1166
2154
  "id": {
1167
2155
  "description": "The option's identifier.",
1168
- "$ref": "./_Identifier.schema.json#/definitions/Identifier/Group/VolumePointsOptionReference"
2156
+ "$ref": "./_Identifier.schema.json#/definitions/VolumePointsOptionReferenceIdentifier"
1169
2157
  }
1170
2158
  },
1171
2159
  "required": [
@@ -1427,7 +2415,7 @@
1427
2415
  "description": "Specify the select option(s) that only are allowed for the referenced\nadvanced special ability; others are disallowed.",
1428
2416
  "type": "array",
1429
2417
  "items": {
1430
- "$ref": "./_Identifier.schema.json#/definitions/Identifier/Group/AdvancedSpecialAbilityRestrictedOption"
2418
+ "$ref": "./_Identifier.schema.json#/definitions/AdvancedSpecialAbilityRestrictedOptionIdentifier"
1431
2419
  },
1432
2420
  "minItems": 1
1433
2421
  }
@@ -1468,12 +2456,12 @@
1468
2456
  "description": "Specify the select option(s) that only are allowed for the referenced\nadvanced special ability; others are disallowed.",
1469
2457
  "type": "array",
1470
2458
  "items": {
1471
- "$ref": "./_Identifier.schema.json#/definitions/Identifier/Group/AdvancedSpecialAbilityRestrictedOption"
2459
+ "$ref": "./_Identifier.schema.json#/definitions/AdvancedSpecialAbilityRestrictedOptionIdentifier"
1472
2460
  },
1473
2461
  "minItems": 1
1474
2462
  },
1475
2463
  "display_option": {
1476
- "$ref": "./_Prerequisite.schema.json#/definitions/Prerequisite/Single/DisplayOption/T"
2464
+ "$ref": "./prerequisites/DisplayOption.schema.json#/definitions/DisplayOption"
1477
2465
  }
1478
2466
  },
1479
2467
  "required": [
@@ -1528,7 +2516,7 @@
1528
2516
  "minItems": 0
1529
2517
  },
1530
2518
  "display_option": {
1531
- "$ref": "./_Prerequisite.schema.json#/definitions/Prerequisite/Single/DisplayOption/T"
2519
+ "$ref": "./prerequisites/DisplayOption.schema.json#/definitions/DisplayOption"
1532
2520
  },
1533
2521
  "is_selection_required_on_purchase": {
1534
2522
  "description": "Do have to choose on when buying the special ability? Otherwise the\ndecision can be made later.",
@@ -1538,7 +2526,7 @@
1538
2526
  "description": "Specify the select option(s) that only are allowed for the referenced\nadvanced special ability; others are disallowed.",
1539
2527
  "type": "array",
1540
2528
  "items": {
1541
- "$ref": "./_Identifier.schema.json#/definitions/Identifier/Group/AdvancedSpecialAbilityRestrictedOption"
2529
+ "$ref": "./_Identifier.schema.json#/definitions/AdvancedSpecialAbilityRestrictedOptionIdentifier"
1542
2530
  },
1543
2531
  "minItems": 1
1544
2532
  }
@@ -1555,40 +2543,10 @@
1555
2543
  ]
1556
2544
  },
1557
2545
  "AdvancedSpecialAbilityDerivedExternalEntryId": {
1558
- "type": "object",
1559
- "properties": {
1560
- "tag": {
1561
- "const": "MagicalTradition"
1562
- },
1563
- "value": {
1564
- "description": "The referenced entry's numeric identifier.",
1565
- "type": "integer",
1566
- "minimum": 1
1567
- }
1568
- },
1569
- "required": [
1570
- "tag",
1571
- "value"
1572
- ],
1573
- "additionalProperties": false
2546
+ "$ref": "./_Identifier.schema.json#/definitions/MagicalTraditionIdentifier"
1574
2547
  },
1575
2548
  "AdvancedSpecialAbilityDerivedExternalEntryOptionId": {
1576
- "type": "object",
1577
- "properties": {
1578
- "tag": {
1579
- "const": "Patron"
1580
- },
1581
- "value": {
1582
- "description": "The referenced entry's numeric identifier.",
1583
- "type": "integer",
1584
- "minimum": 1
1585
- }
1586
- },
1587
- "required": [
1588
- "tag",
1589
- "value"
1590
- ],
1591
- "additionalProperties": false
2549
+ "$ref": "./_Identifier.schema.json#/definitions/PatronIdentifier"
1592
2550
  },
1593
2551
  "AdvancedSpecialAbilities": {
1594
2552
  "description": "The Advanced Special Abilities for the respective Style Special Ability.\nSometimes, only a specific select option or a set of select options of an\nentry is allowed, which can be modelled by the option property. It can also\nbe that you can choose from a set of special abilities, but then you can't\nspecify an option.",
@@ -1703,7 +2661,7 @@
1703
2661
  "type": "object",
1704
2662
  "properties": {
1705
2663
  "id": {
1706
- "$ref": "./_Identifier.schema.json#/definitions/Identifier/Group/CombatTechnique"
2664
+ "$ref": "./_Identifier.schema.json#/definitions/CombatTechniqueIdentifier"
1707
2665
  },
1708
2666
  "restrictions": {
1709
2667
  "type": "array",
@@ -1795,7 +2753,7 @@
1795
2753
  "description": "The combat techniques this combat special ability is **not** applicable\nto.",
1796
2754
  "type": "array",
1797
2755
  "items": {
1798
- "$ref": "./_Identifier.schema.json#/definitions/Identifier/Group/CombatTechnique"
2756
+ "$ref": "./_Identifier.schema.json#/definitions/CombatTechniqueIdentifier"
1799
2757
  },
1800
2758
  "minItems": 1,
1801
2759
  "uniqueItems": true