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 +1,144 @@
1
- export {};
1
+ import { Array, Entity, Enum, EnumCase, Float, IncludeIdentifier, Integer, Object, Optional, Required, String, TypeAlias, } from "tsondb/schema/def";
2
+ import { NestedLocaleMap } from "../../Locale.js";
3
+ import { Errata } from "../../source/_Erratum.js";
4
+ import { src } from "../../source/_PublicationRef.js";
5
+ import { SecondaryArmor } from "./Armor.js";
6
+ import { ImprovisedWeapon } from "./Weapon.js";
7
+ export const DefaultItem = (singularName, pluralName) => Entity(import.meta.url, {
8
+ name: singularName,
9
+ namePlural: pluralName ?? `${singularName}s`,
10
+ type: () => Object({
11
+ cost: Required({
12
+ comment: "The cost in silverthalers.",
13
+ type: IncludeIdentifier(Cost),
14
+ }),
15
+ weight: Required({
16
+ comment: "The weight in kg.",
17
+ type: IncludeIdentifier(Weight),
18
+ }),
19
+ complexity: Optional({
20
+ comment: "The complexity of crafting the item.",
21
+ type: IncludeIdentifier(Complexity),
22
+ }),
23
+ structure_points: Required({
24
+ comment: "The structure points of the item. Use an array if the item consists of multiple components that have individual structure points.",
25
+ type: IncludeIdentifier(StructurePoints),
26
+ }),
27
+ combat_use: Optional({
28
+ comment: "The item can also be used either as an improvised weapon or as an armor, although this is not the primary use case of the item.",
29
+ type: IncludeIdentifier(CombatUse),
30
+ }),
31
+ src,
32
+ translations: DefaultItemTranslations(singularName),
33
+ }),
34
+ displayName: {},
35
+ });
36
+ export const DefaultItemTranslations = (singularName) => NestedLocaleMap(Required, `${singularName}Translation`, Object({
37
+ name: Required({
38
+ comment: "The item’s name.",
39
+ type: String({ minLength: 1 }),
40
+ }),
41
+ secondary_name: Optional({
42
+ comment: "An auxiliary name or label of the item, if available.",
43
+ type: String({ minLength: 1 }),
44
+ }),
45
+ note: Optional({
46
+ comment: "Note text.",
47
+ type: String({ minLength: 1, isMarkdown: true }),
48
+ }),
49
+ rules: Optional({
50
+ comment: "Special rules text.",
51
+ type: String({ minLength: 1, isMarkdown: true }),
52
+ }),
53
+ errata: Optional({
54
+ type: IncludeIdentifier(Errata),
55
+ }),
56
+ }));
57
+ export const CombatUse = Enum(import.meta.url, {
58
+ name: "CombatUse",
59
+ comment: "The item can also be used either as an improvised weapon or as an armor, although this is not the primary use case of the item.",
60
+ values: () => ({
61
+ Weapon: EnumCase({ type: IncludeIdentifier(ImprovisedWeapon) }),
62
+ Armor: EnumCase({ type: IncludeIdentifier(SecondaryArmor) }),
63
+ }),
64
+ });
65
+ export const StructurePoints = TypeAlias(import.meta.url, {
66
+ name: "StructurePoints",
67
+ comment: "The structure points of the item. Use an array if the item consists of multiple components that have individual structure points.",
68
+ type: () => Array(IncludeIdentifier(StructurePointsComponent), { minItems: 1 }),
69
+ });
70
+ const StructurePointsComponent = TypeAlias(import.meta.url, {
71
+ name: "StructurePointsComponent",
72
+ type: () => Object({
73
+ points: Required({
74
+ comment: "The structure points.",
75
+ type: Integer({ minimum: 1 }),
76
+ }),
77
+ }),
78
+ });
79
+ export const Cost = Enum(import.meta.url, {
80
+ name: "Cost",
81
+ comment: "The cost in silverthalers.",
82
+ values: () => ({
83
+ Free: EnumCase({ type: null }),
84
+ Various: EnumCase({ type: null }),
85
+ Invaluable: EnumCase({ type: null }),
86
+ Fixed: EnumCase({ type: IncludeIdentifier(FixedCost) }),
87
+ Range: EnumCase({ type: IncludeIdentifier(CostRange) }),
88
+ }),
89
+ });
90
+ const wrap_in_text = Required({
91
+ comment: "The cost get wrapped by this text using a placeholder in the text.",
92
+ type: String({ minLength: 1, pattern: /\{0\}/ }),
93
+ });
94
+ export const FixedCost = TypeAlias(import.meta.url, {
95
+ name: "FixedCost",
96
+ type: () => Object({
97
+ value: Required({
98
+ comment: "The cost in silverthalers.",
99
+ type: Float({ minimum: { value: 0, isExclusive: true } }),
100
+ }),
101
+ translations: NestedLocaleMap(Optional, "FixedCostTranslation", Object({
102
+ wrap_in_text,
103
+ })),
104
+ }),
105
+ });
106
+ const CostRange = TypeAlias(import.meta.url, {
107
+ name: "CostRange",
108
+ type: () => Object({
109
+ from: Required({
110
+ comment: "The lower bound of the cost in silverthalers.",
111
+ type: Float({ minimum: { value: 0, isExclusive: true } }),
112
+ }),
113
+ to: Required({
114
+ comment: "The upper bound of the cost in silverthalers.",
115
+ type: Float({ minimum: { value: 0, isExclusive: true } }),
116
+ }),
117
+ translations: NestedLocaleMap(Optional, "CostRangeTranslation", Object({
118
+ wrap_in_text,
119
+ })),
120
+ }),
121
+ });
122
+ export const Weight = TypeAlias(import.meta.url, {
123
+ name: "Weight",
124
+ comment: "The weight in kg.",
125
+ type: () => Float({ minimum: { value: 0, isExclusive: true } }),
126
+ });
127
+ export const Complexity = Enum(import.meta.url, {
128
+ name: "Complexity",
129
+ comment: "The complexity of crafting the item.",
130
+ values: () => ({
131
+ Primitive: EnumCase({ type: null }),
132
+ Simple: EnumCase({ type: null }),
133
+ Complex: EnumCase({ type: IncludeIdentifier(ComplexComplexity) }),
134
+ }),
135
+ });
136
+ const ComplexComplexity = TypeAlias(import.meta.url, {
137
+ name: "ComplexComplexity",
138
+ type: () => Object({
139
+ ap_value: Required({
140
+ comment: "The AP value for the trade secret.",
141
+ type: Integer({ minimum: 1 }),
142
+ }),
143
+ }),
144
+ });
@@ -1,108 +1,40 @@
1
1
  /**
2
2
  * Auxiliary types for melee weapons.
3
3
  */
