optolith-database-schema 0.2.4 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (518) hide show
  1. package/CHANGELOG.md +64 -0
  2. package/lib/config.d.ts +302 -250
  3. package/lib/config.js +302 -250
  4. package/lib/main.d.ts +3 -2
  5. package/lib/main.js +1 -1
  6. package/lib/types/Advantage.d.ts +23 -25
  7. package/lib/types/AnimalDisease.d.ts +18 -212
  8. package/lib/types/AnimalType.d.ts +9 -13
  9. package/lib/types/ArcaneBardTradition.d.ts +3 -27
  10. package/lib/types/ArcaneDancerTradition.d.ts +3 -27
  11. package/lib/types/Aspect.d.ts +14 -19
  12. package/lib/types/Attribute.d.ts +17 -23
  13. package/lib/types/Blessing.d.ts +81 -83
  14. package/lib/types/Cantrip.d.ts +132 -161
  15. package/lib/types/Ceremony.d.ts +55 -88
  16. package/lib/types/CombatTechnique_Close.d.ts +30 -39
  17. package/lib/types/CombatTechnique_Ranged.d.ts +28 -26
  18. package/lib/types/Condition.d.ts +18 -31
  19. package/lib/types/Continent.d.ts +9 -13
  20. package/lib/types/Culture.d.ts +164 -290
  21. package/lib/types/Culture.js +38 -0
  22. package/lib/types/DerivedCharacteristic.d.ts +4 -10
  23. package/lib/types/Disadvantage.d.ts +20 -24
  24. package/lib/types/Disease.d.ts +5 -140
  25. package/lib/types/Element.d.ts +9 -13
  26. package/lib/types/ExperienceLevel.d.ts +3 -9
  27. package/lib/types/EyeColor.d.ts +9 -13
  28. package/lib/types/FamiliarsTrick.d.ts +201 -290
  29. package/lib/types/HairColor.d.ts +9 -13
  30. package/lib/types/Lessons_Curriculum.d.ts +77 -138
  31. package/lib/types/Lessons_Guideline.d.ts +9 -13
  32. package/lib/types/LiturgicalChant.d.ts +55 -88
  33. package/lib/types/Locale.d.ts +1 -1
  34. package/lib/types/Locale.js +1 -1
  35. package/lib/types/MetaCondition.d.ts +18 -31
  36. package/lib/types/PactCategory.d.ts +48 -62
  37. package/lib/types/Patron.d.ts +60 -76
  38. package/lib/types/Patron.js +20 -0
  39. package/lib/types/PatronCategory.d.ts +11 -21
  40. package/lib/types/PersonalityTrait.d.ts +31 -39
  41. package/lib/types/Profession.d.ts +293 -435
  42. package/lib/types/Profession.js +6 -0
  43. package/lib/types/Property.d.ts +9 -13
  44. package/lib/types/Race.d.ts +95 -192
  45. package/lib/types/Race.js +11 -0
  46. package/lib/types/Region.d.ts +9 -13
  47. package/lib/types/Ritual.d.ts +58 -83
  48. package/lib/types/Service.d.ts +19 -25
  49. package/lib/types/Service.js +5 -0
  50. package/lib/types/SexPractice.d.ts +26 -34
  51. package/lib/types/Skill.d.ts +73 -102
  52. package/lib/types/Skill.js +19 -0
  53. package/lib/types/SkillGroup.d.ts +13 -18
  54. package/lib/types/SkillModificationLevel.d.ts +72 -76
  55. package/lib/types/SocialStatus.d.ts +9 -13
  56. package/lib/types/Spell.d.ts +58 -83
  57. package/lib/types/State.d.ts +14 -20
  58. package/lib/types/Talisman.d.ts +40 -54
  59. package/lib/types/Talisman.js +8 -0
  60. package/lib/types/TargetCategory.d.ts +21 -16
  61. package/lib/types/UI.d.ts +1 -5
  62. package/lib/types/_Activatable.d.ts +646 -1227
  63. package/lib/types/_Activatable.js +44 -13
  64. package/lib/types/_ActivatableSelectOptionCategory.d.ts +359 -0
  65. package/lib/types/_ActivatableSelectOptionCategory.js +8 -0
  66. package/lib/types/_ActivatableSkill.d.ts +24 -1016
  67. package/lib/types/_ActivatableSkill.js +1 -32
  68. package/lib/types/_ActivatableSkillCastingTime.d.ts +69 -0
  69. package/lib/types/_ActivatableSkillCastingTime.js +5 -0
  70. package/lib/types/_ActivatableSkillCheckResultBased.d.ts +39 -0
  71. package/lib/types/_ActivatableSkillCheckResultBased.js +16 -0
  72. package/lib/types/_ActivatableSkillCost.d.ts +223 -0
  73. package/lib/types/{prerequisites/single/CommonSuggestedByRCPPrerequisite.js → _ActivatableSkillCost.js} +0 -0
  74. package/lib/types/_ActivatableSkillDuration.d.ts +138 -0
  75. package/lib/types/_ActivatableSkillDuration.js +13 -0
  76. package/lib/types/_ActivatableSkillEffect.d.ts +68 -0
  77. package/lib/types/{equipment/_Armor.js → _ActivatableSkillEffect.js} +0 -3
  78. package/lib/types/_ActivatableSkillRange.d.ts +107 -0
  79. package/lib/types/_ActivatableSkillRange.js +5 -0
  80. package/lib/types/_ActivatableSkillTargetCategory.d.ts +39 -0
  81. package/lib/types/_ActivatableSkillTargetCategory.js +1 -0
  82. package/lib/types/_AlternativeNames.d.ts +11 -0
  83. package/lib/types/_AlternativeNames.js +1 -0
  84. package/lib/types/_ArcaneTradition.d.ts +28 -0
  85. package/lib/types/_ArcaneTradition.js +4 -0
  86. package/lib/types/_Blessed.d.ts +22 -0
  87. package/lib/types/_Blessed.js +1 -0
  88. package/lib/types/_DiseasePoison.d.ts +114 -0
  89. package/lib/types/_DiseasePoison.js +15 -0
  90. package/lib/types/_Enhancements.d.ts +16 -20
  91. package/lib/types/_I18n.d.ts +1 -5
  92. package/lib/types/_Identifier.d.ts +32 -0
  93. package/lib/types/_Identifier.js +32 -0
  94. package/lib/types/_Influence.d.ts +27 -32
  95. package/lib/types/_LocaleMap.d.ts +10 -0
  96. package/lib/types/_LocaleMap.js +1 -0
  97. package/lib/types/_NonEmptyString.d.ts +9 -0
  98. package/lib/types/_NonEmptyString.js +1 -0
  99. package/lib/types/_Prerequisite.d.ts +61 -65
  100. package/lib/types/_ResponsiveText.d.ts +54 -0
  101. package/lib/types/_ResponsiveText.js +1 -0
  102. package/lib/types/_Sex.d.ts +4 -5
  103. package/lib/types/_Sex.js +8 -1
  104. package/lib/types/_SimpleReferences.d.ts +334 -0
  105. package/lib/types/_SimpleReferences.js +1 -0
  106. package/lib/types/_SkillCheck.d.ts +12 -20
  107. package/lib/types/_SkillCheck.js +11 -1
  108. package/lib/types/_Spellwork.d.ts +18 -0
  109. package/lib/types/_Spellwork.js +1 -0
  110. package/lib/types/equipment/EquipmentPackage.d.ts +24 -28
  111. package/lib/types/equipment/item/Alchemicum.d.ts +6 -0
  112. package/lib/types/equipment/item/Alchemicum.js +5 -0
  113. package/lib/types/equipment/item/Ammunition.d.ts +31 -0
  114. package/lib/types/equipment/item/Ammunition.js +5 -0
  115. package/lib/types/equipment/item/Animal.d.ts +18 -0
  116. package/lib/types/equipment/item/Animal.js +5 -0
  117. package/lib/types/equipment/item/AnimalCare.d.ts +48 -0
  118. package/lib/types/equipment/item/AnimalCare.js +5 -0
  119. package/lib/types/equipment/item/Armor.d.ts +185 -0
  120. package/lib/types/equipment/item/Armor.js +5 -0
  121. package/lib/types/equipment/item/BandageOrRemedy.d.ts +36 -0
  122. package/lib/types/equipment/item/BandageOrRemedy.js +5 -0
  123. package/lib/types/equipment/item/Book.d.ts +60 -0
  124. package/lib/types/equipment/item/Book.js +5 -0
  125. package/lib/types/equipment/item/CeremonialItem.d.ts +41 -0
  126. package/lib/types/equipment/item/CeremonialItem.js +5 -0
  127. package/lib/types/equipment/item/Clothes.d.ts +6 -0
  128. package/lib/types/equipment/item/Clothes.js +5 -0
  129. package/lib/types/equipment/item/Container.d.ts +6 -0
  130. package/lib/types/equipment/item/Container.js +5 -0
  131. package/lib/types/equipment/item/EquipmentOfBlessedOnes.d.ts +28 -0
  132. package/lib/types/equipment/item/EquipmentOfBlessedOnes.js +5 -0
  133. package/lib/types/equipment/item/GemOrPreciousStone.d.ts +43 -0
  134. package/lib/types/equipment/item/GemOrPreciousStone.js +5 -0
  135. package/lib/types/equipment/item/IlluminationLightSource.d.ts +62 -0
  136. package/lib/types/equipment/item/IlluminationLightSource.js +9 -0
  137. package/lib/types/equipment/item/IlluminationRefillsOrSupplies.d.ts +6 -0
  138. package/lib/types/equipment/item/IlluminationRefillsOrSupplies.js +5 -0
  139. package/lib/types/equipment/item/Jewelry.d.ts +60 -0
  140. package/lib/types/equipment/item/Jewelry.js +5 -0
  141. package/lib/types/equipment/item/Liebesspielzeug.d.ts +6 -0
  142. package/lib/types/equipment/item/Liebesspielzeug.js +5 -0
  143. package/lib/types/equipment/item/LuxuryGood.d.ts +36 -0
  144. package/lib/types/equipment/item/LuxuryGood.js +5 -0
  145. package/lib/types/equipment/item/MagicalArtifact.d.ts +39 -0
  146. package/lib/types/equipment/item/MagicalArtifact.js +5 -0
  147. package/lib/types/equipment/item/MusicalInstrument.d.ts +22 -0
  148. package/lib/types/equipment/item/MusicalInstrument.js +5 -0
  149. package/lib/types/equipment/item/OrienteeringAid.d.ts +6 -0
  150. package/lib/types/equipment/item/OrienteeringAid.js +5 -0
  151. package/lib/types/equipment/item/Poison.d.ts +165 -0
  152. package/lib/types/equipment/item/Poison.js +12 -0
  153. package/lib/types/equipment/item/RopeOrChain.d.ts +6 -0
  154. package/lib/types/equipment/item/RopeOrChain.js +5 -0
  155. package/lib/types/equipment/item/Stationary.d.ts +6 -0
  156. package/lib/types/equipment/item/Stationary.js +5 -0
  157. package/lib/types/equipment/item/ThievesTool.d.ts +6 -0
  158. package/lib/types/equipment/item/ThievesTool.js +5 -0
  159. package/lib/types/equipment/item/ToolOfTheTrade.d.ts +56 -0
  160. package/lib/types/equipment/item/ToolOfTheTrade.js +5 -0
  161. package/lib/types/equipment/item/TravelGearOrTool.d.ts +6 -0
  162. package/lib/types/equipment/item/TravelGearOrTool.js +5 -0
  163. package/lib/types/equipment/item/Vehicle.d.ts +18 -0
  164. package/lib/types/equipment/item/Vehicle.js +5 -0
  165. package/lib/types/equipment/item/Weapon.d.ts +152 -0
  166. package/lib/types/equipment/item/Weapon.js +5 -0
  167. package/lib/types/equipment/item/WeaponAccessory.d.ts +6 -0
  168. package/lib/types/equipment/item/WeaponAccessory.js +5 -0
  169. package/lib/types/equipment/item/_Item.d.ts +163 -0
  170. package/lib/types/equipment/item/_Item.js +1 -0
  171. package/lib/types/equipment/item/_MeleeWeapon.d.ts +115 -0
  172. package/lib/types/equipment/item/_MeleeWeapon.js +4 -0
  173. package/lib/types/equipment/item/_RangedWeapon.d.ts +110 -0
  174. package/lib/types/equipment/item/_RangedWeapon.js +4 -0
  175. package/lib/types/equipment/item/_Weapon.d.ts +57 -0
  176. package/lib/types/equipment/{_Weapon.js → item/_Weapon.js} +0 -3
  177. package/lib/types/equipment/item/sub/ArmorType.d.ts +36 -0
  178. package/lib/types/equipment/{ArmorType.js → item/sub/ArmorType.js} +1 -1
  179. package/lib/types/equipment/item/sub/Reach.d.ts +27 -0
  180. package/lib/types/equipment/{Reach.js → item/sub/Reach.js} +1 -1
  181. package/lib/types/magicalActions/AnimistPower.d.ts +170 -225
  182. package/lib/types/magicalActions/AnimistPower_Tribe.d.ts +9 -13
  183. package/lib/types/magicalActions/Curse.d.ts +116 -184
  184. package/lib/types/magicalActions/DominationRitual.d.ts +98 -136
  185. package/lib/types/magicalActions/ElvenMagicalSong.d.ts +79 -123
  186. package/lib/types/magicalActions/GeodeRitual.d.ts +126 -111
  187. package/lib/types/magicalActions/JesterTrick.d.ts +117 -109
  188. package/lib/types/magicalActions/MagicalDance.d.ts +71 -138
  189. package/lib/types/magicalActions/MagicalMelody.d.ts +65 -75
  190. package/lib/types/magicalActions/MagicalRune.d.ts +155 -189
  191. package/lib/types/magicalActions/ZibiljaRitual.d.ts +57 -65
  192. package/lib/types/magicalActions/_MusicTradition.d.ts +21 -13
  193. package/lib/types/magicalActions/_MusicTradition.js +10 -1
  194. package/lib/types/magicalActions/_SkillReference.d.ts +1 -1
  195. package/lib/types/prerequisites/DisplayOption.d.ts +7 -8
  196. package/lib/types/prerequisites/PrerequisiteGroups.d.ts +195 -16
  197. package/lib/types/prerequisites/single/ActivatablePrerequisite.d.ts +0 -3
  198. package/lib/types/prerequisites/single/AnimistPowerPrerequisite.d.ts +0 -1
  199. package/lib/types/prerequisites/single/CulturePrerequisite.d.ts +0 -1
  200. package/lib/types/prerequisites/single/EnhancementPrerequisite.d.ts +17 -14
  201. package/lib/types/prerequisites/single/InfluencePrerequisite.d.ts +0 -1
  202. package/lib/types/prerequisites/single/PactPrerequisite.d.ts +5 -14
  203. package/lib/types/prerequisites/single/PrimaryAttributePrerequisite.d.ts +5 -6
  204. package/lib/types/prerequisites/single/PrimaryAttributePrerequisite.js +5 -1
  205. package/lib/types/prerequisites/single/PublicationPrerequisite.d.ts +0 -1
  206. package/lib/types/prerequisites/single/RacePrerequisite.d.ts +0 -1
  207. package/lib/types/prerequisites/single/RatedPrerequisite.d.ts +32 -41
  208. package/lib/types/prerequisites/single/RulePrerequisite.d.ts +0 -1
  209. package/lib/types/prerequisites/single/SexPrerequisite.d.ts +0 -1
  210. package/lib/types/prerequisites/single/SocialStatusPrerequisite.d.ts +0 -1
  211. package/lib/types/prerequisites/single/StatePrerequisite.d.ts +0 -1
  212. package/lib/types/prerequisites/single/TextPrerequisite.d.ts +9 -14
  213. package/lib/types/prerequisites/single/TextPrerequisite.js +5 -1
  214. package/lib/types/prerequisites/single/TraditionPrerequisite.d.ts +18 -12
  215. package/lib/types/prerequisites/single/TraditionPrerequisite.js +18 -1
  216. package/lib/types/rule/CoreRule.d.ts +256 -206
  217. package/lib/types/rule/CoreRule.js +5 -0
  218. package/lib/types/rule/FocusRule.d.ts +19 -24
  219. package/lib/types/rule/FocusRule_Subject.d.ts +9 -13
  220. package/lib/types/rule/OptionalRule.d.ts +12 -35
  221. package/lib/types/rule/_Rule.d.ts +20 -0
  222. package/lib/types/rule/_Rule.js +1 -0
  223. package/lib/types/source/Publication.d.ts +39 -56
  224. package/lib/types/source/Publication.js +10 -0
  225. package/lib/types/source/_Erratum.d.ts +2 -1
  226. package/lib/types/source/_PublicationRef.d.ts +43 -37
  227. package/lib/types/specialAbility/AdvancedCombatSpecialAbility.d.ts +13 -17
  228. package/lib/types/specialAbility/AdvancedKarmaSpecialAbility.d.ts +8 -12
  229. package/lib/types/specialAbility/AdvancedMagicalSpecialAbility.d.ts +8 -12
  230. package/lib/types/specialAbility/AdvancedSkillSpecialAbility.d.ts +8 -12
  231. package/lib/types/specialAbility/AncestorGlyph.d.ts +8 -12
  232. package/lib/types/specialAbility/BlessedTradition.d.ts +95 -123
  233. package/lib/types/specialAbility/BrawlingSpecialAbility.d.ts +9 -13
  234. package/lib/types/specialAbility/CeremonialItemSpecialAbility.d.ts +9 -13
  235. package/lib/types/specialAbility/CombatSpecialAbility.d.ts +13 -17
  236. package/lib/types/specialAbility/CombatStyleSpecialAbility.d.ts +10 -18
  237. package/lib/types/specialAbility/CommandSpecialAbility.d.ts +1 -1
  238. package/lib/types/specialAbility/FamiliarSpecialAbility.d.ts +8 -12
  239. package/lib/types/specialAbility/FatePointSexSpecialAbility.d.ts +8 -12
  240. package/lib/types/specialAbility/FatePointSpecialAbility.d.ts +8 -12
  241. package/lib/types/specialAbility/GeneralSpecialAbility.d.ts +8 -12
  242. package/lib/types/specialAbility/KarmaSpecialAbility.d.ts +8 -12
  243. package/lib/types/specialAbility/LiturgicalStyleSpecialAbility.d.ts +8 -12
  244. package/lib/types/specialAbility/LycantropicGift.d.ts +8 -12
  245. package/lib/types/specialAbility/MagicStyleSpecialAbility.d.ts +8 -12
  246. package/lib/types/specialAbility/MagicalSpecialAbility.d.ts +8 -12
  247. package/lib/types/specialAbility/MagicalTradition.d.ts +38 -58
  248. package/lib/types/specialAbility/PactGift.d.ts +73 -62
  249. package/lib/types/specialAbility/PactGift.js +10 -0
  250. package/lib/types/specialAbility/ProtectiveWardingCircleSpecialAbility.d.ts +16 -23
  251. package/lib/types/specialAbility/Sermon.d.ts +8 -12
  252. package/lib/types/specialAbility/SexSpecialAbility.d.ts +8 -12
  253. package/lib/types/specialAbility/SikaryanDrainSpecialAbility.d.ts +8 -12
  254. package/lib/types/specialAbility/SkillStyleSpecialAbility.d.ts +8 -12
  255. package/lib/types/specialAbility/VampiricGift.d.ts +8 -12
  256. package/lib/types/specialAbility/Vision.d.ts +8 -12
  257. package/lib/types/specialAbility/_Tradition.d.ts +12 -0
  258. package/lib/types/specialAbility/_Tradition.js +1 -0
  259. package/lib/types/specialAbility/sub/Language.d.ts +78 -104
  260. package/lib/types/specialAbility/sub/Script.d.ts +24 -51
  261. package/lib/types/specialAbility/sub/TradeSecret.d.ts +14 -20
  262. package/lib/types/specialAbility/sub/_LanguageScript.d.ts +13 -0
  263. package/lib/types/specialAbility/sub/_LanguageScript.js +1 -0
  264. package/lib/types/traditionArtifacts/ArcaneOrbEnchantment.d.ts +20 -24
  265. package/lib/types/traditionArtifacts/AttireEnchantment.d.ts +20 -24
  266. package/lib/types/traditionArtifacts/BowlEnchantment.d.ts +20 -24
  267. package/lib/types/traditionArtifacts/CauldronEnchantment.d.ts +31 -34
  268. package/lib/types/traditionArtifacts/ChronicleEnchantment.d.ts +20 -24
  269. package/lib/types/traditionArtifacts/DaggerRitual.d.ts +45 -25
  270. package/lib/types/traditionArtifacts/FoolsHatEnchantment.d.ts +20 -24
  271. package/lib/types/traditionArtifacts/InstrumentEnchantment.d.ts +20 -24
  272. package/lib/types/traditionArtifacts/Krallenkettenzauber.d.ts +20 -24
  273. package/lib/types/traditionArtifacts/OrbEnchantment.d.ts +20 -24
  274. package/lib/types/traditionArtifacts/RingEnchantment.d.ts +20 -24
  275. package/lib/types/traditionArtifacts/SickleRitual.d.ts +20 -24
  276. package/lib/types/traditionArtifacts/SpellSwordEnchantment.d.ts +20 -24
  277. package/lib/types/traditionArtifacts/StaffEnchantment.d.ts +21 -25
  278. package/lib/types/traditionArtifacts/ToyEnchantment.d.ts +21 -25
  279. package/lib/types/traditionArtifacts/Trinkhornzauber.d.ts +20 -24
  280. package/lib/types/traditionArtifacts/WandEnchantment.d.ts +20 -24
  281. package/lib/types/traditionArtifacts/WeaponEnchantment.d.ts +19 -24
  282. package/lib/types/traditionArtifacts/sub/AnimalShape.d.ts +24 -16
  283. package/lib/types/traditionArtifacts/sub/AnimalShapePath.d.ts +9 -13
  284. package/lib/types/traditionArtifacts/sub/AnimalShapeSize.d.ts +9 -13
  285. package/lib/types/traditionArtifacts/sub/Brew.d.ts +9 -13
  286. package/lib/validation/schema.d.ts +11 -2
  287. package/lib/validation/schema.js +16 -4
  288. package/package.json +8 -7
  289. package/schema/Advantage.schema.json +49 -42
  290. package/schema/AnimalDisease.schema.json +17 -325
  291. package/schema/AnimalType.schema.json +17 -15
  292. package/schema/ArcaneBardTradition.schema.json +4 -42
  293. package/schema/ArcaneDancerTradition.schema.json +4 -42
  294. package/schema/Aspect.schema.json +21 -20
  295. package/schema/Attribute.schema.json +27 -27
  296. package/schema/Blessing.schema.json +202 -147
  297. package/schema/Cantrip.schema.json +352 -292
  298. package/schema/Ceremony.schema.json +90 -149
  299. package/schema/CombatTechnique_Close.schema.json +56 -67
  300. package/schema/CombatTechnique_Ranged.schema.json +46 -30
  301. package/schema/Condition.schema.json +46 -50
  302. package/schema/Continent.schema.json +18 -15
  303. package/schema/Culture.schema.json +324 -495
  304. package/schema/DerivedCharacteristic.schema.json +8 -8
  305. package/schema/Disadvantage.schema.json +45 -40
  306. package/schema/Disease.schema.json +7 -193
  307. package/schema/Element.schema.json +18 -15
  308. package/schema/ExperienceLevel.schema.json +5 -5
  309. package/schema/EyeColor.schema.json +17 -15
  310. package/schema/FamiliarsTrick.schema.json +491 -513
  311. package/schema/HairColor.schema.json +17 -15
  312. package/schema/Kirchenpraegung.schema.json +4 -4
  313. package/schema/Lessons_Curriculum.schema.json +234 -236
  314. package/schema/Lessons_Guideline.schema.json +17 -15
  315. package/schema/LiturgicalChant.schema.json +90 -149
  316. package/schema/Locale.schema.json +5 -5
  317. package/schema/MetaCondition.schema.json +46 -50
  318. package/schema/PactCategory.schema.json +101 -89
  319. package/schema/Patron.schema.json +151 -229
  320. package/schema/PatronCategory.schema.json +18 -27
  321. package/schema/PersonalityTrait.schema.json +50 -57
  322. package/schema/Profession.schema.json +833 -993
  323. package/schema/Property.schema.json +18 -16
  324. package/schema/Race.schema.json +170 -311
  325. package/schema/Region.schema.json +17 -15
  326. package/schema/Ritual.schema.json +111 -158
  327. package/schema/Service.schema.json +33 -51
  328. package/schema/SexPractice.schema.json +37 -39
  329. package/schema/Skill.schema.json +95 -162
  330. package/schema/SkillGroup.schema.json +23 -22
  331. package/schema/SkillModificationLevel.schema.json +93 -82
  332. package/schema/SocialStatus.schema.json +17 -15
  333. package/schema/Spell.schema.json +110 -158
  334. package/schema/State.schema.json +26 -25
  335. package/schema/Talisman.schema.json +60 -121
  336. package/schema/TargetCategory.schema.json +35 -20
  337. package/schema/UI.schema.json +830 -834
  338. package/schema/_Activatable.schema.json +1612 -2261
  339. package/schema/_ActivatableSelectOptionCategory.schema.json +1172 -0
  340. package/schema/_ActivatableSkill.schema.json +96 -1692
  341. package/schema/_ActivatableSkillCastingTime.schema.json +177 -0
  342. package/schema/_ActivatableSkillCheckResultBased.schema.json +57 -0
  343. package/schema/_ActivatableSkillCost.schema.json +448 -0
  344. package/schema/_ActivatableSkillDuration.schema.json +335 -0
  345. package/schema/_ActivatableSkillEffect.schema.json +153 -0
  346. package/schema/_ActivatableSkillRange.schema.json +241 -0
  347. package/schema/_ActivatableSkillTargetCategory.schema.json +145 -0
  348. package/schema/_AlternativeNames.schema.json +23 -0
  349. package/schema/_ArcaneTradition.schema.json +51 -0
  350. package/schema/_Blessed.schema.json +64 -0
  351. package/schema/_CommonnessRatedAdvantageDisadvantage.schema.json +2 -2
  352. package/schema/_Dice.schema.json +3 -3
  353. package/schema/_DiseasePoison.schema.json +140 -0
  354. package/schema/_Enhancements.schema.json +29 -26
  355. package/schema/_I18n.schema.json +8 -12
  356. package/schema/_Identifier.schema.json +73 -22
  357. package/schema/_ImprovementCost.schema.json +2 -2
  358. package/schema/_Influence.schema.json +48 -45
  359. package/schema/_NonEmptyString.schema.json +14 -0
  360. package/schema/_Prerequisite.schema.json +830 -651
  361. package/schema/_ResponsiveText.schema.json +66 -0
  362. package/schema/_Sex.schema.json +6 -28
  363. package/schema/_SimpleReferences.schema.json +586 -0
  364. package/schema/_SkillCheck.schema.json +10 -69
  365. package/schema/_Spellwork.schema.json +54 -0
  366. package/schema/equipment/EquipmentPackage.schema.json +37 -32
  367. package/schema/equipment/item/Alchemicum.schema.json +10 -0
  368. package/schema/equipment/item/Ammunition.schema.json +56 -0
  369. package/schema/equipment/item/Animal.schema.json +36 -0
  370. package/schema/equipment/item/AnimalCare.schema.json +124 -0
  371. package/schema/equipment/item/Armor.schema.json +309 -0
  372. package/schema/equipment/item/BandageOrRemedy.schema.json +53 -0
  373. package/schema/equipment/item/Book.schema.json +89 -0
  374. package/schema/equipment/item/CeremonialItem.schema.json +59 -0
  375. package/schema/equipment/item/Clothes.schema.json +10 -0
  376. package/schema/equipment/item/Container.schema.json +10 -0
  377. package/schema/equipment/item/EquipmentOfBlessedOnes.schema.json +46 -0
  378. package/schema/equipment/item/GemOrPreciousStone.schema.json +69 -0
  379. package/schema/equipment/item/IlluminationLightSource.schema.json +122 -0
  380. package/schema/equipment/item/IlluminationRefillsOrSupplies.schema.json +10 -0
  381. package/schema/equipment/item/Jewelry.schema.json +113 -0
  382. package/schema/equipment/item/Liebesspielzeug.schema.json +10 -0
  383. package/schema/equipment/item/LuxuryGood.schema.json +53 -0
  384. package/schema/equipment/item/MagicalArtifact.schema.json +64 -0
  385. package/schema/equipment/item/MusicalInstrument.schema.json +41 -0
  386. package/schema/equipment/item/OrienteeringAid.schema.json +10 -0
  387. package/schema/equipment/item/Poison.schema.json +369 -0
  388. package/schema/equipment/item/RopeOrChain.schema.json +10 -0
  389. package/schema/equipment/item/Stationary.schema.json +10 -0
  390. package/schema/equipment/item/ThievesTool.schema.json +10 -0
  391. package/schema/equipment/item/ToolOfTheTrade.schema.json +82 -0
  392. package/schema/equipment/item/TravelGearOrTool.schema.json +10 -0
  393. package/schema/equipment/item/Vehicle.schema.json +36 -0
  394. package/schema/equipment/item/Weapon.schema.json +265 -0
  395. package/schema/equipment/item/WeaponAccessory.schema.json +10 -0
  396. package/schema/equipment/item/_Item.schema.json +403 -0
  397. package/schema/equipment/item/_MeleeWeapon.schema.json +180 -0
  398. package/schema/equipment/item/_RangedWeapon.schema.json +186 -0
  399. package/schema/equipment/item/_Weapon.schema.json +99 -0
  400. package/schema/equipment/item/sub/ArmorType.schema.json +53 -0
  401. package/schema/equipment/{Reach.schema.json → item/sub/Reach.schema.json} +18 -16
  402. package/schema/magicalActions/AnimistPower.schema.json +427 -402
  403. package/schema/magicalActions/AnimistPower_Tribe.schema.json +17 -15
  404. package/schema/magicalActions/Curse.schema.json +293 -313
  405. package/schema/magicalActions/DominationRitual.schema.json +233 -220
  406. package/schema/magicalActions/ElvenMagicalSong.schema.json +132 -154
  407. package/schema/magicalActions/GeodeRitual.schema.json +296 -220
  408. package/schema/magicalActions/JesterTrick.schema.json +269 -198
  409. package/schema/magicalActions/MagicalDance.schema.json +147 -251
  410. package/schema/magicalActions/MagicalMelody.schema.json +129 -164
  411. package/schema/magicalActions/MagicalRune.schema.json +341 -323
  412. package/schema/magicalActions/ZibiljaRitual.schema.json +139 -112
  413. package/schema/magicalActions/_MusicTradition.schema.json +44 -14
  414. package/schema/magicalActions/_SkillReference.schema.json +4 -4
  415. package/schema/prerequisites/ConditionalPrerequisites.schema.json +3 -3
  416. package/schema/prerequisites/DisplayOption.schema.json +33 -15
  417. package/schema/prerequisites/PrerequisiteGroups.schema.json +845 -62
  418. package/schema/prerequisites/single/ActivatablePrerequisite.schema.json +13 -25
  419. package/schema/prerequisites/single/AnimistPowerPrerequisite.schema.json +4 -7
  420. package/schema/prerequisites/single/CulturePrerequisite.schema.json +4 -8
  421. package/schema/prerequisites/single/EnhancementPrerequisite.schema.json +30 -23
  422. package/schema/prerequisites/single/InfluencePrerequisite.schema.json +3 -7
  423. package/schema/prerequisites/single/PactPrerequisite.schema.json +9 -19
  424. package/schema/prerequisites/single/PrimaryAttributePrerequisite.schema.json +10 -33
  425. package/schema/prerequisites/single/PublicationPrerequisite.schema.json +3 -7
  426. package/schema/prerequisites/single/RacePrerequisite.schema.json +4 -8
  427. package/schema/prerequisites/single/RatedPrerequisite.schema.json +104 -107
  428. package/schema/prerequisites/single/RulePrerequisite.schema.json +4 -8
  429. package/schema/prerequisites/single/SexPrerequisite.schema.json +4 -8
  430. package/schema/prerequisites/single/SocialStatusPrerequisite.schema.json +3 -7
  431. package/schema/prerequisites/single/StatePrerequisite.schema.json +4 -8
  432. package/schema/prerequisites/single/TextPrerequisite.schema.json +13 -34
  433. package/schema/prerequisites/single/TraditionPrerequisite.schema.json +22 -68
  434. package/schema/rule/CoreRule.schema.json +1295 -859
  435. package/schema/rule/FocusRule.schema.json +34 -30
  436. package/schema/rule/FocusRule_Subject.schema.json +17 -15
  437. package/schema/rule/OptionalRule.schema.json +24 -56
  438. package/schema/rule/_Rule.schema.json +59 -0
  439. package/schema/source/Publication.schema.json +47 -117
  440. package/schema/source/_Erratum.schema.json +5 -6
  441. package/schema/source/_PublicationRef.schema.json +103 -59
  442. package/schema/specialAbility/AdvancedCombatSpecialAbility.schema.json +41 -38
  443. package/schema/specialAbility/AdvancedKarmaSpecialAbility.schema.json +35 -32
  444. package/schema/specialAbility/AdvancedMagicalSpecialAbility.schema.json +35 -32
  445. package/schema/specialAbility/AdvancedSkillSpecialAbility.schema.json +35 -32
  446. package/schema/specialAbility/AncestorGlyph.schema.json +33 -30
  447. package/schema/specialAbility/BlessedTradition.schema.json +251 -224
  448. package/schema/specialAbility/BrawlingSpecialAbility.schema.json +35 -32
  449. package/schema/specialAbility/CeremonialItemSpecialAbility.schema.json +36 -34
  450. package/schema/specialAbility/CombatSpecialAbility.schema.json +41 -38
  451. package/schema/specialAbility/CombatStyleSpecialAbility.schema.json +39 -61
  452. package/schema/specialAbility/CommandSpecialAbility.schema.json +16 -16
  453. package/schema/specialAbility/FamiliarSpecialAbility.schema.json +33 -30
  454. package/schema/specialAbility/FatePointSexSpecialAbility.schema.json +33 -30
  455. package/schema/specialAbility/FatePointSpecialAbility.schema.json +35 -32
  456. package/schema/specialAbility/GeneralSpecialAbility.schema.json +35 -32
  457. package/schema/specialAbility/KarmaSpecialAbility.schema.json +33 -30
  458. package/schema/specialAbility/LiturgicalStyleSpecialAbility.schema.json +36 -33
  459. package/schema/specialAbility/LycantropicGift.schema.json +33 -30
  460. package/schema/specialAbility/MagicStyleSpecialAbility.schema.json +36 -33
  461. package/schema/specialAbility/MagicalSpecialAbility.schema.json +35 -32
  462. package/schema/specialAbility/MagicalTradition.schema.json +66 -87
  463. package/schema/specialAbility/PactGift.schema.json +196 -174
  464. package/schema/specialAbility/ProtectiveWardingCircleSpecialAbility.schema.json +39 -38
  465. package/schema/specialAbility/Sermon.schema.json +33 -30
  466. package/schema/specialAbility/SexSpecialAbility.schema.json +35 -32
  467. package/schema/specialAbility/SikaryanDrainSpecialAbility.schema.json +33 -30
  468. package/schema/specialAbility/SkillStyleSpecialAbility.schema.json +34 -31
  469. package/schema/specialAbility/VampiricGift.schema.json +33 -30
  470. package/schema/specialAbility/Vision.schema.json +33 -30
  471. package/schema/specialAbility/_Tradition.schema.json +23 -0
  472. package/schema/specialAbility/sub/Language.schema.json +170 -162
  473. package/schema/specialAbility/sub/Script.schema.json +35 -72
  474. package/schema/specialAbility/sub/TradeSecret.schema.json +26 -25
  475. package/schema/specialAbility/sub/_LanguageScript.schema.json +26 -0
  476. package/schema/traditionArtifacts/ArcaneOrbEnchantment.schema.json +46 -43
  477. package/schema/traditionArtifacts/AttireEnchantment.schema.json +46 -43
  478. package/schema/traditionArtifacts/BowlEnchantment.schema.json +46 -43
  479. package/schema/traditionArtifacts/CauldronEnchantment.schema.json +63 -56
  480. package/schema/traditionArtifacts/ChronicleEnchantment.schema.json +46 -43
  481. package/schema/traditionArtifacts/DaggerRitual.schema.json +132 -43
  482. package/schema/traditionArtifacts/FoolsHatEnchantment.schema.json +46 -43
  483. package/schema/traditionArtifacts/InstrumentEnchantment.schema.json +46 -43
  484. package/schema/traditionArtifacts/Krallenkettenzauber.schema.json +46 -43
  485. package/schema/traditionArtifacts/OrbEnchantment.schema.json +46 -43
  486. package/schema/traditionArtifacts/RingEnchantment.schema.json +46 -43
  487. package/schema/traditionArtifacts/SickleRitual.schema.json +46 -43
  488. package/schema/traditionArtifacts/SpellSwordEnchantment.schema.json +46 -43
  489. package/schema/traditionArtifacts/StaffEnchantment.schema.json +47 -43
  490. package/schema/traditionArtifacts/ToyEnchantment.schema.json +47 -43
  491. package/schema/traditionArtifacts/Trinkhornzauber.schema.json +46 -43
  492. package/schema/traditionArtifacts/WandEnchantment.schema.json +46 -43
  493. package/schema/traditionArtifacts/WeaponEnchantment.schema.json +46 -50
  494. package/schema/traditionArtifacts/sub/AnimalShape.schema.json +53 -25
  495. package/schema/traditionArtifacts/sub/AnimalShapePath.schema.json +17 -15
  496. package/schema/traditionArtifacts/sub/AnimalShapeSize.schema.json +17 -15
  497. package/schema/traditionArtifacts/sub/Brew.schema.json +17 -15
  498. package/lib/types/MagicalTraditionPlaceholder.d.ts +0 -32
  499. package/lib/types/MagicalTraditionPlaceholder.js +0 -5
  500. package/lib/types/Poison.d.ts +0 -208
  501. package/lib/types/Poison.js +0 -5
  502. package/lib/types/equipment/ArmorType.d.ts +0 -31
  503. package/lib/types/equipment/Item.d.ts +0 -308
  504. package/lib/types/equipment/Item.js +0 -35
  505. package/lib/types/equipment/ItemGroup.d.ts +0 -31
  506. package/lib/types/equipment/ItemGroup.js +0 -5
  507. package/lib/types/equipment/Reach.d.ts +0 -31
  508. package/lib/types/equipment/_Armor.d.ts +0 -70
  509. package/lib/types/equipment/_Weapon.d.ts +0 -330
  510. package/lib/types/prerequisites/single/CommonSuggestedByRCPPrerequisite.d.ts +0 -3
  511. package/schema/MagicalTraditionPlaceholder.schema.json +0 -45
  512. package/schema/Poison.schema.json +0 -417
  513. package/schema/equipment/ArmorType.schema.json +0 -45
  514. package/schema/equipment/Item.schema.json +0 -621
  515. package/schema/equipment/ItemGroup.schema.json +0 -45
  516. package/schema/equipment/_Armor.schema.json +0 -125
  517. package/schema/equipment/_Weapon.schema.json +0 -664
  518. package/schema/prerequisites/single/CommonSuggestedByRCPPrerequisite.schema.json +0 -18
