optolith-database-schema 0.2.2 → 0.3.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 (500) hide show
  1. package/CHANGELOG.md +71 -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 +22 -24
  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 +78 -94
  14. package/lib/types/Cantrip.d.ts +132 -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 +168 -290
  21. package/lib/types/DerivedCharacteristic.d.ts +4 -10
  22. package/lib/types/Disadvantage.d.ts +19 -23
  23. package/lib/types/Disease.d.ts +5 -140
  24. package/lib/types/Element.d.ts +9 -13
  25. package/lib/types/ExperienceLevel.d.ts +3 -9
  26. package/lib/types/EyeColor.d.ts +9 -13
  27. package/lib/types/FamiliarsTrick.d.ts +201 -290
  28. package/lib/types/HairColor.d.ts +9 -13
  29. package/lib/types/Lessons_Curriculum.d.ts +73 -138
  30. package/lib/types/Lessons_Guideline.d.ts +9 -13
  31. package/lib/types/LiturgicalChant.d.ts +55 -88
  32. package/lib/types/Locale.d.ts +1 -1
  33. package/lib/types/Locale.js +1 -1
  34. package/lib/types/MetaCondition.d.ts +18 -31
  35. package/lib/types/PactCategory.d.ts +48 -62
  36. package/lib/types/Patron.d.ts +66 -76
  37. package/lib/types/PatronCategory.d.ts +11 -21
  38. package/lib/types/PersonalityTrait.d.ts +31 -39
  39. package/lib/types/Profession.d.ts +296 -435
  40. package/lib/types/Property.d.ts +9 -13
  41. package/lib/types/Race.d.ts +99 -194
  42. package/lib/types/Region.d.ts +9 -13
  43. package/lib/types/Ritual.d.ts +58 -83
  44. package/lib/types/Service.d.ts +20 -25
  45. package/lib/types/SexPractice.d.ts +26 -34
  46. package/lib/types/Skill.d.ts +65 -90
  47. package/lib/types/SkillGroup.d.ts +13 -18
  48. package/lib/types/SkillModificationLevel.d.ts +72 -76
  49. package/lib/types/SocialStatus.d.ts +9 -13
  50. package/lib/types/Spell.d.ts +58 -83
  51. package/lib/types/State.d.ts +14 -20
  52. package/lib/types/Talisman.d.ts +44 -54
  53. package/lib/types/TargetCategory.d.ts +21 -16
  54. package/lib/types/UI.d.ts +1 -5
  55. package/lib/types/_Activatable.d.ts +607 -1177
  56. package/lib/types/_Activatable.js +0 -12
  57. package/lib/types/_ActivatableSelectOptionCategory.d.ts +356 -0
  58. package/lib/types/{prerequisites/single/CommonSuggestedByRCPPrerequisite.js → _ActivatableSelectOptionCategory.js} +0 -0
  59. package/lib/types/_ActivatableSkill.d.ts +24 -1013
  60. package/lib/types/_ActivatableSkill.js +1 -31
  61. package/lib/types/_ActivatableSkillCastingTime.d.ts +69 -0
  62. package/lib/types/_ActivatableSkillCastingTime.js +5 -0
  63. package/lib/types/_ActivatableSkillCheckResultBased.d.ts +41 -0
  64. package/lib/types/{equipment/_Armor.js → _ActivatableSkillCheckResultBased.js} +0 -3
  65. package/lib/types/_ActivatableSkillCost.d.ts +223 -0
  66. package/lib/types/_ActivatableSkillCost.js +1 -0
  67. package/lib/types/_ActivatableSkillDuration.d.ts +138 -0
  68. package/lib/types/_ActivatableSkillDuration.js +13 -0
  69. package/lib/types/_ActivatableSkillEffect.d.ts +68 -0
  70. package/lib/types/_ActivatableSkillEffect.js +1 -0
  71. package/lib/types/_ActivatableSkillRange.d.ts +103 -0
  72. package/lib/types/_ActivatableSkillRange.js +5 -0
  73. package/lib/types/_ActivatableSkillTargetCategory.d.ts +35 -0
  74. package/lib/types/_ActivatableSkillTargetCategory.js +1 -0
  75. package/lib/types/_AlternativeNames.d.ts +11 -0
  76. package/lib/types/_AlternativeNames.js +1 -0
  77. package/lib/types/_ArcaneTradition.d.ts +28 -0
  78. package/lib/types/_ArcaneTradition.js +4 -0
  79. package/lib/types/_Blessed.d.ts +22 -0
  80. package/lib/types/_Blessed.js +1 -0
  81. package/lib/types/_DiseasePoison.d.ts +116 -0
  82. package/lib/types/_DiseasePoison.js +5 -0
  83. package/lib/types/_Enhancements.d.ts +16 -20
  84. package/lib/types/_I18n.d.ts +1 -5
  85. package/lib/types/_Identifier.d.ts +32 -0
  86. package/lib/types/_Identifier.js +32 -0
  87. package/lib/types/_Influence.d.ts +27 -32
  88. package/lib/types/_LocaleMap.d.ts +10 -0
  89. package/lib/types/_LocaleMap.js +1 -0
  90. package/lib/types/_NonEmptyString.d.ts +9 -0
  91. package/lib/types/_NonEmptyString.js +1 -0
  92. package/lib/types/_Prerequisite.d.ts +61 -65
  93. package/lib/types/_ResponsiveText.d.ts +54 -0
  94. package/lib/types/_ResponsiveText.js +1 -0
  95. package/lib/types/_SimpleReferences.d.ts +334 -0
  96. package/lib/types/_SimpleReferences.js +1 -0
  97. package/lib/types/_SkillCheck.d.ts +6 -11
  98. package/lib/types/_Spellwork.d.ts +17 -0
  99. package/lib/types/_Spellwork.js +1 -0
  100. package/lib/types/equipment/EquipmentPackage.d.ts +24 -28
  101. package/lib/types/equipment/item/Alchemicum.d.ts +6 -0
  102. package/lib/types/equipment/item/Alchemicum.js +5 -0
  103. package/lib/types/equipment/item/Ammunition.d.ts +31 -0
  104. package/lib/types/equipment/item/Ammunition.js +5 -0
  105. package/lib/types/equipment/item/Animal.d.ts +18 -0
  106. package/lib/types/equipment/item/Animal.js +5 -0
  107. package/lib/types/equipment/item/AnimalCare.d.ts +48 -0
  108. package/lib/types/equipment/item/AnimalCare.js +5 -0
  109. package/lib/types/equipment/item/Armor.d.ts +185 -0
  110. package/lib/types/equipment/item/Armor.js +5 -0
  111. package/lib/types/equipment/item/BandageOrRemedy.d.ts +6 -0
  112. package/lib/types/equipment/item/BandageOrRemedy.js +5 -0
  113. package/lib/types/equipment/item/Book.d.ts +60 -0
  114. package/lib/types/equipment/item/Book.js +5 -0
  115. package/lib/types/equipment/item/CeremonialItem.d.ts +6 -0
  116. package/lib/types/equipment/item/CeremonialItem.js +5 -0
  117. package/lib/types/equipment/item/Clothes.d.ts +6 -0
  118. package/lib/types/equipment/item/Clothes.js +5 -0
  119. package/lib/types/equipment/item/Container.d.ts +6 -0
  120. package/lib/types/equipment/item/Container.js +5 -0
  121. package/lib/types/equipment/item/EquipmentOfBlessedOnes.d.ts +41 -0
  122. package/lib/types/equipment/item/EquipmentOfBlessedOnes.js +5 -0
  123. package/lib/types/equipment/item/GemOrPreciousStone.d.ts +43 -0
  124. package/lib/types/equipment/item/GemOrPreciousStone.js +5 -0
  125. package/lib/types/equipment/item/HealingHerb.d.ts +6 -0
  126. package/lib/types/equipment/item/HealingHerb.js +5 -0
  127. package/lib/types/equipment/item/Illumination.d.ts +6 -0
  128. package/lib/types/equipment/item/Illumination.js +5 -0
  129. package/lib/types/equipment/item/Jewelry.d.ts +60 -0
  130. package/lib/types/equipment/item/Jewelry.js +5 -0
  131. package/lib/types/equipment/item/Liebesspielzeug.d.ts +6 -0
  132. package/lib/types/equipment/item/Liebesspielzeug.js +5 -0
  133. package/lib/types/equipment/item/LuxuryGood.d.ts +6 -0
  134. package/lib/types/equipment/item/LuxuryGood.js +5 -0
  135. package/lib/types/equipment/item/MagicalArtifact.d.ts +39 -0
  136. package/lib/types/equipment/item/MagicalArtifact.js +5 -0
  137. package/lib/types/equipment/item/MusicalInstrument.d.ts +27 -0
  138. package/lib/types/equipment/item/MusicalInstrument.js +5 -0
  139. package/lib/types/equipment/item/OrienteeringAid.d.ts +6 -0
  140. package/lib/types/equipment/item/OrienteeringAid.js +5 -0
  141. package/lib/types/equipment/item/Poison.d.ts +163 -0
  142. package/lib/types/{Poison.js → equipment/item/Poison.js} +1 -1
  143. package/lib/types/equipment/item/RopeOrChain.d.ts +6 -0
  144. package/lib/types/equipment/item/RopeOrChain.js +5 -0
  145. package/lib/types/equipment/item/Stationary.d.ts +6 -0
  146. package/lib/types/equipment/item/Stationary.js +5 -0
  147. package/lib/types/equipment/item/ThievesTool.d.ts +6 -0
  148. package/lib/types/equipment/item/ThievesTool.js +5 -0
  149. package/lib/types/equipment/item/ToolOfTheTrade.d.ts +56 -0
  150. package/lib/types/equipment/item/ToolOfTheTrade.js +5 -0
  151. package/lib/types/equipment/item/TravelGearOrTool.d.ts +6 -0
  152. package/lib/types/equipment/item/TravelGearOrTool.js +5 -0
  153. package/lib/types/equipment/item/Vehicle.d.ts +18 -0
  154. package/lib/types/equipment/item/Vehicle.js +5 -0
  155. package/lib/types/equipment/item/Weapon.d.ts +152 -0
  156. package/lib/types/equipment/item/Weapon.js +5 -0
  157. package/lib/types/equipment/item/WeaponAccessory.d.ts +6 -0
  158. package/lib/types/equipment/item/WeaponAccessory.js +5 -0
  159. package/lib/types/equipment/item/_Item.d.ts +157 -0
  160. package/lib/types/equipment/item/_Item.js +1 -0
  161. package/lib/types/equipment/item/_MeleeWeapon.d.ts +113 -0
  162. package/lib/types/equipment/item/_MeleeWeapon.js +4 -0
  163. package/lib/types/equipment/item/_RangedWeapon.d.ts +108 -0
  164. package/lib/types/equipment/item/_RangedWeapon.js +4 -0
  165. package/lib/types/equipment/item/_Weapon.d.ts +57 -0
  166. package/lib/types/equipment/{_Weapon.js → item/_Weapon.js} +0 -3
  167. package/lib/types/equipment/item/sub/ArmorType.d.ts +36 -0
  168. package/lib/types/equipment/{ArmorType.js → item/sub/ArmorType.js} +1 -1
  169. package/lib/types/equipment/item/sub/Reach.d.ts +27 -0
  170. package/lib/types/equipment/{Reach.js → item/sub/Reach.js} +1 -1
  171. package/lib/types/magicalActions/AnimistPower.d.ts +168 -225
  172. package/lib/types/magicalActions/AnimistPower_Tribe.d.ts +9 -13
  173. package/lib/types/magicalActions/Curse.d.ts +115 -184
  174. package/lib/types/magicalActions/DominationRitual.d.ts +98 -136
  175. package/lib/types/magicalActions/ElvenMagicalSong.d.ts +79 -123
  176. package/lib/types/magicalActions/GeodeRitual.d.ts +124 -111
  177. package/lib/types/magicalActions/JesterTrick.d.ts +114 -109
  178. package/lib/types/magicalActions/MagicalDance.d.ts +71 -138
  179. package/lib/types/magicalActions/MagicalMelody.d.ts +65 -75
  180. package/lib/types/magicalActions/MagicalRune.d.ts +155 -189
  181. package/lib/types/magicalActions/ZibiljaRitual.d.ts +57 -65
  182. package/lib/types/magicalActions/_MusicTradition.d.ts +23 -13
  183. package/lib/types/magicalActions/_SkillReference.d.ts +1 -1
  184. package/lib/types/prerequisites/DisplayOption.d.ts +6 -8
  185. package/lib/types/prerequisites/PrerequisiteGroups.d.ts +194 -16
  186. package/lib/types/prerequisites/single/ActivatablePrerequisite.d.ts +0 -3
  187. package/lib/types/prerequisites/single/AnimistPowerPrerequisite.d.ts +0 -1
  188. package/lib/types/prerequisites/single/CulturePrerequisite.d.ts +0 -1
  189. package/lib/types/prerequisites/single/EnhancementPrerequisite.d.ts +17 -14
  190. package/lib/types/prerequisites/single/InfluencePrerequisite.d.ts +0 -1
  191. package/lib/types/prerequisites/single/PactPrerequisite.d.ts +5 -14
  192. package/lib/types/prerequisites/single/PrimaryAttributePrerequisite.d.ts +6 -6
  193. package/lib/types/prerequisites/single/PublicationPrerequisite.d.ts +0 -1
  194. package/lib/types/prerequisites/single/RacePrerequisite.d.ts +0 -1
  195. package/lib/types/prerequisites/single/RatedPrerequisite.d.ts +32 -41
  196. package/lib/types/prerequisites/single/RulePrerequisite.d.ts +0 -1
  197. package/lib/types/prerequisites/single/SexPrerequisite.d.ts +0 -1
  198. package/lib/types/prerequisites/single/SocialStatusPrerequisite.d.ts +0 -1
  199. package/lib/types/prerequisites/single/StatePrerequisite.d.ts +0 -1
  200. package/lib/types/prerequisites/single/TextPrerequisite.d.ts +11 -15
  201. package/lib/types/prerequisites/single/TraditionPrerequisite.d.ts +20 -12
  202. package/lib/types/rule/CoreRule.d.ts +198 -206
  203. package/lib/types/rule/FocusRule.d.ts +19 -24
  204. package/lib/types/rule/FocusRule_Subject.d.ts +9 -13
  205. package/lib/types/rule/OptionalRule.d.ts +12 -35
  206. package/lib/types/rule/_Rule.d.ts +19 -0
  207. package/lib/types/rule/_Rule.js +1 -0
  208. package/lib/types/source/Publication.d.ts +34 -48
  209. package/lib/types/source/_Erratum.d.ts +2 -1
  210. package/lib/types/source/_PublicationRef.d.ts +41 -37
  211. package/lib/types/specialAbility/AdvancedCombatSpecialAbility.d.ts +13 -17
  212. package/lib/types/specialAbility/AdvancedKarmaSpecialAbility.d.ts +8 -12
  213. package/lib/types/specialAbility/AdvancedMagicalSpecialAbility.d.ts +8 -12
  214. package/lib/types/specialAbility/AdvancedSkillSpecialAbility.d.ts +8 -12
  215. package/lib/types/specialAbility/AncestorGlyph.d.ts +8 -12
  216. package/lib/types/specialAbility/BlessedTradition.d.ts +92 -123
  217. package/lib/types/specialAbility/BrawlingSpecialAbility.d.ts +9 -13
  218. package/lib/types/specialAbility/CeremonialItemSpecialAbility.d.ts +8 -12
  219. package/lib/types/specialAbility/CombatSpecialAbility.d.ts +13 -17
  220. package/lib/types/specialAbility/CombatStyleSpecialAbility.d.ts +10 -18
  221. package/lib/types/specialAbility/CommandSpecialAbility.d.ts +1 -1
  222. package/lib/types/specialAbility/FamiliarSpecialAbility.d.ts +8 -12
  223. package/lib/types/specialAbility/FatePointSexSpecialAbility.d.ts +8 -12
  224. package/lib/types/specialAbility/FatePointSpecialAbility.d.ts +8 -12
  225. package/lib/types/specialAbility/GeneralSpecialAbility.d.ts +8 -12
  226. package/lib/types/specialAbility/KarmaSpecialAbility.d.ts +8 -12
  227. package/lib/types/specialAbility/LiturgicalStyleSpecialAbility.d.ts +8 -12
  228. package/lib/types/specialAbility/LycantropicGift.d.ts +8 -12
  229. package/lib/types/specialAbility/MagicStyleSpecialAbility.d.ts +8 -12
  230. package/lib/types/specialAbility/MagicalSpecialAbility.d.ts +8 -12
  231. package/lib/types/specialAbility/MagicalTradition.d.ts +38 -58
  232. package/lib/types/specialAbility/PactGift.d.ts +75 -62
  233. package/lib/types/specialAbility/ProtectiveWardingCircleSpecialAbility.d.ts +16 -23
  234. package/lib/types/specialAbility/Sermon.d.ts +8 -12
  235. package/lib/types/specialAbility/SexSpecialAbility.d.ts +8 -12
  236. package/lib/types/specialAbility/SikaryanDrainSpecialAbility.d.ts +8 -12
  237. package/lib/types/specialAbility/SkillStyleSpecialAbility.d.ts +8 -12
  238. package/lib/types/specialAbility/VampiricGift.d.ts +8 -12
  239. package/lib/types/specialAbility/Vision.d.ts +8 -12
  240. package/lib/types/specialAbility/_Tradition.d.ts +12 -0
  241. package/lib/types/specialAbility/_Tradition.js +1 -0
  242. package/lib/types/specialAbility/sub/Language.d.ts +78 -104
  243. package/lib/types/specialAbility/sub/Script.d.ts +24 -51
  244. package/lib/types/specialAbility/sub/TradeSecret.d.ts +14 -20
  245. package/lib/types/specialAbility/sub/_LanguageScript.d.ts +13 -0
  246. package/lib/types/specialAbility/sub/_LanguageScript.js +1 -0
  247. package/lib/types/traditionArtifacts/ArcaneOrbEnchantment.d.ts +20 -24
  248. package/lib/types/traditionArtifacts/AttireEnchantment.d.ts +21 -25
  249. package/lib/types/traditionArtifacts/BowlEnchantment.d.ts +20 -24
  250. package/lib/types/traditionArtifacts/CauldronEnchantment.d.ts +31 -34
  251. package/lib/types/traditionArtifacts/ChronicleEnchantment.d.ts +20 -24
  252. package/lib/types/traditionArtifacts/DaggerRitual.d.ts +45 -25
  253. package/lib/types/traditionArtifacts/FoolsHatEnchantment.d.ts +20 -24
  254. package/lib/types/traditionArtifacts/InstrumentEnchantment.d.ts +20 -24
  255. package/lib/types/traditionArtifacts/Krallenkettenzauber.d.ts +20 -24
  256. package/lib/types/traditionArtifacts/OrbEnchantment.d.ts +20 -24
  257. package/lib/types/traditionArtifacts/RingEnchantment.d.ts +20 -24
  258. package/lib/types/traditionArtifacts/SickleRitual.d.ts +20 -24
  259. package/lib/types/traditionArtifacts/SpellSwordEnchantment.d.ts +20 -24
  260. package/lib/types/traditionArtifacts/StaffEnchantment.d.ts +21 -25
  261. package/lib/types/traditionArtifacts/ToyEnchantment.d.ts +21 -25
  262. package/lib/types/traditionArtifacts/Trinkhornzauber.d.ts +20 -24
  263. package/lib/types/traditionArtifacts/WandEnchantment.d.ts +20 -24
  264. package/lib/types/traditionArtifacts/WeaponEnchantment.d.ts +19 -24
  265. package/lib/types/traditionArtifacts/sub/AnimalShape.d.ts +24 -16
  266. package/lib/types/traditionArtifacts/sub/AnimalShapePath.d.ts +9 -13
  267. package/lib/types/traditionArtifacts/sub/AnimalShapeSize.d.ts +9 -13
  268. package/lib/types/traditionArtifacts/sub/Brew.d.ts +9 -13
  269. package/lib/validation/schema.d.ts +11 -2
  270. package/lib/validation/schema.js +16 -4
  271. package/package.json +8 -7
  272. package/schema/Advantage.schema.json +49 -42
  273. package/schema/AnimalDisease.schema.json +17 -325
  274. package/schema/AnimalType.schema.json +17 -15
  275. package/schema/ArcaneBardTradition.schema.json +4 -42
  276. package/schema/ArcaneDancerTradition.schema.json +4 -42
  277. package/schema/Aspect.schema.json +21 -20
  278. package/schema/Attribute.schema.json +27 -27
  279. package/schema/Blessing.schema.json +188 -170
  280. package/schema/Cantrip.schema.json +334 -273
  281. package/schema/Ceremony.schema.json +90 -149
  282. package/schema/CombatTechnique_Close.schema.json +56 -67
  283. package/schema/CombatTechnique_Ranged.schema.json +46 -30
  284. package/schema/Condition.schema.json +46 -50
  285. package/schema/Continent.schema.json +18 -15
  286. package/schema/Culture.schema.json +408 -487
  287. package/schema/DerivedCharacteristic.schema.json +8 -8
  288. package/schema/Disadvantage.schema.json +45 -40
  289. package/schema/Disease.schema.json +7 -193
  290. package/schema/Element.schema.json +18 -15
  291. package/schema/ExperienceLevel.schema.json +5 -5
  292. package/schema/EyeColor.schema.json +17 -15
  293. package/schema/FamiliarsTrick.schema.json +491 -513
  294. package/schema/HairColor.schema.json +17 -15
  295. package/schema/Kirchenpraegung.schema.json +4 -4
  296. package/schema/Lessons_Curriculum.schema.json +202 -232
  297. package/schema/Lessons_Guideline.schema.json +17 -15
  298. package/schema/LiturgicalChant.schema.json +90 -149
  299. package/schema/Locale.schema.json +5 -5
  300. package/schema/MetaCondition.schema.json +46 -50
  301. package/schema/PactCategory.schema.json +101 -89
  302. package/schema/Patron.schema.json +239 -229
  303. package/schema/PatronCategory.schema.json +18 -27
  304. package/schema/PersonalityTrait.schema.json +50 -57
  305. package/schema/Profession.schema.json +810 -993
  306. package/schema/Property.schema.json +18 -16
  307. package/schema/Race.schema.json +200 -308
  308. package/schema/Region.schema.json +17 -15
  309. package/schema/Ritual.schema.json +111 -158
  310. package/schema/Service.schema.json +55 -51
  311. package/schema/SexPractice.schema.json +37 -39
  312. package/schema/Skill.schema.json +88 -89
  313. package/schema/SkillGroup.schema.json +23 -22
  314. package/schema/SkillModificationLevel.schema.json +93 -82
  315. package/schema/SocialStatus.schema.json +17 -15
  316. package/schema/Spell.schema.json +110 -158
  317. package/schema/State.schema.json +26 -25
  318. package/schema/Talisman.schema.json +115 -121
  319. package/schema/TargetCategory.schema.json +35 -20
  320. package/schema/UI.schema.json +830 -834
  321. package/schema/_Activatable.schema.json +1482 -2138
  322. package/schema/_ActivatableSelectOptionCategory.schema.json +1124 -0
  323. package/schema/_ActivatableSkill.schema.json +96 -1679
  324. package/schema/_ActivatableSkillCastingTime.schema.json +177 -0
  325. package/schema/_ActivatableSkillCheckResultBased.schema.json +101 -0
  326. package/schema/_ActivatableSkillCost.schema.json +448 -0
  327. package/schema/_ActivatableSkillDuration.schema.json +335 -0
  328. package/schema/_ActivatableSkillEffect.schema.json +153 -0
  329. package/schema/_ActivatableSkillRange.schema.json +221 -0
  330. package/schema/_ActivatableSkillTargetCategory.schema.json +117 -0
  331. package/schema/_AlternativeNames.schema.json +23 -0
  332. package/schema/_ArcaneTradition.schema.json +51 -0
  333. package/schema/_Blessed.schema.json +64 -0
  334. package/schema/_CommonnessRatedAdvantageDisadvantage.schema.json +2 -2
  335. package/schema/_Dice.schema.json +3 -3
  336. package/schema/_DiseasePoison.schema.json +173 -0
  337. package/schema/_Enhancements.schema.json +29 -26
  338. package/schema/_I18n.schema.json +8 -12
  339. package/schema/_Identifier.schema.json +73 -22
  340. package/schema/_ImprovementCost.schema.json +2 -2
  341. package/schema/_Influence.schema.json +48 -45
  342. package/schema/_NonEmptyString.schema.json +14 -0
  343. package/schema/_Prerequisite.schema.json +953 -765
  344. package/schema/_ResponsiveText.schema.json +66 -0
  345. package/schema/_Sex.schema.json +3 -3
  346. package/schema/_SimpleReferences.schema.json +586 -0
  347. package/schema/_SkillCheck.schema.json +5 -20
  348. package/schema/_Spellwork.schema.json +47 -0
  349. package/schema/equipment/EquipmentPackage.schema.json +37 -32
  350. package/schema/equipment/item/Alchemicum.schema.json +10 -0
  351. package/schema/equipment/item/Ammunition.schema.json +56 -0
  352. package/schema/equipment/item/Animal.schema.json +36 -0
  353. package/schema/equipment/item/AnimalCare.schema.json +124 -0
  354. package/schema/equipment/item/Armor.schema.json +288 -0
  355. package/schema/equipment/item/BandageOrRemedy.schema.json +10 -0
  356. package/schema/equipment/item/Book.schema.json +89 -0
  357. package/schema/equipment/item/CeremonialItem.schema.json +10 -0
  358. package/schema/equipment/item/Clothes.schema.json +10 -0
  359. package/schema/equipment/item/Container.schema.json +10 -0
  360. package/schema/equipment/item/EquipmentOfBlessedOnes.schema.json +59 -0
  361. package/schema/equipment/item/GemOrPreciousStone.schema.json +69 -0
  362. package/schema/equipment/item/HealingHerb.schema.json +10 -0
  363. package/schema/equipment/item/Illumination.schema.json +10 -0
  364. package/schema/equipment/item/Jewelry.schema.json +113 -0
  365. package/schema/equipment/item/Liebesspielzeug.schema.json +10 -0
  366. package/schema/equipment/item/LuxuryGood.schema.json +10 -0
  367. package/schema/equipment/item/MagicalArtifact.schema.json +64 -0
  368. package/schema/equipment/item/MusicalInstrument.schema.json +46 -0
  369. package/schema/equipment/item/OrienteeringAid.schema.json +10 -0
  370. package/schema/equipment/item/Poison.schema.json +378 -0
  371. package/schema/equipment/item/RopeOrChain.schema.json +10 -0
  372. package/schema/equipment/item/Stationary.schema.json +10 -0
  373. package/schema/equipment/item/ThievesTool.schema.json +10 -0
  374. package/schema/equipment/item/ToolOfTheTrade.schema.json +83 -0
  375. package/schema/equipment/item/TravelGearOrTool.schema.json +10 -0
  376. package/schema/equipment/item/Vehicle.schema.json +36 -0
  377. package/schema/equipment/item/Weapon.schema.json +265 -0
  378. package/schema/equipment/item/WeaponAccessory.schema.json +10 -0
  379. package/schema/equipment/item/_Item.schema.json +361 -0
  380. package/schema/equipment/item/_MeleeWeapon.schema.json +166 -0
  381. package/schema/equipment/item/_RangedWeapon.schema.json +172 -0
  382. package/schema/equipment/item/_Weapon.schema.json +99 -0
  383. package/schema/equipment/item/sub/ArmorType.schema.json +53 -0
  384. package/schema/equipment/{Reach.schema.json → item/sub/Reach.schema.json} +18 -16
  385. package/schema/magicalActions/AnimistPower.schema.json +413 -402
  386. package/schema/magicalActions/AnimistPower_Tribe.schema.json +17 -15
  387. package/schema/magicalActions/Curse.schema.json +288 -315
  388. package/schema/magicalActions/DominationRitual.schema.json +233 -220
  389. package/schema/magicalActions/ElvenMagicalSong.schema.json +132 -154
  390. package/schema/magicalActions/GeodeRitual.schema.json +284 -222
  391. package/schema/magicalActions/JesterTrick.schema.json +252 -202
  392. package/schema/magicalActions/MagicalDance.schema.json +147 -251
  393. package/schema/magicalActions/MagicalMelody.schema.json +129 -164
  394. package/schema/magicalActions/MagicalRune.schema.json +341 -323
  395. package/schema/magicalActions/ZibiljaRitual.schema.json +139 -112
  396. package/schema/magicalActions/_MusicTradition.schema.json +88 -14
  397. package/schema/magicalActions/_SkillReference.schema.json +4 -4
  398. package/schema/prerequisites/ConditionalPrerequisites.schema.json +3 -3
  399. package/schema/prerequisites/DisplayOption.schema.json +25 -14
  400. package/schema/prerequisites/PrerequisiteGroups.schema.json +928 -152
  401. package/schema/prerequisites/single/ActivatablePrerequisite.schema.json +13 -25
  402. package/schema/prerequisites/single/AnimistPowerPrerequisite.schema.json +4 -7
  403. package/schema/prerequisites/single/CulturePrerequisite.schema.json +4 -8
  404. package/schema/prerequisites/single/EnhancementPrerequisite.schema.json +30 -23
  405. package/schema/prerequisites/single/InfluencePrerequisite.schema.json +3 -7
  406. package/schema/prerequisites/single/PactPrerequisite.schema.json +9 -19
  407. package/schema/prerequisites/single/PrimaryAttributePrerequisite.schema.json +32 -33
  408. package/schema/prerequisites/single/PublicationPrerequisite.schema.json +3 -7
  409. package/schema/prerequisites/single/RacePrerequisite.schema.json +4 -8
  410. package/schema/prerequisites/single/RatedPrerequisite.schema.json +104 -107
  411. package/schema/prerequisites/single/RulePrerequisite.schema.json +4 -8
  412. package/schema/prerequisites/single/SexPrerequisite.schema.json +4 -8
  413. package/schema/prerequisites/single/SocialStatusPrerequisite.schema.json +3 -7
  414. package/schema/prerequisites/single/StatePrerequisite.schema.json +4 -8
  415. package/schema/prerequisites/single/TextPrerequisite.schema.json +36 -35
  416. package/schema/prerequisites/single/TraditionPrerequisite.schema.json +66 -68
  417. package/schema/rule/CoreRule.schema.json +904 -859
  418. package/schema/rule/FocusRule.schema.json +34 -30
  419. package/schema/rule/FocusRule_Subject.schema.json +17 -15
  420. package/schema/rule/OptionalRule.schema.json +24 -56
  421. package/schema/rule/_Rule.schema.json +52 -0
  422. package/schema/source/Publication.schema.json +45 -71
  423. package/schema/source/_Erratum.schema.json +5 -6
  424. package/schema/source/_PublicationRef.schema.json +87 -57
  425. package/schema/specialAbility/AdvancedCombatSpecialAbility.schema.json +41 -38
  426. package/schema/specialAbility/AdvancedKarmaSpecialAbility.schema.json +35 -32
  427. package/schema/specialAbility/AdvancedMagicalSpecialAbility.schema.json +35 -32
  428. package/schema/specialAbility/AdvancedSkillSpecialAbility.schema.json +35 -32
  429. package/schema/specialAbility/AncestorGlyph.schema.json +33 -30
  430. package/schema/specialAbility/BlessedTradition.schema.json +230 -225
  431. package/schema/specialAbility/BrawlingSpecialAbility.schema.json +35 -32
  432. package/schema/specialAbility/CeremonialItemSpecialAbility.schema.json +36 -33
  433. package/schema/specialAbility/CombatSpecialAbility.schema.json +41 -38
  434. package/schema/specialAbility/CombatStyleSpecialAbility.schema.json +39 -61
  435. package/schema/specialAbility/CommandSpecialAbility.schema.json +16 -16
  436. package/schema/specialAbility/FamiliarSpecialAbility.schema.json +33 -30
  437. package/schema/specialAbility/FatePointSexSpecialAbility.schema.json +33 -30
  438. package/schema/specialAbility/FatePointSpecialAbility.schema.json +35 -32
  439. package/schema/specialAbility/GeneralSpecialAbility.schema.json +35 -32
  440. package/schema/specialAbility/KarmaSpecialAbility.schema.json +33 -30
  441. package/schema/specialAbility/LiturgicalStyleSpecialAbility.schema.json +36 -33
  442. package/schema/specialAbility/LycantropicGift.schema.json +33 -30
  443. package/schema/specialAbility/MagicStyleSpecialAbility.schema.json +36 -33
  444. package/schema/specialAbility/MagicalSpecialAbility.schema.json +35 -32
  445. package/schema/specialAbility/MagicalTradition.schema.json +66 -87
  446. package/schema/specialAbility/PactGift.schema.json +240 -174
  447. package/schema/specialAbility/ProtectiveWardingCircleSpecialAbility.schema.json +39 -38
  448. package/schema/specialAbility/Sermon.schema.json +33 -30
  449. package/schema/specialAbility/SexSpecialAbility.schema.json +35 -32
  450. package/schema/specialAbility/SikaryanDrainSpecialAbility.schema.json +33 -30
  451. package/schema/specialAbility/SkillStyleSpecialAbility.schema.json +34 -31
  452. package/schema/specialAbility/VampiricGift.schema.json +33 -30
  453. package/schema/specialAbility/Vision.schema.json +33 -30
  454. package/schema/specialAbility/_Tradition.schema.json +23 -0
  455. package/schema/specialAbility/sub/Language.schema.json +170 -162
  456. package/schema/specialAbility/sub/Script.schema.json +35 -72
  457. package/schema/specialAbility/sub/TradeSecret.schema.json +26 -25
  458. package/schema/specialAbility/sub/_LanguageScript.schema.json +26 -0
  459. package/schema/traditionArtifacts/ArcaneOrbEnchantment.schema.json +46 -43
  460. package/schema/traditionArtifacts/AttireEnchantment.schema.json +47 -43
  461. package/schema/traditionArtifacts/BowlEnchantment.schema.json +46 -43
  462. package/schema/traditionArtifacts/CauldronEnchantment.schema.json +63 -56
  463. package/schema/traditionArtifacts/ChronicleEnchantment.schema.json +46 -43
  464. package/schema/traditionArtifacts/DaggerRitual.schema.json +132 -43
  465. package/schema/traditionArtifacts/FoolsHatEnchantment.schema.json +46 -43
  466. package/schema/traditionArtifacts/InstrumentEnchantment.schema.json +46 -43
  467. package/schema/traditionArtifacts/Krallenkettenzauber.schema.json +46 -43
  468. package/schema/traditionArtifacts/OrbEnchantment.schema.json +46 -43
  469. package/schema/traditionArtifacts/RingEnchantment.schema.json +46 -43
  470. package/schema/traditionArtifacts/SickleRitual.schema.json +46 -43
  471. package/schema/traditionArtifacts/SpellSwordEnchantment.schema.json +46 -43
  472. package/schema/traditionArtifacts/StaffEnchantment.schema.json +47 -43
  473. package/schema/traditionArtifacts/ToyEnchantment.schema.json +47 -43
  474. package/schema/traditionArtifacts/Trinkhornzauber.schema.json +46 -43
  475. package/schema/traditionArtifacts/WandEnchantment.schema.json +46 -43
  476. package/schema/traditionArtifacts/WeaponEnchantment.schema.json +46 -50
  477. package/schema/traditionArtifacts/sub/AnimalShape.schema.json +53 -25
  478. package/schema/traditionArtifacts/sub/AnimalShapePath.schema.json +17 -15
  479. package/schema/traditionArtifacts/sub/AnimalShapeSize.schema.json +17 -15
  480. package/schema/traditionArtifacts/sub/Brew.schema.json +17 -15
  481. package/lib/types/MagicalTraditionPlaceholder.d.ts +0 -32
  482. package/lib/types/MagicalTraditionPlaceholder.js +0 -5
  483. package/lib/types/Poison.d.ts +0 -208
  484. package/lib/types/equipment/ArmorType.d.ts +0 -31
  485. package/lib/types/equipment/Item.d.ts +0 -308
  486. package/lib/types/equipment/Item.js +0 -35
  487. package/lib/types/equipment/ItemGroup.d.ts +0 -31
  488. package/lib/types/equipment/ItemGroup.js +0 -5
  489. package/lib/types/equipment/Reach.d.ts +0 -31
  490. package/lib/types/equipment/_Armor.d.ts +0 -70
  491. package/lib/types/equipment/_Weapon.d.ts +0 -330
  492. package/lib/types/prerequisites/single/CommonSuggestedByRCPPrerequisite.d.ts +0 -3
  493. package/schema/MagicalTraditionPlaceholder.schema.json +0 -45
  494. package/schema/Poison.schema.json +0 -417
  495. package/schema/equipment/ArmorType.schema.json +0 -45
  496. package/schema/equipment/Item.schema.json +0 -621
  497. package/schema/equipment/ItemGroup.schema.json +0 -45
  498. package/schema/equipment/_Armor.schema.json +0 -125
  499. package/schema/equipment/_Weapon.schema.json +0 -664
  500. 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,42 @@ 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 = {
236
+ export declare type CombatSpecialAbilityUsageType = {
699
237
  tag: "Passive";
700
238
  } | {
701
239
  tag: "BasicManeuver";
702
240
  } | {
703
241
  tag: "SpecialManeuver";
704
242
  };
243
+ /**
244
+ * The definition of if the combat special ability can be used when armed or
245
+ * when unarmed.
246
+ */
247
+ export declare type CombatSpecialAbilityType = {
248
+ tag: "Armed";
249
+ } | {
250
+ tag: "Unarmed";
251
+ };
705
252
  /**
706
253
  * Registers new skill applications, which get enabled once this entry is
707
254
  * activated. It specifies an entry-unique identifier and the skill it belongs
@@ -709,7 +256,8 @@ export declare type CombatSpecialAbilityType = {
709
256
  * activatable entry.
710
257
  * @minItems 1
711
258
  */
712
- export declare type SkillApplications = {
259
+ export declare type SkillApplications = SkillApplication[];
260
+ export declare type SkillApplication = {
713
261
  /**
714
262
  * The application's identifier. An entry-unique, increasing integer.
715
263
  * @integer
@@ -719,62 +267,48 @@ export declare type SkillApplications = {
719
267
  /**
720
268
  * The skill(s) this application belongs to.
721
269
  */
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
- };
270
+ skill: SkillApplicationAssociatedSkill;
753
271
  /**
754
272
  * 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
- }[];
273
+ */
274
+ translations?: LocaleMap<SkillApplicationTranslation>;
275
+ };
276
+ export declare type SkillApplicationAssociatedSkill = {
277
+ tag: "Single";
278
+ single: SkillReference;
279
+ } | {
280
+ tag: "Multiple";
281
+ multiple: SkillApplicationAssociatedSkills;
282
+ };
283
+ export declare type SkillApplicationAssociatedSkills = {
284
+ /**
285
+ * The skills this application belongs to.
286
+ * @minItems 2
287
+ */
288
+ list: SkillReference[];
289
+ /**
290
+ * If an application applies to multiple skills, it may need to ensure the
291
+ * respective skill is on a certain skill rating if the activatable entry
292
+ * cannot ensure this prerequisite.
293
+ * @integer
294
+ * @minimum 1
295
+ */
296
+ required_skill_rating?: number;
297
+ };
298
+ export declare type SkillApplicationTranslation = {
299
+ /**
300
+ * The name of the application if different from the activatable entry's name.
301
+ */
302
+ name: NonEmptyString;
303
+ };
771
304
  /**
772
305
  * Registers uses, which get enabled once this entry is activated. It specifies
773
306
  * an entry-unique identifier and the skill it belongs to. A translation can be
774
307
  * left out if its name equals the name of the origin activatable entry.
775
308
  * @minItems 1
776
309
  */
777
- export declare type SkillUses = {
310
+ export declare type SkillUses = SkillUse[];
311
+ export declare type SkillUse = {
778
312
  /**
779
313
  * The use's identifier. An entry-unique, increasing integer.
780
314
  * @integer
@@ -784,51 +318,57 @@ export declare type SkillUses = {
784
318
  /**
785
319
  * The skill(s) this use belongs to.
786
320
  */
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
- };
321
+ skill: SkillUseAssociatedSkill;
810
322
  /**
811
323
  * 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
- }[];
324
+ */
325
+ translations?: LocaleMap<SkillUseTranslation>;
326
+ };
327
+ export declare type SkillUseAssociatedSkill = {
328
+ tag: "Single";
329
+ single: SkillReference;
330
+ } | {
331
+ tag: "Multiple";
332
+ multiple: SkillUseAssociatedSkills;
333
+ };
334
+ export declare type SkillUseAssociatedSkills = {
335
+ /**
336
+ * The skills this use belongs to.
337
+ * @minItems 2
338
+ */
339
+ list: SkillReference[];
340
+ };
341
+ export declare type SkillUseTranslation = {
342
+ /**
343
+ * The name of the use if different from the activatable entry's name.
344
+ */
345
+ name: NonEmptyString;
346
+ };
827
347
  /**
828
348
  * The penalty the special ability gives when used.
829
349
  */
830
350
  export declare type Penalty = {
831
351
  tag: "Single";
352
+ single: SinglePenalty;
353
+ } | {
354
+ tag: "ByHandedness";
355
+ by_handedness: PenaltyByHandedness;
356
+ } | {
357
+ tag: "ByActivation";
358
+ by_activation: PenaltyByActivation;
359
+ } | {
360
+ tag: "Selection";
361
+ selection: PenaltySelection;
362
+ } | {
363
+ tag: "ByLevel";
364
+ by_level: PenaltyByLevel;
365
+ } | {
366
+ tag: "ByAttack";
367
+ by_attack: PenaltyByAttack;
368
+ } | {
369
+ tag: "DependsOnHitZone";
370
+ };
371
+ export declare type SinglePenalty = {
832
372
  /**
833
373
  * The penalty value.
834
374
  * @integer
@@ -838,8 +378,8 @@ export declare type Penalty = {
838
378
  * Set to `true` if the penalty applies to the parry instead of the attack.
839
379
  */
840
380
  applies_to_parry?: true;
841
- } | {
842
- tag: "ByHandedness";
381
+ };
382
+ export declare type PenaltyByHandedness = {
843
383
  /**
844
384
  * The penalty value for one-handed weapons.
845
385
  * @integer
@@ -854,8 +394,8 @@ export declare type Penalty = {
854
394
  * Set to `true` if the penalty applies to the parry instead of the attack.
855
395
  */
856
396
  applies_to_parry?: true;
857
- } | {
858
- tag: "ByActivation";
397
+ };
398
+ export declare type PenaltyByActivation = {
859
399
  /**
860
400
  * The penalty value if the entry has been bought by the character.
861
401
  * @integer
@@ -870,57 +410,77 @@ export declare type Penalty = {
870
410
  * Set to `true` if the penalty applies to the parry instead of the attack.
871
411
  */
872
412
  applies_to_parry?: true;
413
+ };
414
+ export declare type PenaltySelection = {
415
+ options: PenaltySelectionOptions;
416
+ };
417
+ export declare type PenaltySelectionOptions = {
418
+ tag: "Specific";
419
+ specific: SpecificPenaltySelectionOptions;
873
420
  } | {
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";
421
+ tag: "Range";
422
+ range: PenaltySelectionOptionsRange;
423
+ };
424
+ export declare type SpecificPenaltySelectionOptions = {
425
+ /**
426
+ * The list of specific penalty options.
427
+ * @minItems 2
428
+ * @uniqueItems
429
+ */
430
+ list: SpecificPenaltySelectionOption[];
431
+ };
432
+ export declare type SpecificPenaltySelectionOption = {
433
+ /**
434
+ * The penalty value.
435
+ * @integer
436
+ */
437
+ value: number;
438
+ };
439
+ export declare type PenaltySelectionOptionsRange = {
440
+ /**
441
+ * The minimum penalty value.
442
+ * @integer
443
+ */
444
+ minimum: number;
445
+ /**
446
+ * The maximum penalty value.
447
+ * @integer
448
+ */
449
+ maximum: number;
450
+ };
451
+ export declare type PenaltyByLevel = {
904
452
  /**
905
453
  * A continuous range of penalties for each level. The first element is the
906
454
  * penalty for the first level, the second element is the penalty for the
907
455
  * second level, and so on.
908
456
  * @minItems 2
909
457
  */
910
- levels: {
911
- /**
912
- * The penalty value for this level.
913
- * @integer
914
- */
915
- value: number;
916
- }[];
458
+ levels: PenaltyByLevelLevel[];
459
+ /**
460
+ * The combat-related special ability of which the level defines the penalty
461
+ * instead.
462
+ */
463
+ external?: PenaltyByExternalLevel;
464
+ };
465
+ export declare type PenaltyByLevelLevel = {
466
+ /**
467
+ * The penalty value for this level.
468
+ * @integer
469
+ */
470
+ value: number;
471
+ };
472
+ /**
473
+ * The combat-related special ability of which the level defines the penalty
474
+ * instead.
475
+ */
476
+ export declare type PenaltyByExternalLevel = {
917
477
  /**
918
478
  * The identifier of the combat-related special ability of which the level
919
479
  * defines the penalty instead.
920
480
  */
921
- external_id?: CombatRelatedSpecialAbilityIdentifier;
922
- } | {
923
- tag: "ByAttack";
481
+ id: CombatRelatedSpecialAbilityIdentifier;
482
+ };
483
+ export declare type PenaltyByAttack = {
924
484
  /**
925
485
  * A list of penalties for subsequent attacks. The first element is the
926
486
  * penalty for the first attack, the second element is the penalty for the
@@ -930,13 +490,7 @@ export declare type Penalty = {
930
490
  * the third attack, and so on.
931
491
  * @minItems 1
932
492
  */
933
- list: {
934
- /**
935
- * The penalty value for this order.
936
- * @integer
937
- */
938
- value: number;
939
- }[];
493
+ list: PenaltyByAttackOrderItem[];
940
494
  /**
941
495
  * The order of the first element in the `list` of penalties.
942
496
  */
@@ -945,15 +499,25 @@ export declare type Penalty = {
945
499
  * Set if a predefined different word should be used instead of the word
946
500
  * `attack` for display purposes.
947
501
  */
948
- attack_replacement?: {
949
- tag: "Throw";
950
- };
951
- } | {
952
- tag: "DependsOnHitZone";
502
+ attack_replacement?: PenaltyByAttackReplacement;
503
+ };
504
+ export declare type PenaltyByAttackOrderItem = {
505
+ /**
506
+ * The penalty value for this order.
507
+ * @integer
508
+ */
509
+ value: number;
510
+ };
511
+ /**
512
+ * Set if a predefined different word should be used instead of the word
513
+ * `attack` for display purposes.
514
+ */
515
+ export declare type PenaltyByAttackReplacement = {
516
+ tag: "Throw";
953
517
  };
954
518
  export declare type EnchantmentCost = {
955
519
  tag: "ArcaneEnergyCost";
956
- ae_cost: ArcaneEnergyCost;
520
+ arcane_energy_cost: ArcaneEnergyCost;
957
521
  } | {
958
522
  tag: "BindingCost";
959
523
  binding_cost: BindingCost;
@@ -963,6 +527,26 @@ export declare type EnchantmentCost = {
963
527
  */
964
528
  export declare type ArcaneEnergyCost = {
965
529
  tag: "Fixed";
530
+ fixed: FixedArcaneEnergyCost;
531
+ } | {
532
+ tag: "PerCountable";
533
+ per_countable: ArcaneEnergyCostPerCountable;
534
+ } | {
535
+ tag: "ActivationAndHalfInterval";
536
+ activation_and_half_interval: ActivationAndHalfIntervalArcaneEnergyCost;
537
+ } | {
538
+ tag: "Indefinite";
539
+ indefinite: IndefiniteArcaneEnergyCost;
540
+ } | {
541
+ tag: "Disjunction";
542
+ disjunction: ArcaneEnergyCostDisjunction;
543
+ } | {
544
+ tag: "None";
545
+ none?: NoArcaneEnergyCost;
546
+ } | {
547
+ tag: "Variable";
548
+ };
549
+ export declare type FixedArcaneEnergyCost = {
966
550
  /**
967
551
  * The AE cost value.
968
552
  * @integer
@@ -978,48 +562,38 @@ export declare type ArcaneEnergyCost = {
978
562
  /**
979
563
  * Specified if the AE cost `value` has to be paid for each time interval.
980
564
  */
981
- interval?: Duration.UnitValue;
565
+ interval?: DurationUnitValue;
982
566
  /**
983
567
  * The AE cost are per level of the enchantment. It may either be displayed
984
568
  * in a compressed way (e.g. `1 AE per level`) or in a verbose way (e.g. `1
985
569
  * AE for level I; 2 AE for level II`).
986
570
  */
987
- per_level?: {
988
- tag: "Compressed";
989
- } | {
990
- tag: "Verbose";
991
- };
571
+ per_level?: FixedArcaneEnergyCostPerLevel;
992
572
  /**
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
- };
573
+ * All translations for the entry, identified by IETF language tag (BCP47).
574
+ */
575
+ translations?: LocaleMap<FixedArcaneEnergyCostTranslation>;
576
+ };
577
+ /**
578
+ * The AE cost are per level of the enchantment. It may either be displayed
579
+ * in a compressed way (e.g. `1 AE per level`) or in a verbose way (e.g. `1
580
+ * AE for level I; 2 AE for level II`).
581
+ */
582
+ export declare type FixedArcaneEnergyCostPerLevel = {
583
+ tag: "Compressed";
1021
584
  } | {
1022
- tag: "PerCountable";
585
+ tag: "Verbose";
586
+ };
587
+ /**
588
+ * @minProperties 1
589
+ */
590
+ export declare type FixedArcaneEnergyCostTranslation = {
591
+ /**
592
+ * A note, appended to the generated option string in parenthesis.
593
+ */
594
+ note?: ResponsiveTextOptional;
595
+ };
596
+ export declare type ArcaneEnergyCostPerCountable = {
1023
597
  /**
1024
598
  * The AE cost value that has to be per a specific countable entity.
1025
599
  * @integer
@@ -1034,52 +608,22 @@ export declare type ArcaneEnergyCost = {
1034
608
  */
1035
609
  base_value?: number;
1036
610
  /**
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";
611
+ * All translations for the entry, identified by IETF language tag (BCP47).
612
+ */
613
+ translations?: LocaleMap<ArcaneEnergyCostPerCountableTranslation>;
614
+ };
615
+ export declare type ArcaneEnergyCostPerCountableTranslation = {
616
+ /**
617
+ * The cost have to be per a specific countable entity, e.g. `8 AE per
618
+ * person`.
619
+ */
620
+ per: ResponsiveText;
621
+ /**
622
+ * A note, appended to the generated string in parenthesis.
623
+ */
624
+ note?: ResponsiveTextOptional;
625
+ };
626
+ export declare type ActivationAndHalfIntervalArcaneEnergyCost = {
1083
627
  /**
1084
628
  * The AE cost value that has to be payed for activation. Half of this value
1085
629
  * has to be payed each interval.
@@ -1091,195 +635,164 @@ export declare type ArcaneEnergyCost = {
1091
635
  /**
1092
636
  * The time interval for which the AE cost `value` has to be paid.
1093
637
  */
1094
- interval: Duration.UnitValue;
1095
- } | {
1096
- tag: "Indefinite";
638
+ interval: DurationUnitValue;
639
+ };
640
+ export declare type IndefiniteArcaneEnergyCost = {
1097
641
  /**
1098
642
  * The indefinite AE cost may be modified by a certain value.
1099
643
  */
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
- };
644
+ modifier: IndefiniteArcaneEnergyCostModifier;
1117
645
  /**
1118
646
  * 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
- };
647
+ */
648
+ translations: LocaleMap<IndefiniteArcaneEnergyCostTranslation>;
649
+ };
650
+ /**
651
+ * Defines how the the `value` is set off against the check result.
652
+ */
653
+ export declare type IndefiniteArcaneEnergyCostArithmetic = {
654
+ tag: "Add";
1144
655
  } | {
1145
- tag: "Disjunction";
656
+ tag: "Subtract";
657
+ };
658
+ export declare type IndefiniteArcaneEnergyCostModifier = {
659
+ /**
660
+ * The arithmetic how to apply the `value` to the `base`.
661
+ */
662
+ arithmetic: IndefiniteArcaneEnergyCostArithmetic;
663
+ /**
664
+ * The value that is applied to the `base` using the defined `arithmetic`.
665
+ * @integer
666
+ * @minimum 1
667
+ */
668
+ value: number;
669
+ };
670
+ export declare type IndefiniteArcaneEnergyCostTranslation = {
671
+ /**
672
+ * A description of where the cost come from.
673
+ */
674
+ description: ResponsiveText;
675
+ };
676
+ export declare type ArcaneEnergyCostDisjunction = {
1146
677
  /**
1147
678
  * Specified if the selected AE cost option has to be paid for each time
1148
679
  * interval.
1149
680
  */
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
- };
681
+ interval?: ArcaneEnergyCostDisjunctionInterval;
1171
682
  /**
1172
683
  * The possible AE cost values.
1173
684
  */
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";
685
+ options: ArcaneEnergyCostDisjunctionOption[];
686
+ };
687
+ export declare type ArcaneEnergyCostDisjunctionInterval = {
688
+ /**
689
+ * The interval itself.
690
+ */
691
+ value: DurationUnitValue;
692
+ /**
693
+ * The AE cost value for activation.
694
+ * @integer
695
+ * @minimum 1
696
+ */
697
+ activation_value: number;
698
+ /**
699
+ * Set to `true` if the action where the enchantment is casted does
700
+ * **not** as a part of the first interval that has to be payed, so that
701
+ * the first interval payment needs to be done after the activation.
702
+ *
703
+ * This works different than other sustained spells, since for them the
704
+ * end of the cast usually already counts as part of the first interval.
705
+ */
706
+ after_activation: boolean;
707
+ };
708
+ export declare type ArcaneEnergyCostDisjunctionOption = {
709
+ /**
710
+ * A possible AE cost value.
711
+ * @integer
712
+ * @minimum 1
713
+ */
714
+ value: number;
715
+ /**
716
+ * All translations for the entry, identified by IETF language tag (BCP47).
717
+ */
718
+ translations?: LocaleMap<ArcaneEnergyCostDisjunctionOptionTranslation>;
719
+ };
720
+ /**
721
+ * @minProperties 1
722
+ */
723
+ export declare type ArcaneEnergyCostDisjunctionOptionTranslation = {
724
+ /**
725
+ * A note, appended to the generated option string in parenthesis.
726
+ */
727
+ note?: ResponsiveTextOptional;
728
+ };
729
+ /**
730
+ * @minProperties 1
731
+ */
732
+ export declare type NoArcaneEnergyCost = {
1213
733
  /**
1214
734
  * All translations for the entry, identified by IETF language tag
1215
735
  * (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";
736
+ */
737
+ translations?: LocaleMap<NoArcaneEnergyCostTranslation>;
738
+ };
739
+ /**
740
+ * @minProperties 1
741
+ */
742
+ export declare type NoArcaneEnergyCostTranslation = {
743
+ /**
744
+ * A note, appended to the generated string in parenthesis.
745
+ */
746
+ note?: ResponsiveTextOptional;
1244
747
  };
1245
748
  /**
1246
749
  * The volume points the enchantment needs.
1247
750
  */
1248
751
  export declare type Volume = {
1249
752
  tag: "Fixed";
753
+ fixed: FixedVolume;
754
+ } | {
755
+ tag: "PerLevel";
756
+ per_level: VolumePerLevel;
757
+ } | {
758
+ tag: "ByLevel";
759
+ by_level: VolumeByLevel;
760
+ } | {
761
+ tag: "Map";
762
+ map: VolumeMap;
763
+ };
764
+ export declare type FixedVolume = {
1250
765
  /**
1251
766
  * The volume points.
1252
767
  * @integer
1253
768
  * @minimum 0
1254
769
  */
1255
770
  points: number;
1256
- } | {
1257
- tag: "PerLevel";
771
+ };
772
+ export declare type VolumePerLevel = {
1258
773
  /**
1259
774
  * The volume points per level.
1260
775
  * @integer
1261
776
  * @minimum 1
1262
777
  */
1263
778
  points: number;
1264
- } | {
1265
- tag: "ByLevel";
779
+ };
780
+ export declare type VolumeByLevel = {
1266
781
  /**
1267
782
  * The volume points for each level. The first element is the volume points
1268
783
  * for the first level, the second element is the volume points for the
1269
784
  * second level, and so on.
1270
785
  * @minItems 2
1271
786
  */
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;
787
+ list: VolumeByLevelItem[];
788
+ };
789
+ export declare type VolumeByLevelItem = {
790
+ /**
791
+ * The volume points for this level.
792
+ * @integer
793
+ * @minimum 0
794
+ */
795
+ points: number;
1283
796
  };
1284
797
  /**
1285
798
  * A content that is `3/4/5 Points for Chimera, Daimonid, Golems, Undead /
@@ -1332,30 +845,28 @@ export declare type VolumeMap = {
1332
845
  options: VolumeMapOption[];
1333
846
  /**
1334
847
  * 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
- };
848
+ */
849
+ translations?: LocaleMap<VolumeMapTranslation>;
850
+ };
851
+ /**
852
+ * @minProperties 1
853
+ */
854
+ export declare type VolumeMapTranslation = {
855
+ /**
856
+ * Place a string between the `for` and the grouped map option labels.
857
+ */
858
+ list_prepend?: string;
859
+ /**
860
+ * Place a string after the grouped map option labels.
861
+ */
862
+ list_append?: string;
863
+ /**
864
+ * If the string from the book cannot be generated using the default
865
+ * generation technique, use this string. All options still need to be
866
+ * inserted propertly, since it may be used by in-game tools to provide a
867
+ * selection to players.
868
+ */
869
+ replacement?: string;
1359
870
  };
1360
871
  export declare type VolumeMapOption = {
1361
872
  /**
@@ -1367,57 +878,60 @@ export declare type VolumeMapOption = {
1367
878
  /**
1368
879
  * Links to the options this volume specification is meant for.
1369
880
  */
1370
- associated_options: {
1371
- /**
1372
- * The option's identifier.
1373
- */
1374
- id: VolumePointsOptionReferenceIdentifier;
1375
- }[];
881
+ associated_options: VolumeMapOptionAssociatedOption[];
1376
882
  /**
1377
883
  * 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
- };
884
+ */
885
+ translations?: LocaleMap<VolumeMapOptionTranslation>;
886
+ };
887
+ export declare type VolumeMapOptionAssociatedOption = {
888
+ /**
889
+ * The option's identifier.
890
+ */
891
+ id: VolumePointsOptionReferenceIdentifier;
892
+ };
893
+ export declare type VolumeMapOptionTranslation = {
894
+ /**
895
+ * The description of the option for cost string generation.
896
+ */
897
+ label: NonEmptyString;
898
+ /**
899
+ * The description of the option if used standalone. Only used if
900
+ * different from `label`.
901
+ */
902
+ label_standalone?: NonEmptyString;
1398
903
  };
1399
904
  /**
1400
905
  * The binding cost for an enchantment.
1401
906
  */
1402
907
  export declare type BindingCost = {
1403
908
  tag: "Fixed";
909
+ fixed: FixedBindingCost;
910
+ } | {
911
+ tag: "PerLevel";
912
+ per_level: BindingCostPerLevel;
913
+ } | {
914
+ tag: "Map";
915
+ map: BindingCostMap;
916
+ };
917
+ export declare type FixedBindingCost = {
1404
918
  /**
1405
919
  * The permanent AE cost.
920
+ *
921
+ * If the enchantment has multiple levels, it is only applied for the first
922
+ * level.
1406
923
  * @integer
1407
924
  * @minimum 1
1408
925
  */
1409
926
  permanent_value: number;
1410
- } | {
1411
- tag: "PerLevel";
927
+ };
928
+ export declare type BindingCostPerLevel = {
1412
929
  /**
1413
930
  * The permanent AE cost per level.
1414
931
  * @integer
1415
932
  * @minimum 1
1416
933
  */
1417
934
  permanent_value: number;
1418
- } | {
1419
- tag: "Map";
1420
- map: BindingCostMap;
1421
935
  };
1422
936
  /**
1423
937
  * A content that is `2/4/8 permanent AE for spell-swords with the combat
@@ -1454,30 +968,28 @@ export declare type BindingCostMap = {
1454
968
  options: VolumeMapOption[];
1455
969
  /**
1456
970
  * 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
- };
971
+ */
972
+ translations?: LocaleMap<BindingCostMapTranslation>;
973
+ };
974
+ /**
975
+ * @minProperties 1
976
+ */
977
+ export declare type BindingCostMapTranslation = {
978
+ /**
979
+ * Place a string between the `for` and the grouped map option labels.
980
+ */
981
+ list_prepend?: NonEmptyString;
982
+ /**
983
+ * Place a string after the grouped map option labels.
984
+ */
985
+ list_append?: NonEmptyString;
986
+ /**
987
+ * If the string from the book cannot be generated using the default
988
+ * generation technique, use this string. All options still need to be
989
+ * inserted propertly, since it may be used by in-game tools to provide a
990
+ * selection to players.
991
+ */
992
+ replacement?: NonEmptyString;
1481
993
  };