4
- import { Dice } from "../../_Dice.js";
5
- import { ReachIdentifier } from "../../_Identifier.js";
6
- import { CloseCombatTechniqueReference } from "../../_SimpleReferences.js";
7
- import { Length, PrimaryAttributeDamageThreshold } from "./_Weapon.js";
8
- /**
9
- * The AT modifier.
10
- * @integer
11
- */
12
- export type AttackModifier = number;
13
- /**
14
- * The PA modifier.
15
- * @integer
16
- */
17
- export type ParryModifier = number;
18
- /**
19
- * The reach of the weapon.
20
- */
21
- export type Reach = ReachIdentifier;
22
- /**
23
- * The damage of a weapon consists of a random part using dice and an optional
24
- * flat part.
25
- */
26
- export type MeleeDamage = {
27
- /**
28
- * How many dice of which type are rolled to get the damage.
29
- */
30
- dice: Dice;
31
- /**
32
- * Flat damage, if any. It gets added to the result of the dice rolls.
33
- * @integer
34
- * @default 0
35
- */
36
- flat?: number;
37
- };
38
- /**
39
- * The shield size and potential size-depending values.
40
- */
41
- export type ShieldSize = {
42
- tag: "Small";
43
- small: {};
44
- } | {
45
- tag: "Medium";
46
- medium: {};
47
- } | {
48
- tag: "Large";
49
- large?: LargeShieldSize;
50
- };
51
- export type LargeShieldSize = {
52
- /**
53
- * The attack penalty from the shield.
54
- * @integer
55
- * @default 1
56
- */
57
- attack_penalty: number;
58
- };
59
- /**
60
- * @title Melee Weapon
61
- */
62
- export type MeleeWeapon = {
63
- /**
64
- * The combat techniques and dependent values.
65
- */
66
- combat_technique: CloseCombatTechniqueReference;
67
- /**
68
- * The damage of a weapon consists of a random part using dice and an optional
69
- * flat part.
70
- */
71
- damage: MeleeDamage;
72
- /**
73
- * The primary attribute damage and threshold value.
74
- */
75
- damage_threshold?: PrimaryAttributeDamageThreshold;
76
- /**
77
- * The AT modifier.
78
- */
79
- at: AttackModifier;
80
- /**
81
- * The PA modifier.
82
- */
83
- pa?: ParryModifier;
84
- /**
85
- * The reach of the weapon.
86
- */
87
- reach?: Reach;
88
- /**
89
- * The length of the weapon in cm/halffingers.
90
- */
91
- length?: Length;
92
- /**
93
- * The shield size and potential size-depending values.
94
- */
95
- size?: ShieldSize;
96
- /**
97
- * Is the weapon a parrying weapon?
98
- */
99
- is_parrying_weapon: boolean;
100
- /**
101
- * Is the weapon a two-handed weapon?
102
- */
103
- is_two_handed_weapon: boolean;
104
- /**
105
- * Is the weapon an improvised weapon?
106
- */
107
- is_improvised_weapon: boolean;
108
- };
4
+ import { Boolean, Enum, EnumCase, IncludeIdentifier, Integer, Object, TypeAlias } from "tsondb/schema/def";
5
+ export declare const AttackModifier: TypeAlias<"AttackModifier", Integer, []>;
6
+ export declare const ParryModifier: TypeAlias<"ParryModifier", Integer, []>;
7
+ export declare const MeleeWeapon: TypeAlias<"MeleeWeapon", Object<{
8
+ damage: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"MeleeDamage", Object<{
9
+ dice: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"Dice", Object<{
10
+ number: import("tsondb/schema/def").MemberDecl<Integer, true>;
11
+ sides: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"DieType", Integer, []>>, true>;
12
+ }>, []>>, true>;
13
+ flat: import("tsondb/schema/def").MemberDecl<Integer, false>;
14
+ }>, []>>, true>;
15
+ damage_threshold: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], Enum<"PrimaryAttributeDamageThreshold", {
16
+ Default: EnumCase<IncludeIdentifier<[], TypeAlias<"DefaultPrimaryAttributeDamageThreshold", Object<{
17
+ threshold: import("tsondb/schema/def").MemberDecl<Integer, true>;
18
+ }>, []>>>;
19
+ List: EnumCase<IncludeIdentifier<[], TypeAlias<"PrimaryAttributeDamageThresholdList", Object<{
20
+ list: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ArrayType<IncludeIdentifier<[], TypeAlias<"SinglePrimaryAttributeDamageThreshold", Object<{
21
+ attribute: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ReferenceIdentifierType, true>;
22
+ threshold: import("tsondb/schema/def").MemberDecl<Integer, true>;
23
+ }>, []>>>, true>;
24
+ }>, []>>>;
25
+ }, []>>, true>;
26
+ attackModifier: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"AttackModifier", Integer, []>>, true>;
27
+ parryModifier: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"ParryModifier", Integer, []>>, false>;
28
+ reach: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ReferenceIdentifierType, false>;
29
+ length: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"Length", Integer, []>>, false>;
30
+ size: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], Enum<"ShieldSize", {
31
+ Small: EnumCase<null>;
32
+ Medium: EnumCase<null>;
33
+ Large: EnumCase<IncludeIdentifier<[], TypeAlias<"LargeShieldSize", Object<{
34
+ attack_penalty: import("tsondb/schema/def").MemberDecl<Integer, false>;
35
+ }>, []>>>;
36
+ }, []>>, false>;
37
+ is_parrying_weapon: import("tsondb/schema/def").MemberDecl<Boolean, true>;
38
+ is_two_handed_weapon: import("tsondb/schema/def").MemberDecl<Boolean, true>;
39
+ is_improvised_weapon: import("tsondb/schema/def").MemberDecl<Boolean, true>;
40
+ }>, []>;
@@ -1,4 +1,95 @@
1
1
  /**
2
2
  * Auxiliary types for melee weapons.
3
3
  */
