optolith-database-schema 0.2.3 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (518) hide show
  1. package/CHANGELOG.md +73 -0
  2. package/lib/config.d.ts +302 -250
  3. package/lib/config.js +302 -250
  4. package/lib/main.d.ts +3 -2
  5. package/lib/main.js +1 -1
  6. package/lib/types/Advantage.d.ts +23 -25
  7. package/lib/types/AnimalDisease.d.ts +18 -212
  8. package/lib/types/AnimalType.d.ts +9 -13
  9. package/lib/types/ArcaneBardTradition.d.ts +3 -27
  10. package/lib/types/ArcaneDancerTradition.d.ts +3 -27
  11. package/lib/types/Aspect.d.ts +14 -19
  12. package/lib/types/Attribute.d.ts +17 -23
  13. package/lib/types/Blessing.d.ts +81 -94
  14. package/lib/types/Cantrip.d.ts +135 -148
  15. package/lib/types/Ceremony.d.ts +55 -88
  16. package/lib/types/CombatTechnique_Close.d.ts +30 -39
  17. package/lib/types/CombatTechnique_Ranged.d.ts +28 -26
  18. package/lib/types/Condition.d.ts +18 -31
  19. package/lib/types/Continent.d.ts +9 -13
  20. package/lib/types/Culture.d.ts +164 -290
  21. package/lib/types/Culture.js +38 -0
  22. package/lib/types/DerivedCharacteristic.d.ts +4 -10
  23. package/lib/types/Disadvantage.d.ts +20 -24
  24. package/lib/types/Disease.d.ts +5 -140
  25. package/lib/types/Element.d.ts +9 -13
  26. package/lib/types/ExperienceLevel.d.ts +3 -9
  27. package/lib/types/EyeColor.d.ts +9 -13
  28. package/lib/types/FamiliarsTrick.d.ts +201 -290
  29. package/lib/types/HairColor.d.ts +9 -13
  30. package/lib/types/Lessons_Curriculum.d.ts +77 -138
  31. package/lib/types/Lessons_Guideline.d.ts +9 -13
  32. package/lib/types/LiturgicalChant.d.ts +55 -88
  33. package/lib/types/Locale.d.ts +1 -1
  34. package/lib/types/Locale.js +1 -1
  35. package/lib/types/MetaCondition.d.ts +18 -31
  36. package/lib/types/PactCategory.d.ts +48 -62
  37. package/lib/types/Patron.d.ts +60 -76
  38. package/lib/types/Patron.js +20 -0
  39. package/lib/types/PatronCategory.d.ts +11 -21
  40. package/lib/types/PersonalityTrait.d.ts +31 -39
  41. package/lib/types/Profession.d.ts +293 -435
  42. package/lib/types/Profession.js +6 -0
  43. package/lib/types/Property.d.ts +9 -13
  44. package/lib/types/Race.d.ts +95 -192
  45. package/lib/types/Race.js +11 -0
  46. package/lib/types/Region.d.ts +9 -13
  47. package/lib/types/Ritual.d.ts +58 -83
  48. package/lib/types/Service.d.ts +19 -25
  49. package/lib/types/Service.js +5 -0
  50. package/lib/types/SexPractice.d.ts +26 -34
  51. package/lib/types/Skill.d.ts +73 -102
  52. package/lib/types/Skill.js +19 -0
  53. package/lib/types/SkillGroup.d.ts +13 -18
  54. package/lib/types/SkillModificationLevel.d.ts +72 -76
  55. package/lib/types/SocialStatus.d.ts +9 -13
  56. package/lib/types/Spell.d.ts +58 -83
  57. package/lib/types/State.d.ts +14 -20
  58. package/lib/types/Talisman.d.ts +40 -54
  59. package/lib/types/Talisman.js +8 -0
  60. package/lib/types/TargetCategory.d.ts +21 -16
  61. package/lib/types/UI.d.ts +1 -5
  62. package/lib/types/_Activatable.d.ts +643 -1221
  63. package/lib/types/_Activatable.js +44 -13
  64. package/lib/types/_ActivatableSelectOptionCategory.d.ts +359 -0
  65. package/lib/types/_ActivatableSelectOptionCategory.js +8 -0
  66. package/lib/types/_ActivatableSkill.d.ts +24 -1013
  67. package/lib/types/_ActivatableSkill.js +1 -31
  68. package/lib/types/_ActivatableSkillCastingTime.d.ts +69 -0
  69. package/lib/types/_ActivatableSkillCastingTime.js +5 -0
  70. package/lib/types/_ActivatableSkillCheckResultBased.d.ts +39 -0
  71. package/lib/types/_ActivatableSkillCheckResultBased.js +16 -0
  72. package/lib/types/_ActivatableSkillCost.d.ts +223 -0
  73. package/lib/types/{prerequisites/single/CommonSuggestedByRCPPrerequisite.js → _ActivatableSkillCost.js} +0 -0
  74. package/lib/types/_ActivatableSkillDuration.d.ts +138 -0
  75. package/lib/types/_ActivatableSkillDuration.js +13 -0
  76. package/lib/types/_ActivatableSkillEffect.d.ts +68 -0
  77. package/lib/types/{equipment/_Armor.js → _ActivatableSkillEffect.js} +0 -3
  78. package/lib/types/_ActivatableSkillRange.d.ts +107 -0
  79. package/lib/types/_ActivatableSkillRange.js +5 -0
  80. package/lib/types/_ActivatableSkillTargetCategory.d.ts +39 -0
  81. package/lib/types/_ActivatableSkillTargetCategory.js +1 -0
  82. package/lib/types/_AlternativeNames.d.ts +11 -0
  83. package/lib/types/_AlternativeNames.js +1 -0
  84. package/lib/types/_ArcaneTradition.d.ts +28 -0
  85. package/lib/types/_ArcaneTradition.js +4 -0
  86. package/lib/types/_Blessed.d.ts +22 -0
  87. package/lib/types/_Blessed.js +1 -0
  88. package/lib/types/_DiseasePoison.d.ts +114 -0
  89. package/lib/types/_DiseasePoison.js +15 -0
  90. package/lib/types/_Enhancements.d.ts +16 -20
  91. package/lib/types/_I18n.d.ts +1 -5
  92. package/lib/types/_Identifier.d.ts +32 -0
  93. package/lib/types/_Identifier.js +32 -0
  94. package/lib/types/_Influence.d.ts +27 -32
  95. package/lib/types/_LocaleMap.d.ts +10 -0
  96. package/lib/types/_LocaleMap.js +1 -0
  97. package/lib/types/_NonEmptyString.d.ts +9 -0
  98. package/lib/types/_NonEmptyString.js +1 -0
  99. package/lib/types/_Prerequisite.d.ts +61 -65
  100. package/lib/types/_ResponsiveText.d.ts +54 -0
  101. package/lib/types/_ResponsiveText.js +1 -0
  102. package/lib/types/_Sex.d.ts +4 -5
  103. package/lib/types/_Sex.js +8 -1
  104. package/lib/types/_SimpleReferences.d.ts +334 -0
  105. package/lib/types/_SimpleReferences.js +1 -0
  106. package/lib/types/_SkillCheck.d.ts +12 -20
  107. package/lib/types/_SkillCheck.js +11 -1
  108. package/lib/types/_Spellwork.d.ts +18 -0
  109. package/lib/types/_Spellwork.js +1 -0
  110. package/lib/types/equipment/EquipmentPackage.d.ts +24 -28
  111. package/lib/types/equipment/item/Alchemicum.d.ts +6 -0
  112. package/lib/types/equipment/item/Alchemicum.js +5 -0
  113. package/lib/types/equipment/item/Ammunition.d.ts +31 -0
  114. package/lib/types/equipment/item/Ammunition.js +5 -0
  115. package/lib/types/equipment/item/Animal.d.ts +18 -0
  116. package/lib/types/equipment/item/Animal.js +5 -0
  117. package/lib/types/equipment/item/AnimalCare.d.ts +48 -0
  118. package/lib/types/equipment/item/AnimalCare.js +5 -0
  119. package/lib/types/equipment/item/Armor.d.ts +185 -0
  120. package/lib/types/equipment/item/Armor.js +5 -0
  121. package/lib/types/equipment/item/BandageOrRemedy.d.ts +36 -0
  122. package/lib/types/equipment/item/BandageOrRemedy.js +5 -0
  123. package/lib/types/equipment/item/Book.d.ts +60 -0
  124. package/lib/types/equipment/item/Book.js +5 -0
  125. package/lib/types/equipment/item/CeremonialItem.d.ts +41 -0
  126. package/lib/types/equipment/item/CeremonialItem.js +5 -0
  127. package/lib/types/equipment/item/Clothes.d.ts +6 -0
  128. package/lib/types/equipment/item/Clothes.js +5 -0
  129. package/lib/types/equipment/item/Container.d.ts +6 -0
  130. package/lib/types/equipment/item/Container.js +5 -0
  131. package/lib/types/equipment/item/EquipmentOfBlessedOnes.d.ts +28 -0
  132. package/lib/types/equipment/item/EquipmentOfBlessedOnes.js +5 -0
  133. package/lib/types/equipment/item/GemOrPreciousStone.d.ts +43 -0
  134. package/lib/types/equipment/item/GemOrPreciousStone.js +5 -0
  135. package/lib/types/equipment/item/IlluminationLightSource.d.ts +62 -0
  136. package/lib/types/equipment/item/IlluminationLightSource.js +9 -0
  137. package/lib/types/equipment/item/IlluminationRefillsOrSupplies.d.ts +6 -0
  138. package/lib/types/equipment/item/IlluminationRefillsOrSupplies.js +5 -0
  139. package/lib/types/equipment/item/Jewelry.d.ts +60 -0
  140. package/lib/types/equipment/item/Jewelry.js +5 -0
  141. package/lib/types/equipment/item/Liebesspielzeug.d.ts +6 -0
  142. package/lib/types/equipment/item/Liebesspielzeug.js +5 -0
  143. package/lib/types/equipment/item/LuxuryGood.d.ts +36 -0
  144. package/lib/types/equipment/item/LuxuryGood.js +5 -0
  145. package/lib/types/equipment/item/MagicalArtifact.d.ts +39 -0
  146. package/lib/types/equipment/item/MagicalArtifact.js +5 -0
  147. package/lib/types/equipment/item/MusicalInstrument.d.ts +22 -0
  148. package/lib/types/equipment/item/MusicalInstrument.js +5 -0
  149. package/lib/types/equipment/item/OrienteeringAid.d.ts +6 -0
  150. package/lib/types/equipment/item/OrienteeringAid.js +5 -0
  151. package/lib/types/equipment/item/Poison.d.ts +165 -0
  152. package/lib/types/equipment/item/Poison.js +12 -0
  153. package/lib/types/equipment/item/RopeOrChain.d.ts +6 -0
  154. package/lib/types/equipment/item/RopeOrChain.js +5 -0
  155. package/lib/types/equipment/item/Stationary.d.ts +6 -0
  156. package/lib/types/equipment/item/Stationary.js +5 -0
  157. package/lib/types/equipment/item/ThievesTool.d.ts +6 -0
  158. package/lib/types/equipment/item/ThievesTool.js +5 -0
  159. package/lib/types/equipment/item/ToolOfTheTrade.d.ts +56 -0
  160. package/lib/types/equipment/item/ToolOfTheTrade.js +5 -0
  161. package/lib/types/equipment/item/TravelGearOrTool.d.ts +6 -0
  162. package/lib/types/equipment/item/TravelGearOrTool.js +5 -0
  163. package/lib/types/equipment/item/Vehicle.d.ts +18 -0
  164. package/lib/types/equipment/item/Vehicle.js +5 -0
  165. package/lib/types/equipment/item/Weapon.d.ts +152 -0
  166. package/lib/types/equipment/item/Weapon.js +5 -0
  167. package/lib/types/equipment/item/WeaponAccessory.d.ts +6 -0
  168. package/lib/types/equipment/item/WeaponAccessory.js +5 -0
  169. package/lib/types/equipment/item/_Item.d.ts +163 -0
  170. package/lib/types/equipment/item/_Item.js +1 -0
  171. package/lib/types/equipment/item/_MeleeWeapon.d.ts +115 -0
  172. package/lib/types/equipment/item/_MeleeWeapon.js +4 -0
  173. package/lib/types/equipment/item/_RangedWeapon.d.ts +110 -0
  174. package/lib/types/equipment/item/_RangedWeapon.js +4 -0
  175. package/lib/types/equipment/item/_Weapon.d.ts +57 -0
  176. package/lib/types/equipment/{_Weapon.js → item/_Weapon.js} +0 -3
  177. package/lib/types/equipment/item/sub/ArmorType.d.ts +36 -0
  178. package/lib/types/equipment/{ArmorType.js → item/sub/ArmorType.js} +1 -1
  179. package/lib/types/equipment/item/sub/Reach.d.ts +27 -0
  180. package/lib/types/equipment/{Reach.js → item/sub/Reach.js} +1 -1
  181. package/lib/types/magicalActions/AnimistPower.d.ts +170 -225
  182. package/lib/types/magicalActions/AnimistPower_Tribe.d.ts +9 -13
  183. package/lib/types/magicalActions/Curse.d.ts +116 -184
  184. package/lib/types/magicalActions/DominationRitual.d.ts +98 -136
  185. package/lib/types/magicalActions/ElvenMagicalSong.d.ts +79 -123
  186. package/lib/types/magicalActions/GeodeRitual.d.ts +126 -111
  187. package/lib/types/magicalActions/JesterTrick.d.ts +117 -109
  188. package/lib/types/magicalActions/MagicalDance.d.ts +71 -138
  189. package/lib/types/magicalActions/MagicalMelody.d.ts +65 -75
  190. package/lib/types/magicalActions/MagicalRune.d.ts +155 -189
  191. package/lib/types/magicalActions/ZibiljaRitual.d.ts +57 -65
  192. package/lib/types/magicalActions/_MusicTradition.d.ts +21 -13
  193. package/lib/types/magicalActions/_MusicTradition.js +10 -1
  194. package/lib/types/magicalActions/_SkillReference.d.ts +1 -1
  195. package/lib/types/prerequisites/DisplayOption.d.ts +7 -8
  196. package/lib/types/prerequisites/PrerequisiteGroups.d.ts +195 -16
  197. package/lib/types/prerequisites/single/ActivatablePrerequisite.d.ts +0 -3
  198. package/lib/types/prerequisites/single/AnimistPowerPrerequisite.d.ts +0 -1
  199. package/lib/types/prerequisites/single/CulturePrerequisite.d.ts +0 -1
  200. package/lib/types/prerequisites/single/EnhancementPrerequisite.d.ts +17 -14
  201. package/lib/types/prerequisites/single/InfluencePrerequisite.d.ts +0 -1
  202. package/lib/types/prerequisites/single/PactPrerequisite.d.ts +5 -14
  203. package/lib/types/prerequisites/single/PrimaryAttributePrerequisite.d.ts +5 -6
  204. package/lib/types/prerequisites/single/PrimaryAttributePrerequisite.js +5 -1
  205. package/lib/types/prerequisites/single/PublicationPrerequisite.d.ts +0 -1
  206. package/lib/types/prerequisites/single/RacePrerequisite.d.ts +0 -1
  207. package/lib/types/prerequisites/single/RatedPrerequisite.d.ts +32 -41
  208. package/lib/types/prerequisites/single/RulePrerequisite.d.ts +0 -1
  209. package/lib/types/prerequisites/single/SexPrerequisite.d.ts +0 -1
  210. package/lib/types/prerequisites/single/SocialStatusPrerequisite.d.ts +0 -1
  211. package/lib/types/prerequisites/single/StatePrerequisite.d.ts +0 -1
  212. package/lib/types/prerequisites/single/TextPrerequisite.d.ts +9 -14
  213. package/lib/types/prerequisites/single/TextPrerequisite.js +5 -1
  214. package/lib/types/prerequisites/single/TraditionPrerequisite.d.ts +18 -12
  215. package/lib/types/prerequisites/single/TraditionPrerequisite.js +18 -1
  216. package/lib/types/rule/CoreRule.d.ts +256 -206
  217. package/lib/types/rule/CoreRule.js +5 -0
  218. package/lib/types/rule/FocusRule.d.ts +19 -24
  219. package/lib/types/rule/FocusRule_Subject.d.ts +9 -13
  220. package/lib/types/rule/OptionalRule.d.ts +12 -35
  221. package/lib/types/rule/_Rule.d.ts +20 -0
  222. package/lib/types/rule/_Rule.js +1 -0
  223. package/lib/types/source/Publication.d.ts +39 -56
  224. package/lib/types/source/Publication.js +10 -0
  225. package/lib/types/source/_Erratum.d.ts +2 -1
  226. package/lib/types/source/_PublicationRef.d.ts +43 -37
  227. package/lib/types/specialAbility/AdvancedCombatSpecialAbility.d.ts +13 -17
  228. package/lib/types/specialAbility/AdvancedKarmaSpecialAbility.d.ts +8 -12
  229. package/lib/types/specialAbility/AdvancedMagicalSpecialAbility.d.ts +8 -12
  230. package/lib/types/specialAbility/AdvancedSkillSpecialAbility.d.ts +8 -12
  231. package/lib/types/specialAbility/AncestorGlyph.d.ts +8 -12
  232. package/lib/types/specialAbility/BlessedTradition.d.ts +95 -123
  233. package/lib/types/specialAbility/BrawlingSpecialAbility.d.ts +9 -13
  234. package/lib/types/specialAbility/CeremonialItemSpecialAbility.d.ts +8 -12
  235. package/lib/types/specialAbility/CombatSpecialAbility.d.ts +13 -17
  236. package/lib/types/specialAbility/CombatStyleSpecialAbility.d.ts +10 -18
  237. package/lib/types/specialAbility/CommandSpecialAbility.d.ts +1 -1
  238. package/lib/types/specialAbility/FamiliarSpecialAbility.d.ts +8 -12
  239. package/lib/types/specialAbility/FatePointSexSpecialAbility.d.ts +8 -12
  240. package/lib/types/specialAbility/FatePointSpecialAbility.d.ts +8 -12
  241. package/lib/types/specialAbility/GeneralSpecialAbility.d.ts +8 -12
  242. package/lib/types/specialAbility/KarmaSpecialAbility.d.ts +8 -12
  243. package/lib/types/specialAbility/LiturgicalStyleSpecialAbility.d.ts +8 -12
  244. package/lib/types/specialAbility/LycantropicGift.d.ts +8 -12
  245. package/lib/types/specialAbility/MagicStyleSpecialAbility.d.ts +8 -12
  246. package/lib/types/specialAbility/MagicalSpecialAbility.d.ts +8 -12
  247. package/lib/types/specialAbility/MagicalTradition.d.ts +38 -58
  248. package/lib/types/specialAbility/PactGift.d.ts +73 -62
  249. package/lib/types/specialAbility/PactGift.js +10 -0
  250. package/lib/types/specialAbility/ProtectiveWardingCircleSpecialAbility.d.ts +16 -23
  251. package/lib/types/specialAbility/Sermon.d.ts +8 -12
  252. package/lib/types/specialAbility/SexSpecialAbility.d.ts +8 -12
  253. package/lib/types/specialAbility/SikaryanDrainSpecialAbility.d.ts +8 -12
  254. package/lib/types/specialAbility/SkillStyleSpecialAbility.d.ts +8 -12
  255. package/lib/types/specialAbility/VampiricGift.d.ts +8 -12
  256. package/lib/types/specialAbility/Vision.d.ts +8 -12
  257. package/lib/types/specialAbility/_Tradition.d.ts +12 -0
  258. package/lib/types/specialAbility/_Tradition.js +1 -0
  259. package/lib/types/specialAbility/sub/Language.d.ts +78 -104
  260. package/lib/types/specialAbility/sub/Script.d.ts +24 -51
  261. package/lib/types/specialAbility/sub/TradeSecret.d.ts +14 -20
  262. package/lib/types/specialAbility/sub/_LanguageScript.d.ts +13 -0
  263. package/lib/types/specialAbility/sub/_LanguageScript.js +1 -0
  264. package/lib/types/traditionArtifacts/ArcaneOrbEnchantment.d.ts +20 -24
  265. package/lib/types/traditionArtifacts/AttireEnchantment.d.ts +21 -25
  266. package/lib/types/traditionArtifacts/BowlEnchantment.d.ts +20 -24
  267. package/lib/types/traditionArtifacts/CauldronEnchantment.d.ts +31 -34
  268. package/lib/types/traditionArtifacts/ChronicleEnchantment.d.ts +20 -24
  269. package/lib/types/traditionArtifacts/DaggerRitual.d.ts +45 -25
  270. package/lib/types/traditionArtifacts/FoolsHatEnchantment.d.ts +20 -24
  271. package/lib/types/traditionArtifacts/InstrumentEnchantment.d.ts +20 -24
  272. package/lib/types/traditionArtifacts/Krallenkettenzauber.d.ts +20 -24
  273. package/lib/types/traditionArtifacts/OrbEnchantment.d.ts +20 -24
  274. package/lib/types/traditionArtifacts/RingEnchantment.d.ts +20 -24
  275. package/lib/types/traditionArtifacts/SickleRitual.d.ts +20 -24
  276. package/lib/types/traditionArtifacts/SpellSwordEnchantment.d.ts +20 -24
  277. package/lib/types/traditionArtifacts/StaffEnchantment.d.ts +21 -25
  278. package/lib/types/traditionArtifacts/ToyEnchantment.d.ts +21 -25
  279. package/lib/types/traditionArtifacts/Trinkhornzauber.d.ts +20 -24
  280. package/lib/types/traditionArtifacts/WandEnchantment.d.ts +20 -24
  281. package/lib/types/traditionArtifacts/WeaponEnchantment.d.ts +19 -24
  282. package/lib/types/traditionArtifacts/sub/AnimalShape.d.ts +24 -16
  283. package/lib/types/traditionArtifacts/sub/AnimalShapePath.d.ts +9 -13
  284. package/lib/types/traditionArtifacts/sub/AnimalShapeSize.d.ts +9 -13
  285. package/lib/types/traditionArtifacts/sub/Brew.d.ts +9 -13
  286. package/lib/validation/schema.d.ts +11 -2
  287. package/lib/validation/schema.js +16 -4
  288. package/package.json +8 -7
  289. package/schema/Advantage.schema.json +49 -42
  290. package/schema/AnimalDisease.schema.json +17 -325
  291. package/schema/AnimalType.schema.json +17 -15
  292. package/schema/ArcaneBardTradition.schema.json +4 -42
  293. package/schema/ArcaneDancerTradition.schema.json +4 -42
  294. package/schema/Aspect.schema.json +21 -20
  295. package/schema/Attribute.schema.json +27 -27
  296. package/schema/Blessing.schema.json +202 -163
  297. package/schema/Cantrip.schema.json +353 -271
  298. package/schema/Ceremony.schema.json +90 -149
  299. package/schema/CombatTechnique_Close.schema.json +56 -67
  300. package/schema/CombatTechnique_Ranged.schema.json +46 -30
  301. package/schema/Condition.schema.json +46 -50
  302. package/schema/Continent.schema.json +18 -15
  303. package/schema/Culture.schema.json +324 -495
  304. package/schema/DerivedCharacteristic.schema.json +8 -8
  305. package/schema/Disadvantage.schema.json +45 -40
  306. package/schema/Disease.schema.json +7 -193
  307. package/schema/Element.schema.json +18 -15
  308. package/schema/ExperienceLevel.schema.json +5 -5
  309. package/schema/EyeColor.schema.json +17 -15
  310. package/schema/FamiliarsTrick.schema.json +491 -513
  311. package/schema/HairColor.schema.json +17 -15
  312. package/schema/Kirchenpraegung.schema.json +4 -4
  313. package/schema/Lessons_Curriculum.schema.json +234 -236
  314. package/schema/Lessons_Guideline.schema.json +17 -15
  315. package/schema/LiturgicalChant.schema.json +90 -149
  316. package/schema/Locale.schema.json +5 -5
  317. package/schema/MetaCondition.schema.json +46 -50
  318. package/schema/PactCategory.schema.json +101 -89
  319. package/schema/Patron.schema.json +151 -229
  320. package/schema/PatronCategory.schema.json +18 -27
  321. package/schema/PersonalityTrait.schema.json +50 -57
  322. package/schema/Profession.schema.json +833 -993
  323. package/schema/Property.schema.json +18 -16
  324. package/schema/Race.schema.json +170 -311
  325. package/schema/Region.schema.json +17 -15
  326. package/schema/Ritual.schema.json +111 -158
  327. package/schema/Service.schema.json +33 -51
  328. package/schema/SexPractice.schema.json +37 -39
  329. package/schema/Skill.schema.json +95 -162
  330. package/schema/SkillGroup.schema.json +23 -22
  331. package/schema/SkillModificationLevel.schema.json +93 -82
  332. package/schema/SocialStatus.schema.json +17 -15
  333. package/schema/Spell.schema.json +110 -158
  334. package/schema/State.schema.json +26 -25
  335. package/schema/Talisman.schema.json +60 -121
  336. package/schema/TargetCategory.schema.json +35 -20
  337. package/schema/UI.schema.json +830 -834
  338. package/schema/_Activatable.schema.json +1609 -2258
  339. package/schema/_ActivatableSelectOptionCategory.schema.json +1172 -0
  340. package/schema/_ActivatableSkill.schema.json +96 -1679
  341. package/schema/_ActivatableSkillCastingTime.schema.json +177 -0
  342. package/schema/_ActivatableSkillCheckResultBased.schema.json +57 -0
  343. package/schema/_ActivatableSkillCost.schema.json +448 -0
  344. package/schema/_ActivatableSkillDuration.schema.json +335 -0
  345. package/schema/_ActivatableSkillEffect.schema.json +153 -0
  346. package/schema/_ActivatableSkillRange.schema.json +241 -0
  347. package/schema/_ActivatableSkillTargetCategory.schema.json +145 -0
  348. package/schema/_AlternativeNames.schema.json +23 -0
  349. package/schema/_ArcaneTradition.schema.json +51 -0
  350. package/schema/_Blessed.schema.json +64 -0
  351. package/schema/_CommonnessRatedAdvantageDisadvantage.schema.json +2 -2
  352. package/schema/_Dice.schema.json +3 -3
  353. package/schema/_DiseasePoison.schema.json +140 -0
  354. package/schema/_Enhancements.schema.json +29 -26
  355. package/schema/_I18n.schema.json +8 -12
  356. package/schema/_Identifier.schema.json +73 -22
  357. package/schema/_ImprovementCost.schema.json +2 -2
  358. package/schema/_Influence.schema.json +48 -45
  359. package/schema/_NonEmptyString.schema.json +14 -0
  360. package/schema/_Prerequisite.schema.json +953 -765
  361. package/schema/_ResponsiveText.schema.json +66 -0
  362. package/schema/_Sex.schema.json +6 -28
  363. package/schema/_SimpleReferences.schema.json +586 -0
  364. package/schema/_SkillCheck.schema.json +10 -69
  365. package/schema/_Spellwork.schema.json +54 -0
  366. package/schema/equipment/EquipmentPackage.schema.json +37 -32
  367. package/schema/equipment/item/Alchemicum.schema.json +10 -0
  368. package/schema/equipment/item/Ammunition.schema.json +56 -0
  369. package/schema/equipment/item/Animal.schema.json +36 -0
  370. package/schema/equipment/item/AnimalCare.schema.json +124 -0
  371. package/schema/equipment/item/Armor.schema.json +309 -0
  372. package/schema/equipment/item/BandageOrRemedy.schema.json +53 -0
  373. package/schema/equipment/item/Book.schema.json +89 -0
  374. package/schema/equipment/item/CeremonialItem.schema.json +59 -0
  375. package/schema/equipment/item/Clothes.schema.json +10 -0
  376. package/schema/equipment/item/Container.schema.json +10 -0
  377. package/schema/equipment/item/EquipmentOfBlessedOnes.schema.json +46 -0
  378. package/schema/equipment/item/GemOrPreciousStone.schema.json +69 -0
  379. package/schema/equipment/item/IlluminationLightSource.schema.json +122 -0
  380. package/schema/equipment/item/IlluminationRefillsOrSupplies.schema.json +10 -0
  381. package/schema/equipment/item/Jewelry.schema.json +113 -0
  382. package/schema/equipment/item/Liebesspielzeug.schema.json +10 -0
  383. package/schema/equipment/item/LuxuryGood.schema.json +53 -0
  384. package/schema/equipment/item/MagicalArtifact.schema.json +64 -0
  385. package/schema/equipment/item/MusicalInstrument.schema.json +41 -0
  386. package/schema/equipment/item/OrienteeringAid.schema.json +10 -0
  387. package/schema/equipment/item/Poison.schema.json +369 -0
  388. package/schema/equipment/item/RopeOrChain.schema.json +10 -0
  389. package/schema/equipment/item/Stationary.schema.json +10 -0
  390. package/schema/equipment/item/ThievesTool.schema.json +10 -0
  391. package/schema/equipment/item/ToolOfTheTrade.schema.json +82 -0
  392. package/schema/equipment/item/TravelGearOrTool.schema.json +10 -0
  393. package/schema/equipment/item/Vehicle.schema.json +36 -0
  394. package/schema/equipment/item/Weapon.schema.json +265 -0
  395. package/schema/equipment/item/WeaponAccessory.schema.json +10 -0
  396. package/schema/equipment/item/_Item.schema.json +403 -0
  397. package/schema/equipment/item/_MeleeWeapon.schema.json +180 -0
  398. package/schema/equipment/item/_RangedWeapon.schema.json +186 -0
  399. package/schema/equipment/item/_Weapon.schema.json +99 -0
  400. package/schema/equipment/item/sub/ArmorType.schema.json +53 -0
  401. package/schema/equipment/{Reach.schema.json → item/sub/Reach.schema.json} +18 -16
  402. package/schema/magicalActions/AnimistPower.schema.json +427 -402
  403. package/schema/magicalActions/AnimistPower_Tribe.schema.json +17 -15
  404. package/schema/magicalActions/Curse.schema.json +293 -313
  405. package/schema/magicalActions/DominationRitual.schema.json +233 -220
  406. package/schema/magicalActions/ElvenMagicalSong.schema.json +132 -154
  407. package/schema/magicalActions/GeodeRitual.schema.json +296 -220
  408. package/schema/magicalActions/JesterTrick.schema.json +269 -198
  409. package/schema/magicalActions/MagicalDance.schema.json +147 -251
  410. package/schema/magicalActions/MagicalMelody.schema.json +129 -164
  411. package/schema/magicalActions/MagicalRune.schema.json +341 -323
  412. package/schema/magicalActions/ZibiljaRitual.schema.json +139 -112
  413. package/schema/magicalActions/_MusicTradition.schema.json +44 -14
  414. package/schema/magicalActions/_SkillReference.schema.json +4 -4
  415. package/schema/prerequisites/ConditionalPrerequisites.schema.json +3 -3
  416. package/schema/prerequisites/DisplayOption.schema.json +33 -15
  417. package/schema/prerequisites/PrerequisiteGroups.schema.json +845 -62
  418. package/schema/prerequisites/single/ActivatablePrerequisite.schema.json +13 -25
  419. package/schema/prerequisites/single/AnimistPowerPrerequisite.schema.json +4 -7
  420. package/schema/prerequisites/single/CulturePrerequisite.schema.json +4 -8
  421. package/schema/prerequisites/single/EnhancementPrerequisite.schema.json +30 -23
  422. package/schema/prerequisites/single/InfluencePrerequisite.schema.json +3 -7
  423. package/schema/prerequisites/single/PactPrerequisite.schema.json +9 -19
  424. package/schema/prerequisites/single/PrimaryAttributePrerequisite.schema.json +10 -33
  425. package/schema/prerequisites/single/PublicationPrerequisite.schema.json +3 -7
  426. package/schema/prerequisites/single/RacePrerequisite.schema.json +4 -8
  427. package/schema/prerequisites/single/RatedPrerequisite.schema.json +104 -107
  428. package/schema/prerequisites/single/RulePrerequisite.schema.json +4 -8
  429. package/schema/prerequisites/single/SexPrerequisite.schema.json +4 -8
  430. package/schema/prerequisites/single/SocialStatusPrerequisite.schema.json +3 -7
  431. package/schema/prerequisites/single/StatePrerequisite.schema.json +4 -8
  432. package/schema/prerequisites/single/TextPrerequisite.schema.json +13 -34
  433. package/schema/prerequisites/single/TraditionPrerequisite.schema.json +22 -68
  434. package/schema/rule/CoreRule.schema.json +1295 -859
  435. package/schema/rule/FocusRule.schema.json +34 -30
  436. package/schema/rule/FocusRule_Subject.schema.json +17 -15
  437. package/schema/rule/OptionalRule.schema.json +24 -56
  438. package/schema/rule/_Rule.schema.json +59 -0
  439. package/schema/source/Publication.schema.json +47 -117
  440. package/schema/source/_Erratum.schema.json +5 -6
  441. package/schema/source/_PublicationRef.schema.json +103 -59
  442. package/schema/specialAbility/AdvancedCombatSpecialAbility.schema.json +41 -38
  443. package/schema/specialAbility/AdvancedKarmaSpecialAbility.schema.json +35 -32
  444. package/schema/specialAbility/AdvancedMagicalSpecialAbility.schema.json +35 -32
  445. package/schema/specialAbility/AdvancedSkillSpecialAbility.schema.json +35 -32
  446. package/schema/specialAbility/AncestorGlyph.schema.json +33 -30
  447. package/schema/specialAbility/BlessedTradition.schema.json +251 -225
  448. package/schema/specialAbility/BrawlingSpecialAbility.schema.json +35 -32
  449. package/schema/specialAbility/CeremonialItemSpecialAbility.schema.json +36 -33
  450. package/schema/specialAbility/CombatSpecialAbility.schema.json +41 -38
  451. package/schema/specialAbility/CombatStyleSpecialAbility.schema.json +39 -61
  452. package/schema/specialAbility/CommandSpecialAbility.schema.json +16 -16
  453. package/schema/specialAbility/FamiliarSpecialAbility.schema.json +33 -30
  454. package/schema/specialAbility/FatePointSexSpecialAbility.schema.json +33 -30
  455. package/schema/specialAbility/FatePointSpecialAbility.schema.json +35 -32
  456. package/schema/specialAbility/GeneralSpecialAbility.schema.json +35 -32
  457. package/schema/specialAbility/KarmaSpecialAbility.schema.json +33 -30
  458. package/schema/specialAbility/LiturgicalStyleSpecialAbility.schema.json +36 -33
  459. package/schema/specialAbility/LycantropicGift.schema.json +33 -30
  460. package/schema/specialAbility/MagicStyleSpecialAbility.schema.json +36 -33
  461. package/schema/specialAbility/MagicalSpecialAbility.schema.json +35 -32
  462. package/schema/specialAbility/MagicalTradition.schema.json +66 -87
  463. package/schema/specialAbility/PactGift.schema.json +196 -174
  464. package/schema/specialAbility/ProtectiveWardingCircleSpecialAbility.schema.json +39 -38
  465. package/schema/specialAbility/Sermon.schema.json +33 -30
  466. package/schema/specialAbility/SexSpecialAbility.schema.json +35 -32
  467. package/schema/specialAbility/SikaryanDrainSpecialAbility.schema.json +33 -30
  468. package/schema/specialAbility/SkillStyleSpecialAbility.schema.json +34 -31
  469. package/schema/specialAbility/VampiricGift.schema.json +33 -30
  470. package/schema/specialAbility/Vision.schema.json +33 -30
  471. package/schema/specialAbility/_Tradition.schema.json +23 -0
  472. package/schema/specialAbility/sub/Language.schema.json +170 -162
  473. package/schema/specialAbility/sub/Script.schema.json +35 -72
  474. package/schema/specialAbility/sub/TradeSecret.schema.json +26 -25
  475. package/schema/specialAbility/sub/_LanguageScript.schema.json +26 -0
  476. package/schema/traditionArtifacts/ArcaneOrbEnchantment.schema.json +46 -43
  477. package/schema/traditionArtifacts/AttireEnchantment.schema.json +47 -43
  478. package/schema/traditionArtifacts/BowlEnchantment.schema.json +46 -43
  479. package/schema/traditionArtifacts/CauldronEnchantment.schema.json +63 -56
  480. package/schema/traditionArtifacts/ChronicleEnchantment.schema.json +46 -43
  481. package/schema/traditionArtifacts/DaggerRitual.schema.json +132 -43
  482. package/schema/traditionArtifacts/FoolsHatEnchantment.schema.json +46 -43
  483. package/schema/traditionArtifacts/InstrumentEnchantment.schema.json +46 -43
  484. package/schema/traditionArtifacts/Krallenkettenzauber.schema.json +46 -43
  485. package/schema/traditionArtifacts/OrbEnchantment.schema.json +46 -43
  486. package/schema/traditionArtifacts/RingEnchantment.schema.json +46 -43
  487. package/schema/traditionArtifacts/SickleRitual.schema.json +46 -43
  488. package/schema/traditionArtifacts/SpellSwordEnchantment.schema.json +46 -43
  489. package/schema/traditionArtifacts/StaffEnchantment.schema.json +47 -43
  490. package/schema/traditionArtifacts/ToyEnchantment.schema.json +47 -43
  491. package/schema/traditionArtifacts/Trinkhornzauber.schema.json +46 -43
  492. package/schema/traditionArtifacts/WandEnchantment.schema.json +46 -43
  493. package/schema/traditionArtifacts/WeaponEnchantment.schema.json +46 -50
  494. package/schema/traditionArtifacts/sub/AnimalShape.schema.json +53 -25
  495. package/schema/traditionArtifacts/sub/AnimalShapePath.schema.json +17 -15
  496. package/schema/traditionArtifacts/sub/AnimalShapeSize.schema.json +17 -15
  497. package/schema/traditionArtifacts/sub/Brew.schema.json +17 -15
  498. package/lib/types/MagicalTraditionPlaceholder.d.ts +0 -32
  499. package/lib/types/MagicalTraditionPlaceholder.js +0 -5
  500. package/lib/types/Poison.d.ts +0 -208
  501. package/lib/types/Poison.js +0 -5
  502. package/lib/types/equipment/ArmorType.d.ts +0 -31
  503. package/lib/types/equipment/Item.d.ts +0 -308
  504. package/lib/types/equipment/Item.js +0 -35
  505. package/lib/types/equipment/ItemGroup.d.ts +0 -31
  506. package/lib/types/equipment/ItemGroup.js +0 -5
  507. package/lib/types/equipment/Reach.d.ts +0 -31
  508. package/lib/types/equipment/_Armor.d.ts +0 -70
  509. package/lib/types/equipment/_Weapon.d.ts +0 -330
  510. package/lib/types/prerequisites/single/CommonSuggestedByRCPPrerequisite.d.ts +0 -3
  511. package/schema/MagicalTraditionPlaceholder.schema.json +0 -45
  512. package/schema/Poison.schema.json +0 -417
  513. package/schema/equipment/ArmorType.schema.json +0 -45
  514. package/schema/equipment/Item.schema.json +0 -621
  515. package/schema/equipment/ItemGroup.schema.json +0 -45
  516. package/schema/equipment/_Armor.schema.json +0 -125
  517. package/schema/equipment/_Weapon.schema.json +0 -664
  518. package/schema/prerequisites/single/CommonSuggestedByRCPPrerequisite.schema.json +0 -18