@@ -5,7 +5,10 @@ import { Errata } from "./source/_Erratum.js";
5
5
  import { PublicationRefs } from "./source/_PublicationRef.js";
6
6
  import { CommonnessRatedAdvantageDisadvantage } from "./_CommonnessRatedAdvantageDisadvantage.js";
7
7
  import { CombatTechniqueIdentifier, LiturgyIdentifier, MagicalActionIdentifier, RequirableSelectOptionIdentifier, SpecialAbilityIdentifier, SpellworkIdentifier } from "./_Identifier.js";
8
+ import { LocaleMap } from "./_LocaleMap.js";
9
+ import { NonEmptyString } from "./_NonEmptyString.js";
8
10
  import { ProfessionPrerequisites } from "./_Prerequisite.js";
11
+ import { CantripReference, CombatTechniqueReference, CurriculumReference, MagicalTraditionReference, SkillGroupReference, SkillReference } from "./_SimpleReferences.js";
9
12
  /**
10
13
  * @title Profession
11
14
  */
@@ -19,18 +22,7 @@ export declare type Profession = {
19
22
  /**
20
23
  * The profession group.
21
24
  */
22
- group: Group;
23
- /**
24
- * The curriculum/academy associated with this magical profession, if any.
25
- */
26
- curriculum?: {
27
- /**
28
- * The curriculum's identifier.
29
- * @integer
30
- * @minimum 1
31
- */
32
- id: number;
33
- };
25
+ group: ProfessionGroup;
34
26
  /**
35
27
  * A list of professions representing the same profession but with (slightly)
36
28
  * different stats. For example, there may be a profession in a regional
@@ -45,45 +37,82 @@ export declare type Profession = {
45
37
  * stats package, which targets the experience level *Experienced*.
46
38
  * @minItems 1
47
39
  */
48
- representations: ({
49
- tag: "Experienced";
50
- /**
51
- * The profession representation variant's identifier. An unique, increasing
52
- * integer.
53
- * @integer
54
- * @minimum 1
55
- */
56
- id: number;
57
- package: ProfessionRepresentationVariant;
58
- src: PublicationRefs;
59
- } | {
60
- tag: "ByExperienceLevel";
61
- /**
62
- * The profession representation variant's identifier. An unique, increasing
63
- * integer.
64
- * @integer
65
- * @minimum 1
66
- */
67
- id: number;
68
- packages: {
69
- /**
70
- * The experience level this profession targets. The experience level
71
- * must be unique for this representation.
72
- * @integer
73
- * @minimum 1
74
- * @maximum 7
75
- * @default 3
76
- */
77
- experience_level_id: number;
78
- package: ProfessionRepresentationVariant;
79
- }[];
80
- src: PublicationRefs;
81
- })[];
40
+ versions: ProfessionVersion[];
41
+ };
42
+ export declare type ProfessionGroup = {
43
+ tag: "Mundane";
44
+ mundane: MundaneProfessionGroup;
45
+ } | {
46
+ tag: "Magical";
47
+ magical: MagicalProfessionGroup;
48
+ } | {
49
+ tag: "Blessed";
50
+ blessed: {};
51
+ };
52
+ export declare enum MundaneProfessionGroup {
53
+ Profane = "Profane",
54
+ Fighter = "Fighter",
55
+ Religious = "Religious"
56
+ }
57
+ export declare type MagicalProfessionGroup = {
58
+ /**
59
+ * The curriculum/academy associated with this magical profession, if any.
60
+ */
61
+ curriculum?: CurriculumReference;
62
+ };
63
+ export declare type ProfessionVersion = {
64
+ tag: "Experienced";
65
+ experienced: ExperiencedProfessionPackage;
66
+ } | {
67
+ tag: "ByExperienceLevel";
68
+ by_experience_level: ProfessionPackagesForDifferentExperienceLevels;
69
+ };
70
+ export declare type ExperiencedProfessionPackage = {
71
+ /**
72
+ * The profession representation variant's identifier. An unique, increasing
73
+ * integer.
74
+ * @integer
75
+ * @minimum 1
76
+ */
77
+ id: number;
78
+ package: ProfessionPackage;
79
+ src: PublicationRefs;
80
+ /**
81
+ * All translations for the entry, identified by IETF language tag (BCP47).
82
+ */
83
+ translations: LocaleMap<ProfessionTranslation>;
84
+ };
85
+ export declare type ProfessionPackagesForDifferentExperienceLevels = {
86
+ /**
87
+ * The profession representation variant's identifier. An unique, increasing
88
+ * integer.
89
+ * @integer
90
+ * @minimum 1
91
+ */
92
+ id: number;
93
+ packages_map: ExperienceLevelDynamicProfessionPackage[];
94
+ src: PublicationRefs;
95
+ /**
96
+ * All translations for the entry, identified by IETF language tag (BCP47).
97
+ */
98
+ translations: LocaleMap<ProfessionTranslation>;
99
+ };
100
+ export declare type ExperienceLevelDynamicProfessionPackage = {
101
+ /**
102
+ * The experience level this profession targets. The experience level
103
+ * must be unique for this representation.
104
+ * @integer
105
+ * @minimum 1
106
+ * @maximum 7
107
+ * @default 3
108
+ */
109
+ experience_level_id: number;
110
+ package: ProfessionPackage;
82
111
  };