4
- export {};
4
+ import { Boolean, Enum, EnumCase, IncludeIdentifier, Integer, Object, Optional, Required, TypeAlias, } from "tsondb/schema/def";
5
+ import { Dice } from "../../_Dice.js";
6
+ import { ReachIdentifier } from "../../_Identifier.js";
7
+ import { Length, PrimaryAttributeDamageThreshold } from "./_Weapon.js";
8
+ export const AttackModifier = TypeAlias(import.meta.url, {
9
+ name: "AttackModifier",
10
+ comment: "The AT modifier.",
11
+ type: () => Integer(),
12
+ });
13
+ export const ParryModifier = TypeAlias(import.meta.url, {
14
+ name: "ParryModifier",
15
+ comment: "The PA modifier.",
16
+ type: () => Integer(),
17
+ });
18
+ const MeleeDamage = TypeAlias(import.meta.url, {
19
+ name: "MeleeDamage",
20
+ comment: "The damage of a weapon consists of a random part using dice and an optional flat part.",
21
+ type: () => Object({
22
+ dice: Required({
23
+ comment: "How many dice of which type are rolled to get the damage.",
24
+ type: IncludeIdentifier(Dice),
25
+ }),
26
+ flat: Optional({
27
+ comment: "Flat damage, if any. It gets added to the result of the dice rolls.",
28
+ type: Integer(),
29
+ }),
30
+ }),
31
+ });
32
+ const ShieldSize = Enum(import.meta.url, {
33
+ name: "ShieldSize",
34
+ comment: "The shield size and potential size-depending values.",
35
+ values: () => ({
36
+ Small: EnumCase({ type: null }),
37
+ Medium: EnumCase({ type: null }),
38
+ Large: EnumCase({ type: IncludeIdentifier(LargeShieldSize) }),
39
+ }),
40
+ });
41
+ const LargeShieldSize = TypeAlias(import.meta.url, {
42
+ name: "LargeShieldSize",
43
+ comment: "The damage of a weapon consists of a random part using dice and an optional flat part.",
44
+ type: () => Object({
45
+ attack_penalty: Optional({
46
+ comment: "The attack penalty from the shield, if any.",
47
+ type: Integer(),
48
+ }),
49
+ }),
50
+ });
51
+ export const MeleeWeapon = TypeAlias(import.meta.url, {
52
+ name: "MeleeWeapon",
53
+ type: () => Object({
54
+ damage: Required({
55
+ comment: "The damage of a weapon consists of a random part using dice and an optional flat part.",
56
+ type: IncludeIdentifier(MeleeDamage),
57
+ }),
58
+ damage_threshold: Required({
59
+ comment: "The primary attribute damage and threshold value.",
60
+ type: IncludeIdentifier(PrimaryAttributeDamageThreshold),
61
+ }),
62
+ attackModifier: Required({
63
+ comment: "The AT modifier.",
64
+ type: IncludeIdentifier(AttackModifier),
65
+ }),
66
+ parryModifier: Optional({
67
+ comment: "The PA modifier.",
68
+ type: IncludeIdentifier(ParryModifier),
69
+ }),
70
+ reach: Optional({
71
+ comment: "The reach of the weapon.",
72
+ type: ReachIdentifier(),
73
+ }),
74
+ length: Optional({
75
+ comment: "The length of the weapon in cm/halffingers.",
76
+ type: IncludeIdentifier(Length),
77
+ }),
78
+ size: Optional({
79
+ comment: "The shield size and potential size-depending values.",
80
+ type: IncludeIdentifier(ShieldSize),
81
+ }),
82
+ is_parrying_weapon: Required({
83
+ comment: "Is the weapon a parrying weapon?",
84
+ type: Boolean(),
85
+ }),
86
+ is_two_handed_weapon: Required({
87
+ comment: "Is the weapon a two-handed weapon?",
88
+ type: Boolean(),
89
+ }),
90
+ is_improvised_weapon: Required({
91
+ comment: "Is the weapon an improvised weapon?",
92
+ type: Boolean(),
93
+ }),
94
+ }),
95
+ });
@@ -1,109 +1,28 @@
1
1
  /**
2
2
  * Auxiliary types for ranged weapons.
3
3
  */