@@ -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;
953
501
  };
502
+ export declare type PenaltyByAttackOrderItem = {
503
+ /**
504
+ * The penalty value for this order.
505
+ * @integer
506
+ */
507
+ value: number;
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,48 +561,37 @@ 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
@@ -1032,254 +604,192 @@ export declare type ArcaneEnergyCost = {
1032
604
  * @integer
1033
605
  * @minimum 1
1034
606
  */
1035
- base_value?: number;
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 = {
1036
685
  /**
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";
686
+ * The interval itself.
687
+ */
688
+ value: DurationUnitValue;
1083
689
  /**
1084
- * The AE cost value that has to be payed for activation. Half of this value
1085
- * has to be payed each interval.
690
+ * The AE cost value for activation.
1086
691
  * @integer
1087
- * @minimum 2
1088
- * @multipleOf 2
692
+ * @minimum 1
1089
693
  */
1090
- value: number;
694
+ activation_value: number;
1091
695
  /**
1092
- * The time interval for which the AE cost `value` has to be paid.
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.
1093
702
  */
1094
- interval: Duration.UnitValue;
1095
- } | {
1096
- tag: "Indefinite";
703
+ after_activation: boolean;
704
+ };
705
+ export declare type ArcaneEnergyCostDisjunctionOption = {
1097
706
  /**
1098
- * The indefinite AE cost may be modified by a certain value.
707
+ * A possible AE cost value.
708
+ * @integer
709
+ * @minimum 1
1099
710
  */
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
- };
711
+ value: number;
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
+ /**
727
+ * @minProperties 1
728
+ */
729
+ export declare type NoArcaneEnergyCost = {
1213
730
  /**
1214
731
  * All translations for the entry, identified by IETF language tag
1215
732
  * (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";
733
+ */
734
+ translations?: LocaleMap<NoArcaneEnergyCostTranslation>;
735
+ };
736
+ /**
737
+ * @minProperties 1
738
+ */
739
+ export declare type NoArcaneEnergyCostTranslation = {
740
+ /**
741
+ * A note, appended to the generated string in parenthesis.
742
+ */
743
+ note?: ResponsiveTextOptional;
1244
744
  };
1245
745
  /**
1246
746
  * The volume points the enchantment needs.
1247
747
  */
1248
748
  export declare type Volume = {
1249
749
  tag: "Fixed";
750
+ fixed: FixedVolume;
751
+ } | {
752
+ tag: "PerLevel";
753
+ per_level: VolumePerLevel;
754
+ } | {
755
+ tag: "ByLevel";
756
+ by_level: VolumeByLevel;
757
+ } | {
758
+ tag: "Map";
759
+ map: VolumeMap;
760
+ };
761
+ export declare type FixedVolume = {
1250
762
  /**
1251
763
  * The volume points.
1252
764
  * @integer
1253
765
  * @minimum 0
1254
766
  */
1255
767
  points: number;
1256
- } | {
1257
- tag: "PerLevel";
768
+ };
769
+ export declare type VolumePerLevel = {
1258
770
  /**
1259
771
  * The volume points per level.
1260
772
  * @integer
1261
773
  * @minimum 1
1262
774
  */
1263
775
  points: number;
1264
- } | {
1265
- tag: "ByLevel";
776
+ };
777
+ export declare type VolumeByLevel = {
1266
778
  /**
1267
779
  * The volume points for each level. The first element is the volume points
1268
780
  * for the first level, the second element is the volume points for the
1269
781
  * second level, and so on.
1270
782
  * @minItems 2
1271
783
  */
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;
784
+ list: VolumeByLevelItem[];
785
+ };
786
+ export declare type VolumeByLevelItem = {
787
+ /**
788
+ * The volume points for this level.
789
+ * @integer
790
+ * @minimum 0
791
+ */
792
+ points: number;
1283
793
  };
1284
794
  /**
1285
795
  * A content that is `3/4/5 Points for Chimera, Daimonid, Golems, Undead /
@@ -1332,30 +842,28 @@ export declare type VolumeMap = {
1332
842
  options: VolumeMapOption[];
1333
843
  /**
1334
844
  * 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
- };
845
+ */
846
+ translations?: LocaleMap<VolumeMapTranslation>;
847
+ };
848
+ /**
849
+ * @minProperties 1
850
+ */
851
+ export declare type VolumeMapTranslation = {
852
+ /**
853
+ * Place a string between the `for` and the grouped map option labels.
854
+ */
855
+ list_prepend?: string;
856
+ /**
857
+ * Place a string after the grouped map option labels.
858
+ */
859
+ list_append?: string;
860
+ /**
861
+ * If the string from the book cannot be generated using the default
862
+ * generation technique, use this string. All options still need to be
863
+ * inserted propertly, since it may be used by in-game tools to provide a
864
+ * selection to players.
865
+ */
866
+ replacement?: string;
1359
867
  };
1360
868
  export declare type VolumeMapOption = {
1361
869
  /**
@@ -1367,57 +875,60 @@ export declare type VolumeMapOption = {
1367
875
  /**
1368
876
  * Links to the options this volume specification is meant for.
1369
877
  */
1370
- associated_options: {
1371
- /**
1372
- * The option's identifier.
1373
- */
1374
- id: VolumePointsOptionReferenceIdentifier;
1375
- }[];
878
+ associated_options: VolumeMapOptionAssociatedOption[];
1376
879
  /**
1377
880
  * 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
- };
881
+ */
882
+ translations?: LocaleMap<VolumeMapOptionTranslation>;
883
+ };
884
+ export declare type VolumeMapOptionAssociatedOption = {
885
+ /**
886
+ * The option's identifier.
887
+ */
888
+ id: VolumePointsOptionReferenceIdentifier;
889
+ };
890
+ export declare type VolumeMapOptionTranslation = {
891
+ /**
892
+ * The description of the option for cost string generation.
893
+ */
894
+ label: NonEmptyString;
895
+ /**
896
+ * The description of the option if used standalone. Only used if
897
+ * different from `label`.
898
+ */
899
+ label_standalone?: NonEmptyString;
1398
900
  };
1399
901
  /**
1400
902
  * The binding cost for an enchantment.
1401
903
  */
1402
904
  export declare type BindingCost = {
1403
905
  tag: "Fixed";
906
+ fixed: FixedBindingCost;
907
+ } | {
908
+ tag: "PerLevel";
909
+ per_level: BindingCostPerLevel;
910
+ } | {
911
+ tag: "Map";
912
+ map: BindingCostMap;
913
+ };
914
+ export declare type FixedBindingCost = {
1404
915
  /**
1405
916
  * The permanent AE cost.
917
+ *
918
+ * If the enchantment has multiple levels, it is only applied for the first
919
+ * level.
1406
920
  * @integer
1407
921
  * @minimum 1
1408
922
  */
1409
923
  permanent_value: number;
1410
- } | {
1411
- tag: "PerLevel";
924
+ };
925
+ export declare type BindingCostPerLevel = {
1412
926
  /**
1413
927
  * The permanent AE cost per level.
1414
928
  * @integer
1415
929
  * @minimum 1
1416
930
  */
1417
931
  permanent_value: number;
1418
- } | {
1419
- tag: "Map";
1420
- map: BindingCostMap;
1421
932
  };
1422
933
  /**
1423
934
  * A content that is `2/4/8 permanent AE for spell-swords with the combat
@@ -1454,30 +965,28 @@ export declare type BindingCostMap = {
1454
965
  options: VolumeMapOption[];
1455
966
  /**
1456
967
  * 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
- };
968
+ */
969
+ translations?: LocaleMap<BindingCostMapTranslation>;
970
+ };
971
+ /**
972
+ * @minProperties 1
973
+ */
974
+ export declare type BindingCostMapTranslation = {
975
+ /**
976
+ * Place a string between the `for` and the grouped map option labels.
977
+ */
978
+ list_prepend?: NonEmptyString;
979
+ /**
980
+ * Place a string after the grouped map option labels.
981
+ */
982
+ list_append?: NonEmptyString;
983
+ /**
984
+ * If the string from the book cannot be generated using the default
985
+ * generation technique, use this string. All options still need to be
986
+ * inserted propertly, since it may be used by in-game tools to provide a
987
+ * selection to players.
988
+ */
989
+ replacement?: NonEmptyString;
1481
990
  };
