optolith-database-schema 0.11.4 → 0.11.6

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