1482
994
  export declare type BindingCostMapOption = {
1483
995
  /**
@@ -1488,61 +1000,51 @@ export declare type BindingCostMapOption = {
1488
1000
  permanent_value: number;
1489
1001
  /**
1490
1002
  * 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
- };
1003
+ */
1004
+ translations?: LocaleMap<BindingCostMapOptionTranslation>;
1005
+ };
1006
+ export declare type BindingCostMapOptionTranslation = {
1007
+ /**
1008
+ * The description of the option for cost string generation.
1009
+ */
1010
+ label: NonEmptyString;
1011
+ /**
1012
+ * The description of the option if used standalone. Only used if
1013
+ * different from `label`.
1014
+ */
1015
+ label_standalone?: NonEmptyString;
1511
1016
  };
1512
1017
  /**
1513
1018
  * The magic property's identifier. `DependingOnProperty` can only be used if
1514
1019
  * the special ability has an option to select a property.
1515
1020
  */
1516
1021
  export declare type Property = {
1517
- tag: "DependingOnProperty";
1022
+ tag: "DependingOnSelection";
1518
1023
  } | {
1519
1024
  tag: "Fixed";
1520
- /**
1521
- * The property's identifier.
1522
- * @integer
1523
- * @minimum 1
1524
- */
1525
- id: number;
1025
+ fixed: PropertyReference;
1526
1026
  };
