optolith-database-schema 0.2.4 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (518) hide show
  1. package/CHANGELOG.md +64 -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 -83
  14. package/lib/types/Cantrip.d.ts +132 -161
  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 +646 -1227
  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 -1016
  67. package/lib/types/_ActivatableSkill.js +1 -32
  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 +9 -13
  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 +20 -24
  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 -147
  297. package/schema/Cantrip.schema.json +352 -292
  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 +1612 -2261
  339. package/schema/_ActivatableSelectOptionCategory.schema.json +1172 -0
  340. package/schema/_ActivatableSkill.schema.json +96 -1692
  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 +830 -651
  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 -224
  448. package/schema/specialAbility/BrawlingSpecialAbility.schema.json +35 -32
  449. package/schema/specialAbility/CeremonialItemSpecialAbility.schema.json +36 -34
  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 +46 -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
@@ -5,9 +5,14 @@
5
5
  import { DisplayOption } from "./prerequisites/DisplayOption.js";
6
6
  import { Errata } from "./source/_Erratum.js";
7
7
  import { PublicationRefs } from "./source/_PublicationRef.js";
8
- import { Duration } from "./_ActivatableSkill.js";
9
- import { ActivatableIdentifier, AdvancedSpecialAbilityRestrictedOptionIdentifier, CombatRelatedSpecialAbilityIdentifier, CombatTechniqueIdentifier, MagicalTraditionIdentifier, PatronIdentifier, SkillIdentifier, VolumePointsOptionReferenceIdentifier } from "./_Identifier.js";
8
+ import { SelectOptionCategory, SkillApplicationOrUse } from "./_ActivatableSelectOptionCategory.js";
9
+ import { DurationUnitValue } from "./_ActivatableSkillDuration.js";
10
+ import { AdvancedSpecialAbilityRestrictedOptionIdentifier, CombatRelatedSpecialAbilityIdentifier, CombatTechniqueIdentifier, MagicalTraditionIdentifier, PatronIdentifier, VolumePointsOptionReferenceIdentifier } from "./_Identifier.js";
11
+ import { LocaleMap } from "./_LocaleMap.js";
12
+ import { NonEmptyMarkdown, NonEmptyString } from "./_NonEmptyString.js";
10
13
  import { GeneralPrerequisites } from "./_Prerequisite.js";
14
+ import { ResponsiveText, ResponsiveTextOptional } from "./_ResponsiveText.js";
15
+ import { AdvancedSpecialAbilityReference, AspectReference, CloseCombatTechniqueReference, CombatTechniqueReference, PropertyReference, RaceReference, RangedCombatTechniqueReference, SkillReference, WeaponReference } from "./_SimpleReferences.js";
11
16
  /**
12
17
  * The activatable entry's identifier. An unique, increasing integer.
13
18
  * @integer
@@ -66,9 +71,8 @@ export declare type SelectOptions = {
66
71
  * entries from the specified categories will be included as separate select
67
72
  * options. You can also specify a set of groups that should only be
68
73
  * included. Groups not mentioned will be excluded then.
69
- * @minItems 1
70
74
  */
71
- derived?: CategoryOption;
75
+ derived?: SelectOptionCategory;
72
76
  /**
73
77
  * A list of explicit select options. If the identifier has a specific type,
74
78
  * its entry is the base of this select option, where values defined here
@@ -78,423 +82,19 @@ export declare type SelectOptions = {
78
82
  * page.
79
83
  * @minItems 1
80
84
  */
81
- explicit?: ExplicitOption[];
85
+ explicit?: ExplicitSelectOption[];
82
86
  };