1482
991
  export declare type BindingCostMapOption = {
1483
992
  /**
@@ -1488,61 +997,52 @@ export declare type BindingCostMapOption = {
1488
997
  permanent_value: number;
1489
998
  /**
1490
999
  * 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
- };
1000
+ */
1001
+ translations?: LocaleMap<BindingCostMapOptionTranslation>;
1002
+ };
1003
+ export declare type BindingCostMapOptionTranslation = {
1004
+ /**
1005
+ * The description of the option for cost string generation.
1006
+ */
1007
+ label: NonEmptyString;
1008
+ /**
1009
+ * The description of the option if used standalone. Only used if
1010
+ * different from `label`.
1011
+ */
1012
+ label_standalone?: NonEmptyString;
1511
1013
  };
1512
1014
  /**
1513
1015
  * The magic property's identifier. `DependingOnProperty` can only be used if
1514
1016
  * the special ability has an option to select a property.
1515
1017
  */
1516
1018
  export declare type Property = {
1517
- tag: "DependingOnProperty";
1019
+ tag: "DependingOnSelection";
1020
+ depending_on_selection: {};
1518
1021
  } | {
1519
1022
  tag: "Fixed";
1520
- /**
1521
- * The property's identifier.
1522
- * @integer
1523
- * @minimum 1
1524
- */
1525
- id: number;
1023
+ fixed: PropertyReference;
1526
1024
  };