1527
1027
  /**
1528
- * The blessed aspect's identifier.
1529
- * @integer
1530
- * @minimum 1
1028
+ * The blessed aspect.
1531
1029
  */
1532
- export declare type Aspect = number;
1030
+ export declare type Aspect = AspectReference;
1533
1031
  /**
1534
1032
  * A reference to an advanced special ability.
1535
1033
  */
1536
1034
  export declare type AdvancedSpecialAbility = {
1537
1035
  tag: "General";
1538
- /**
1539
- * The advanced special ability's numeric identifier.
1540
- * @integer
1541
- * @minimum 1
1542
- */
1543
- id: number;
1036
+ general: AdvancedSpecialAbilityReference;
1544
1037
  } | {
1545
1038
  tag: "RestrictOptions";
1039
+ restrict_options: RestrictAdvancedSpecialAbilityOptions;
1040
+ } | {
1041
+ tag: "OneOf";
1042
+ one_of: OneOfAdvancedSpecialAbilityOptions;
1043
+ } | {
1044
+ tag: "DeriveFromExternalOption";
1045
+ derive_from_external_option: AdvancedSpecialAbilityDerivedFromExternalOption;
1046
+ };
1047
+ export declare type RestrictAdvancedSpecialAbilityOptions = {
1546
1048
  /**
1547
1049
  * The advanced special ability's numeric identifier.
1548
1050
  * @integer
@@ -1555,69 +1057,45 @@ export declare type AdvancedSpecialAbility = {
1555
1057
  * @minItems 1
1556
1058
  */
1557
1059
  option: AdvancedSpecialAbilityRestrictedOptionIdentifier[];
1558
- } | {
1559
- tag: "OneOf";
1060
+ };
1061
+ export declare type OneOfAdvancedSpecialAbilityOptions = {
1560
1062
  /**
1561
1063
  * The possible advanced special abilities.
1562
1064
  */
1563
- options: {
1564
- /**
1565
- * The advanced special ability's numeric identifier.
1566
- * @integer
1567
- * @minimum 1
1568
- */
1569
- id: number;
1570
- };
1065
+ options: AdvancedSpecialAbilityReference;
1571
1066
  /**
1572
- * Do have to choose on when buying the special ability? Otherwise the
1573
- * decision can be made later.
1067
+ * Do have to choose the advanced special ability when buying the style
1068
+ * special ability? Otherwise the decision can be made later.
1574
1069
  */
1575
1070
  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
1071
  display_option?: DisplayOption;
1583
- } | {
1584
- tag: "DeriveFromExternalOption";
1072
+ };
1073
+ export declare type AdvancedSpecialAbilityDerivedFromExternalOption = {
1585
1074
  /**
1586
1075
  * The possible advanced special abilities.
1587
1076
  */
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
- }[];
1077
+ external_entry: MagicalTraditionIdentifier;
1078
+ /**
1079
+ * Map options from the external entry to allowed advanced special abilities.
1080
+ * @minItems 1
1081
+ */
1082
+ map: AdvancedSpecialAbilityDerivedFromExternalOptionMapping[];
1609
1083
  display_option?: DisplayOption;