4
- import { Dice } from "../../_Dice.js";
5
- import { AmmunitionIdentifier } from "../../_Identifier.js";
6
- import { RangedCombatTechniqueReference } from "../../_SimpleReferences.js";
7
- import { Length } from "./_Weapon.js";
8
- /**
9
- * The damage of a ranged weapon. It consists of a random part using dice and an
10
- * optional flat part ny default. Some ranged weapons may work different so that
11
- * damage is either not applicable at all or it is outlined as *Special* and
12
- * further defined in a description.
13
- */
14
- export type RangedDamage = {
15
- tag: "Default";
16
- default: DefaultRangedDamage;
17
- } | {
18
- tag: "NotApplicable";
19
- not_applicable: {};
20
- } | {
21
- tag: "Special";
22
- special: {};
23
- };
24
- /**
25
- * The damage of a weapon consists of a random part using dice and an optional
26
- * flat part.
27
- */
28
- export type DefaultRangedDamage = {
29
- /**
30
- * How many dice of which type are rolled to get the damage.
31
- */
32
- dice: Dice;
33
- /**
34
- * Flat damage, if any. It gets added to the result of the dice rolls.
35
- * @integer
36
- * @default 0
37
- */
38
- flat?: number;
39
- };
40
- /**
41
- * @title Ranged Weapon
42
- */
43
- export type RangedWeapon = {
44
- /**
45
- * The combat techniques and dependent values.
46
- */
47
- combat_technique: RangedCombatTechniqueReference;
48
- /**
49
- * The damage of a weapon consists of a random part using dice and an optional
50
- * flat part.
51
- */
52
- damage: RangedDamage;
53
- /**
54
- * One or multiple reload times.
55
- * @minItems 1
56
- * @uniqueItems
57
- */
58
- reload_time: ReloadTime[];
59
- /**
60
- * The range brackets for the weapon: close, medium, far. Distances in m.
61
- */
62
- range: Range;
63
- /**
64
- * The needed ammunition.
65
- */
66
- ammunition?: AmmunitionReference;
67
- /**
68
- * The length of the weapon in cm/halffingers.
69
- */
70
- length: Length;
71
- /**
72
- * Is the weapon an improvised weapon?
73
- */
74
- is_improvised_weapon: boolean;
75
- };
76
- export type AmmunitionReference = {
77
- /**
78
- * The item's identifier.
79
- */
80
- id: AmmunitionIdentifier;
81
- };
82
- export type Range = {
83
- /**
84
- * The close range bracket for the weapon. Distance in m.
85
- * @integer
86
- * @minimum 1
87
- */
88
- close: number;
89
- /**
90
- * The medium range bracket for the weapon. Distance in m.
91
- * @integer
92
- * @minimum 1
93
- */
94
- medium: number;
95
- /**
96
- * The far range bracket for the weapon. Distance in m.
97
- * @integer
98
- * @minimum 1
99
- */
100
- far: number;
101
- };
102
- export type ReloadTime = {
103
- /**
104
- * A reload time value in actions.
105
- * @integer
106
- * @minimum 1
107
- */
108
- value: number;
109
- };
4
+ import { Array, Boolean, Enum, EnumCase, IncludeIdentifier, Integer, Object, TypeAlias } from "tsondb/schema/def";
5
+ export declare const RangedWeapon: TypeAlias<"RangedWeapon", Object<{
6
+ damage: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], Enum<"RangedDamage", {
7
+ Default: EnumCase<IncludeIdentifier<[], TypeAlias<"DefaultRangedDamage", Object<{
8
+ dice: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"Dice", Object<{
9
+ number: import("tsondb/schema/def").MemberDecl<Integer, true>;
10
+ sides: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"DieType", Integer, []>>, true>;
11
+ }>, []>>, true>;
12
+ flat: import("tsondb/schema/def").MemberDecl<Integer, false>;
13
+ }>, []>>>;
14
+ NotApplicable: EnumCase<null>;
15
+ Special: EnumCase<null>;
16
+ }, []>>, true>;
17
+ reload_time: import("tsondb/schema/def").MemberDecl<Array<IncludeIdentifier<[], TypeAlias<"ReloadTime", Object<{
18
+ value: import("tsondb/schema/def").MemberDecl<Integer, true>;
19
+ }>, []>>>, true>;
20
+ range: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"RangeBrackets", Object<{
21
+ close: import("tsondb/schema/def").MemberDecl<Integer, true>;
22
+ medium: import("tsondb/schema/def").MemberDecl<Integer, true>;
23
+ far: import("tsondb/schema/def").MemberDecl<Integer, true>;
24
+ }>, []>>, true>;
25
+ ammunition: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ReferenceIdentifierType, false>;
26
+ length: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"Length", Integer, []>>, true>;
27
+ is_improvised_weapon: import("tsondb/schema/def").MemberDecl<Boolean, true>;
28
+ }>, []>;
@@ -1,4 +1,88 @@
1
1
  /**
2
2
  * Auxiliary types for ranged weapons.
3
3
  */