1527
1025
  /**
1528
- * The blessed aspect's identifier.
1529
- * @integer
1530
- * @minimum 1
1026
+ * The blessed aspect.
1531
1027
  */
1532
- export declare type Aspect = number;
1028
+ export declare type Aspect = AspectReference;
1533
1029
  /**
1534
1030
  * A reference to an advanced special ability.
1535
1031
  */
1536
1032
  export declare type AdvancedSpecialAbility = {
1537
1033
  tag: "General";
1538
- /**
1539
- * The advanced special ability's numeric identifier.
1540
- * @integer
1541
- * @minimum 1
1542
- */
1543
- id: number;
1034
+ general: AdvancedSpecialAbilityReference;
1544
1035
  } | {
1545
1036
  tag: "RestrictOptions";
1037
+ restrict_options: RestrictAdvancedSpecialAbilityOptions;
1038
+ } | {
1039
+ tag: "OneOf";
1040
+ one_of: OneOfAdvancedSpecialAbilityOptions;
1041
+ } | {
1042
+ tag: "DeriveFromExternalOption";
1043
+ derive_from_external_option: AdvancedSpecialAbilityDerivedFromExternalOption;
1044
+ };
1045
+ export declare type RestrictAdvancedSpecialAbilityOptions = {
1546
1046
  /**
1547
1047
  * The advanced special ability's numeric identifier.
1548
1048
  * @integer
@@ -1555,69 +1055,45 @@ export declare type AdvancedSpecialAbility = {
1555
1055
  * @minItems 1
1556
1056
  */
1557
1057
  option: AdvancedSpecialAbilityRestrictedOptionIdentifier[];
1558
- } | {
1559
- tag: "OneOf";
1058
+ };
1059
+ export declare type OneOfAdvancedSpecialAbilityOptions = {
1560
1060
  /**
1561
1061
  * The possible advanced special abilities.
1562
1062
  */
1563
- options: {
1564
- /**
1565
- * The advanced special ability's numeric identifier.
1566
- * @integer
1567
- * @minimum 1
1568
- */
1569
- id: number;
1570
- };
1063
+ options: AdvancedSpecialAbilityReference;
1571
1064
  /**
1572
- * Do have to choose on when buying the special ability? Otherwise the
1573
- * decision can be made later.
1065
+ * Do have to choose the advanced special ability when buying the style
1066
+ * special ability? Otherwise the decision can be made later.
1574
1067
  */
1575
1068
  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
1069
  display_option?: DisplayOption;
1583
- } | {
1584
- tag: "DeriveFromExternalOption";
1070
+ };
1071
+ export declare type AdvancedSpecialAbilityDerivedFromExternalOption = {
1585
1072
  /**
1586
1073
  * The possible advanced special abilities.
1587
1074
  */
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
- }[];
1075
+ external_entry: MagicalTraditionIdentifier;
1076
+ /**
1077
+ * Map options from the external entry to allowed advanced special abilities.
1078
+ * @minItems 1
1079
+ */
1080
+ map: AdvancedSpecialAbilityDerivedFromExternalOptionMapping[];
1609
1081
  display_option?: DisplayOption;