1084
+ };
1085
+ /**
1086
+ * Mapping from an option of the external entry to an allowed advanced special
1087
+ * ability.
1088
+ * @minItems 1
1089
+ */
1090
+ export declare type AdvancedSpecialAbilityDerivedFromExternalOptionMapping = {
1610
1091
  /**
1611
- * Do have to choose on when buying the special ability? Otherwise the
1612
- * decision can be made later.
1092
+ * The select option's identifier.
1613
1093
  */
1614
- is_selection_required_on_purchase: boolean;
1094
+ from_option: PatronIdentifier;
1615
1095
  /**
1616
- * Specify the select option(s) that only are allowed for the referenced
1617
- * advanced special ability; others are disallowed.
1618
- * @minItems 1
1096
+ * The advanced special ability's identifier.
1619
1097
  */
1620
- option: AdvancedSpecialAbilityRestrictedOptionIdentifier[];
1098
+ to_advanced: AdvancedSpecialAbilityReference;
1621
1099
  };
1622
1100
  export declare type AdvancedSpecialAbilityDerivedExternalEntryId = MagicalTraditionIdentifier;
1623
1101
  export declare type AdvancedSpecialAbilityDerivedExternalEntryOptionId = PatronIdentifier;
@@ -1639,34 +1117,47 @@ export declare type ApplicableCombatTechniques = {
1639
1117
  tag: "DependingOnCombatStyle";
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 = {
1660
1150
  /**
1661
1151
  * @minItems 1
1662
1152
  */
1663
- list: {
1664
- id: CombatTechniqueIdentifier;
1665
- /**
1666
- * @minItems 1
1667
- */
1668
- restrictions?: ApplicableSpecificCombatTechniquesRestriction[];
1669
- }[];
1153
+ list: SpecificApplicableCombatTechnique[];
1154
+ };
1155
+ export declare type SpecificApplicableCombatTechnique = {
1156
+ id: CombatTechniqueIdentifier;
1157
+ /**
1158
+ * @minItems 1
1159
+ */
1160
+ restrictions?: ApplicableSpecificCombatTechniquesRestriction[];
1670
1161
  };
1671
1162
  export declare type ApplicableAllCombatTechniquesRestriction = {
1672
1163
  tag: "Improvised";
@@ -1676,21 +1167,10 @@ export declare type ApplicableAllCombatTechniquesRestriction = {
1676
1167
  tag: "Mount";
1677
1168
  } | {
1678
1169
  tag: "Race";
1679
- /**
1680
- * The race's numeric identifier.
1681
- * @integer
1682
- * @minimum 1
1683
- */
1684
- id: number;
1170
+ race: ApplicableCombatTechniquesRaceRestriction;
1685
1171
  } | {
1686
1172
  tag: "ExcludeCombatTechniques";
1687
- /**
1688
- * The combat techniques this combat special ability is **not** applicable
1689
- * to.
1690
- * @minItems 1
1691
- * @uniqueItems
1692
- */
1693
- list: CombatTechniqueIdentifier[];
1173
+ exclude_combat_techniques: ApplicableCombatTechniquesNegativeCombatTechniquesRestriction<CombatTechniqueReference>;
1694
1174
  };
1695
1175
  export declare type ApplicableCloseCombatTechniquesRestriction = {
1696
1176
  tag: "Improvised";
@@ -1706,28 +1186,10 @@ export declare type ApplicableCloseCombatTechniquesRestriction = {
1706
1186
  tag: "ParryingWeapon";
1707
1187
  } | {
1708
1188
  tag: "Race";
1709
- /**
1710
- * The race's numeric identifier.
1711
- * @integer
1712
- * @minimum 1
1713
- */
1714
- id: number;
1189
+ race: ApplicableCombatTechniquesRaceRestriction;
1715
1190
  } | {
1716
1191
  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
- }[];
1192
+ exclude_combat_techniques: ApplicableCombatTechniquesNegativeCombatTechniquesRestriction<CloseCombatTechniqueReference>;
1731
1193
  };
1732
1194
  export declare type ApplicableRangedCombatTechniquesRestriction = {
1733
1195
  tag: "Improvised";
@@ -1737,28 +1199,10 @@ export declare type ApplicableRangedCombatTechniquesRestriction = {
1737
1199
  tag: "Mount";
1738
1200
  } | {
1739
1201
  tag: "Race";
1740
- /**
1741
- * The race's numeric identifier.
1742
- * @integer
1743
- * @minimum 1
1744
- */
1745
- id: number;
1202
+ race: ApplicableCombatTechniquesRaceRestriction;
1746
1203
  } | {
1747
1204
  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
- }[];
1205
+ exclude_combat_techniques: ApplicableCombatTechniquesNegativeCombatTechniquesRestriction<RangedCombatTechniqueReference>;
1762
1206
  };
1763
1207
  export declare type ApplicableSpecificCombatTechniquesRestriction = {
1764
1208
  tag: "Improvised";
@@ -1768,76 +1212,62 @@ export declare type ApplicableSpecificCombatTechniquesRestriction = {
1768
1212
  tag: "Mount";
1769
1213
  } | {
1770
1214
  tag: "Race";
1771
- /**
1772
- * The race's numeric identifier.
1773
- * @integer
1774
- * @minimum 1
1775
- */
1776
- id: number;
1215
+ race: ApplicableCombatTechniquesRaceRestriction;
1777
1216
  } | {
1778
1217
  tag: "Level";
1218
+ level: ApplicableCombatTechniquesLevelRestriction;
1219
+ } | {
1220
+ tag: "Weapons";
1221
+ weapons: ApplicableCombatTechniquesWeaponRestriction;
1222
+ };
1223
+ export declare type ApplicableCombatTechniquesNegativeCombatTechniquesRestriction<Ref> = {
1224
+ /**
1225
+ * The combat techniques this combat special ability is **not** applicable to.
1226
+ * @minItems 1
1227
+ * @uniqueItems
1228
+ */
1229
+ list: Ref[];
1230
+ };
1231
+ export declare type ApplicableCombatTechniquesRaceRestriction = RaceReference;
1232
+ export declare type ApplicableCombatTechniquesLevelRestriction = {
1779
1233
  /**
1780
1234
  * The combat special ability is only applicable on a certain level.
1781
1235
  * @integer
1782
1236
  * @minimum 1
1783
1237
  */
1784
1238
  level: number;
1785
- } | {
1786
- tag: "Weapons";
1239
+ };
1240
+ export declare type ApplicableCombatTechniquesWeaponRestriction = {
1787
1241
  /**
1788
1242
  * The specific weapons this combat special ability is only applicable to.
1789
1243
  * @minItems 1
1790
1244
  * @uniqueItems
1791
1245
  */
1792
- list: {
1793
- /**
1794
- * The weapon's numeric identifier.
1795
- * @integer
1796
- * @minimum 1
1797
- */
1798
- id: number;
1799
- }[];
1246
+ list: WeaponReference[];
1800
1247
  };
1801
1248
  export declare type AdventurePointsValue = {
1802
1249
  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;
1250
+ fixed: FixedAdventurePointsValue;
1808
1251
  } | {
1809
1252
  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[];
1253
+ by_level: AdventurePointsValueByLevel;
1816
1254
  } | {
1817
- tag: "ByImprovementCost";
1818
- /**
1819
- * An entry with a selection of skills may have different costs for
1820
- * different improvement costs of the selected skill.
1821
- *
1822
- * If the select options will not have entries with improvement cost A
1823
- * (combat techniques only), you may leave out A.
1824
- */
1825
- values: {
1826
- A?: AdventurePointsSingleValue;
1827
- B: AdventurePointsSingleValue;
1828
- C: AdventurePointsSingleValue;
1829
- D: AdventurePointsSingleValue;
1830
- };
1831
- } | {
1832
- /**
1833
- * Used if AP value is defined by the selected option(s) or special rules.
1834
- */
1835
1255
  tag: "Indefinite";
1836
1256
  };
1257
+ /**
1258
+ * A fixed adventure points value. If the entry has levels, this is the cost per
1259
+ * level as well.
1260
+ */
1261
+ export declare type FixedAdventurePointsValue = AdventurePointsSingleValue;
1262
+ /**
1263
+ * An entry with levels may have different costs for each level. The length of
1264
+ * the list must match the amount of levels the special ability has.
1265
+ * @minItems 2
1266
+ */
1267
+ export declare type AdventurePointsValueByLevel = AdventurePointsSingleValue[];
1837
1268
  /**
1838
1269
  * A single adventure points value.
1839
1270
  * @integer
1840
1271
  * @minimum 0
1841
1272
  */
1842
1273
  export declare type AdventurePointsSingleValue = number;
1843
- export {};