83
- declare type CategoryOption = {
84
- tag: "Blessings";
85
- } | {
86
- tag: "Cantrips";
87
- } | {
88
- tag: "TradeSecrets";
89
- } | {
90
- tag: "Scripts";
91
- } | {
92
- tag: "AnimalShapes";
93
- } | {
94
- tag: "ArcaneBardTraditions";
95
- } | {
96
- tag: "ArcaneDancerTraditions";
97
- } | {
98
- tag: "SexPractices";
99
- } | {
100
- tag: "Races";
101
- } | {
102
- tag: "Cultures";
103
- } | {
104
- tag: "BlessedTraditions";
105
- /**
106
- * Should the principles (code) of the tradition be required to select the
107
- * respective tradition?
108
- */
109
- require_principles?: true;
110
- } | {
111
- tag: "Elements";
112
- /**
113
- * Only include entries with the listed identifiers.
114
- * @minItems 1
115
- * @uniqueItems
116
- */
117
- specific?: {
118
- /**
119
- * The element's identifier.
120
- * @integer
121
- * @minimum 1
122
- * @maximum 6
123
- */
124
- id: number;
125
- }[];
126
- } | {
127
- tag: "Properties";
128
- /**
129
- * Does each property require it's corresponding property knowledge?
130
- */
131
- require_knowledge?: true;
132
- /**
133
- * Require a minimum number of spellworks of the respective property to be
134
- * on a minimum skill rating.
135
- */
136
- require_minimum_spellworks_on?: {
137
- /**
138
- * The minimum number of spellworks that need to be on the defined minimum
139
- * skill rating.
140
- * @integer
141
- * @minimum 1
142
- */
143
- number: number;
144
- /**
145
- * The minimum skill rating the defined minimum number of spellworks need
146
- * to be on.
147
- * @integer
148
- * @minimum 1
149
- */
150
- value: number;
151
- };
152
- } | {
153
- tag: "Aspects";
154
- /**
155
- * Does each aspect require it's corresponding aspect knowledge?
156
- */
157
- require_knowledge?: true;
158
- /**
159
- * The generated name should be the *Master of (Aspect)* suffix for this
160
- * aspect instead of the aspect's name. If an aspect does not provide a
161
- * suffix (such as the General aspect), it is automatically excluded from
162
- * the list.
163
- */
164
- use_master_of_suffix_as_name?: true;
165
- /**
166
- * Require a minimum number of liturgies of the respective aspect to be on a
167
- * minimum skill rating.
168
- */
169
- require_minimum_liturgies_on?: {
170
- /**
171
- * The minimum number of liturgies that need to be on the defined minimum
172
- * skill rating.
173
- * @integer
174
- * @minimum 1
175
- */
176
- number: number;
177
- /**
178
- * The minimum skill rating the defined minimum number of liturgies need
179
- * to be on.
180
- * @integer
181
- * @minimum 1
182
- */
183
- value: number;
184
- };
185
- } | {
186
- tag: "Diseases";
187
- /**
188
- * Only convert half the disease level into the AP value.
189
- */
190
- use_half_level_as_ap_value?: true;
191
- } | {
192
- tag: "Poisons";
193
- /**
194
- * Only convert half the poison level into the AP value.
195
- */
196
- use_half_level_as_ap_value?: true;
197
- } | {
198
- tag: "Languages";
199
- /**
200
- * Generate prerequisites for each entry of the category.
201
- * @minItems 1
202
- */
203
- prerequisites?: OptionOptionPrerequisite[];
204
- } | {
205
- tag: "Skills";
206
- /**
207
- * A list of skill categories.
208
- * @minItems 1
209
- */
210
- categories: ({
211
- tag: "Skills";
212
- /**
213
- * Only include entries of the specified groups.
214
- * @minItems 1
215
- */
216
- groups?: {
217
- /**
218
- * The skill group's identifier.
219
- * @integer
220
- * @minimum 1
221
- * @maximum 5
222
- */
223
- id: number;
224
- }[];
225
- /**
226
- * Only include (`Intersection`) or exclude (`Difference`) specific
227
- * skills.
228
- */
229
- specific?: {
230
- operation: {
231
- tag: "Intersection";
232
- } | {
233
- tag: "Difference";
234
- };
235
- /**
236
- * The list of specific skills.
237
- * @minItems 1
238
- * @uniqueItems
239
- */
240
- list: {
241
- /**
242
- * The skill's identifier.
243
- * @integer
244
- * @minimum 1
245
- * @maximum 59
246
- */
247
- id: number;
248
- }[];
249
- };
250
- /**
251
- * Registers new applications, which get enabled once this entry is
252
- * activated with its respective select option. It specifies an
253
- * entry-unique identifier, the skill it belongs to is derived from the
254
- * select option automatically. A translation can be left out if its
255
- * name equals the name of the origin entry.
256
- * @minItems 1
257
- */
258
- skill_applications?: {
259
- /**
260
- * The application's identifier. An entry-unique, increasing integer.
261
- * @integer
262
- * @minimum 1
263
- */
264
- id: number;
265
- /**
266
- * All translations for the entry, identified by IETF language tag
267
- * (BCP47).
268
- * @minProperties 1
269
- */
270
- translations?: {
271
- /**
272
- * @patternProperties ^[a-z]{2}-[A-Z]{2}$
273
- */
274
- [localeId: string]: {
275
- /**
276
- * The name of the application if different from the activatable
277
- * entry's
278
- * name.
279
- * @minLength 1
280
- */
281
- name: string;
282
- };
283
- };
284
- }[];
285
- /**
286
- * Registers uses, which get enabled once this entry is activated with
287
- * its respective select option. It specifies an entry-unique
288
- * identifier, the skill it belongs to is derived from the select option
289
- * automatically. A translation can be left out if its name equals the
290
- * name of the origin entry.
291
- * @minItems 1
292
- */
293
- skill_uses?: {
294
- /**
295
- * The use's identifier. An entry-unique, increasing integer.
296
- * @integer
297
- * @minimum 1
298
- */
299
- id: number;
300
- /**
301
- * All translations for the entry, identified by IETF language tag
302
- * (BCP47).
303
- * @minProperties 1
304
- */
305
- translations?: {
306
- /**
307
- * @patternProperties ^[a-z]{2}-[A-Z]{2}$
308
- */
309
- [localeId: string]: {
310
- /**
311
- * The name of the use if different from the activatable entry's
312
- * name.
313
- * @minLength 1
314
- */
315
- name: string;
316
- };
317
- };
318
- }[];
319
- /**
320
- * Generate prerequisites for each entry of the category.
321
- * @minItems 1
322
- */
323
- prerequisites?: (OptionSkillSelfPrerequisite | OptionOptionPrerequisite)[];
324
- } | {
325
- tag: SkillWithEnhancementsCategory;
326
- /**
327
- * Only include (`Intersection`) or exclude (`Difference`) specific
328
- * entries.
329
- */
330
- specific?: {
331
- operation: {
332
- tag: "Intersection";
333
- } | {
334
- tag: "Difference";
335
- };
336
- /**
337
- * The list of specific entries.
338
- * @minItems 1
339
- * @uniqueItems
340
- */
341
- list: {
342
- /**
343
- * The entry's identifier.
344
- * @integer
345
- * @minimum 1
346
- * @maximum 59
347
- */
348
- id: number;
349
- }[];
350
- };
351
- /**
352
- * Generate prerequisites for each entry of the category.
353
- * @minItems 1
354
- */
355
- prerequisites?: (OptionSkillSelfPrerequisite | OptionOptionPrerequisite)[];
356
- })[];
357
- /**
358
- * Generate AP values for each entry.
359
- */
360
- ap_value?: OptionSkillDeriveAdventurePointsValue<SkillIdentifier>;
87
+ export declare type ExplicitSelectOption = {
88
+ tag: "General";
89
+ general: ExplicitGeneralSelectOption;
361
90
  } | {
362
- tag: "CombatTechniques";
363
- /**
364
- * A list of combat technique categories.
365
- * @minItems 1
366
- */
367
- categories: {
368
- tag: CombatTechniqueCategory;
369
- /**
370
- * Only include (`Intersection`) or exclude (`Difference`) specific
371
- * entries.
372
- */
373
- specific?: {
374
- operation: {
375
- tag: "Intersection";
376
- } | {
377
- tag: "Difference";
378
- };
379
- /**
380
- * The list of specific entries.
381
- * @minItems 1
382
- * @uniqueItems
383
- */
384
- list: {
385
- /**
386
- * The entry's identifier.
387
- * @integer
388
- * @minimum 1
389
- * @maximum 59
390
- */
391
- id: number;
392
- }[];
393
- };
394
- /**
395
- * Generate prerequisites for each entry of the category.
396
- * @minItems 1
397
- */
398
- prerequisites?: (OptionSkillSelfPrerequisite | OptionOptionPrerequisite)[];
399
- }[];
400
- /**
401
- * Generate AP values for each entry.
402
- */
403
- ap_value?: OptionSkillDeriveAdventurePointsValue<CombatTechniqueIdentifier>;
404
- };
405
- declare enum SkillWithEnhancementsCategory {
406
- Spells = "Spells",
407
- Rituals = "Rituals",
408
- LiturgicalChants = "LiturgicalChants",
409
- Ceremonies = "Ceremonies"
410
- }
411
- declare enum CombatTechniqueCategory {
412
- CloseCombatTechniques = "CloseCombatTechniques",
413
- RangedCombatTechniques = "RangedCombatTechniques"
414
- }
415
- declare type OptionSkillSelfPrerequisite = {
416
- tag: "Self";
417
- /**
418
- * The entry requires itself on a certain Skill Rating.
419
- * @integer
420
- * @minimum 1
421
- */
422
- value: number;
423
- };
424
- /**
425
- * The entry requires or prohibits itself as a select option of another entry.
426
- */
427
- declare type OptionOptionPrerequisite = {
428
- tag: "SelectOption";
429
- /**
430
- * The target entry's identifier.
431
- */
432
- id: ActivatableIdentifier;
433
- /**
434
- * Is the select option required (`true`) or prohibited (`false`)?
435
- */
436
- active: boolean;
437
- /**
438
- * The required level, if any.
439
- * @integer
440
- * @minimum 2
441
- */
442
- level?: number;
443
- };
444
- /**
445
- * Generate AP values for each entry.
446
- */
447
- declare type OptionSkillDeriveAdventurePointsValue<Identifier> = {
448
- /**
449
- * Derive the cost from the improvement cost of each entry.
450
- *
451
- * AP Value = Improvement Cost × `multiplier` + `offset`
452
- */
453
- tag: "DerivedFromImprovementCost";
454
- /**
455
- * This number is multiplied with the improvement cost of the entry
456
- * (A = 1 to D = 4).
457
- * @integer
458
- * @minimum 2
459
- * @default 1
460
- */
461
- multiplier?: number;
462
- /**
463
- * This number is added to the maybe multiplied improvement cost of the
464
- * entry.
465
- * @integer
466
- * @default 0
467
- */
468
- offset?: number;
91
+ tag: "Skill";
92
+ skill: ExplicitSkillSelectOption;
469
93
  } | {
470
- tag: "Fixed";
471
- /**
472
- * A mapping of skill identifiers to their specific AP values.
473
- */
474
- map: {
475
- /**
476
- * The skill's identifier.
477
- * @integer
478
- * @minimum 1
479
- */
480
- id: Identifier;
481
- /**
482
- * The AP value for the specified entry.
483
- * @integer
484
- * @minimum 1
485
- */
486
- ap_value: number;
487
- }[];
488
- /**
489
- * The default value of an entry. Used as a fallback if no value is
490
- * found in `list`.
491
- * @integer
492
- * @minimum 1
493
- */
494
- default: number;
94
+ tag: "CombatTechnique";
95
+ combat_technique: ExplicitCombatTechniqueSelectOption;
495
96
  };
496
- declare type ExplicitOption = {
497
- tag: "General";
97
+ export declare type ExplicitGeneralSelectOption = {
498
98
  /**
499
99
  * The option's identifier. An unique, increasing integer.
500
100
  * @integer
@@ -532,36 +132,31 @@ declare type ExplicitOption = {
532
132
  src?: PublicationRefs;
533
133
  /**
534
134
  * All translations for the entry, identified by IETF language tag (BCP47).
535
- * @minProperties 1
536
- */
537
- translations: {
538
- /**
539
- * @patternProperties ^[a-z]{2}-[A-Z]{2}$
540
- */
541
- [localeId: string]: {
542
- /**
543
- * The name of the select option.
544
- * @minLength 1
545
- */
546
- name: string;
547
- /**
548
- * The name of the select option when displayed in a generated
549
- * profession text.
550
- * @minLength 1
551
- */
552
- name_in_profession?: string;
553
- /**
554
- * The description of the select option. Useful for Bad Habits, Trade
555
- * Secrets and other entries where a description is available.
556
- * @markdown
557
- * @minLength 1
558
- */
559
- description?: string;
560
- errata?: Errata;
561
- };
562
- };
563
- } | {
564
- tag: "Skill";
135
+ */
136
+ translations: LocaleMap<ExplicitGeneralSelectOptionTranslation>;
137
+ };
138
+ export declare type ExplicitGeneralSelectOptionTranslation = {
139
+ /**
140
+ * The name of the select option.
141
+ * @minLength 1
142
+ */
143
+ name: string;
144
+ /**
145
+ * The name of the select option when displayed in a generated
146
+ * profession text.
147
+ * @minLength 1
148
+ */
149
+ name_in_profession?: string;
150
+ /**
151
+ * The description of the select option. Useful for Bad Habits, Trade
152
+ * Secrets and other entries where a description is available.
153
+ * @markdown
154
+ * @minLength 1
155
+ */
156
+ description?: string;
157
+ errata?: Errata;
158
+ };
159
+ export declare type ExplicitSkillSelectOption = {
565
160
  /**
566
161
  * The skill's identifier. An unique, increasing integer.
567
162
  * @integer
@@ -575,31 +170,7 @@ declare type ExplicitOption = {
575
170
  * its name equals the name of the origin select option.
576
171
  * @minItems 1
577
172
  */
578
- skill_applications?: {
579
- /**
580
- * The application's identifier. An entry-unique, increasing integer.
581
- * @integer
582
- * @minimum 1
583
- */
584
- id: number;
585
- /**
586
- * All translations for the entry, identified by IETF language tag (BCP47).
587
- * @minProperties 1
588
- */
589
- translations?: {
590
- /**
591
- * @patternProperties ^[a-z]{2}-[A-Z]{2}$
592
- */
593
- [localeId: string]: {
594
- /**
595
- * The name of the application if different from the activatable entry's
596
- * name.
597
- * @minLength 1
598
- */
599
- name: string;
600
- };
601
- };
602
- }[];
173
+ skill_applications?: SkillApplicationOrUse[];
603
174
  /**
604
175
  * Registers uses, which get enabled once this entry is activated with its
605
176
  * respective select option. It specifies an entry-unique identifier and the
@@ -607,30 +178,7 @@ declare type ExplicitOption = {
607
178
  * name of the origin select option.
608
179
  * @minItems 1
609
180
  */
610
- skill_uses?: {
611
- /**
612
- * The use's identifier. An entry-unique, increasing integer.
613
- * @integer
614
- * @minimum 1
615
- */
616
- id: number;
617
- /**
618
- * All translations for the entry, identified by IETF language tag (BCP47).
619
- * @minProperties 1
620
- */
621
- translations?: {
622
- /**
623
- * @patternProperties ^[a-z]{2}-[A-Z]{2}$
624
- */
625
- [localeId: string]: {
626
- /**
627
- * The name of the use if different from the activatable entry's name.
628
- * @minLength 1
629
- */
630
- name: string;
631
- };
632
- };
633
- }[];
181
+ skill_uses?: SkillApplicationOrUse[];
634
182
  prerequisites?: GeneralPrerequisites;
635
183
  /**
636
184
  * Specific AP cost for the select option.
@@ -641,19 +189,16 @@ declare type ExplicitOption = {
641
189
  src?: PublicationRefs;
642
190
  /**
643
191
  * All translations for the entry, identified by IETF language tag (BCP47).
644
- * @minProperties 1
645
- */
646
- translations?: {
647
- /**
648
- * @patternProperties ^[a-z]{2}-[A-Z]{2}$
649
- * @minProperties 1
650
- */
651
- [localeId: string]: {
652
- errata?: Errata;
653
- };
654
- };
655
- } | {
656
- tag: "CombatTechnique";
192
+ */
193
+ translations?: LocaleMap<ExplicitSkillSelectOptionTranslation>;
194
+ };
195
+ /**
196
+ * @minProperties 1
197
+ */
198
+ export declare type ExplicitSkillSelectOptionTranslation = {
199
+ errata?: Errata;
200
+ };
201
+ export declare type ExplicitCombatTechniqueSelectOption = {
657
202
  /**
658
203
  * The combat technique's identifier.
659
204
  */
@@ -668,40 +213,39 @@ declare type ExplicitOption = {
668
213
  src?: PublicationRefs;
669
214
  /**
670
215
  * All translations for the entry, identified by IETF language tag (BCP47).
671
- * @minProperties 1
672
- */
673
- translations?: {
674
- /**
675
- * @patternProperties ^[a-z]{2}-[A-Z]{2}$
676
- * @minProperties 1
677
- */
678
- [localeId: string]: {
679
- errata?: Errata;
680
- };
681
- };
216
+ */
217
+ translations?: LocaleMap<ExplicitCombatTechniqueSelectOptionTranslation>;
218
+ };
219
+ /**
220
+ * @minProperties 1
221
+ */
222
+ export declare type ExplicitCombatTechniqueSelectOptionTranslation = {
223
+ errata?: Errata;
682
224
  };
683
225
  /**
684
226
  * The rule text.
685
- * @markdown
686
- * @minLength 1
687
227
  */
688
- export declare type Rules = string;
228
+ export declare type Rules = NonEmptyMarkdown;
689
229
  /**
690
230
  * The effect description.
691
- * @markdown
692
- * @minLength 1
693
231
  */
694
- export declare type Effect = string;
232
+ export declare type Effect = NonEmptyMarkdown;
695
233
  /**
696
234
  * The definition of how the combat special ability can be used in combat.
697
235
  */
698
- export declare type CombatSpecialAbilityType = {
699
- tag: "Passive";
700
- } | {
701
- tag: "BasicManeuver";
702
- } | {
703
- tag: "SpecialManeuver";
704
- };
236
+ export declare enum CombatSpecialAbilityUsageType {
237
+ Passive = "Passive",
238
+ BasicManeuver = "BasicManeuver",
239
+ SpecialManeuver = "SpecialManeuver"
240
+ }
241
+ /**
242
+ * The definition of if the combat special ability can be used when armed or
243
+ * when unarmed.
244
+ */
245
+ export declare enum CombatSpecialAbilityType {
246
+ Armed = "Armed",
247
+ Unarmed = "Unarmed"
248
+ }
705
249
  /**
706
250
  * Registers new skill applications, which get enabled once this entry is
707
251
  * activated. It specifies an entry-unique identifier and the skill it belongs
@@ -709,7 +253,8 @@ export declare type CombatSpecialAbilityType = {
709
253
  * activatable entry.
710
254
  * @minItems 1
711
255
  */
712
- export declare type SkillApplications = {
256
+ export declare type SkillApplications = SkillApplication[];
257
+ export declare type SkillApplication = {
713
258
  /**
714
259
  * The application's identifier. An entry-unique, increasing integer.
715
260
  * @integer
@@ -719,62 +264,48 @@ export declare type SkillApplications = {
719
264
  /**
720
265
  * The skill(s) this application belongs to.
721
266
  */
722
- skill: {
723
- tag: "Single";
724
- /**
725
- * The referenced skill's identifier.
726
- * @integer
727
- * @minimum 1
728
- */
729
- id: number;
730
- } | {
731
- tag: "Multiple";
732
- /**
733
- * The skills this application belongs to.
734
- * @minItems 2
735
- */
736
- list: {
737
- /**
738
- * The referenced skill's identifier.
739
- * @integer
740
- * @minimum 1
741
- */
742
- id: number;
743
- }[];
744
- /**
745
- * If an application applies to multiple skills, it may need to ensure the
746
- * respective skill is on a certain skill rating if the activatable entry
747
- * cannot ensure this prerequisite.
748
- * @integer
749
- * @minimum 1
750
- */
751
- required_skill_rating?: number;
752
- };
267
+ skill: SkillApplicationAssociatedSkill;
753
268
  /**
754
269
  * All translations for the entry, identified by IETF language tag (BCP47).
755
- * @minProperties 1
756
- */
757
- translations?: {
758
- /**
759
- * @patternProperties ^[a-z]{2}-[A-Z]{2}$
760
- */
761
- [localeId: string]: {
762
- /**
763
- * The name of the application if different from the activatable entry's
764
- * name.
765
- * @minLength 1
766
- */
767
- name: string;
768
- };
769
- };
770
- }[];
270
+ */
271
+ translations?: LocaleMap<SkillApplicationTranslation>;
272
+ };
273
+ export declare type SkillApplicationAssociatedSkill = {
274
+ tag: "Single";
275
+ single: SkillReference;
276
+ } | {
277
+ tag: "Multiple";
278
+ multiple: SkillApplicationAssociatedSkills;
279
+ };
280
+ export declare type SkillApplicationAssociatedSkills = {
281
+ /**
282
+ * The skills this application belongs to.
283
+ * @minItems 2
284
+ */
285
+ list: SkillReference[];
286
+ /**
287
+ * If an application applies to multiple skills, it may need to ensure the
288
+ * respective skill is on a certain skill rating if the activatable entry
289
+ * cannot ensure this prerequisite.
290
+ * @integer
291
+ * @minimum 1
292
+ */
293
+ required_skill_rating?: number;
294
+ };
295
+ export declare type SkillApplicationTranslation = {
296
+ /**
297
+ * The name of the application if different from the activatable entry's name.
298
+ */
299
+ name: NonEmptyString;
300
+ };
771
301
  /**
772
302
  * Registers uses, which get enabled once this entry is activated. It specifies
773
303
  * an entry-unique identifier and the skill it belongs to. A translation can be
774
304
  * left out if its name equals the name of the origin activatable entry.
775
305
  * @minItems 1
776
306
  */
777
- export declare type SkillUses = {
307
+ export declare type SkillUses = SkillUse[];
308
+ export declare type SkillUse = {
778
309
  /**
779
310
  * The use's identifier. An entry-unique, increasing integer.
780
311
  * @integer
@@ -784,51 +315,58 @@ export declare type SkillUses = {
784
315
  /**
785
316
  * The skill(s) this use belongs to.
786
317
  */
787
- skill: {
788
- tag: "Single";
789
- /**
790
- * The referenced skill's identifier.
791
- * @integer
792
- * @minimum 1
793
- */
794
- id: number;
795
- } | {
796
- tag: "Multiple";
797
- /**
798
- * The skills this use belongs to.
799
- * @minItems 2
800
- */
801
- list: {
802
- /**
803
- * The referenced skill's identifier.
804
- * @integer
805
- * @minimum 1
806
- */
807
- id: number;
808
- }[];
809
- };
318
+ skill: SkillUseAssociatedSkill;
810
319
  /**
811
320
  * All translations for the entry, identified by IETF language tag (BCP47).
812
- * @minProperties 1
813
- */
814
- translations?: {
815
- /**
816
- * @patternProperties ^[a-z]{2}-[A-Z]{2}$
817
- */
818
- [localeId: string]: {
819
- /**
820
- * The name of the use if different from the activatable entry's name.
821
- * @minLength 1
822
- */
823
- name: string;
824
- };
825
- };
826
- }[];
321
+ */
322
+ translations?: LocaleMap<SkillUseTranslation>;
323
+ };
324
+ export declare type SkillUseAssociatedSkill = {
325
+ tag: "Single";
326
+ single: SkillReference;
327
+ } | {
328
+ tag: "Multiple";
329
+ multiple: SkillUseAssociatedSkills;
330
+ };
331
+ export declare type SkillUseAssociatedSkills = {
332
+ /**
333
+ * The skills this use belongs to.
334
+ * @minItems 2
335
+ */
336
+ list: SkillReference[];
337
+ };
338
+ export declare type SkillUseTranslation = {
339
+ /**
340
+ * The name of the use if different from the activatable entry's name.
341
+ */
342
+ name: NonEmptyString;
343
+ };
827
344
  /**
828
345
  * The penalty the special ability gives when used.
829
346
  */
830
347
  export declare type Penalty = {
831
348
  tag: "Single";
349
+ single: SinglePenalty;
350
+ } | {
351
+ tag: "ByHandedness";
352
+ by_handedness: PenaltyByHandedness;
353
+ } | {
354
+ tag: "ByActivation";
355
+ by_activation: PenaltyByActivation;
356
+ } | {
357
+ tag: "Selection";
358
+ selection: PenaltySelection;
359
+ } | {
360
+ tag: "ByLevel";
361
+ by_level: PenaltyByLevel;
362
+ } | {
363
+ tag: "ByAttack";
364
+ by_attack: PenaltyByAttack;
365
+ } | {
366
+ tag: "DependsOnHitZone";
367
+ depends_on_hit_zone: {};
368
+ };
369
+ export declare type SinglePenalty = {
832
370
  /**
833
371
  * The penalty value.
834
372
  * @integer
@@ -838,8 +376,8 @@ export declare type Penalty = {
838
376
  * Set to `true` if the penalty applies to the parry instead of the attack.
839
377
  */
840
378
  applies_to_parry?: true;
841
- } | {
842
- tag: "ByHandedness";
379
+ };
380
+ export declare type PenaltyByHandedness = {
843
381
  /**
844
382
  * The penalty value for one-handed weapons.
845
383
  * @integer
@@ -854,8 +392,8 @@ export declare type Penalty = {
854
392
  * Set to `true` if the penalty applies to the parry instead of the attack.
855
393
  */
856
394
  applies_to_parry?: true;
857
- } | {
858
- tag: "ByActivation";
395
+ };
396
+ export declare type PenaltyByActivation = {
859
397
  /**
860
398
  * The penalty value if the entry has been bought by the character.
861
399
  * @integer
@@ -870,57 +408,77 @@ export declare type Penalty = {
870
408
  * Set to `true` if the penalty applies to the parry instead of the attack.
871
409
  */
872
410
  applies_to_parry?: true;
411
+ };
412
+ export declare type PenaltySelection = {
413
+ options: PenaltySelectionOptions;
414
+ };
415
+ export declare type PenaltySelectionOptions = {
416
+ tag: "Specific";
417
+ specific: SpecificPenaltySelectionOptions;
873
418
  } | {
874
- tag: "Selection";
875
- options: {
876
- tag: "Specific";
877
- /**
878
- * The list of specific penalty options.
879
- * @minItems 2
880
- * @uniqueItems
881
- */
882
- list: {
883
- /**
884
- * The penalty value.
885
- * @integer
886
- */
887
- value: number;
888
- }[];
889
- } | {
890
- tag: "Range";
891
- /**
892
- * The minimum penalty value.
893
- * @integer
894
- */
895
- minimum: number;
896
- /**
897
- * The maximum penalty value.
898
- * @integer
899
- */
900
- maximum: number;
901
- };
902
- } | {
903
- tag: "ByLevel";
419
+ tag: "Range";
420
+ range: PenaltySelectionOptionsRange;
421
+ };
422
+ export declare type SpecificPenaltySelectionOptions = {
423
+ /**
424
+ * The list of specific penalty options.
425
+ * @minItems 2
426
+ * @uniqueItems
427
+ */
428
+ list: SpecificPenaltySelectionOption[];
429
+ };
430
+ export declare type SpecificPenaltySelectionOption = {
431
+ /**
432
+ * The penalty value.
433
+ * @integer
434
+ */
435
+ value: number;
436
+ };
437
+ export declare type PenaltySelectionOptionsRange = {
438
+ /**
439
+ * The minimum penalty value.
440
+ * @integer
441
+ */
442
+ minimum: number;
443
+ /**
444
+ * The maximum penalty value.
445
+ * @integer
446
+ */
447
+ maximum: number;
448
+ };
449
+ export declare type PenaltyByLevel = {
904
450
  /**
905
451
  * A continuous range of penalties for each level. The first element is the
906
452
  * penalty for the first level, the second element is the penalty for the
907
453
  * second level, and so on.
908
454
  * @minItems 2
909
455
  */
910
- levels: {
911
- /**
912
- * The penalty value for this level.
913
- * @integer
914
- */
915
- value: number;
916
- }[];
456
+ levels: PenaltyByLevelLevel[];
457
+ /**
458
+ * The combat-related special ability of which the level defines the penalty
459
+ * instead.
460
+ */
461
+ external?: PenaltyByExternalLevel;
462
+ };
463
+ export declare type PenaltyByLevelLevel = {
464
+ /**
465
+ * The penalty value for this level.
466
+ * @integer
467
+ */
468
+ value: number;
469
+ };
470
+ /**
471
+ * The combat-related special ability of which the level defines the penalty
472
+ * instead.
473
+ */
474
+ export declare type PenaltyByExternalLevel = {
917
475
  /**
918
476
  * The identifier of the combat-related special ability of which the level
919
477
  * defines the penalty instead.
920
478
  */
921
- external_id?: CombatRelatedSpecialAbilityIdentifier;
922
- } | {
923
- tag: "ByAttack";
479
+ id: CombatRelatedSpecialAbilityIdentifier;
480
+ };
481
+ export declare type PenaltyByAttack = {
924
482
  /**
925
483
  * A list of penalties for subsequent attacks. The first element is the
926
484
  * penalty for the first attack, the second element is the penalty for the
@@ -930,13 +488,7 @@ export declare type Penalty = {
930
488
  * the third attack, and so on.
931
489
  * @minItems 1
932
490
  */
933
- list: {
934
- /**
935
- * The penalty value for this order.
936
- * @integer
937
- */
938
- value: number;
939
- }[];
491
+ list: PenaltyByAttackOrderItem[];
940
492
  /**
941
493
  * The order of the first element in the `list` of penalties.
942
494
  */
@@ -945,15 +497,25 @@ export declare type Penalty = {
945
497
  * Set if a predefined different word should be used instead of the word
946
498
  * `attack` for display purposes.
947
499
  */
948
- attack_replacement?: {
949
- tag: "Throw";
950
- };
951
- } | {
952
- tag: "DependsOnHitZone";
500
+ attack_replacement?: PenaltyByAttackReplacement;
501
+ };
502
+ export declare type PenaltyByAttackOrderItem = {
503
+ /**
504
+ * The penalty value for this order.
505
+ * @integer
506
+ */
507
+ value: number;
953
508
  };
509
+ /**
510
+ * Set if a predefined different word should be used instead of the word
511
+ * `attack` for display purposes.
512
+ */
513
+ export declare enum PenaltyByAttackReplacement {
514
+ Throw = "Throw"
515
+ }
954
516
  export declare type EnchantmentCost = {
955
517
  tag: "ArcaneEnergyCost";
956
- ae_cost: ArcaneEnergyCost;
518
+ arcane_energy_cost: ArcaneEnergyCost;
957
519
  } | {
958
520
  tag: "BindingCost";
959
521
  binding_cost: BindingCost;
@@ -963,6 +525,27 @@ export declare type EnchantmentCost = {
963
525
  */
964
526
  export declare type ArcaneEnergyCost = {
965
527
  tag: "Fixed";
528
+ fixed: FixedArcaneEnergyCost;
529
+ } | {
530
+ tag: "PerCountable";
531
+ per_countable: ArcaneEnergyCostPerCountable;
532
+ } | {
533
+ tag: "ActivationAndHalfInterval";
534
+ activation_and_half_interval: ActivationAndHalfIntervalArcaneEnergyCost;
535
+ } | {
536
+ tag: "Indefinite";
537
+ indefinite: IndefiniteArcaneEnergyCost;
538
+ } | {
539
+ tag: "Disjunction";
540
+ disjunction: ArcaneEnergyCostDisjunction;
541
+ } | {
542
+ tag: "None";
543
+ none: NoArcaneEnergyCost;
544
+ } | {
545
+ tag: "Variable";
546
+ variable: {};
547
+ };
548
+ export declare type FixedArcaneEnergyCost = {
966
549
  /**
967
550
  * The AE cost value.
968
551
  * @integer
@@ -978,308 +561,232 @@ export declare type ArcaneEnergyCost = {
978
561
  /**
979
562
  * Specified if the AE cost `value` has to be paid for each time interval.
980
563
  */
981
- interval?: Duration.UnitValue;
564
+ interval?: DurationUnitValue;
982
565
  /**
983
566
  * The AE cost are per level of the enchantment. It may either be displayed
984
567
  * in a compressed way (e.g. `1 AE per level`) or in a verbose way (e.g. `1
985
568
  * AE for level I; 2 AE for level II`).
986
569
  */
987
- per_level?: {
988
- tag: "Compressed";
989
- } | {
990
- tag: "Verbose";
991
- };
570
+ per_level?: FixedArcaneEnergyCostPerLevel;
992
571
  /**
993
- * All translations for the entry, identified by IETF language tag
994
- * (BCP47).
995
- * @minProperties 1
996
- */
997
- translations?: {
998
- /**
999
- * @patternProperties ^[a-z]{2}-[A-Z]{2}$
1000
- * @minProperties 1
1001
- */
1002
- [localeId: string]: {
1003
- /**
1004
- * A note, appended to the generated string in parenthesis.
1005
- */
1006
- note?: {
1007
- /**
1008
- * The full note.
1009
- * @minLength 1
1010
- */
1011
- default: string;
1012
- /**
1013
- * A compressed note, if applicable. If not specified it should not
1014
- * be displayed in small location.
1015
- * @minLength 1
1016
- */
1017
- compressed?: string;
1018
- };
1019
- };
1020
- };
1021
- } | {
1022
- tag: "PerCountable";
572
+ * All translations for the entry, identified by IETF language tag (BCP47).
573
+ */
574
+ translations?: LocaleMap<FixedArcaneEnergyCostTranslation>;
575
+ };
576
+ /**
577
+ * The AE cost are per level of the enchantment. It may either be displayed
578
+ * in a compressed way (e.g. `1 AE per level`) or in a verbose way (e.g. `1
579
+ * AE for level I; 2 AE for level II`).
580
+ */
581
+ export declare enum FixedArcaneEnergyCostPerLevel {
582
+ Compressed = "Compressed",
583
+ Verbose = "Verbose"
584
+ }
585
+ /**
586
+ * @minProperties 1
587
+ */
588
+ export declare type FixedArcaneEnergyCostTranslation = {
589
+ /**
590
+ * A note, appended to the generated option string in parenthesis.
591
+ */
592
+ note?: ResponsiveTextOptional;
593
+ };
594
+ export declare type ArcaneEnergyCostPerCountable = {
1023
595
  /**
1024
596
  * The AE cost value that has to be per a specific countable entity.
1025
597
  * @integer
1026
598
  * @minimum 1
1027
599
  */
1028
- value: number;
600
+ value: number;
601
+ /**
602
+ * If defined, in addition to the cost per entity you have to pay a flat
603
+ * amount, regardless of the entity count.
604
+ * @integer
605
+ * @minimum 1
606
+ */
607
+ base_value?: number;
608
+ /**
609
+ * All translations for the entry, identified by IETF language tag (BCP47).
610
+ */
611
+ translations?: LocaleMap<ArcaneEnergyCostPerCountableTranslation>;
612
+ };
613
+ export declare type ArcaneEnergyCostPerCountableTranslation = {
614
+ /**
615
+ * The cost have to be per a specific countable entity, e.g. `8 AE per
616
+ * person`.
617
+ */
618
+ per: ResponsiveText;
619
+ /**
620
+ * A note, appended to the generated string in parenthesis.
621
+ */
622
+ note?: ResponsiveTextOptional;
623
+ };
624
+ export declare type ActivationAndHalfIntervalArcaneEnergyCost = {
625
+ /**
626
+ * The AE cost value that has to be payed for activation. Half of this value
627
+ * has to be payed each interval.
628
+ * @integer
629
+ * @minimum 2
630
+ * @multipleOf 2
631
+ */
632
+ value: number;
633
+ /**
634
+ * The time interval for which the AE cost `value` has to be paid.
635
+ */
636
+ interval: DurationUnitValue;
637
+ };
638
+ export declare type IndefiniteArcaneEnergyCost = {
639
+ /**
640
+ * The indefinite AE cost may be modified by a certain value.
641
+ */
642
+ modifier: IndefiniteArcaneEnergyCostModifier;
643
+ /**
644
+ * All translations for the entry, identified by IETF language tag (BCP47).
645
+ */
646
+ translations: LocaleMap<IndefiniteArcaneEnergyCostTranslation>;
647
+ };
648
+ /**
649
+ * Defines how the the `value` is set off against the check result.
650
+ */
651
+ export declare enum IndefiniteArcaneEnergyCostArithmetic {
652
+ Add = "Add",
653
+ Subtract = "Subtract"
654
+ }
655
+ export declare type IndefiniteArcaneEnergyCostModifier = {
656
+ /**
657
+ * The arithmetic how to apply the `value` to the `base`.
658
+ */
659
+ arithmetic: IndefiniteArcaneEnergyCostArithmetic;
660
+ /**
661
+ * The value that is applied to the `base` using the defined `arithmetic`.
662
+ * @integer
663
+ * @minimum 1
664
+ */
665
+ value: number;
666
+ };
667
+ export declare type IndefiniteArcaneEnergyCostTranslation = {
668
+ /**
669
+ * A description of where the cost come from.
670
+ */
671
+ description: ResponsiveText;
672
+ };
673
+ export declare type ArcaneEnergyCostDisjunction = {
674
+ /**
675
+ * Specified if the selected AE cost option has to be paid for each time
676
+ * interval.
677
+ */
678
+ interval?: ArcaneEnergyCostDisjunctionInterval;
679
+ /**
680
+ * The possible AE cost values.
681
+ */
682
+ options: ArcaneEnergyCostDisjunctionOption[];
683
+ };
684
+ export declare type ArcaneEnergyCostDisjunctionInterval = {
685
+ /**
686
+ * The interval itself.
687
+ */
688
+ value: DurationUnitValue;
1029
689
  /**
1030
- * If defined, in addition to the cost per entity you have to pay a flat
1031
- * amount, regardless of the entity count.
690
+ * The AE cost value for activation.
1032
691
  * @integer
1033
692
  * @minimum 1
1034
693
  */
1035
- base_value?: number;
694
+ activation_value: number;
1036
695
  /**
1037
- * All translations for the entry, identified by IETF language tag
1038
- * (BCP47).
1039
- * @minProperties 1
1040
- */
1041
- translations?: {
1042
- /**
1043
- * @patternProperties ^[a-z]{2}-[A-Z]{2}$
1044
- * @minProperties 1
1045
- */
1046
- [localeId: string]: {
1047
- /**
1048
- * The cost have to be per a specific countable entity, e.g. `8 AE per
1049
- * person`.
1050
- */
1051
- per: {
1052
- /**
1053
- * The full countable entity name.
1054
- * @minLength 1
1055
- */
1056
- default: string;
1057
- /**
1058
- * The compressed countable entity name.
1059
- * @minLength 1
1060
- */
1061
- compressed: string;
1062
- };
1063
- /**
1064
- * A note, appended to the generated string in parenthesis.
1065
- */
1066
- note?: {
1067
- /**
1068
- * The full note.
1069
- * @minLength 1
1070
- */
1071
- default: string;
1072
- /**
1073
- * A compressed note, if applicable. If not specified it should not
1074
- * be displayed in small location.
1075
- * @minLength 1
1076
- */
1077
- compressed?: string;
1078
- };
1079
- };
1080
- };
1081
- } | {
1082
- tag: "ActivationAndHalfInterval";
696
+ * Set to `true` if the action where the enchantment is casted does
697
+ * **not** as a part of the first interval that has to be payed, so that
698
+ * the first interval payment needs to be done after the activation.
699
+ *
700
+ * This works different than other sustained spells, since for them the
701
+ * end of the cast usually already counts as part of the first interval.
702
+ */
703
+ after_activation: boolean;
704
+ };
705
+ export declare type ArcaneEnergyCostDisjunctionOption = {
1083
706
  /**
1084
- * The AE cost value that has to be payed for activation. Half of this value
1085
- * has to be payed each interval.
707
+ * A possible AE cost value.
1086
708
  * @integer
1087
- * @minimum 2
1088
- * @multipleOf 2
709
+ * @minimum 1
1089
710
  */
1090
711
  value: number;
1091
- /**
1092
- * The time interval for which the AE cost `value` has to be paid.
1093
- */
1094
- interval: Duration.UnitValue;
1095
- } | {
1096
- tag: "Indefinite";
1097
- /**
1098
- * The indefinite AE cost may be modified by a certain value.
1099
- */
1100
- modifier: {
1101
- /**
1102
- * The arithmetic how to apply the `value` to the indefinite base value.
1103
- */
1104
- arithmetic: {
1105
- tag: "Add";
1106
- } | {
1107
- tag: "Multiply";
1108
- };
1109
- /**
1110
- * The value that is applied to the indefinite base value using the
1111
- * defined `arithmetic`.
1112
- * @integer
1113
- * @minimum 1
1114
- */
1115
- value: number;
1116
- };
1117
712
  /**
1118
713
  * All translations for the entry, identified by IETF language tag (BCP47).
1119
- * @minProperties 1
1120
- */
1121
- translations: {
1122
- /**
1123
- * @patternProperties ^[a-z]{2}-[A-Z]{2}$
1124
- */
1125
- [localeId: string]: {
1126
- /**
1127
- * A description of where the cost come from.
1128
- */
1129
- description: {
1130
- /**
1131
- * The full description of where the cost come from.
1132
- * @minLength 1
1133
- */
1134
- default: string;
1135
- /**
1136
- * A compressed description of where the cost come from for use in
1137
- * small areas (e.g. on character sheet).
1138
- * @minLength 1
1139
- */
1140
- compressed: string;
1141
- };
1142
- };
1143
- };
1144
- } | {
1145
- tag: "Disjunction";
1146
- /**
1147
- * Specified if the selected AE cost option has to be paid for each time
1148
- * interval.
1149
714
  */
1150
- interval?: {
1151
- /**
1152
- * The interval itself.
1153
- */
1154
- value: Duration.UnitValue;
1155
- /**
1156
- * The AE cost value for activation.
1157
- * @integer
1158
- * @minimum 1
1159
- */
1160
- activation_value: number;
1161
- /**
1162
- * Set to `true` if the action where the enchantment is casted does
1163
- * **not** as a part of the first interval that has to be payed, so that
1164
- * the first interval payment needs to be done after the activation.
1165
- *
1166
- * This works different than other sustained spells, since for them the
1167
- * end of the cast usually already counts as part of the first interval.
1168
- */
1169
- after_activation: boolean;
1170
- };
715
+ translations?: LocaleMap<ArcaneEnergyCostDisjunctionOptionTranslation>;
716
+ };
717
+ /**
718
+ * @minProperties 1
719
+ */
720
+ export declare type ArcaneEnergyCostDisjunctionOptionTranslation = {
1171
721
  /**
1172
- * The possible AE cost values.
722
+ * A note, appended to the generated option string in parenthesis.
1173
723
  */
1174
- options: {
1175
- /**
1176
- * A possible AE cost value.
1177
- * @integer
1178
- * @minimum 1
1179
- */
1180
- value: number;
1181
- /**
1182
- * All translations for the entry, identified by IETF language tag
1183
- * (BCP47).
1184
- * @minProperties 1
1185
- */
1186
- translations?: {
1187
- /**
1188
- * @patternProperties ^[a-z]{2}-[A-Z]{2}$
1189
- * @minProperties 1
1190
- */
1191
- [localeId: string]: {
1192
- /**
1193
- * A note, appended to the generated option string in parenthesis.
1194
- */
1195
- note?: {
1196
- /**
1197
- * The full note.
1198
- * @minLength 1
1199
- */
1200
- default: string;
1201
- /**
1202
- * A compressed note, if applicable. If not specified it should not
1203
- * be displayed in small location.
1204
- * @minLength 1
1205
- */
1206
- compressed?: string;
1207
- };
1208
- };
1209
- };
1210
- }[];
1211
- } | {
1212
- tag: "None";
724
+ note?: ResponsiveTextOptional;
725
+ };
726
+ export declare type NoArcaneEnergyCost = {
1213
727
  /**
1214
728
  * All translations for the entry, identified by IETF language tag
1215
729
  * (BCP47).
1216
- * @minProperties 1
1217
- */
1218
- translations?: {
1219
- /**
1220
- * @patternProperties ^[a-z]{2}-[A-Z]{2}$
1221
- * @minProperties 1
1222
- */
1223
- [localeId: string]: {
1224
- /**
1225
- * A note, appended to the generated string in parenthesis.
1226
- */
1227
- note?: {
1228
- /**
1229
- * The full note.
1230
- * @minLength 1
1231
- */
1232
- default: string;
1233
- /**
1234
- * A compressed note, if applicable. If not specified it should not
1235
- * be displayed in small location.
1236
- * @minLength 1
1237
- */
1238
- compressed?: string;
1239
- };
1240
- };
1241
- };
1242
- } | {
1243
- tag: "Variable";
730
+ */
731
+ translations?: LocaleMap<NoArcaneEnergyCostTranslation>;
732
+ };
733
+ /**
734
+ * @minProperties 1
735
+ */
736
+ export declare type NoArcaneEnergyCostTranslation = {
737
+ /**
738
+ * A note, appended to the generated string in parenthesis.
739
+ */
740
+ note?: ResponsiveTextOptional;
1244
741
  };
1245
742
  /**
1246
743
  * The volume points the enchantment needs.
1247
744
  */
1248
745
  export declare type Volume = {
1249
746
  tag: "Fixed";
747
+ fixed: FixedVolume;
748
+ } | {
749
+ tag: "PerLevel";
750
+ per_level: VolumePerLevel;
751
+ } | {
752
+ tag: "ByLevel";
753
+ by_level: VolumeByLevel;
754
+ } | {
755
+ tag: "Map";
756
+ map: VolumeMap;
757
+ };
758
+ export declare type FixedVolume = {
1250
759
  /**
1251
760
  * The volume points.
1252
761
  * @integer
1253
762
  * @minimum 0
1254
763
  */
1255
764
  points: number;
1256
- } | {
1257
- tag: "PerLevel";
765
+ };
766
+ export declare type VolumePerLevel = {
1258
767
  /**
1259
768
  * The volume points per level.
1260
769
  * @integer
1261
770
  * @minimum 1
1262
771
  */
1263
772
  points: number;
1264
- } | {
1265
- tag: "ByLevel";
773
+ };
774
+ export declare type VolumeByLevel = {
1266
775
  /**
1267
776
  * The volume points for each level. The first element is the volume points
1268
777
  * for the first level, the second element is the volume points for the
1269
778
  * second level, and so on.
1270
779
  * @minItems 2
1271
780
  */
1272
- list: {
1273
- /**
1274
- * The volume points for this level.
1275
- * @integer
1276
- * @minimum 0
1277
- */
1278
- points: number;
1279
- }[];
1280
- } | {
1281
- tag: "Map";
1282
- map: VolumeMap;
781
+ list: VolumeByLevelItem[];
782
+ };
783
+ export declare type VolumeByLevelItem = {
784
+ /**
785
+ * The volume points for this level.
786
+ * @integer
787
+ * @minimum 0
788
+ */
789
+ points: number;
1283
790
  };
1284
791
  /**
1285
792
  * A content that is `3/4/5 Points for Chimera, Daimonid, Golems, Undead /
@@ -1332,30 +839,28 @@ export declare type VolumeMap = {
1332
839
  options: VolumeMapOption[];
1333
840
  /**
1334
841
  * All translations for the entry, identified by IETF language tag (BCP47).
1335
- * @minProperties 1
1336
- */
1337
- translations?: {
1338
- /**
1339
- * @patternProperties ^[a-z]{2}-[A-Z]{2}$
1340
- */
1341
- [localeId: string]: {
1342
- /**
1343
- * Place a string between the `for` and the grouped map option labels.
1344
- */
1345
- list_prepend?: string;
1346
- /**
1347
- * Place a string after the grouped map option labels.
1348
- */
1349
- list_append?: string;
1350
- /**
1351
- * If the string from the book cannot be generated using the default
1352
- * generation technique, use this string. All options still need to be
1353
- * inserted propertly, since it may be used by in-game tools to provide a
1354
- * selection to players.
1355
- */
1356
- replacement?: string;
1357
- };
1358
- };
842
+ */
843
+ translations?: LocaleMap<VolumeMapTranslation>;
844
+ };
845
+ /**
846
+ * @minProperties 1
847
+ */
848
+ export declare type VolumeMapTranslation = {
849
+ /**
850
+ * Place a string between the `for` and the grouped map option labels.
851
+ */
852
+ list_prepend?: string;
853
+ /**
854
+ * Place a string after the grouped map option labels.
855
+ */
856
+ list_append?: string;
857
+ /**
858
+ * If the string from the book cannot be generated using the default
859
+ * generation technique, use this string. All options still need to be
860
+ * inserted propertly, since it may be used by in-game tools to provide a
861
+ * selection to players.
862
+ */
863
+ replacement?: string;
1359
864
  };
1360
865
  export declare type VolumeMapOption = {
1361
866
  /**
@@ -1367,57 +872,60 @@ export declare type VolumeMapOption = {
1367
872
  /**
1368
873
  * Links to the options this volume specification is meant for.
1369
874
  */
1370
- associated_options: {
1371
- /**
1372
- * The option's identifier.
1373
- */
1374
- id: VolumePointsOptionReferenceIdentifier;
1375
- }[];
875
+ associated_options: VolumeMapOptionAssociatedOption[];
1376
876
  /**
1377
877
  * All translations for the entry, identified by IETF language tag (BCP47).
1378
- * @minProperties 1
1379
- */
1380
- translations?: {
1381
- /**
1382
- * @patternProperties ^[a-z]{2}-[A-Z]{2}$
1383
- */
1384
- [localeId: string]: {
1385
- /**
1386
- * The description of the option for cost string generation.
1387
- * @minLength 1
1388
- */
1389
- label: string;
1390
- /**
1391
- * The description of the option if used standalone. Only used if
1392
- * different from `label`.
1393
- * @minLength 1
1394
- */
1395
- label_standalone?: string;
1396
- };
1397
- };
878
+ */
879
+ translations?: LocaleMap<VolumeMapOptionTranslation>;
880
+ };
881
+ export declare type VolumeMapOptionAssociatedOption = {
882
+ /**
883
+ * The option's identifier.
884
+ */
885
+ id: VolumePointsOptionReferenceIdentifier;
886
+ };
887
+ export declare type VolumeMapOptionTranslation = {
888
+ /**
889
+ * The description of the option for cost string generation.
890
+ */
891
+ label: NonEmptyString;
892
+ /**
893
+ * The description of the option if used standalone. Only used if
894
+ * different from `label`.
895
+ */
896
+ label_standalone?: NonEmptyString;
1398
897
  };
1399
898
  /**
1400
899
  * The binding cost for an enchantment.
1401
900
  */
1402
901
  export declare type BindingCost = {
1403
902
  tag: "Fixed";
903
+ fixed: FixedBindingCost;
904
+ } | {
905
+ tag: "PerLevel";
906
+ per_level: BindingCostPerLevel;
907
+ } | {
908
+ tag: "Map";
909
+ map: BindingCostMap;
910
+ };
911
+ export declare type FixedBindingCost = {
1404
912
  /**
1405
913
  * The permanent AE cost.
914
+ *
915
+ * If the enchantment has multiple levels, it is only applied for the first
916
+ * level.
1406
917
  * @integer
1407
918
  * @minimum 1
1408
919
  */
1409
920
  permanent_value: number;
1410
- } | {
1411
- tag: "PerLevel";
921
+ };
922
+ export declare type BindingCostPerLevel = {
1412
923
  /**
1413
924
  * The permanent AE cost per level.
1414
925
  * @integer
1415
926
  * @minimum 1
1416
927
  */
1417
928
  permanent_value: number;
1418
- } | {
1419
- tag: "Map";
1420
- map: BindingCostMap;
1421
929
  };
1422
930
  /**
1423
931
  * A content that is `2/4/8 permanent AE for spell-swords with the combat
@@ -1454,30 +962,28 @@ export declare type BindingCostMap = {
1454
962
  options: VolumeMapOption[];
1455
963
  /**
1456
964
  * All translations for the entry, identified by IETF language tag (BCP47).
1457
- * @minProperties 1
1458
- */
1459
- translations?: {
1460
- /**
1461
- * @patternProperties ^[a-z]{2}-[A-Z]{2}$
1462
- */
1463
- [localeId: string]: {
1464
- /**
1465
- * Place a string between the `for` and the grouped map option labels.
1466
- */
1467
- list_prepend?: string;
1468
- /**
1469
- * Place a string after the grouped map option labels.
1470
- */
1471
- list_append?: string;
1472
- /**
1473
- * If the string from the book cannot be generated using the default
1474
- * generation technique, use this string. All options still need to be
1475
- * inserted propertly, since it may be used by in-game tools to provide a
1476
- * selection to players.
1477
- */
1478
- replacement?: string;
1479
- };
1480
- };
965
+ */
966
+ translations?: LocaleMap<BindingCostMapTranslation>;
967
+ };
968
+ /**
969
+ * @minProperties 1
970
+ */
971
+ export declare type BindingCostMapTranslation = {
972
+ /**
973
+ * Place a string between the `for` and the grouped map option labels.
974
+ */
975
+ list_prepend?: NonEmptyString;
976
+ /**
977
+ * Place a string after the grouped map option labels.
978
+ */
979
+ list_append?: NonEmptyString;
980
+ /**
981
+ * If the string from the book cannot be generated using the default
982
+ * generation technique, use this string. All options still need to be
983
+ * inserted propertly, since it may be used by in-game tools to provide a
984
+ * selection to players.
985
+ */
986
+ replacement?: NonEmptyString;
1481
987
  };
1482
988
  export declare type BindingCostMapOption = {
1483
989
  /**
@@ -1488,61 +994,52 @@ export declare type BindingCostMapOption = {
1488
994
  permanent_value: number;
1489
995
  /**
1490
996
  * All translations for the entry, identified by IETF language tag (BCP47).
1491
- * @minProperties 1
1492
- */
1493
- translations?: {
1494
- /**
1495
- * @patternProperties ^[a-z]{2}-[A-Z]{2}$
1496
- */
1497
- [localeId: string]: {
1498
- /**
1499
- * The description of the option for cost string generation.
1500
- * @minLength 1
1501
- */
1502
- label: string;
1503
- /**
1504
- * The description of the option if used standalone. Only used if
1505
- * different from `label`.
1506
- * @minLength 1
1507
- */
1508
- label_standalone?: string;
1509
- };
1510
- };
997
+ */
998
+ translations?: LocaleMap<BindingCostMapOptionTranslation>;
999
+ };
1000
+ export declare type BindingCostMapOptionTranslation = {
1001
+ /**
1002
+ * The description of the option for cost string generation.
1003
+ */
1004
+ label: NonEmptyString;
1005
+ /**
1006
+ * The description of the option if used standalone. Only used if
1007
+ * different from `label`.
1008
+ */
1009
+ label_standalone?: NonEmptyString;
1511
1010
  };
1512
1011
  /**
1513
1012
  * The magic property's identifier. `DependingOnProperty` can only be used if
1514
1013
  * the special ability has an option to select a property.
1515
1014
  */
1516
1015
  export declare type Property = {
1517
- tag: "DependingOnProperty";
1016
+ tag: "DependingOnSelection";
1017
+ depending_on_selection: {};
1518
1018
  } | {
1519
1019
  tag: "Fixed";
1520
- /**
1521
- * The property's identifier.
1522
- * @integer
1523
- * @minimum 1
1524
- */
1525
- id: number;
1020
+ fixed: PropertyReference;
1526
1021
  };
1527
1022
  /**
1528
- * The blessed aspect's identifier.
1529
- * @integer
1530
- * @minimum 1
1023
+ * The blessed aspect.
1531
1024
  */
1532
- export declare type Aspect = number;
1025
+ export declare type Aspect = AspectReference;
1533
1026
  /**
1534
1027
  * A reference to an advanced special ability.
1535
1028
  */
1536
1029
  export declare type AdvancedSpecialAbility = {
1537
1030
  tag: "General";
1538
- /**
1539
- * The advanced special ability's numeric identifier.
1540
- * @integer
1541
- * @minimum 1
1542
- */
1543
- id: number;
1031
+ general: AdvancedSpecialAbilityReference;
1544
1032
  } | {
1545
1033
  tag: "RestrictOptions";
1034
+ restrict_options: RestrictAdvancedSpecialAbilityOptions;
1035
+ } | {
1036
+ tag: "OneOf";
1037
+ one_of: OneOfAdvancedSpecialAbilityOptions;
1038
+ } | {
1039
+ tag: "DeriveFromExternalOption";
1040
+ derive_from_external_option: AdvancedSpecialAbilityDerivedFromExternalOption;
1041
+ };
1042
+ export declare type RestrictAdvancedSpecialAbilityOptions = {
1546
1043
  /**
1547
1044
  * The advanced special ability's numeric identifier.
1548
1045
  * @integer
@@ -1555,69 +1052,45 @@ export declare type AdvancedSpecialAbility = {
1555
1052
  * @minItems 1
1556
1053
  */
1557
1054
  option: AdvancedSpecialAbilityRestrictedOptionIdentifier[];
1558
- } | {
1559
- tag: "OneOf";
1055
+ };
1056
+ export declare type OneOfAdvancedSpecialAbilityOptions = {
1560
1057
  /**
1561
1058
  * The possible advanced special abilities.
1562
1059
  */
1563
- options: {
1564
- /**
1565
- * The advanced special ability's numeric identifier.
1566
- * @integer
1567
- * @minimum 1
1568
- */
1569
- id: number;
1570
- };
1060
+ options: AdvancedSpecialAbilityReference;
1571
1061
  /**
1572
- * Do have to choose on when buying the special ability? Otherwise the
1573
- * decision can be made later.
1062
+ * Do have to choose the advanced special ability when buying the style
1063
+ * special ability? Otherwise the decision can be made later.
1574
1064
  */
1575
1065
  is_selection_required_on_purchase: boolean;
1576
- /**
1577
- * Specify the select option(s) that only are allowed for the referenced
1578
- * advanced special ability; others are disallowed.
1579
- * @minItems 1
1580
- */
1581
- option: AdvancedSpecialAbilityRestrictedOptionIdentifier[];
1582
1066
  display_option?: DisplayOption;
1583
- } | {
1584
- tag: "DeriveFromExternalOption";
1067
+ };
1068
+ export declare type AdvancedSpecialAbilityDerivedFromExternalOption = {
1585
1069
  /**
1586
1070
  * The possible advanced special abilities.
1587
1071
  */
1588
- external_entry: AdvancedSpecialAbilityDerivedExternalEntryId;
1589
- /**
1590
- * @minItems
1591
- */
1592
- mappings: {
1593
- /**
1594
- * The select option's identifier.
1595
- */
1596
- from_option: AdvancedSpecialAbilityDerivedExternalEntryOptionId;
1597
- /**
1598
- * The advanced special ability's identifier.
1599
- */
1600
- to_advanced: {
1601
- /**
1602
- * The advanced special ability's numeric identifier.
1603
- * @integer
1604
- * @minimum 1
1605
- */
1606
- id: number;
1607
- };
1608
- }[];
1072
+ external_entry: MagicalTraditionIdentifier;
1073
+ /**
1074
+ * Map options from the external entry to allowed advanced special abilities.
1075
+ * @minItems 1
1076
+ */
1077
+ map: AdvancedSpecialAbilityDerivedFromExternalOptionMapping[];
1609
1078
  display_option?: DisplayOption;
1079
+ };
1080
+ /**
1081
+ * Mapping from an option of the external entry to an allowed advanced special
1082
+ * ability.
1083
+ * @minItems 1
1084
+ */
1085
+ export declare type AdvancedSpecialAbilityDerivedFromExternalOptionMapping = {
1610
1086
  /**
1611
- * Do have to choose on when buying the special ability? Otherwise the
1612
- * decision can be made later.
1087
+ * The select option's identifier.
1613
1088
  */
1614
- is_selection_required_on_purchase: boolean;
1089
+ from_option: PatronIdentifier;
1615
1090
  /**
1616
- * Specify the select option(s) that only are allowed for the referenced
1617
- * advanced special ability; others are disallowed.
1618
- * @minItems 1
1091
+ * The advanced special ability's identifier.
1619
1092
  */
1620
- option: AdvancedSpecialAbilityRestrictedOptionIdentifier[];
1093
+ to_advanced: AdvancedSpecialAbilityReference;
1621
1094
  };
1622
1095
  export declare type AdvancedSpecialAbilityDerivedExternalEntryId = MagicalTraditionIdentifier;
1623
1096
  export declare type AdvancedSpecialAbilityDerivedExternalEntryOptionId = PatronIdentifier;
@@ -1635,233 +1108,179 @@ export declare type AdvancedSpecialAbilities = [
1635
1108
  ];
1636
1109
  export declare type ApplicableCombatTechniques = {
1637
1110
  tag: "None";
1111
+ none: {};
1638
1112
  } | {
1639
1113
  tag: "DependingOnCombatStyle";
1114
+ depending_on_combat_style: {};
1640
1115
  } | {
1641
1116
  tag: "All";
1117
+ all: AllApplicableCombatTechniques;
1118
+ } | {
1119
+ tag: "AllClose";
1120
+ all_close: AllApplicableCloseCombatTechniques;
1121
+ } | {
1122
+ tag: "AllRanged";
1123
+ all_ranged: AllApplicableRangedCombatTechniques;
1124
+ } | {
1125
+ tag: "Specific";
1126
+ specific: SpecificApplicableCombatTechniques;
1127
+ };
1128
+ export declare type AllApplicableCombatTechniques = {
1642
1129
  /**
1643
1130
  * @minItems 1
1644
1131
  */
1645
1132
  restrictions?: ApplicableAllCombatTechniquesRestriction[];
1646
- } | {
1647
- tag: "AllClose";
1133
+ };
1134
+ export declare type AllApplicableCloseCombatTechniques = {
1648
1135
  /**
1649
1136
  * @minItems 1
1650
1137
  */
1651
1138
  restrictions?: ApplicableCloseCombatTechniquesRestriction[];
1652
- } | {
1653
- tag: "AllRanged";
1139
+ };
1140
+ export declare type AllApplicableRangedCombatTechniques = {
1654
1141
  /**
1655
1142
  * @minItems 1
1656
1143
  */
1657
1144
  restrictions?: ApplicableRangedCombatTechniquesRestriction[];
1658
- } | {
1659
- tag: "Specific";
1145
+ };
1146
+ export declare type SpecificApplicableCombatTechniques = {
1147
+ /**
1148
+ * @minItems 1
1149
+ */
1150
+ list: SpecificApplicableCombatTechnique[];
1151
+ };
1152
+ export declare type SpecificApplicableCombatTechnique = {
1153
+ id: CombatTechniqueIdentifier;
1660
1154
  /**
1661
1155
  * @minItems 1
1662
1156
  */
1663
- list: {
1664
- id: CombatTechniqueIdentifier;
1665
- /**
1666
- * @minItems 1
1667
- */
1668
- restrictions?: ApplicableSpecificCombatTechniquesRestriction[];
1669
- }[];
1157
+ restrictions?: ApplicableSpecificCombatTechniquesRestriction[];
1670
1158
  };
1671
1159
  export declare type ApplicableAllCombatTechniquesRestriction = {
1672
1160
  tag: "Improvised";
1161
+ improvised: {};
1673
1162
  } | {
1674
1163
  tag: "PointedBlade";
1164
+ pointed_blade: {};
1675
1165
  } | {
1676
1166
  tag: "Mount";
1167
+ mount: {};
1677
1168
  } | {
1678
1169
  tag: "Race";
1679
- /**
1680
- * The race's numeric identifier.
1681
- * @integer
1682
- * @minimum 1
1683
- */
1684
- id: number;
1170
+ race: ApplicableCombatTechniquesRaceRestriction;
1685
1171
  } | {
1686
1172
  tag: "ExcludeCombatTechniques";
1687
- /**
1688
- * The combat techniques this combat special ability is **not** applicable
1689
- * to.
1690
- * @minItems 1
1691
- * @uniqueItems
1692
- */
1693
- list: CombatTechniqueIdentifier[];
1173
+ exclude_combat_techniques: ApplicableCombatTechniquesNegativeCombatTechniquesRestriction<CombatTechniqueReference>;
1694
1174
  };
1695
1175
  export declare type ApplicableCloseCombatTechniquesRestriction = {
1696
1176
  tag: "Improvised";
1177
+ improvised: {};
1697
1178
  } | {
1698
1179
  tag: "PointedBlade";
1180
+ pointed_blade: {};
1699
1181
  } | {
1700
1182
  tag: "Mount";
1183
+ mount: {};
1701
1184
  } | {
1702
1185
  tag: "HasParry";
1186
+ has_parry: {};
1703
1187
  } | {
1704
1188
  tag: "OneHanded";
1189
+ one_handed: {};
1705
1190
  } | {
1706
1191
  tag: "ParryingWeapon";
1192
+ parrying_weapon: {};
1707
1193
  } | {
1708
1194
  tag: "Race";
1709
- /**
1710
- * The race's numeric identifier.
1711
- * @integer
1712
- * @minimum 1
1713
- */
1714
- id: number;
1195
+ race: ApplicableCombatTechniquesRaceRestriction;
1715
1196
  } | {
1716
1197
  tag: "ExcludeCombatTechniques";
1717
- /**
1718
- * The combat techniques this combat special ability is **not** applicable
1719
- * to.
1720
- * @minItems 1
1721
- * @uniqueItems
1722
- */
1723
- list: {
1724
- /**
1725
- * The close combat technique's numeric identifier.
1726
- * @integer
1727
- * @minimum 1
1728
- */
1729
- id: number;
1730
- }[];
1198
+ exclude_combat_techniques: ApplicableCombatTechniquesNegativeCombatTechniquesRestriction<CloseCombatTechniqueReference>;
1731
1199
  };
1732
1200
  export declare type ApplicableRangedCombatTechniquesRestriction = {
1733
1201
  tag: "Improvised";
1202
+ improvised: {};
1734
1203
  } | {
1735
1204
  tag: "PointedBlade";
1205
+ pointed_blade: {};
1736
1206
  } | {
1737
1207
  tag: "Mount";
1208
+ mount: {};
1738
1209
  } | {
1739
1210
  tag: "Race";
1740
- /**
1741
- * The race's numeric identifier.
1742
- * @integer
1743
- * @minimum 1
1744
- */
1745
- id: number;
1211
+ race: ApplicableCombatTechniquesRaceRestriction;
1746
1212
  } | {
1747
1213
  tag: "ExcludeCombatTechniques";
1748
- /**
1749
- * The combat techniques this combat special ability is **not** applicable
1750
- * to.
1751
- * @minItems 1
1752
- * @uniqueItems
1753
- */
1754
- list: {
1755
- /**
1756
- * The ranged combat technique's numeric identifier.
1757
- * @integer
1758
- * @minimum 1
1759
- */
1760
- id: number;
1761
- }[];
1214
+ exclude_combat_techniques: ApplicableCombatTechniquesNegativeCombatTechniquesRestriction<RangedCombatTechniqueReference>;
1762
1215
  };
1763
1216
  export declare type ApplicableSpecificCombatTechniquesRestriction = {
1764
1217
  tag: "Improvised";
1218
+ improvised: {};
1765
1219
  } | {
1766
1220
  tag: "PointedBlade";
1221
+ pointed_blade: {};
1767
1222
  } | {
1768
1223
  tag: "Mount";
1224
+ mount: {};
1769
1225
  } | {
1770
1226
  tag: "Race";
1771
- /**
1772
- * The race's numeric identifier.
1773
- * @integer
1774
- * @minimum 1
1775
- */
1776
- id: number;
1227
+ race: ApplicableCombatTechniquesRaceRestriction;
1777
1228
  } | {
1778
1229
  tag: "Level";
1230
+ level: ApplicableCombatTechniquesLevelRestriction;
1231
+ } | {
1232
+ tag: "Weapons";
1233
+ weapons: ApplicableCombatTechniquesWeaponRestriction;
1234
+ };
1235
+ export declare type ApplicableCombatTechniquesNegativeCombatTechniquesRestriction<Ref> = {
1236
+ /**
1237
+ * The combat techniques this combat special ability is **not** applicable to.
1238
+ * @minItems 1
1239
+ * @uniqueItems
1240
+ */
1241
+ list: Ref[];
1242
+ };
1243
+ export declare type ApplicableCombatTechniquesRaceRestriction = RaceReference;
1244
+ export declare type ApplicableCombatTechniquesLevelRestriction = {
1779
1245
  /**
1780
1246
  * The combat special ability is only applicable on a certain level.
1781
1247
  * @integer
1782
1248
  * @minimum 1
1783
1249
  */
1784
1250
  level: number;
1785
- } | {
1786
- tag: "Weapons";
1251
+ };
1252
+ export declare type ApplicableCombatTechniquesWeaponRestriction = {
1787
1253
  /**
1788
1254
  * The specific weapons this combat special ability is only applicable to.
1789
1255
  * @minItems 1
1790
1256
  * @uniqueItems
1791
1257
  */
1792
- list: {
1793
- /**
1794
- * The weapon's numeric identifier.
1795
- * @integer
1796
- * @minimum 1
1797
- */
1798
- id: number;
1799
- }[];
1258
+ list: WeaponReference[];
1800
1259
  };
1801
1260
  export declare type AdventurePointsValue = {
1802
1261
  tag: "Fixed";
1803
- /**
1804
- * A fixed adventure points value. If the entry has levels, this is the cost
1805
- * for each level as well.
1806
- */
1807
- value: AdventurePointsSingleValue;
1808
- } | {
1809
- tag: "ByLevel";
1810
- /**
1811
- * An entry with levels may have different costs for each level. The length
1812
- * of the list must match the amount of levels the special ability has.
1813
- * @minItems 2
1814
- */
1815
- values: AdventurePointsSingleValue[];
1816
- } | {
1817
- /**
1818
- * Used if AP value is defined by the selected option(s) or special rules.
1819
- */
1820
- tag: "Indefinite";
1821
- };
1822
- export declare type AdventurePointsValueAdvantagesDisadvantages = {
1823
- tag: "Fixed";
1824
- /**
1825
- * A fixed adventure points value. If the entry has levels, this is the cost
1826
- * for each level as well.
1827
- */
1828
- value: AdventurePointsSingleValue;
1829
- /**
1830
- * The AP Value of the entry does not contribute to the AP maximum for
1831
- * advantages or disadvantages, so it may also be bought if the maximum has
1832
- * already been reached.
1833
- */
1834
- does_not_contribute_to_maximum?: true;
1262
+ fixed: FixedAdventurePointsValue;
1835
1263
  } | {
1836
1264
  tag: "ByLevel";
1837
- /**
1838
- * An entry with levels may have different costs for each level. The length
1839
- * of the list must match the amount of levels the special ability has.
1840
- * @minItems 2
1841
- */
1842
- values: AdventurePointsSingleValue[];
1843
- /**
1844
- * The AP Value of the entry does not contribute to the AP maximum for
1845
- * advantages or disadvantages, so it may also be bought if the maximum has
1846
- * already been reached.
1847
- */
1848
- does_not_contribute_to_maximum?: true;
1265
+ by_level: AdventurePointsValueByLevel;
1849
1266
  } | {
1850
- /**
1851
- * Used if AP value is defined by the selected option(s) or special rules.
1852
- */
1853
1267
  tag: "Indefinite";
1854
- /**
1855
- * The AP Value of the entry does not contribute to the AP maximum for
1856
- * advantages or disadvantages, so it may also be bought if the maximum has
1857
- * already been reached.
1858
- */
1859
- does_not_contribute_to_maximum?: true;
1268
+ indefinite: {};
1860
1269
  };
1270
+ /**
1271
+ * A fixed adventure points value. If the entry has levels, this is the cost per
1272
+ * level as well.
1273
+ */
1274
+ export declare type FixedAdventurePointsValue = AdventurePointsSingleValue;
1275
+ /**
1276
+ * An entry with levels may have different costs for each level. The length of
1277
+ * the list must match the amount of levels the special ability has.
1278
+ * @minItems 2
1279
+ */
1280
+ export declare type AdventurePointsValueByLevel = AdventurePointsSingleValue[];
1861
1281
  /**
1862
1282
  * A single adventure points value.
1863
1283
  * @integer
1864
1284
  * @minimum 0
1865
1285
  */
1866
1286
  export declare type AdventurePointsSingleValue = number;
1867
- export {};