1082
+ };
1083
+ /**
1084
+ * Mapping from an option of the external entry to an allowed advanced special
1085
+ * ability.
1086
+ * @minItems 1
1087
+ */
1088
+ export declare type AdvancedSpecialAbilityDerivedFromExternalOptionMapping = {
1610
1089
  /**
1611
- * Do have to choose on when buying the special ability? Otherwise the
1612
- * decision can be made later.
1090
+ * The select option's identifier.
1613
1091
  */
1614
- is_selection_required_on_purchase: boolean;
1092
+ from_option: PatronIdentifier;
1615
1093
  /**
1616
- * Specify the select option(s) that only are allowed for the referenced
1617
- * advanced special ability; others are disallowed.
1618
- * @minItems 1
1094
+ * The advanced special ability's identifier.
1619
1095
  */
1620
- option: AdvancedSpecialAbilityRestrictedOptionIdentifier[];
1096
+ to_advanced: AdvancedSpecialAbilityReference;
1621
1097
  };
1622
1098
  export declare type AdvancedSpecialAbilityDerivedExternalEntryId = MagicalTraditionIdentifier;
1623
1099
  export declare type AdvancedSpecialAbilityDerivedExternalEntryOptionId = PatronIdentifier;
@@ -1635,233 +1111,179 @@ export declare type AdvancedSpecialAbilities = [
1635
1111
  ];
