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,12 @@
1
+ /**
2
+ * @main Curriculum
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 const config = {
8
+ name: "Curriculum",
9
+ id: getFIlenamePrefixAsNumericId,
10
+ integrityValidator: todo("Curriculum"),
11
+ schemaValidator: createSchemaValidator(import.meta.url),
12
+ };
@@ -0,0 +1,34 @@
1
+ /**
2
+ * @main Guideline
3
+ */
4
+ import { TypeConfig } from "../typeConfig.js";
5
+ import { LocaleMap } from "./_LocaleMap.js";
6
+ import { NonEmptyString } from "./_NonEmptyString.js";
7
+ /**
8
+ * @title Guideline
9
+ */
10
+ export type Guideline = {
11
+ /**
12
+ * The guideline's identifier. An unique, increasing integer.
13
+ * @integer
14
+ * @minimum 1
15
+ */
16
+ id: number;
17
+ /**
18
+ * Maximum number of spells that can be exchanged.
19
+ * @integer
20
+ * @minimum 0
21
+ */
22
+ spellwork_changes_allowed: number;
23
+ /**
24
+ * All translations for the entry, identified by IETF language tag (BCP47).
25
+ */
26
+ translations: LocaleMap<GuidelineTranslation>;
27
+ };
28
+ export type GuidelineTranslation = {
29
+ /**
30
+ * The guideline name.
31
+ */
32
+ name: NonEmptyString;
33
+ };
34
+ export declare const config: TypeConfig<Guideline>;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @main Guideline
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 const config = {
8
+ name: "Guideline",
9
+ id: getFIlenamePrefixAsNumericId,
10
+ integrityValidator: todo("Guideline"),
11
+ schemaValidator: createSchemaValidator(import.meta.url),
12
+ };
@@ -0,0 +1,113 @@
1
+ /**
2
+ * @main LiturgicalChant
3
+ */
4
+ import { TypeConfig } from "../typeConfig.js";
5
+ import { FastPerformanceParameters } from "./_ActivatableSkill.js";
6
+ import { Effect } from "./_ActivatableSkillEffect.js";
7
+ import { TargetCategory } from "./_ActivatableSkillTargetCategory.js";
8
+ import { SkillTradition } from "./_Blessed.js";
9
+ import { Enhancements } from "./_Enhancements.js";
10
+ import { ImprovementCost } from "./_ImprovementCost.js";
11
+ import { LocaleMap } from "./_LocaleMap.js";
12
+ import { NonEmptyString } from "./_NonEmptyString.js";
13
+ import { LiturgyPrerequisites } from "./_Prerequisite.js";
14
+ import { SkillCheck, SkillCheckPenalty } from "./_SkillCheck.js";
15
+ import { Errata } from "./source/_Erratum.js";
16
+ import { PublicationRefs } from "./source/_PublicationRef.js";
17
+ /**
18
+ * @title Liturgical Chant
19
+ */
20
+ export type LiturgicalChant = {
21
+ /**
22
+ * The liturgical chant's identifier. An unique, increasing integer.
23
+ * @integer
24
+ * @minimum 1
25
+ */
26
+ id: number;
27
+ /**
28
+ * Lists the linked three attributes used to make a skill check.
29
+ */
30
+ check: SkillCheck;
31
+ /**
32
+ * In some cases, the target's Spirit or Toughness is applied as a penalty.
33
+ */
34
+ check_penalty?: SkillCheckPenalty;
35
+ /**
36
+ * Measurable parameters of a liturgical chant.
37
+ */
38
+ parameters: FastPerformanceParameters;
39
+ /**
40
+ * The target category – the kind of creature or object – the skill affects.
41
+ */
42
+ target: TargetCategory;
43
+ /**
44
+ * The tradition(s) the liturgical chant is available for. Note that general
45
+ * aspects do not have an associated tradition and thus need to be defined in
46
+ * a special way.
47
+ * @minItems 1
48
+ */
49
+ traditions: SkillTradition[];
50
+ /**
51
+ * States which column is used to improve the skill.
52
+ */
53
+ improvement_cost: ImprovementCost;
54
+ prerequisites?: LiturgyPrerequisites;
55
+ src: PublicationRefs;
56
+ /**
57
+ * All translations for the entry, identified by IETF language tag (BCP47).
58
+ */
59
+ translations: LocaleMap<LiturgicalChantTranslation>;
60
+ enhancements?: Enhancements;
61
+ };
62
+ export type LiturgicalChantTranslation = {
63
+ /**
64
+ * The name of the liturgical chant.
65
+ */
66
+ name: NonEmptyString;
67
+ /**
68
+ * A compressed name of the liturgical chant for use in small areas (e.g.
69
+ * on character sheet). Should only be defined if the `name` does not fit
70
+ * on character sheet.
71
+ */
72
+ name_compressed?: NonEmptyString;
73
+ /**
74
+ * The effect description may be either a plain text or a text that is
75
+ * divided by a list of effects for each quality level. It may also be a
76
+ * list for each two quality levels.
77
+ */
78
+ effect: Effect;
79
+ /**
80
+ * @deprecated
81
+ */
82
+ casting_time: {
83
+ full: string;
84
+ abbr: string;
85
+ };
86
+ /**
87
+ * @deprecated
88
+ */
89
+ cost: {
90
+ full: string;
91
+ abbr: string;
92
+ };
93
+ /**
94
+ * @deprecated
95
+ */
96
+ range: {
97
+ full: string;
98
+ abbr: string;
99
+ };
100
+ /**
101
+ * @deprecated
102
+ */
103
+ duration: {
104
+ full: string;
105
+ abbr: string;
106
+ };
107
+ /**
108
+ * @deprecated
109
+ */
110
+ target: string;
111
+ errata?: Errata;
112
+ };
113
+ export declare const config: TypeConfig<LiturgicalChant>;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @main LiturgicalChant
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 const config = {
8
+ name: "LiturgicalChant",
9
+ id: getFIlenamePrefixAsNumericId,
10
+ integrityValidator: todo("LiturgicalChant"),
11
+ schemaValidator: createSchemaValidator(import.meta.url),
12
+ };
@@ -0,0 +1,36 @@
1
+ /**
2
+ * @main Locale
3
+ */
4
+ import { TypeConfig } from "../typeConfig.js";
5
+ /**
6
+ * @title Supported locale
7
+ */
8
+ export type Locale = {
9
+ /**
10
+ * The locale's identifier. An IETF language tag (BCP47).
11
+ * @pattern ^[a-z]{2}-[A-Z]{2}$
12
+ */
13
+ id: string;
14
+ /**
15
+ * Name of the language in it's language.
16
+ * @minLength 1
17
+ * @example "Deutsch"
18
+ * @example "English"
19
+ * @example "Nederlands"
20
+ */
21
+ name: string;
22
+ /**
23
+ * Region in which the language is spoken in it's language.
24
+ * @minLength 1
25
+ * @example "Deutschland"
26
+ * @example "United States"
27
+ * @example "België"
28
+ */
29
+ region: string;
30
+ /**
31
+ * The language is not (fully) implemented and thus needs to be excluded from
32
+ * stable releases.
33
+ */
34
+ is_missing_implementation?: true;
35
+ };
36
+ export declare const config: TypeConfig<Locale, string>;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @main Locale
3
+ */
4
+ import { Result } from "../helpers/result.js";
5
+ import { createSchemaValidator } from "../validation/builders/schema.js";
6
+ import { getFilenameAsStringId } from "../validation/filename.js";
7
+ export const config = {
8
+ name: "Locale",
9
+ id: getFilenameAsStringId,
10
+ integrityValidator: () => Result.ok(undefined),
11
+ schemaValidator: createSchemaValidator(import.meta.url, { ignoreFileNamePattern: true })
12
+ };
@@ -0,0 +1,43 @@
1
+ /**
2
+ * @main MetaCondition
3
+ */
4
+ import { TypeConfig } from "../typeConfig.js";
5
+ import { LocaleMap } from "./_LocaleMap.js";
6
+ import { NonEmptyMarkdown, NonEmptyString } from "./_NonEmptyString.js";
7
+ import { Errata } from "./source/_Erratum.js";
8
+ import { PublicationRefs } from "./source/_PublicationRef.js";
9
+ /**
10
+ * Meta Conditions are rule elements that work like conditions in the sense that
11
+ * they have four levels with different effects, but which are not explicitly
12
+ * listed as conditions.
13
+ * @title Meta Condition
14
+ */
15
+ export type MetaCondition = {
16
+ /**
17
+ * The meta condition's identifier. An unique, increasing integer.
18
+ * @integer
19
+ * @minimum 1
20
+ */
21
+ id: number;
22
+ src: PublicationRefs;
23
+ /**
24
+ * All translations for the entry, identified by IETF language tag (BCP47).
25
+ */
26
+ translations: LocaleMap<MetaConditionTranslation>;
27
+ };
28
+ export type MetaConditionTranslation = {
29
+ /**
30
+ * The meta condition's name.
31
+ */
32
+ name: NonEmptyString;
33
+ /**
34
+ * Additional rules for the meta condition, if applicable.
35
+ */
36
+ rules?: NonEmptyMarkdown;
37
+ /**
38
+ * The effects for level 1 to 4.
39
+ */
40
+ effects: [NonEmptyMarkdown, NonEmptyMarkdown, NonEmptyMarkdown, NonEmptyMarkdown];
41
+ errata?: Errata;
42
+ };
43
+ export declare const config: TypeConfig<MetaCondition>;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @main MetaCondition
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 const config = {
8
+ name: "MetaCondition",
9
+ id: getFIlenamePrefixAsNumericId,
10
+ integrityValidator: todo("MetaCondition"),
11
+ schemaValidator: createSchemaValidator(import.meta.url),
12
+ };
@@ -0,0 +1,78 @@
1
+ /**
2
+ * @main PactCategory
3
+ */
4
+ import { TypeConfig } from "../typeConfig.js";
5
+ import { LocaleMap } from "./_LocaleMap.js";
6
+ import { NonEmptyString } from "./_NonEmptyString.js";
7
+ import { Errata } from "./source/_Erratum.js";
8
+ import { PublicationRefs } from "./source/_PublicationRef.js";
9
+ /**
10
+ * @title Pact Category
11
+ */
12
+ export type PactCategory = {
13
+ /**
14
+ * The pact category's identifier. An unique, increasing integer.
15
+ * @integer
16
+ * @minimum 1
17
+ */
18
+ id: number;
19
+ /**
20
+ * Types of creatures in this category.
21
+ * @minItems 1
22
+ */
23
+ types: PactType[];
24
+ /**
25
+ * Domains in this category.
26
+ * @minItems 1
27
+ */
28
+ domains: PactDomain[];
29
+ src: PublicationRefs;
30
+ /**
31
+ * All translations for the entry, identified by IETF language tag (BCP47).
32
+ */
33
+ translations: LocaleMap<PactCategoryTranslation>;
34
+ };
35
+ export type PactCategoryTranslation = {
36
+ /**
37
+ * The name of the pact category.
38
+ */
39
+ name: NonEmptyString;
40
+ errata?: Errata;
41
+ };
42
+ export type PactType = {
43
+ /**
44
+ * The type's identifier. An unique, increasing integer.
45
+ * @integer
46
+ * @minimum 1
47
+ */
48
+ id: number;
49
+ /**
50
+ * All translations for the entry, identified by IETF language tag (BCP47).
51
+ */
52
+ translations: LocaleMap<PactTypeTranslation>;
53
+ };
54
+ export type PactTypeTranslation = {
55
+ /**
56
+ * The name of the type.
57
+ */
58
+ name: NonEmptyString;
59
+ };
60
+ export type PactDomain = {
61
+ /**
62
+ * The domain's identifier. An unique, increasing integer.
63
+ * @integer
64
+ * @minimum 1
65
+ */
66
+ id: number;
67
+ /**
68
+ * All translations for the entry, identified by IETF language tag (BCP47).
69
+ */
70
+ translations: LocaleMap<PactDomainTranslation>;
71
+ };
72
+ export type PactDomainTranslation = {
73
+ /**
74
+ * The name of the domain.
75
+ */
76
+ name: NonEmptyString;
77
+ };
78
+ export declare const config: TypeConfig<PactCategory>;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @main PactCategory
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 const config = {
8
+ name: "PactCategory",
9
+ id: getFIlenamePrefixAsNumericId,
10
+ integrityValidator: todo("PactCategory"),
11
+ schemaValidator: createSchemaValidator(import.meta.url),
12
+ };
@@ -0,0 +1,207 @@
1
+ /**
2
+ * @main Patron
3
+ */
4
+ import { TypeConfig } from "../typeConfig.js";
5
+ import { AdvantageIdentifier, AttributeIdentifier, SkillIdentifier } from "./_Identifier.js";
6
+ import { ImprovementCost } from "./_ImprovementCost.js";
7
+ import { LocaleMap } from "./_LocaleMap.js";
8
+ import { NonEmptyString } from "./_NonEmptyString.js";
9
+ import { AdvantageReference, CultureReference, DisadvantageReference, PatronCategoryReference, SkillReference, SpellworkReference } from "./_SimpleReferences.js";
10
+ /**
11
+ * @title Patron
12
+ */
13
+ export type Patron = {
14
+ /**
15
+ * The patron's identifier. An unique, increasing integer.
16
+ * @integer
17
+ * @minimum 1
18
+ */
19
+ id: number;
20
+ /**
21
+ * The patron's category.
22
+ */
23
+ category: PatronCategoryReference;
24
+ /**
25
+ * The patron-specific skills.
26
+ */
27
+ skills: [SkillReference, SkillReference, SkillReference];
28
+ /**
29
+ * The patron is only available to a certain set of cultures. It may be
30
+ * available to all, it may be available to only specific ones (intersection)
31
+ * and it may be available to all except specific ones to the listed cultures
32
+ * (difference).
33
+ */
34
+ culture: PatronCulture;
35
+ /**
36
+ * The list of cultures where patrons from this category can be the primary
37
+ * patron of.
38
+ * @uniqueItems
39
+ */
40
+ primary_patron_cultures?: CultureReference[];
41
+ /**
42
+ * The patron-specific powers. Used by animist power Animal Powers I–III and
43
+ * should only be present on animal patrons.
44
+ */
45
+ powers?: [AnimalPowersLevel1, AnimalPowersLevel2, AnimalPowersLevel3];
46
+ /**
47
+ * The patron-specific AE cost. Used by several animist forces for animal
48
+ * patrons.
49
+ * @integer
50
+ * @minimum 2
51
+ * @multipleOf 2
52
+ */
53
+ ae_cost?: number;
54
+ /**
55
+ * The patron-specific improvement cost. Used by several animist forces for
56
+ * animal patrons.
57
+ */
58
+ improvement_cost?: ImprovementCost;
59
+ /**
60
+ * The patron may grant common advantages that are taken into account during
61
+ * character creation.
62
+ *
63
+ * *Source:* Geisterwald & Knochenklippen, p. 6-7
64
+ * @minLength 1
65
+ */
66
+ common_advantages?: AdvantageReference[];
67
+ /**
68
+ * The patron may grant common disadvantages that are taken into account
69
+ * during character creation.
70
+ *
71
+ * *Source:* Geisterwald & Knochenklippen, p. 6-7
72
+ * @minLength 1
73
+ */
74
+ common_disadvantages?: DisadvantageReference[];
75
+ /**
76
+ * The animist may learn spellworks common for this patron.
77
+ *
78
+ * *Source:* Geisterwald & Knochenklippen, p. 6-7
79
+ * @minLength 1
80
+ */
81
+ common_spellworks?: SpellworkReference[];
82
+ /**
83
+ * All translations for the entry, identified by IETF language tag (BCP47).
84
+ */
85
+ translations: LocaleMap<PatronTranslation>;
86
+ };
87
+ export type PatronTranslation = {
88
+ /**
89
+ * The name of the patron.
90
+ */
91
+ name: NonEmptyString;
92
+ };
93
+ /**
94
+ * The patron cultures the patron is or is not part of. If the patron is part of
95
+ * all patron cultures, the set should be empty and the operation should be
96
+ * difference.
97
+ */
98
+ export type PatronCulture = {
99
+ set: CultureReference[];
100
+ operation: PatronCultureOperation;
101
+ };
102
+ /**
103
+ * The set operation to combine the set of all patron cultures with the
104
+ * specified set of patron cultures: If they should intersect, the patron is
105
+ * only part of the given cultures. If they should differ, the patron is only
106
+ * part of the cultures that are not given.
107
+ */
108
+ export declare enum PatronCultureOperation {
109
+ Intersection = "Intersection",
110
+ Difference = "Difference"
111
+ }
112
+ export type AdvantageAnimalPower = {
113
+ /**
114
+ * The advantage's identifier.
115
+ * @integer
116
+ * @minimum 1
117
+ */
118
+ id: AdvantageIdentifier;
119
+ /**
120
+ * It grants a higher level of the advantage.
121
+ * @integer
122
+ * @minimum 2
123
+ */
124
+ level?: number;
125
+ /**
126
+ * It grants a specific general option of the advantage.
127
+ * @integer
128
+ * @minimum 1
129
+ */
130
+ option?: number;
131
+ };
132
+ export type SkillAnimalPower = {
133
+ /**
134
+ * The skill's identifier.
135
+ * @integer
136
+ * @minimum 1
137
+ */
138
+ id: SkillIdentifier;
139
+ /**
140
+ * The points that gets added to the skill's rating.
141
+ * @integer
142
+ * @minimum 1
143
+ */
144
+ points: number;
145
+ };
146
+ export type AnimalPowerLevel1 = {
147
+ tag: "Advantage";
148
+ advantage: AdvantageAnimalPower;
149
+ } | {
150
+ tag: "Skill";
151
+ skill: SkillAnimalPower;
152
+ };
153
+ /**
154
+ * @minItems 1
155
+ */
156
+ export type AnimalPowersLevel1 = AnimalPowerLevel1[];
157
+ export type CombatAnimalPower = {
158
+ /**
159
+ * The combat value.
160
+ */
161
+ id: CombatAnimalPowerType;
162
+ /**
163
+ * The value that gets added to the combat value.
164
+ * @integer
165
+ * @minimum 1
166
+ */
167
+ value: number;
168
+ };
169
+ export declare enum CombatAnimalPowerType {
170
+ Attack = "Attack",
171
+ Parry = "Parry",
172
+ RangedCombat = "RangedCombat",
173
+ Dodge = "Dodge",
174
+ DamagePoints = "DamagePoints",
175
+ Protection = "Protection"
176
+ }
177
+ export type AnimalPowerLevel2 = {
178
+ tag: "Combat";
179
+ combat: CombatAnimalPower;
180
+ };
181
+ /**
182
+ * @minItems 1
183
+ */
184
+ export type AnimalPowersLevel2 = AnimalPowerLevel2[];
185
+ export type AttributeAnimalPower = {
186
+ /**
187
+ * The attribute's identifier.
188
+ * @integer
189
+ * @minimum 1
190
+ */
191
+ id: AttributeIdentifier;
192
+ /**
193
+ * The value that gets added to the attribute.
194
+ * @integer
195
+ * @minimum 1
196
+ */
197
+ value: number;
198
+ };
199
+ export type AnimalPowerLevel3 = {
200
+ tag: "Attribute";
201
+ attribute: AttributeAnimalPower;
202
+ };
203
+ /**
204
+ * @minItems 1
205
+ */
206
+ export type AnimalPowersLevel3 = AnimalPowerLevel3[];
207
+ export declare const config: TypeConfig<Patron>;
@@ -0,0 +1,32 @@
1
+ /**
2
+ * @main Patron
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
+ /**
8
+ * The set operation to combine the set of all patron cultures with the
9
+ * specified set of patron cultures: If they should intersect, the patron is
10
+ * only part of the given cultures. If they should differ, the patron is only
11
+ * part of the cultures that are not given.
12
+ */
13
+ export var PatronCultureOperation;
14
+ (function (PatronCultureOperation) {
15
+ PatronCultureOperation["Intersection"] = "Intersection";
16
+ PatronCultureOperation["Difference"] = "Difference";
17
+ })(PatronCultureOperation = PatronCultureOperation || (PatronCultureOperation = {}));
18
+ export var CombatAnimalPowerType;
19
+ (function (CombatAnimalPowerType) {
20
+ CombatAnimalPowerType["Attack"] = "Attack";
21
+ CombatAnimalPowerType["Parry"] = "Parry";
22
+ CombatAnimalPowerType["RangedCombat"] = "RangedCombat";
23
+ CombatAnimalPowerType["Dodge"] = "Dodge";
24
+ CombatAnimalPowerType["DamagePoints"] = "DamagePoints";
25
+ CombatAnimalPowerType["Protection"] = "Protection";
26
+ })(CombatAnimalPowerType = CombatAnimalPowerType || (CombatAnimalPowerType = {}));
27
+ export const config = {
28
+ name: "Patron",
29
+ id: getFIlenamePrefixAsNumericId,
30
+ integrityValidator: todo("Patron"),
31
+ schemaValidator: createSchemaValidator(import.meta.url),
32
+ };
@@ -0,0 +1,36 @@
1
+ /**
2
+ * @main PatronCategory
3
+ */
4
+ import { TypeConfig } from "../typeConfig.js";
5
+ import { LocaleMap } from "./_LocaleMap.js";
6
+ import { NonEmptyString } from "./_NonEmptyString.js";
7
+ import { CultureReference } from "./_SimpleReferences.js";
8
+ /**
9
+ * @title Patron Category
10
+ */
11
+ export type PatronCategory = {
12
+ /**
13
+ * The patron category's identifier. An unique, increasing integer.
14
+ * @integer
15
+ * @minimum 1
16
+ */
17
+ id: number;
18
+ /**
19
+ * The list of cultures where patrons from this category can be the primary
20
+ * patron of.
21
+ * @minItems 1
22
+ * @uniqueItems
23
+ */
24
+ primary_patron_cultures: CultureReference[];
25
+ /**
26
+ * All translations for the entry, identified by IETF language tag (BCP47).
27
+ */
28
+ translations: LocaleMap<PatronCategoryTranslation>;
29
+ };
30
+ export type PatronCategoryTranslation = {
31
+ /**
32
+ * The name of the patron category.
33
+ */
34
+ name: NonEmptyString;
35
+ };
36
+ export declare const config: TypeConfig<PatronCategory>;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @main PatronCategory
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 const config = {
8
+ name: "PatronCategory",
9
+ id: getFIlenamePrefixAsNumericId,
10
+ integrityValidator: todo("PatronCategory"),
11
+ schemaValidator: createSchemaValidator(import.meta.url),
12
+ };