optolith-database-schema 0.17.0 → 0.18.1

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