1636
1112
  export declare type ApplicableCombatTechniques = {
1637
1113
  tag: "None";
1114
+ none: {};
1638
1115
  } | {
1639
1116
  tag: "DependingOnCombatStyle";
1117
+ depending_on_combat_style: {};
1640
1118
  } | {
1641
1119
  tag: "All";
1120
+ all: AllApplicableCombatTechniques;
1121
+ } | {
1122
+ tag: "AllClose";
1123
+ all_close: AllApplicableCloseCombatTechniques;
1124
+ } | {
1125
+ tag: "AllRanged";
1126
+ all_ranged: AllApplicableRangedCombatTechniques;
1127
+ } | {
1128
+ tag: "Specific";
1129
+ specific: SpecificApplicableCombatTechniques;
1130
+ };
1131
+ export declare type AllApplicableCombatTechniques = {
1642
1132
  /**
1643
1133
  * @minItems 1
1644
1134
  */
1645
1135
  restrictions?: ApplicableAllCombatTechniquesRestriction[];
1646
- } | {
1647
- tag: "AllClose";
1136
+ };
1137
+ export declare type AllApplicableCloseCombatTechniques = {
1648
1138
  /**
1649
1139
  * @minItems 1
1650
1140
  */
1651
1141
  restrictions?: ApplicableCloseCombatTechniquesRestriction[];
1652
- } | {
1653
- tag: "AllRanged";
1142
+ };
1143
+ export declare type AllApplicableRangedCombatTechniques = {
1654
1144
  /**
1655
1145
  * @minItems 1
1656
1146
  */
1657
1147
  restrictions?: ApplicableRangedCombatTechniquesRestriction[];
1658
- } | {
1659
- tag: "Specific";
1148
+ };
1149
+ export declare type SpecificApplicableCombatTechniques = {
1150
+ /**
1151
+ * @minItems 1
1152
+ */
1153
+ list: SpecificApplicableCombatTechnique[];
1154
+ };
1155
+ export declare type SpecificApplicableCombatTechnique = {
1156
+ id: CombatTechniqueIdentifier;
1660
1157
  /**
1661
1158
  * @minItems 1
1662
1159
  */
1663
- list: {
1664
- id: CombatTechniqueIdentifier;
1665
- /**
1666
- * @minItems 1
1667
- */
1668
- restrictions?: ApplicableSpecificCombatTechniquesRestriction[];
1669
- }[];
1160
+ restrictions?: ApplicableSpecificCombatTechniquesRestriction[];
1670
1161
  };