83
112
  /**
84
113
  * @title Profession Representation Variant
85
114
  */
86
- export declare type ProfessionRepresentationVariant = {
115
+ export declare type ProfessionPackage = {
87
116
  /**
88
117
  * What does the professional package cost in adventure points?
89
118
  * @integer
@@ -97,17 +126,10 @@ export declare type ProfessionRepresentationVariant = {
97
126
  */
98
127
  prerequisites?: ProfessionPrerequisites;
99
128
  /**
100
- * @minProperties 1
129
+ * In some areas, the profession package grants a loose set of stats where the
130
+ * player must choose between different options for the profession package.
101
131
  */
102
- options?: {
103
- skill_specialization?: SkillSpecializationOptions;
104
- languages_scripts?: LanguagesScriptsOptions;
105
- combat_techniques?: CombatTechniquesOptions;
106
- cantrips?: CantripsOptions;
107
- curses?: CursesOptions;
108
- terrain_knowledge?: TerrainKnowledgeOptions;
109
- skills?: SkillsOptions;
110
- };
132
+ options?: ProfessionPackageOptions;
111
133
  /**
112
134
  * Any special abilities the profession receives from the package.
113
135
  */
@@ -116,22 +138,22 @@ export declare type ProfessionRepresentationVariant = {
116
138
  * Provides ratings for the combat techniques that the hero receives from the
117
139
  * package.
118
140
  */
119
- combat_techniques?: CombatTechnique[];
141
+ combat_techniques?: CombatTechniqueRating[];
120
142
  /**
121
143
  * The skill ratings the package grants to the hero.
122
144
  */
123
- skills?: Skill[];
145
+ skills?: SkillRating[];
124
146
  /**
125
147
  * The skill ratings a magical profession receives for spells; these spells
126
148
  * are considered activated. Spells from an unfamiliar Tradition, if any, are
127
149
  * identified as such.
128
150
  */
129
- spells?: Spell[];
151
+ spells?: SpellRating[];
130
152
  /**
131
153
  * Clerical professions receive these liturgical chants at the listed skill
132
154
  * ratings. These liturgical chants are considered activated.
133
155
  */
134
- liturgical_chants?: LiturgicalChant[];
156
+ liturgical_chants?: LiturgicalChantRating[];
135
157
  /**
136
158
  * Typical advantages for the profession.
137
159
  * @minItems 1
@@ -161,67 +183,61 @@ export declare type ProfessionRepresentationVariant = {
161
183
  * a variant is optional, but there are some rare exceptions where picking a
162
184
  * variant is required.
163
185
  */
164
- variants?: {
165
- tag: "Required";
166
- /**
167
- * @minItems 2
168
- */
169
- list: ProfessionVariant[];
170
- } | {
171
- tag: "Optional";
172
- /**
173
- * @minItems 1
174
- */
175
- list: ProfessionVariant[];
176
- };
186
+ variants?: ProfessionVariants;
187
+ };
188
+ export declare type ProfessionTranslation = {
177
189
  /**
178
- * All translations for the entry, identified by IETF language tag (BCP47).
179
- * @minProperties 1
180
- */
181
- translations: {
182
- /**
183
- * @patternProperties ^[a-z]{2}-[A-Z]{2}$
184
- */
185
- [localeId: string]: {
186
- /**
187
- * Name of the basic profession.
188
- */
189
- name: Name;
190
- /**
191
- * A name addition of the profession. This will contain texts like name of
192
- * the academy or the witch circle. It is enclosed in parenthesis.
193
- */
194
- specification?: Name;
195
- /**
196
- * Typical advantages for the profession.
197
- * @minLength 1
198
- */
199
- suggested_advantages?: string;
200
- /**
201
- * Typical disadvantages for the profession.
202
- * @minLength 1
203
- */
204
- suggested_disadvantages?: string;
205
- /**
206
- * These advantages do not fit well with this profession; to be checked with
207
- * the GM before taking any of them.
208
- * @minLength 1
209
- */
210
- unsuitable_advantages?: string;
211
- /**
212
- * These disadvantages do not fit well with this profession; to be checked
213
- * with the GM before taking any of them.
214
- * @minLength 1
215
- */
216
- unsuitable_disadvantages?: string;
217
- errata?: Errata;
218
- };
219
- };
190
+ * Name of the basic profession.
191
+ */
192
+ name: ProfessionName;
193
+ /**
194
+ * A name addition of the profession. This will contain texts like name of
195
+ * the academy or the witch circle. It is enclosed in parenthesis, but the
196
+ * database entry must not contain parenthesis.
197
+ */
198
+ specification?: ProfessionName;
199
+ /**
200
+ * Typical advantages for the profession.
201
+ */
202
+ suggested_advantages?: NonEmptyString;
203
+ /**
204
+ * Typical disadvantages for the profession.
205
+ */
206
+ suggested_disadvantages?: NonEmptyString;
207
+ /**
208
+ * These advantages do not fit well with this profession; to be checked with
209
+ * the GM before taking any of them.
210
+ */
211
+ unsuitable_advantages?: NonEmptyString;
212
+ /**
213
+ * These disadvantages do not fit well with this profession; to be checked
214
+ * with the GM before taking any of them.
215
+ */
216
+ unsuitable_disadvantages?: NonEmptyString;
217
+ errata?: Errata;
218
+ };
219
+ /**
220
+ * Provides examples of variants for the profession, which may include changes
221
+ * to AP values and additional or modified skill ratings, special abilities, or
222
+ * combat techniques, as compared to the basic profession. Usually picking a
223
+ * variant is optional, but there are some rare exceptions where picking a
224
+ * variant is required.
225
+ */
226
+ export declare type ProfessionVariants = {
227
+ /**
228
+ * If the selection of a profession variant is required.
229
+ */
230
+ is_selection_required: boolean;
231
+ /**
232
+ * The list of profession variants.
233
+ * @minItems 1
234
+ */
235
+ list: ProfessionVariant[];
220
236
  };
221
237
  /**
222
238
  * @title Profession Variant
223
239
  */
224
- declare type ProfessionVariant = {
240
+ export declare type ProfessionVariant = {
225
241
  /**
226
242
  * The profession variant's identifier. An unique, increasing integer.
227
243
  * @integer
@@ -240,17 +256,9 @@ declare type ProfessionVariant = {
240
256
  */
241
257
  prerequisites?: ProfessionPrerequisites;
242
258
  /**
243
- * @minProperties 1
259
+ *
244
260
  */
245
- options?: {
246
- skill_specialization?: VariantOptionAction<SkillSpecializationOptions>;
247
- languages_scripts?: VariantOptionAction<LanguagesScriptsOptions>;
248
- combat_techniques?: VariantOptionAction<CombatTechniquesOptions>;
249
- cantrips?: VariantOptionAction<CantripsOptions>;
250
- curses?: VariantOptionAction<CursesOptions>;
251
- terrain_knowledge?: VariantOptionAction<TerrainKnowledgeOptions>;
252
- skills?: VariantOptionAction<SkillsOptions>;
253
- };
261
+ options?: ProfessionVariantPackageOptions;
254
262
  /**
255
263
  * Any special abilities the profession receives from the package variant.
256
264
  */
@@ -259,91 +267,52 @@ declare type ProfessionVariant = {
259
267
  * Provides ratings for the combat techniques that the hero receives from the
260
268
  * package variant.
261
269
  */
262
- combat_techniques?: VariantCombatTechnique[];
270
+ combat_techniques?: CombatTechniqueRating[];
263
271
  /**
264
272
  * The skill ratings the package variant grants to the hero.
265
273
  */
266
- skills?: VariantSkill[];
274
+ skills?: SkillRating[];
267
275
  /**
268
276
  * The skill ratings a magical profession variant receives for spells; these
269
277
  * spells are considered activated. Spells from an unfamiliar Tradition, if
270
278
  * any, are identified as such.
271
279
  */
272
- spells?: VariantSpell[];
280
+ spells?: SpellRating[];
273
281
  /**
274
282
  * Clerical professions receive these liturgical chants at the listed skill
275
283
  * ratings. These liturgical chants are considered activated.
276
284
  */
277
- liturgical_chants?: VariantLiturgicalChant[];
285
+ liturgical_chants?: LiturgicalChantRating[];
278
286
  /**
279
287
  * All translations for the entry, identified by IETF language tag (BCP47).
280
- * @minProperties 1
281
- */
282
- translations: {
283
- /**
284
- * @patternProperties ^[a-z]{2}-[A-Z]{2}$
285
- */
286
- [localeId: string]: {
287
- /**
288
- * Name of the profession variant.
289
- */
290
- name: Name;
291
- };
292
- };
293
- };
294
- declare type SpecialAbility = {
295
- tag: "Fixed";
296
- /**
297
- * The identifier of the combat technique to provide the rating for.
298
288
  */
299
- id: SpecialAbilityIdentifier;
300
- /**
301
- * The level of the received special ability.
302
- * @integer
303
- * @minimum 1
304
- */
305
- level?: number;
289
+ translations: LocaleMap<ProfessionVariantTranslation>;
290
+ };
291
+ export declare type ProfessionVariantTranslation = {
306
292
  /**
307
- * Received select options. Order is important. Typically, you only need the
308
- * first array index, though.
309
- * @minItems 1
293
+ * Name of the profession variant.
310
294
  */
311
- options?: RequirableSelectOptionIdentifier[];
295
+ name: ProfessionName;
296
+ };
297
+ export declare type SpecialAbility = {
298
+ tag: "Fixed";
299
+ fixed: FixedSpecialAbility;
312
300
  } | {
313
301
  tag: "Selection";
302
+ selection: SpecialAbilitySelection;
303
+ };
304
+ export declare type FixedSpecialAbility = SpecialAbilityDefinition;
305
+ export declare type SpecialAbilitySelection = {
314
306
  /**
315
307
  * @minItems 2
316
308
  */
317
- options: {
318
- /**
319
- * The identifier of the combat technique to provide the rating for.
320
- */
321
- id: SpecialAbilityIdentifier;
322
- /**
323
- * The level of the received special ability.
324
- * @integer
325
- * @minimum 1
326
- */
327
- level?: number;
328
- /**
329
- * Received select options. Order is important. Typically, you only need the
330
- * first array index, though.
331
- * @minItems 1
332
- */
333
- options?: RequirableSelectOptionIdentifier[];
334
- }[];
335
- };
336
- declare type VariantSpecialAbility = {
337
- tag: "Fixed";
309
+ options: SpecialAbilityDefinition[];
310
+ };
311
+ export declare type SpecialAbilityDefinition = {
338
312
  /**
339
313
  * The identifier of the combat technique to provide the rating for.
340
314
  */
341
315
  id: SpecialAbilityIdentifier;
342
- /**
343
- * if set to `false`, if the entry is granted by the basic package, it is
344
- * removed.
345
- */
346
- active?: false;
347
316
  /**
348
317
  * The level of the received special ability.
349
318
  * @integer
@@ -356,76 +325,50 @@ declare type VariantSpecialAbility = {
356
325
  * @minItems 1
357
326
  */
358
327
  options?: RequirableSelectOptionIdentifier[];
328
+ };
329
+ export declare type VariantSpecialAbility = {
330
+ tag: "Fixed";
331
+ fixed: FixedVariantSpecialAbility;
359
332
  } | {
360
333
  tag: "Selection";
334
+ selection: VariantSpecialAbilitySelection;
335
+ };
336
+ export declare type FixedVariantSpecialAbility = SpecialAbilityDefinition & {
361
337
  /**
362
338
  * if set to `false`, if the selection is granted by the basic package, it
363
339
  * is removed.
364
340
  */
365
341
  active?: false;
342
+ };
343
+ export declare type VariantSpecialAbilitySelection = {
366
344
  /**
367
- * @minItems 2
368
- */
369
- options: {
370
- /**
371
- * The identifier of the combat technique to provide the rating for.
372
- */
373
- id: SpecialAbilityIdentifier;
374
- /**
375
- * The level of the received special ability.
376
- * @integer
377
- * @minimum 1
378
- */
379
- level?: number;
380
- /**
381
- * Received select options. Order is important. Typically, you only need the
382
- * first array index, though.
383
- * @minItems 1
384
- */
385
- options?: RequirableSelectOptionIdentifier[];
386
- }[];
387
- };
388
- declare type CombatTechnique = {
389
- /**
390
- * The identifier of the combat technique to provide the rating for.
345
+ * if set to `false`, if the selection is granted by the basic package, it
346
+ * is removed.
391
347
  */
392
- id: CombatTechniqueIdentifier;
348
+ active?: false;
393
349
  /**
394
- * The rating provided for the combat technique.
395
- * @integer
396
- * @minimum 7
350
+ * @minItems 2
397
351
  */
398
- rating: number;
352
+ options: SpecialAbilityDefinition[];
399
353
  };
400
- declare type VariantCombatTechnique = {
354
+ export declare type CombatTechniqueRating = {
401
355
  /**
402
356
  * The identifier of the combat technique to provide the rating for.
403
357
  */
404
358
  id: CombatTechniqueIdentifier;
405
359
  /**
406
- * The rating provided for the combat technique. It overrides the basic
407
- * package's rating.
408
- * @integer
409
- * @minimum 6
410
- */
411
- rating: number;
412
- };
413
- declare type Skill = {
414
- /**
415
- * The identifier of the skill to provide the rating for.
416
- * @integer
417
- * @minimum 1
418
- * @maximum 59
419
- */
420
- id: number;
421
- /**
422
- * The rating provided for the skill.
360
+ * The rating bonus provided for the combat technique. If used in a profession
361
+ * variant, it can also be used to lower the bonus of the base profession.
362
+ *
363
+ * **Note:** This is a rating *bonus*, so it will be *added* to the default
364
+ * value of 6.
423
365
  * @integer
424
- * @minimum 1
366
+ * @minimum -6
367
+ * @maximum 6
425
368
  */
426
369
  rating: number;
427
370
  };
428
- declare type VariantSkill = {
371
+ export declare type SkillRating = {
429
372
  /**
430
373
  * The identifier of the skill to provide the rating for.
431
374
  * @integer
@@ -434,68 +377,39 @@ declare type VariantSkill = {
434
377
  */
435
378
  id: number;
436
379
  /**
437
- * The rating provided for the skill. It overrides the basic package's rating.
380
+ * The rating bonus provided for the skill. If used in a profession variant,
381
+ * it can also be used to lower the bonus of the base profession
438
382
  * @integer
439
- * @minimum 0
383
+ * @minimum -8
384
+ * @maximum 8
440
385
  */
441
386
  rating: number;
442
387
  };
443
- declare type Spell = {
444
- tag: "Fixed";
388
+ export declare type SpellRating = {
445
389
  /**
446
- * The identifier of the spell to provide the rating for.
447
- */
448
- id: SpellIdentifier;
449
- /**
450
- * The rating provided for the spell.
451
- * @integer
452
- * @minimum 1
453
- */
454
- rating: number;
455
- } | {
456
- tag: "Selection";
457
- /**
458
- * The identifiers of the spells to choose from to provide the rating for.
459
- * @minItems 2
390
+ * The identifier(s) of the spell(s) to choose from to provide the rating for.
391
+ * If multiple spells are provided, they must all have the same improvement
392
+ * cost.
393
+ * @minItems 1
460
394
  */
461
395
  id: SpellIdentifier[];
462
396
  /**
463
- * The rating provided for the selected spell.
397
+ * The rating bonus provided for the (selected) spell. If used in a profession
398
+ * variant, it can also be used to lower the bonus of the base profession.
464
399
  * @integer
465
- * @minimum 1
400
+ * @minimum -10
401
+ * @maximum 10
466
402
  */
467
403
  rating: number;
468
404
  };
469
- declare type VariantSpell = {
470
- tag: "Fixed";
471
- /**
472
- * The identifier of the spell to provide the rating for.
473
- */
474
- id: SpellIdentifier;
475
- /**
476
- * The rating provided for the spell. It overrides the basic package's
477
- * rating.
478
- * @integer
479
- * @minimum 0
480
- */
481
- rating: number;
405
+ export declare type SpellIdentifier = {
406
+ tag: "Spellwork";
407
+ spellwork: ProfessionSpellworkIdentifier;
482
408
  } | {
483
- tag: "Selection";
484
- /**
485
- * The identifiers of the spells to choose from to provide the rating for.
486
- * @minItems 2
487
- */
488
- id: SpellIdentifier[];
489
- /**
490
- * The rating provided for the selected spell. It overrides the basic
491
- * package's rating.
492
- * @integer
493
- * @minimum 0
494
- */
495
- rating: number;
409
+ tag: "MagicalAction";
410
+ magical_action: ProfessionMagicalActionIdentifier;
496
411
  };
497
- declare type SpellIdentifier = {
498
- tag: "Spellwork";
412
+ export declare type ProfessionSpellworkIdentifier = {
499
413
  /**
500
414
  * The identifier of the spell to provide the rating for.
501
415
  */
@@ -507,122 +421,93 @@ declare type SpellIdentifier = {
507
421
  * magical traditions are required and the spell is available to multiple
508
422
  * of them.
509
423
  */
510
- tradition?: {
511
- /**
512
- * The unfamiliar or ambiguous magical tradition's identifier.
513
- */
514
- id: number;
515
- };
516
- } | {
517
- tag: "MagicalAction";
424
+ tradition?: MagicalTraditionReference;
425
+ };
426
+ export declare type ProfessionMagicalActionIdentifier = {
518
427
  /**
519
428
  * The identifier of the magical action to provide the rating for.
520
429
  */
521
430
  id: MagicalActionIdentifier;
522
431
  };
523
- declare type LiturgicalChant = {
524
- tag: "Fixed";
525
- /**
526
- * The identifier of the liturgical chant to provide the rating for.
527
- */
528
- id: LiturgyIdentifier;
529
- /**
530
- * The rating provided for the liturgical chant.
531
- * @integer
532
- * @minimum 1
533
- */
534
- rating: number;
535
- } | {
536
- tag: "Selection";
432
+ export declare type LiturgicalChantRating = {
537
433
  /**
538
- * The identifiers of the liturgical chants to choose from to provide the
539
- * rating for.
540
- * @minItems 2
434
+ * The identifier(s) of the liturgical chant(s) to choose from to provide
435
+ * the rating for. If multiple liturgical chants are provided, they must all
436
+ * have the same improvement cost.
437
+ * @minItems 1
541
438
  */
542
439
  id: LiturgyIdentifier[];
543
440
  /**
544
- * The rating provided for the selected liturgical chant.
441
+ * The rating bonus provided for the selected liturgical chant. If used in a
442
+ * profession variant, it can also be used to lower the bonus of the base
443
+ * profession.
545
444
  * @integer
546
- * @minimum 1
445
+ * @minimum -10
446
+ * @maximum 10
547
447
  */
548
448
  rating: number;
549
449
  };
550
- declare type VariantLiturgicalChant = {
551
- tag: "Fixed";
552
- /**
553
- * The identifier of the liturgical chant to provide the rating for.
554
- */
555
- id: LiturgyIdentifier;
556
- /**
557
- * The rating provided for the liturgical chant. It overrides the basic
558
- * package's rating.
559
- * @integer
560
- * @minimum 0
561
- */
562
- rating: number;
563
- } | {
564
- tag: "Selection";
565
- /**
566
- * The identifiers of the liturgical chants to choose from to provide the
567
- * rating for.
568
- * @minItems 2
569
- */
570
- id: LiturgyIdentifier[];
571
- /**
572
- * The rating provided for the selected liturgical chant. It overrides the
573
- * basic package's rating.
574
- * @integer
575
- * @minimum 0
576
- */
577
- rating: number;
450
+ /**
451
+ * In some areas, the profession package grants a loose set of stats where the
452
+ * player must choose between different options for the profession package.
453
+ * @minProperties 1
454
+ */
455
+ export declare type ProfessionPackageOptions = {
456
+ skill_specialization?: SkillSpecializationOptions;
457
+ languages_scripts?: LanguagesScriptsOptions;
458
+ combat_techniques?: CombatTechniquesOptions;
459
+ cantrips?: CantripsOptions;
460
+ curses?: CursesOptions;
461
+ terrain_knowledge?: TerrainKnowledgeOptions;
462
+ skills?: SkillsOptions;
578
463
  };
579
- declare type VariantOptionAction<T> = {
464
+ /**
465
+ * In some areas, the profession package grants a loose set of stats where the
466
+ * player must choose between different options for the profession package. The
467
+ * variant may override or remove those options.
468
+ * @minProperties 1
469
+ */
470
+ export declare type ProfessionVariantPackageOptions = {
471
+ skill_specialization?: VariantOptionAction<SkillSpecializationOptions>;
472
+ languages_scripts?: VariantOptionAction<LanguagesScriptsOptions>;
473
+ combat_techniques?: VariantOptionAction<CombatTechniquesOptions>;
474
+ cantrips?: VariantOptionAction<CantripsOptions>;
475
+ curses?: VariantOptionAction<CursesOptions>;
476
+ terrain_knowledge?: VariantOptionAction<TerrainKnowledgeOptions>;
477
+ skills?: VariantOptionAction<SkillsOptions>;
478
+ };
479
+ export declare type VariantOptionAction<T> = {
580
480
  tag: "Remove";
481
+ remove: {};
581
482
  } | {
582
483
  tag: "Override";
583
- value: T;
484
+ override: T;
584
485
  };
585
486
  /**
586
487
  * Select an application from a skill or from one of a list of skills where you
587
488
  * get a skill specialization for. You can also specify a skill groups from
588
489
  * which you can choose a skill.
589
490
  */
590
- declare type SkillSpecializationOptions = {
491
+ export declare type SkillSpecializationOptions = {
591
492
  tag: "Single";
592
- /**
593
- * The referenced skill's identifier.
594
- * @integer
595
- * @minimum 1
596
- */
597
- id: number;
598
- } | {
599
- tag: "Selection";
600
- /**
601
- * Possible skills to get a skill specialization for.
602
- * @minItems 2
603
- */
604
- options: {
605
- /**
606
- * The referenced skill's identifier.
607
- * @integer
608
- * @minimum 1
609
- */
610
- id: number;
611
- }[];
493
+ single: SingleSkillSpecializationOption;
612
494
  } | {
613
495
  tag: "Group";
496
+ group: SkillGroupSkillSpecializationOption;
497
+ };
498
+ export declare type SingleSkillSpecializationOption = {
614
499
  /**
615
- * The referenced skill group's identifier.
616
- * @integer
617
- * @minimum 1
618
- * @maximum 5
500
+ * Possible skills to get a skill specialization for.
501
+ * @minItems 1
502
+ * @uniqueItems
619
503
  */
620
- id: number;
504
+ options: SkillReference[];
621
505
  };
506
+ export declare type SkillGroupSkillSpecializationOption = SkillGroupReference;
622
507
  /**
623
508
  * Buy languages and scripts for a specific amount of AP.
624
509
  */
625
- declare type LanguagesScriptsOptions = {
510
+ export declare type LanguagesScriptsOptions = {
626
511
  /**
627
512
  * The AP value you can buy languages and scripts for.
628
513
  * @integer
@@ -634,49 +519,50 @@ declare type LanguagesScriptsOptions = {
634
519
  /**
635
520
  * Select one or more combat techniques you get a CtR bonus for.
636
521
  */
637
- declare type CombatTechniquesOptions = {
522
+ export declare type CombatTechniquesOptions = {
638
523
  /**
639
524
  * Specify the number of combat techniques that can be selected so that they
640
525
  * get increased to a specific CtR. There can be multiple selections with
641
526
  * different CtRs.
642
527
  * @minItems 1
643
528
  */
644
- fixed: {
645
- /**
646
- * The number of selectable combat techniques.
647
- * @integer
648
- * @minimum 1
649
- */
650
- number: number;
651
- /**
652
- * The rating provided for the selected combat technique(s).
653
- * @integer
654
- * @minimum 7
655
- */
656
- rating: number;
657
- }[];
529
+ fixed: RatingForCombatTechniquesNumber[];
658
530
  /**
659
531
  * Define if after the fixed selections the remaining unselected combat
660
- * techniques will receive a certain rating as well.
532
+ * techniques will receive a certain rating bonus as well.
661
533
  * @integer
662
- * @minimum 7
534
+ * @minimum 1
535
+ * @maximum 6
663
536
  */
664
537
  rest_rating?: number;
665
538
  /**
666
539
  * The list of combat techniques to choose from.
667
540
  * @minItems 2
668
541
  */
669
- options: {
670
- /**
671
- * The combat technique's identifier.
672
- */
673
- id: CombatTechniqueIdentifier;
674
- }[];
542
+ options: CombatTechniqueReference[];
543
+ };
544
+ export declare type RatingForCombatTechniquesNumber = {
545
+ /**
546
+ * The number of selectable combat techniques.
547
+ * @integer
548
+ * @minimum 1
549
+ */
550
+ number: number;
551
+ /**
552
+ * The rating bonus provided for the selected combat technique(s).
553
+ *
554
+ * **Note:** This is a rating *bonus*, so it will be *added* to the default
555
+ * value of 6.
556
+ * @integer
557
+ * @minimum 1
558
+ * @maximum 6
559
+ */
560
+ rating: number;
675
561
  };
676
562
  /**
677
563
  * Select one or more cantrips you receive.
678
564
  */
679
- declare type CantripsOptions = {
565
+ export declare type CantripsOptions = {
680
566
  /**
681
567
  * The number of selectable cantrips.
682
568
  * @integer
@@ -687,19 +573,12 @@ declare type CantripsOptions = {
687
573
  * The list of cantrips to choose from.
688
574
  * @minItems 2
689
575
  */
690
- options: {
691
- /**
692
- * The cantrip's identifier.
693
- * @integer
694
- * @minimum 1
695
- */
696
- id: number;
697
- }[];
576
+ options: CantripReference[];
698
577
  };
699
578
  /**
700
579
  * Buy curses for a specific amount of AP.
701
580
  */
702
- declare type CursesOptions = {
581
+ export declare type CursesOptions = {
703
582
  /**
704
583
  * The AP value you can buy curses for.
705
584
  * @integer
@@ -711,32 +590,30 @@ declare type CursesOptions = {
711
590
  /**
712
591
  * Select one of a list of possible terrain knowledges
713
592
  */
714
- declare type TerrainKnowledgeOptions = {
593
+ export declare type TerrainKnowledgeOptions = {
715
594
  /**
716
595
  * The list of possible terrain knowledges.
717
596
  * @minItems 2
718
597
  */
719
- options: {
720
- /**
721
- * The terrain knowledge option's identifier.
722
- * @integer
723
- * @minimum 1
724
- * @maximum 10
725
- */
726
- id: number;
727
- }[];
598
+ options: TerrainKnowledgeOptionReference[];
599
+ };
600
+ export declare type TerrainKnowledgeOptionReference = {
601
+ /**
602
+ * The terrain knowledge option's identifier.
603
+ * @integer
604
+ * @minimum 1
605
+ * @maximum 10
606
+ */
607
+ id: number;
728
608
  };
729
609
  /**
730
610
  * Buy skills for a specific amount of AP.
731
611
  */
732
- declare type SkillsOptions = {
612
+ export declare type SkillsOptions = {
733
613
  /**
734
614
  * If specified, you may only choose from skills of the specified group.
735
- * @integer
736
- * @minimum 1
737
- * @maximum 1
738
615
  */
739
- group_id?: number;
616
+ group?: SkillGroupReference;
740
617
  /**
741
618
  * The AP value you can buy skills for.
742
619
  * @integer
@@ -747,7 +624,7 @@ declare type SkillsOptions = {
747
624
  /**
748
625
  * The name of the profession that may have sex-specific names.
749
626
  */
750
- declare type Name = NonEmptyString | {
627
+ export declare type ProfessionName = NonEmptyString | {
751
628
  /**
752
629
  * The name from the source publication.
753
630
  */
@@ -761,23 +638,4 @@ declare type Name = NonEmptyString | {
761
638
  */
762
639
  female: NonEmptyString;
763
640
  };
764
- declare type Group = {
765
- tag: "Mundane";
766
- sub: {
767
- tag: "Profane";
768
- } | {
769
- tag: "Fighter";
770
- } | {
771
- tag: "Religious";
772
- };
773
- } | {
774
- tag: "Magical";
775
- } | {
776
- tag: "Blessed";
777
- };
778
- /**
779
- * @minLength 1
780
- */
781
- declare type NonEmptyString = string;
782
641
  export declare const validateSchema: import("../validation/schema.js").TypeValidator<Profession>;
783
- export {};