4
- export {};
4
+ import { Array, Boolean, Enum, EnumCase, IncludeIdentifier, Integer, Object, Optional, Required, TypeAlias, } from "tsondb/schema/def";
5
+ import { Dice } from "../../_Dice.js";
6
+ import { AmmunitionIdentifier } from "../../_Identifier.js";
7
+ import { Length } from "./_Weapon.js";
8
+ const RangedDamage = Enum(import.meta.url, {
9
+ name: "RangedDamage",
10
+ comment: "The damage of a ranged weapon. It consists of a random part using dice and an optional flat part ny default. Some ranged weapons may work different so that damage is either not applicable at all or it is outlined as *Special* and further defined in a description.",
11
+ values: () => ({
12
+ Default: EnumCase({ type: IncludeIdentifier(DefaultRangedDamage) }),
13
+ NotApplicable: EnumCase({ type: null }),
14
+ Special: EnumCase({ type: null }),
15
+ }),
16
+ });
17
+ const DefaultRangedDamage = TypeAlias(import.meta.url, {
18
+ name: "DefaultRangedDamage",
19
+ comment: "The damage of a weapon consists of a random part using dice and an optional flat part.",
20
+ type: () => Object({
21
+ dice: Required({
22
+ comment: "How many dice of which type are rolled to get the damage.",
23
+ type: IncludeIdentifier(Dice),
24
+ }),
25
+ flat: Optional({
26
+ comment: "Flat damage, if any. It gets added to the result of the dice rolls.",
27
+ type: Integer(),
28
+ }),
29
+ }),
30
+ });
31
+ export const RangedWeapon = TypeAlias(import.meta.url, {
32
+ name: "RangedWeapon",
33
+ type: () => Object({
34
+ damage: Required({
35
+ comment: "The damage of a weapon consists of a random part using dice and an optional flat part.",
36
+ type: IncludeIdentifier(RangedDamage),
37
+ }),
38
+ reload_time: Required({
39
+ comment: "One or multiple reload times.",
40
+ type: Array(IncludeIdentifier(ReloadTime), {
41
+ minItems: 1,
42
+ uniqueItems: true,
43
+ }),
44
+ }),
45
+ range: Required({
46
+ comment: "The range brackets for the weapon: close, medium, far. Distances in m.",
47
+ type: IncludeIdentifier(RangeBrackets),
48
+ }),
49
+ ammunition: Optional({
50
+ comment: "The needed ammunition.",
51
+ type: AmmunitionIdentifier(),
52
+ }),
53
+ length: Required({
54
+ comment: "The length of the weapon in cm/halffingers.",
55
+ type: IncludeIdentifier(Length),
56
+ }),
57
+ is_improvised_weapon: Required({
58
+ comment: "Is the weapon an improvised weapon?",
59
+ type: Boolean(),
60
+ }),
61
+ }),
62
+ });
63
+ const RangeBrackets = TypeAlias(import.meta.url, {
64
+ name: "RangeBrackets",
65
+ type: () => Object({
66
+ close: Required({
67
+ comment: "The close range bracket for the weapon. Distance in m.",
68
+ type: Integer({ minimum: 1 }),
69
+ }),
70
+ medium: Required({
71
+ comment: "The medium range bracket for the weapon. Distance in m.",
72
+ type: Integer({ minimum: 1 }),
73
+ }),
74
+ far: Required({
75
+ comment: "The far range bracket for the weapon. Distance in m.",
76
+ type: Integer({ minimum: 1 }),
77
+ }),
78
+ }),
79
+ });
80
+ const ReloadTime = TypeAlias(import.meta.url, {
81
+ name: "ReloadTime",
82
+ type: () => Object({
83
+ value: Required({
84
+ comment: "A reload time value in actions.",
85
+ type: Integer({ minimum: 1 }),
86
+ }),
87
+ }),
88
+ });