1671
1162
  export declare type ApplicableAllCombatTechniquesRestriction = {
1672
1163
  tag: "Improvised";
1164
+ improvised: {};
1673
1165
  } | {
1674
1166
  tag: "PointedBlade";
1167
+ pointed_blade: {};
1675
1168
  } | {
1676
1169
  tag: "Mount";
1170
+ mount: {};
1677
1171
  } | {
1678
1172
  tag: "Race";
1679
- /**
1680
- * The race's numeric identifier.
1681
- * @integer
1682
- * @minimum 1
1683
- */
1684
- id: number;
1173
+ race: ApplicableCombatTechniquesRaceRestriction;
1685
1174
  } | {
1686
1175
  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[];
1176
+ exclude_combat_techniques: ApplicableCombatTechniquesNegativeCombatTechniquesRestriction<CombatTechniqueReference>;
1694
1177
  };
1695
1178
  export declare type ApplicableCloseCombatTechniquesRestriction = {
1696
1179
  tag: "Improvised";
1180
+ improvised: {};
1697
1181
  } | {
1698
1182
  tag: "PointedBlade";
1183
+ pointed_blade: {};
1699
1184
  } | {
1700
1185
  tag: "Mount";
1186
+ mount: {};
1701
1187
  } | {
1702
1188
  tag: "HasParry";
1189
+ has_parry: {};
1703
1190
  } | {
1704
1191
  tag: "OneHanded";
1192
+ one_handed: {};
1705
1193
  } | {
1706
1194
  tag: "ParryingWeapon";
1195
+ parrying_weapon: {};
1707
1196
  } | {
1708
1197
  tag: "Race";
1709
- /**
1710
- * The race's numeric identifier.
1711
- * @integer
1712
- * @minimum 1
1713
- */
1714
- id: number;
1198
+ race: ApplicableCombatTechniquesRaceRestriction;
1715
1199
  } | {
1716
1200
  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
- }[];
1201
+ exclude_combat_techniques: ApplicableCombatTechniquesNegativeCombatTechniquesRestriction<CloseCombatTechniqueReference>;
1731
1202
  };
1732
1203
  export declare type ApplicableRangedCombatTechniquesRestriction = {
1733
1204
  tag: "Improvised";
1205
+ improvised: {};
1734
1206
  } | {
1735
1207
  tag: "PointedBlade";
1208
+ pointed_blade: {};
1736
1209
  } | {
1737
1210
  tag: "Mount";
1211
+ mount: {};
1738
1212
  } | {
1739
1213
  tag: "Race";
1740
- /**
1741
- * The race's numeric identifier.
1742
- * @integer
1743
- * @minimum 1
1744
- */
1745
- id: number;
1214
+ race: ApplicableCombatTechniquesRaceRestriction;
1746
1215
  } | {
1747
1216
  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
- }[];
1217
+ exclude_combat_techniques: ApplicableCombatTechniquesNegativeCombatTechniquesRestriction<RangedCombatTechniqueReference>;
1762
1218
  };
1763
1219
  export declare type ApplicableSpecificCombatTechniquesRestriction = {
1764
1220
  tag: "Improvised";
1221
+ improvised: {};
1765
1222
  } | {
1766
1223
  tag: "PointedBlade";
1224
+ pointed_blade: {};
1767
1225
  } | {
1768
1226
  tag: "Mount";
1227
+ mount: {};
1769
1228
  } | {
1770
1229
  tag: "Race";
1771
- /**
1772
- * The race's numeric identifier.
1773
- * @integer
1774
- * @minimum 1
1775
- */
1776
- id: number;
1230
+ race: ApplicableCombatTechniquesRaceRestriction;
1777
1231
  } | {
1778
1232
  tag: "Level";
1233
+ level: ApplicableCombatTechniquesLevelRestriction;
1234
+ } | {
1235
+ tag: "Weapons";
1236
+ weapons: ApplicableCombatTechniquesWeaponRestriction;
1237
+ };
1238
+ export declare type ApplicableCombatTechniquesNegativeCombatTechniquesRestriction<Ref> = {
1239
+ /**
1240
+ * The combat techniques this combat special ability is **not** applicable to.
1241
+ * @minItems 1
1242
+ * @uniqueItems
1243
+ */
1244
+ list: Ref[];
1245
+ };
1246
+ export declare type ApplicableCombatTechniquesRaceRestriction = RaceReference;
1247
+ export declare type ApplicableCombatTechniquesLevelRestriction = {
1779
1248
  /**
1780
1249
  * The combat special ability is only applicable on a certain level.
1781
1250
  * @integer
1782
1251
  * @minimum 1
1783
1252
  */
1784
1253
  level: number;
1785
- } | {
1786
- tag: "Weapons";
1254
+ };
1255
+ export declare type ApplicableCombatTechniquesWeaponRestriction = {
1787
1256
  /**
1788
1257
  * The specific weapons this combat special ability is only applicable to.
1789
1258
  * @minItems 1
1790
1259
  * @uniqueItems
1791
1260
  */
1792
- list: {
1793
- /**
1794
- * The weapon's numeric identifier.
1795
- * @integer
1796
- * @minimum 1
1797
- */
1798
- id: number;
1799
- }[];
1261
+ list: WeaponReference[];
1800
1262
  };
1801
1263
  export declare type AdventurePointsValue = {
1802
1264
  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;
1265
+ fixed: FixedAdventurePointsValue;
1835
1266
  } | {
1836
1267
  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;
1268
+ by_level: AdventurePointsValueByLevel;
1849
1269
  } | {
1850
- /**
1851
- * Used if AP value is defined by the selected option(s) or special rules.
1852
- */
1853
1270
  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;
1271
+ indefinite: {};
1860
1272
  };
1273
+ /**
1274
+ * A fixed adventure points value. If the entry has levels, this is the cost per
1275
+ * level as well.
1276
+ */
1277
+ export declare type FixedAdventurePointsValue = AdventurePointsSingleValue;
1278
+ /**
1279
+ * An entry with levels may have different costs for each level. The length of
1280
+ * the list must match the amount of levels the special ability has.
1281
+ * @minItems 2
1282
+ */
1283
+ export declare type AdventurePointsValueByLevel = AdventurePointsSingleValue[];
1861
1284
  /**
1862
1285
  * A single adventure points value.
1863
1286
  * @integer
1864
1287
  * @minimum 0
1865
1288
  */
1866
1289
  export declare type AdventurePointsSingleValue = number;
1867
- export {};