optolith-database-schema 0.40.0 → 0.42.0

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 (288) hide show
  1. package/CHANGELOG.md +59 -0
  2. package/README.md +1 -1
  3. package/gen/types.d.ts +1705 -1582
  4. package/lib/types/Ceremony.d.ts +3 -0
  5. package/lib/types/DerivedCharacteristic.d.ts +23 -14
  6. package/lib/types/DerivedCharacteristic.js +58 -21
  7. package/lib/types/Disease.d.ts +2 -0
  8. package/lib/types/Disease.js +8 -0
  9. package/lib/types/FamiliarsTrick.d.ts +1 -0
  10. package/lib/types/FamiliarsTrick.js +8 -2
  11. package/lib/types/LiturgicalChant.d.ts +3 -0
  12. package/lib/types/Locale.d.ts +10 -6
  13. package/lib/types/Locale.js +10 -6
  14. package/lib/types/Profession.d.ts +31 -14
  15. package/lib/types/Profession.js +12 -2
  16. package/lib/types/Race.d.ts +28 -19
  17. package/lib/types/Race.js +36 -22
  18. package/lib/types/Ritual.d.ts +3 -0
  19. package/lib/types/Spell.d.ts +3 -0
  20. package/lib/types/Talisman.d.ts +32 -6
  21. package/lib/types/Talisman.js +51 -11
  22. package/lib/types/_ActivatableSkill.d.ts +8 -0
  23. package/lib/types/_ActivatableSkillCheckResultBased.d.ts +2 -0
  24. package/lib/types/_ActivatableSkillCheckResultBased.js +1 -0
  25. package/lib/types/_ActivatableSkillDuration.d.ts +2 -0
  26. package/lib/types/_ActivatableSkillRange.d.ts +1 -0
  27. package/lib/types/_Identifier.d.ts +1 -0
  28. package/lib/types/_Identifier.js +2 -0
  29. package/lib/types/_IdentifierGroup.d.ts +58 -0
  30. package/lib/types/_IdentifierGroup.js +15 -1
  31. package/lib/types/equipment/item/BandageOrRemedy.d.ts +5 -2
  32. package/lib/types/equipment/item/CeremonialItem.d.ts +6 -3
  33. package/lib/types/equipment/item/CeremonialItem.js +1 -1
  34. package/lib/types/equipment/item/Clothes.d.ts +5 -2
  35. package/lib/types/equipment/item/Container.d.ts +5 -2
  36. package/lib/types/equipment/item/Elixir.d.ts +16 -1
  37. package/lib/types/equipment/item/Elixir.js +35 -5
  38. package/lib/types/equipment/item/EquipmentOfBlessedOnes.d.ts +5 -2
  39. package/lib/types/equipment/item/IlluminationLightSource.d.ts +5 -2
  40. package/lib/types/equipment/item/IlluminationRefillOrSupply.d.ts +5 -2
  41. package/lib/types/equipment/item/Liebesspielzeug.d.ts +5 -2
  42. package/lib/types/equipment/item/LuxuryGood.d.ts +5 -2
  43. package/lib/types/equipment/item/MagicalArtifact.d.ts +5 -2
  44. package/lib/types/equipment/item/MusicalInstrument.d.ts +5 -2
  45. package/lib/types/equipment/item/OrienteeringAid.d.ts +5 -2
  46. package/lib/types/equipment/item/Poison.d.ts +64 -91
  47. package/lib/types/equipment/item/Poison.js +5 -34
  48. package/lib/types/equipment/item/RopeOrChain.d.ts +5 -2
  49. package/lib/types/equipment/item/Stationery.d.ts +5 -2
  50. package/lib/types/equipment/item/ThievesTool.d.ts +5 -2
  51. package/lib/types/equipment/item/TravelGearOrTool.d.ts +5 -2
  52. package/lib/types/equipment/item/Weapon.d.ts +10 -4
  53. package/lib/types/equipment/item/WeaponAccessory.d.ts +5 -2
  54. package/lib/types/equipment/item/_Herbary.d.ts +31 -0
  55. package/lib/types/equipment/item/_Herbary.js +9 -0
  56. package/lib/types/equipment/item/_Item.d.ts +10 -4
  57. package/lib/types/equipment/item/_MeleeWeapon.d.ts +2 -2
  58. package/lib/types/equipment/item/_MeleeWeapon.js +1 -1
  59. package/lib/types/equipment/item/_RangedWeapon.d.ts +8 -2
  60. package/lib/types/equipment/item/_RangedWeapon.js +2 -2
  61. package/lib/types/equipment/item/sub/Reach.d.ts +1 -0
  62. package/lib/types/equipment/item/sub/Reach.js +7 -0
  63. package/lib/types/magicalActions/AnimistPower.d.ts +1 -0
  64. package/lib/types/magicalActions/Curse.d.ts +2 -0
  65. package/lib/types/magicalActions/DominationRitual.d.ts +2 -0
  66. package/lib/types/magicalActions/GeodeRitual.d.ts +1 -0
  67. package/lib/types/magicalActions/JesterTrick.d.ts +3 -0
  68. package/lib/types/magicalActions/MagicalMelody.d.ts +15 -0
  69. package/lib/types/magicalActions/MagicalMelody.js +5 -0
  70. package/lib/types/magicalActions/MagicalRune.d.ts +2 -0
  71. package/lib/types/magicalActions/ZibiljaRitual.d.ts +2 -0
  72. package/lib/types/prerequisites/PrerequisiteGroups.d.ts +132 -0
  73. package/lib/types/prerequisites/PrerequisiteGroups.js +1 -0
  74. package/package.json +7 -7
  75. package/schema/Advantage.schema.json +0 -108
  76. package/schema/AnimalDisease.schema.json +0 -74
  77. package/schema/AnimalType.schema.json +0 -47
  78. package/schema/ArcaneBardTradition.schema.json +0 -11
  79. package/schema/ArcaneDancerTradition.schema.json +0 -11
  80. package/schema/Aspect.schema.json +0 -51
  81. package/schema/Attribute.schema.json +0 -57
  82. package/schema/Blessing.schema.json +0 -265
  83. package/schema/Cantrip.schema.json +0 -443
  84. package/schema/Ceremony.schema.json +0 -122
  85. package/schema/CombatTechnique_Close.schema.json +0 -116
  86. package/schema/CombatTechnique_Ranged.schema.json +0 -99
  87. package/schema/Condition.schema.json +0 -68
  88. package/schema/Continent.schema.json +0 -49
  89. package/schema/Culture.schema.json +0 -781
  90. package/schema/DerivedCharacteristic.schema.json +0 -90
  91. package/schema/Disadvantage.schema.json +0 -97
  92. package/schema/Disease.schema.json +0 -58
  93. package/schema/Element.schema.json +0 -48
  94. package/schema/ExperienceLevel.schema.json +0 -84
  95. package/schema/EyeColor.schema.json +0 -47
  96. package/schema/FamiliarsTrick.schema.json +0 -576
  97. package/schema/HairColor.schema.json +0 -47
  98. package/schema/Kirchenpraegung.schema.json +0 -11
  99. package/schema/Lessons_Curriculum.schema.json +0 -499
  100. package/schema/Lessons_Guideline.schema.json +0 -53
  101. package/schema/LiturgicalChant.schema.json +0 -122
  102. package/schema/Locale.schema.json +0 -38
  103. package/schema/MetaCondition.schema.json +0 -69
  104. package/schema/PactCategory.schema.json +0 -150
  105. package/schema/Patron.schema.json +0 -352
  106. package/schema/PatronCategory.schema.json +0 -57
  107. package/schema/PersonalityTrait.schema.json +0 -100
  108. package/schema/Profession.schema.json +0 -1424
  109. package/schema/Property.schema.json +0 -51
  110. package/schema/Race.schema.json +0 -534
  111. package/schema/Region.schema.json +0 -47
  112. package/schema/Ritual.schema.json +0 -120
  113. package/schema/Service.schema.json +0 -79
  114. package/schema/SexPractice.schema.json +0 -70
  115. package/schema/Skill.schema.json +0 -223
  116. package/schema/SkillGroup.schema.json +0 -57
  117. package/schema/SkillModificationLevel.schema.json +0 -153
  118. package/schema/SocialStatus.schema.json +0 -47
  119. package/schema/Spell.schema.json +0 -119
  120. package/schema/State.schema.json +0 -59
  121. package/schema/Talisman.schema.json +0 -120
  122. package/schema/TargetCategory.schema.json +0 -65
  123. package/schema/UI.schema.json +0 -4441
  124. package/schema/_Activatable.schema.json +0 -2755
  125. package/schema/_ActivatableSelectOptionCategory.schema.json +0 -1313
  126. package/schema/_ActivatableSkill.schema.json +0 -188
  127. package/schema/_ActivatableSkillCastingTime.schema.json +0 -181
  128. package/schema/_ActivatableSkillCheckResultBased.schema.json +0 -65
  129. package/schema/_ActivatableSkillCost.schema.json +0 -513
  130. package/schema/_ActivatableSkillDuration.schema.json +0 -353
  131. package/schema/_ActivatableSkillEffect.schema.json +0 -122
  132. package/schema/_ActivatableSkillRange.schema.json +0 -264
  133. package/schema/_ActivatableSkillTargetCategory.schema.json +0 -145
  134. package/schema/_AlternativeNames.schema.json +0 -23
  135. package/schema/_ArcaneTradition.schema.json +0 -51
  136. package/schema/_Blessed.schema.json +0 -64
  137. package/schema/_Dice.schema.json +0 -40
  138. package/schema/_DiseasePoison.schema.json +0 -152
  139. package/schema/_Enhancements.schema.json +0 -85
  140. package/schema/_I18n.schema.json +0 -55
  141. package/schema/_Identifier.schema.json +0 -2577
  142. package/schema/_IdentifierGroup.schema.json +0 -753
  143. package/schema/_ImprovementCost.schema.json +0 -23
  144. package/schema/_Influence.schema.json +0 -84
  145. package/schema/_NonEmptyString.schema.json +0 -14
  146. package/schema/_Prerequisite.schema.json +0 -1518
  147. package/schema/_ResponsiveText.schema.json +0 -66
  148. package/schema/_Sex.schema.json +0 -18
  149. package/schema/_SimpleReferences.schema.json +0 -522
  150. package/schema/_SkillCheck.schema.json +0 -38
  151. package/schema/_Spellwork.schema.json +0 -54
  152. package/schema/equipment/EquipmentPackage.schema.json +0 -79
  153. package/schema/equipment/item/Ammunition.schema.json +0 -56
  154. package/schema/equipment/item/Animal.schema.json +0 -36
  155. package/schema/equipment/item/AnimalCare.schema.json +0 -124
  156. package/schema/equipment/item/Armor.schema.json +0 -309
  157. package/schema/equipment/item/BandageOrRemedy.schema.json +0 -53
  158. package/schema/equipment/item/Book.schema.json +0 -89
  159. package/schema/equipment/item/CeremonialItem.schema.json +0 -59
  160. package/schema/equipment/item/Clothes.schema.json +0 -10
  161. package/schema/equipment/item/Container.schema.json +0 -10
  162. package/schema/equipment/item/Elixir.schema.json +0 -103
  163. package/schema/equipment/item/EquipmentOfBlessedOnes.schema.json +0 -49
  164. package/schema/equipment/item/GemOrPreciousStone.schema.json +0 -69
  165. package/schema/equipment/item/IlluminationLightSource.schema.json +0 -120
  166. package/schema/equipment/item/IlluminationRefillsOrSupplies.schema.json +0 -10
  167. package/schema/equipment/item/Jewelry.schema.json +0 -113
  168. package/schema/equipment/item/Liebesspielzeug.schema.json +0 -10
  169. package/schema/equipment/item/LuxuryGood.schema.json +0 -53
  170. package/schema/equipment/item/MagicalArtifact.schema.json +0 -64
  171. package/schema/equipment/item/MusicalInstrument.schema.json +0 -49
  172. package/schema/equipment/item/OrienteeringAid.schema.json +0 -10
  173. package/schema/equipment/item/Poison.schema.json +0 -835
  174. package/schema/equipment/item/RopeOrChain.schema.json +0 -10
  175. package/schema/equipment/item/Stationary.schema.json +0 -10
  176. package/schema/equipment/item/ThievesTool.schema.json +0 -10
  177. package/schema/equipment/item/ToolOfTheTrade.schema.json +0 -93
  178. package/schema/equipment/item/TravelGearOrTool.schema.json +0 -10
  179. package/schema/equipment/item/Vehicle.schema.json +0 -36
  180. package/schema/equipment/item/Weapon.schema.json +0 -285
  181. package/schema/equipment/item/WeaponAccessory.schema.json +0 -10
  182. package/schema/equipment/item/_Herbary.schema.json +0 -62
  183. package/schema/equipment/item/_Item.schema.json +0 -384
  184. package/schema/equipment/item/_MeleeWeapon.schema.json +0 -164
  185. package/schema/equipment/item/_RangedWeapon.schema.json +0 -185
  186. package/schema/equipment/item/_Weapon.schema.json +0 -99
  187. package/schema/equipment/item/sub/ArmorType.schema.json +0 -52
  188. package/schema/equipment/item/sub/Reach.schema.json +0 -47
  189. package/schema/magicalActions/AnimistPower.schema.json +0 -488
  190. package/schema/magicalActions/AnimistPower_Tribe.schema.json +0 -47
  191. package/schema/magicalActions/Curse.schema.json +0 -332
  192. package/schema/magicalActions/DominationRitual.schema.json +0 -275
  193. package/schema/magicalActions/ElvenMagicalSong.schema.json +0 -196
  194. package/schema/magicalActions/GeodeRitual.schema.json +0 -327
  195. package/schema/magicalActions/JesterTrick.schema.json +0 -311
  196. package/schema/magicalActions/MagicalDance.schema.json +0 -198
  197. package/schema/magicalActions/MagicalMelody.schema.json +0 -193
  198. package/schema/magicalActions/MagicalRune.schema.json +0 -578
  199. package/schema/magicalActions/ZibiljaRitual.schema.json +0 -165
  200. package/schema/magicalActions/_MusicTradition.schema.json +0 -82
  201. package/schema/magicalActions/_SkillReference.schema.json +0 -20
  202. package/schema/prerequisites/ConditionalPrerequisites.schema.json +0 -15
  203. package/schema/prerequisites/DisplayOption.schema.json +0 -70
  204. package/schema/prerequisites/PrerequisiteGroups.schema.json +0 -1029
  205. package/schema/prerequisites/single/ActivatablePrerequisite.schema.json +0 -45
  206. package/schema/prerequisites/single/AncestorBloodPrerequisite.schema.json +0 -14
  207. package/schema/prerequisites/single/AnimistPowerPrerequisite.schema.json +0 -36
  208. package/schema/prerequisites/single/CulturePrerequisite.schema.json +0 -24
  209. package/schema/prerequisites/single/EnhancementPrerequisite.schema.json +0 -61
  210. package/schema/prerequisites/single/InfluencePrerequisite.schema.json +0 -28
  211. package/schema/prerequisites/single/PactPrerequisite.schema.json +0 -36
  212. package/schema/prerequisites/single/PrimaryAttributePrerequisite.schema.json +0 -39
  213. package/schema/prerequisites/single/PublicationPrerequisite.schema.json +0 -22
  214. package/schema/prerequisites/single/RacePrerequisite.schema.json +0 -28
  215. package/schema/prerequisites/single/RatedMinimumNumberPrerequisite.schema.json +0 -172
  216. package/schema/prerequisites/single/RatedPrerequisite.schema.json +0 -29
  217. package/schema/prerequisites/single/RatedSumPrerequisite.schema.json +0 -33
  218. package/schema/prerequisites/single/RulePrerequisite.schema.json +0 -22
  219. package/schema/prerequisites/single/SexPrerequisite.schema.json +0 -23
  220. package/schema/prerequisites/single/SexualCharacteristicPrerequisite.schema.json +0 -30
  221. package/schema/prerequisites/single/SocialStatusPrerequisite.schema.json +0 -24
  222. package/schema/prerequisites/single/StatePrerequisite.schema.json +0 -23
  223. package/schema/prerequisites/single/TextPrerequisite.schema.json +0 -64
  224. package/schema/prerequisites/single/TraditionPrerequisite.schema.json +0 -58
  225. package/schema/rule/CoreRule.schema.json +0 -1403
  226. package/schema/rule/FocusRule.schema.json +0 -76
  227. package/schema/rule/FocusRule_Subject.schema.json +0 -48
  228. package/schema/rule/OptionalRule.schema.json +0 -64
  229. package/schema/source/Publication.schema.json +0 -103
  230. package/schema/source/_Erratum.schema.json +0 -36
  231. package/schema/source/_PublicationRef.schema.json +0 -285
  232. package/schema/specialAbility/AdvancedCombatSpecialAbility.schema.json +0 -102
  233. package/schema/specialAbility/AdvancedKarmaSpecialAbility.schema.json +0 -80
  234. package/schema/specialAbility/AdvancedMagicalSpecialAbility.schema.json +0 -80
  235. package/schema/specialAbility/AdvancedSkillSpecialAbility.schema.json +0 -80
  236. package/schema/specialAbility/AncestorGlyph.schema.json +0 -80
  237. package/schema/specialAbility/BlessedTradition.schema.json +0 -354
  238. package/schema/specialAbility/BrawlingSpecialAbility.schema.json +0 -82
  239. package/schema/specialAbility/CeremonialItemSpecialAbility.schema.json +0 -87
  240. package/schema/specialAbility/CombatSpecialAbility.schema.json +0 -98
  241. package/schema/specialAbility/CombatStyleSpecialAbility.schema.json +0 -273
  242. package/schema/specialAbility/CommandSpecialAbility.schema.json +0 -82
  243. package/schema/specialAbility/FamiliarSpecialAbility.schema.json +0 -74
  244. package/schema/specialAbility/FatePointSexSpecialAbility.schema.json +0 -74
  245. package/schema/specialAbility/FatePointSpecialAbility.schema.json +0 -84
  246. package/schema/specialAbility/GeneralSpecialAbility.schema.json +0 -88
  247. package/schema/specialAbility/KarmaSpecialAbility.schema.json +0 -78
  248. package/schema/specialAbility/LiturgicalStyleSpecialAbility.schema.json +0 -260
  249. package/schema/specialAbility/LycantropicGift.schema.json +0 -74
  250. package/schema/specialAbility/MagicStyleSpecialAbility.schema.json +0 -260
  251. package/schema/specialAbility/MagicalSign.schema.json +0 -72
  252. package/schema/specialAbility/MagicalSpecialAbility.schema.json +0 -88
  253. package/schema/specialAbility/MagicalTradition.schema.json +0 -163
  254. package/schema/specialAbility/PactGift.schema.json +0 -254
  255. package/schema/specialAbility/ProtectiveWardingCircleSpecialAbility.schema.json +0 -86
  256. package/schema/specialAbility/Sermon.schema.json +0 -74
  257. package/schema/specialAbility/SexSpecialAbility.schema.json +0 -80
  258. package/schema/specialAbility/SikaryanDrainSpecialAbility.schema.json +0 -78
  259. package/schema/specialAbility/SkillStyleSpecialAbility.schema.json +0 -254
  260. package/schema/specialAbility/VampiricGift.schema.json +0 -78
  261. package/schema/specialAbility/Vision.schema.json +0 -74
  262. package/schema/specialAbility/_Tradition.schema.json +0 -23
  263. package/schema/specialAbility/sub/Language.schema.json +0 -222
  264. package/schema/specialAbility/sub/Script.schema.json +0 -90
  265. package/schema/specialAbility/sub/TradeSecret.schema.json +0 -72
  266. package/schema/specialAbility/sub/_LanguageScript.schema.json +0 -24
  267. package/schema/traditionArtifacts/ArcaneOrbEnchantment.schema.json +0 -95
  268. package/schema/traditionArtifacts/AttireEnchantment.schema.json +0 -95
  269. package/schema/traditionArtifacts/BowlEnchantment.schema.json +0 -95
  270. package/schema/traditionArtifacts/CauldronEnchantment.schema.json +0 -115
  271. package/schema/traditionArtifacts/ChronicleEnchantment.schema.json +0 -95
  272. package/schema/traditionArtifacts/DaggerRitual.schema.json +0 -176
  273. package/schema/traditionArtifacts/FoolsHatEnchantment.schema.json +0 -95
  274. package/schema/traditionArtifacts/InstrumentEnchantment.schema.json +0 -95
  275. package/schema/traditionArtifacts/Krallenkettenzauber.schema.json +0 -95
  276. package/schema/traditionArtifacts/OrbEnchantment.schema.json +0 -95
  277. package/schema/traditionArtifacts/RingEnchantment.schema.json +0 -95
  278. package/schema/traditionArtifacts/SickleRitual.schema.json +0 -95
  279. package/schema/traditionArtifacts/SpellSwordEnchantment.schema.json +0 -99
  280. package/schema/traditionArtifacts/StaffEnchantment.schema.json +0 -103
  281. package/schema/traditionArtifacts/ToyEnchantment.schema.json +0 -95
  282. package/schema/traditionArtifacts/Trinkhornzauber.schema.json +0 -95
  283. package/schema/traditionArtifacts/WandEnchantment.schema.json +0 -87
  284. package/schema/traditionArtifacts/WeaponEnchantment.schema.json +0 -95
  285. package/schema/traditionArtifacts/sub/AnimalShape.schema.json +0 -85
  286. package/schema/traditionArtifacts/sub/AnimalShapePath.schema.json +0 -47
  287. package/schema/traditionArtifacts/sub/AnimalShapeSize.schema.json +0 -59
  288. package/schema/traditionArtifacts/sub/Brew.schema.json +0 -47
@@ -7,7 +7,7 @@ import { DiseaseIdentifier } from "../../_Identifier.js";
7
7
  import { MathOperation } from "../../_MathExpression.js";
8
8
  import { Errata } from "../../source/_Erratum.js";
9
9
  import { src } from "../../source/_PublicationRef.js";
10
- import { EffectType, LaboratoryLevel, RecipeTradeSecret } from "./_Herbary.js";
10
+ import { EffectType, LaboratoryLevel, RecipeComplexity, RecipeTradeSecret } from "./_Herbary.js";
11
11
  export const Poison = DB.Entity(import.meta.url, {
12
12
  name: "Poison",
13
13
  namePlural: "Poisons",
@@ -89,8 +89,7 @@ const PoisonStart = DB.Enum(import.meta.url, {
89
89
  name: "PoisonStart",
90
90
  values: () => ({
91
91
  Immediate: DB.EnumCase({ type: null }),
92
- Constant: DB.EnumCase({ type: DB.IncludeIdentifier(ConstantPoisonTime) }),
93
- DiceBased: DB.EnumCase({ type: DB.IncludeIdentifier(DiceBasedPoisonTime) }),
92
+ ExpressionBased: DB.EnumCase({ type: DB.IncludeIdentifier(ExpressionBasedPoisonTime) }),
94
93
  Indefinite: DB.EnumCase({ type: DB.IncludeIdentifier(IndefinitePoisonTime) }),
95
94
  }),
96
95
  });
@@ -98,8 +97,6 @@ const PoisonDuration = DB.Enum(import.meta.url, {
98
97
  name: "PoisonDuration",
99
98
  values: () => ({
100
99
  Instant: DB.EnumCase({ type: null }),
101
- Constant: DB.EnumCase({ type: DB.IncludeIdentifier(ConstantPoisonTime) }),
102
- DiceBased: DB.EnumCase({ type: DB.IncludeIdentifier(DiceBasedPoisonTime) }),
103
100
  ExpressionBased: DB.EnumCase({ type: DB.IncludeIdentifier(ExpressionBasedPoisonTime) }),
104
101
  Indefinite: DB.EnumCase({ type: DB.IncludeIdentifier(IndefinitePoisonTime) }),
105
102
  }),
@@ -153,32 +150,6 @@ const DependingOnPurchaseOrSalePoisonCost = DB.TypeAlias(import.meta.url, {
153
150
  }),
154
151
  }),
155
152
  });
156
- export const ConstantPoisonTime = DB.TypeAlias(import.meta.url, {
157
- name: "ConstantPoisonTime",
158
- type: () => DB.Object({
159
- value: DB.Required({
160
- type: DB.Integer({ minimum: 1 }),
161
- }),
162
- unit: DB.Required({
163
- type: DB.IncludeIdentifier(PoisonTimeUnit),
164
- }),
165
- }),
166
- });
167
- export const DiceBasedPoisonTime = DB.TypeAlias(import.meta.url, {
168
- name: "DiceBasedPoisonTime",
169
- type: () => DB.Object({
170
- dice: DB.Required({
171
- type: DB.IncludeIdentifier(Dice),
172
- }),
173
- flat: DB.Optional({
174
- comment: "The value to add to the result of the dice roll(s).",
175
- type: DB.Integer(),
176
- }),
177
- unit: DB.Required({
178
- type: DB.IncludeIdentifier(PoisonTimeUnit),
179
- }),
180
- }),
181
- });
182
153
  export const ExpressionBasedPoisonTime = DB.TypeAlias(import.meta.url, {
183
154
  name: "ExpressionBasedPoisonTime",
184
155
  type: () => DB.Object({
@@ -249,9 +220,9 @@ export const AnimalVenom = DB.TypeAlias(import.meta.url, {
249
220
  comment: "If `false`, the poison cannot be extracted.",
250
221
  type: DB.Boolean(),
251
222
  }),
252
- trade_secret: DB.Optional({
253
- comment: "AP value and prerequisites of the poison’s trade secret.",
254
- type: DB.IncludeIdentifier(RecipeTradeSecret),
223
+ complexity: DB.Optional({
224
+ comment: "The complexity of the poison. Complex poisons define AP value and prerequisites of the poison’s trade secret.",
225
+ type: DB.IncludeIdentifier(RecipeComplexity),
255
226
  }),
256
227
  }),
257
228
  });
@@ -45,7 +45,7 @@ export declare const RopeOrChain: import("tsondb/schema/dsl").Entity<string, {
45
45
  }, []>>, false>;
46
46
  attackModifier: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"AttackModifier", import("tsondb/schema/dsl").Integer, []>>, false>;
47
47
  parryModifier: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"ParryModifier", import("tsondb/schema/dsl").Integer, []>>, false>;
48
- reach: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").ReferenceIdentifier, false>;
48
+ reach: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").Array<import("tsondb/schema/dsl").ReferenceIdentifier>, false>;
49
49
  length: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"Length", import("tsondb/schema/dsl").Integer, []>>, false>;
50
50
  size: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").Enum<"ShieldSize", {
51
51
  Small: import("tsondb/schema/dsl").EnumCase<null>;
@@ -68,7 +68,10 @@ export declare const RopeOrChain: import("tsondb/schema/dsl").Entity<string, {
68
68
  medium: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").Integer, true>;
69
69
  far: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").Integer, true>;
70
70
  }>, []>>, true>;
71
- ammunition: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").ReferenceIdentifier, false>;
71
+ ammunition: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").Enum<"AmmunitionishIdentifier", {
72
+ Ammunition: import("tsondb/schema/dsl").EnumCase<import("tsondb/schema/dsl").ReferenceIdentifier>;
73
+ Weapon: import("tsondb/schema/dsl").EnumCase<import("tsondb/schema/dsl").ReferenceIdentifier>;
74
+ }, []>>, false>;
72
75
  length: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"Length", import("tsondb/schema/dsl").Integer, []>>, false>;
73
76
  is_improvised_weapon: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").Boolean, true>;
74
77
  }>, false>;
@@ -45,7 +45,7 @@ export declare const Stationery: import("tsondb/schema/dsl").Entity<string, {
45
45
  }, []>>, false>;
46
46
  attackModifier: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"AttackModifier", import("tsondb/schema/dsl").Integer, []>>, false>;
47
47
  parryModifier: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"ParryModifier", import("tsondb/schema/dsl").Integer, []>>, false>;
48
- reach: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").ReferenceIdentifier, false>;
48
+ reach: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").Array<import("tsondb/schema/dsl").ReferenceIdentifier>, false>;
49
49
  length: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"Length", import("tsondb/schema/dsl").Integer, []>>, false>;
50
50
  size: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").Enum<"ShieldSize", {
51
51
  Small: import("tsondb/schema/dsl").EnumCase<null>;
@@ -68,7 +68,10 @@ export declare const Stationery: import("tsondb/schema/dsl").Entity<string, {
68
68
  medium: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").Integer, true>;
69
69
  far: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").Integer, true>;
70
70
  }>, []>>, true>;
71
- ammunition: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").ReferenceIdentifier, false>;
71
+ ammunition: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").Enum<"AmmunitionishIdentifier", {
72
+ Ammunition: import("tsondb/schema/dsl").EnumCase<import("tsondb/schema/dsl").ReferenceIdentifier>;
73
+ Weapon: import("tsondb/schema/dsl").EnumCase<import("tsondb/schema/dsl").ReferenceIdentifier>;
74
+ }, []>>, false>;
72
75
  length: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"Length", import("tsondb/schema/dsl").Integer, []>>, false>;
73
76
  is_improvised_weapon: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").Boolean, true>;
74
77
  }>, false>;
@@ -45,7 +45,7 @@ export declare const ThievesTool: import("tsondb/schema/dsl").Entity<string, {
45
45
  }, []>>, false>;
46
46
  attackModifier: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"AttackModifier", import("tsondb/schema/dsl").Integer, []>>, false>;
47
47
  parryModifier: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"ParryModifier", import("tsondb/schema/dsl").Integer, []>>, false>;
48
- reach: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").ReferenceIdentifier, false>;
48
+ reach: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").Array<import("tsondb/schema/dsl").ReferenceIdentifier>, false>;
49
49
  length: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"Length", import("tsondb/schema/dsl").Integer, []>>, false>;
50
50
  size: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").Enum<"ShieldSize", {
51
51
  Small: import("tsondb/schema/dsl").EnumCase<null>;
@@ -68,7 +68,10 @@ export declare const ThievesTool: import("tsondb/schema/dsl").Entity<string, {
68
68
  medium: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").Integer, true>;
69
69
  far: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").Integer, true>;
70
70
  }>, []>>, true>;
71
- ammunition: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").ReferenceIdentifier, false>;
71
+ ammunition: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").Enum<"AmmunitionishIdentifier", {
72
+ Ammunition: import("tsondb/schema/dsl").EnumCase<import("tsondb/schema/dsl").ReferenceIdentifier>;
73
+ Weapon: import("tsondb/schema/dsl").EnumCase<import("tsondb/schema/dsl").ReferenceIdentifier>;
74
+ }, []>>, false>;
72
75
  length: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"Length", import("tsondb/schema/dsl").Integer, []>>, false>;
73
76
  is_improvised_weapon: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").Boolean, true>;
74
77
  }>, false>;
@@ -46,7 +46,7 @@ export declare const TravelGearOrTool: DB.Entity<"TravelGearOrTool", {
46
46
  }, []>>, false>;
47
47
  attackModifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"AttackModifier", DB.Integer, []>>, false>;
48
48
  parryModifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ParryModifier", DB.Integer, []>>, false>;
49
- reach: DB.MemberDecl<DB.ReferenceIdentifier, false>;
49
+ reach: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, false>;
50
50
  length: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Length", DB.Integer, []>>, false>;
51
51
  size: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ShieldSize", {
52
52
  Small: DB.EnumCase<null>;
@@ -69,7 +69,10 @@ export declare const TravelGearOrTool: DB.Entity<"TravelGearOrTool", {
69
69
  medium: DB.MemberDecl<DB.Integer, true>;
70
70
  far: DB.MemberDecl<DB.Integer, true>;
71
71
  }>, []>>, true>;
72
- ammunition: DB.MemberDecl<DB.ReferenceIdentifier, false>;
72
+ ammunition: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"AmmunitionishIdentifier", {
73
+ Ammunition: DB.EnumCase<DB.ReferenceIdentifier>;
74
+ Weapon: DB.EnumCase<DB.ReferenceIdentifier>;
75
+ }, []>>, false>;
73
76
  length: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Length", DB.Integer, []>>, false>;
74
77
  is_improvised_weapon: DB.MemberDecl<DB.Boolean, true>;
75
78
  }>, false>;
@@ -44,7 +44,7 @@ export declare const Weapon: DB.Entity<"Weapon", {
44
44
  }, []>>, false>;
45
45
  attackModifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"AttackModifier", DB.Integer, []>>, false>;
46
46
  parryModifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ParryModifier", DB.Integer, []>>, false>;
47
- reach: DB.MemberDecl<DB.ReferenceIdentifier, false>;
47
+ reach: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, false>;
48
48
  length: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Length", DB.Integer, []>>, false>;
49
49
  size: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ShieldSize", {
50
50
  Small: DB.EnumCase<null>;
@@ -67,7 +67,10 @@ export declare const Weapon: DB.Entity<"Weapon", {
67
67
  medium: DB.MemberDecl<DB.Integer, true>;
68
68
  far: DB.MemberDecl<DB.Integer, true>;
69
69
  }>, []>>, true>;
70
- ammunition: DB.MemberDecl<DB.ReferenceIdentifier, false>;
70
+ ammunition: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"AmmunitionishIdentifier", {
71
+ Ammunition: DB.EnumCase<DB.ReferenceIdentifier>;
72
+ Weapon: DB.EnumCase<DB.ReferenceIdentifier>;
73
+ }, []>>, false>;
71
74
  length: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Length", DB.Integer, []>>, false>;
72
75
  is_improvised_weapon: DB.MemberDecl<DB.Boolean, true>;
73
76
  }>, false>;
@@ -163,7 +166,7 @@ export declare const ImprovisedWeapon: DB.TypeAlias<"ImprovisedWeapon", DB.Objec
163
166
  }, []>>, false>;
164
167
  attackModifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"AttackModifier", DB.Integer, []>>, false>;
165
168
  parryModifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ParryModifier", DB.Integer, []>>, false>;
166
- reach: DB.MemberDecl<DB.ReferenceIdentifier, false>;
169
+ reach: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, false>;
167
170
  length: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Length", DB.Integer, []>>, false>;
168
171
  size: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ShieldSize", {
169
172
  Small: DB.EnumCase<null>;
@@ -186,7 +189,10 @@ export declare const ImprovisedWeapon: DB.TypeAlias<"ImprovisedWeapon", DB.Objec
186
189
  medium: DB.MemberDecl<DB.Integer, true>;
187
190
  far: DB.MemberDecl<DB.Integer, true>;
188
191
  }>, []>>, true>;
189
- ammunition: DB.MemberDecl<DB.ReferenceIdentifier, false>;
192
+ ammunition: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"AmmunitionishIdentifier", {
193
+ Ammunition: DB.EnumCase<DB.ReferenceIdentifier>;
194
+ Weapon: DB.EnumCase<DB.ReferenceIdentifier>;
195
+ }, []>>, false>;
190
196
  length: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Length", DB.Integer, []>>, false>;
191
197
  is_improvised_weapon: DB.MemberDecl<DB.Boolean, true>;
192
198
  }>, false>;
@@ -46,7 +46,7 @@ export declare const WeaponAccessory: DB.Entity<"WeaponAccessory", {
46
46
  }, []>>, false>;
47
47
  attackModifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"AttackModifier", DB.Integer, []>>, false>;
48
48
  parryModifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ParryModifier", DB.Integer, []>>, false>;
49
- reach: DB.MemberDecl<DB.ReferenceIdentifier, false>;
49
+ reach: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, false>;
50
50
  length: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Length", DB.Integer, []>>, false>;
51
51
  size: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ShieldSize", {
52
52
  Small: DB.EnumCase<null>;
@@ -69,7 +69,10 @@ export declare const WeaponAccessory: DB.Entity<"WeaponAccessory", {
69
69
  medium: DB.MemberDecl<DB.Integer, true>;
70
70
  far: DB.MemberDecl<DB.Integer, true>;
71
71
  }>, []>>, true>;
72
- ammunition: DB.MemberDecl<DB.ReferenceIdentifier, false>;
72
+ ammunition: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"AmmunitionishIdentifier", {
73
+ Ammunition: DB.EnumCase<DB.ReferenceIdentifier>;
74
+ Weapon: DB.EnumCase<DB.ReferenceIdentifier>;
75
+ }, []>>, false>;
73
76
  length: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Length", DB.Integer, []>>, false>;
74
77
  is_improvised_weapon: DB.MemberDecl<DB.Boolean, true>;
75
78
  }>, false>;
@@ -16,6 +16,37 @@ export declare const LaboratoryLevel: DB.Enum<"LaboratoryLevel", {
16
16
  WitchKitchen: DB.EnumCase<null>;
17
17
  AlchemistsLaboratory: DB.EnumCase<null>;
18
18
  }, []>;
19
+ export declare const RecipeComplexity: DB.Enum<"RecipeComplexity", {
20
+ Primitive: DB.EnumCase<null>;
21
+ Simple: DB.EnumCase<null>;
22
+ Complex: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"RecipeTradeSecret", DB.Object<{
23
+ ap_value: DB.MemberDecl<DB.Integer, true>;
24
+ prerequisites: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"PlainGeneralPrerequisites", DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"PlainPrerequisites", DB.Array<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.Enum<"PrerequisitesElement", {
25
+ Single: DB.EnumCase<DB.TypeArgument<DB.Param<"T", DB.Type>>>;
26
+ Disjunction: DB.EnumCase<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"PrerequisitesDisjunction", DB.Object<{
27
+ list: DB.MemberDecl<DB.Array<DB.TypeArgument<DB.Param<"T", DB.Type>>>, true>;
28
+ display_option: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"DisplayOption", {
29
+ Hide: DB.EnumCase<null>;
30
+ ReplaceWith: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ReplacementDisplayOption", DB.Object<{
31
+ sentence_type: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SentenceType", {
32
+ Standalone: DB.EnumCase<null>;
33
+ Connected: DB.EnumCase<null>;
34
+ }, []>>, false>;
35
+ translations: DB.MemberDecl<DB.NestedEntityMap<"ReplacementDisplayOptionTranslation", {
36
+ replacement: DB.MemberDecl<DB.String, true>;
37
+ }>, true>;
38
+ }>, []>>>;
39
+ }, []>>, false>;
40
+ }>, [T: DB.Param<"T", DB.Type>]>>>;
41
+ Group: DB.EnumCase<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"PrerequisiteGroup", DB.Object<{
42
+ list: DB.MemberDecl<DB.Array<DB.TypeArgument<DB.Param<"T", DB.Type>>>, true>;
43
+ translations: DB.MemberDecl<DB.NestedEntityMap<"PrerequisiteGroupTranslation", {
44
+ text: DB.MemberDecl<DB.String, true>;
45
+ }>, true>;
46
+ }>, [T: DB.Param<"T", DB.Type>]>>>;
47
+ }, [T: DB.Param<"T", DB.Type>]>>>, [T: DB.Param<"T", DB.Type>]>>, []>>, false>;
48
+ }>, []>>>;
49
+ }, []>;
19
50
  export declare const RecipeTradeSecret: DB.TypeAlias<"RecipeTradeSecret", DB.Object<{
20
51
  ap_value: DB.MemberDecl<DB.Integer, true>;
21
52
  prerequisites: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"PlainGeneralPrerequisites", DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"PlainPrerequisites", DB.Array<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.Enum<"PrerequisitesElement", {
@@ -24,6 +24,15 @@ export const LaboratoryLevel = DB.Enum(import.meta.url, {
24
24
  AlchemistsLaboratory: DB.EnumCase({ type: null }),
25
25
  }),
26
26
  });
27
+ export const RecipeComplexity = DB.Enum(import.meta.url, {
28
+ name: "RecipeComplexity",
29
+ comment: "The complexity of crafting the recipe.",
30
+ values: () => ({
31
+ Primitive: DB.EnumCase({ type: null }),
32
+ Simple: DB.EnumCase({ type: null }),
33
+ Complex: DB.EnumCase({ type: DB.IncludeIdentifier(RecipeTradeSecret) }),
34
+ }),
35
+ });
27
36
  export const RecipeTradeSecret = DB.TypeAlias(import.meta.url, {
28
37
  name: "RecipeTradeSecret",
29
38
  type: () => DB.Object({
@@ -46,7 +46,7 @@ export declare const DefaultItem: (sourceUrl: string, singularName: string, plur
46
46
  }, []>>, false>;
47
47
  attackModifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"AttackModifier", DB.Integer, []>>, false>;
48
48
  parryModifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ParryModifier", DB.Integer, []>>, false>;
49
- reach: DB.MemberDecl<DB.ReferenceIdentifier, false>;
49
+ reach: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, false>;
50
50
  length: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Length", DB.Integer, []>>, false>;
51
51
  size: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ShieldSize", {
52
52
  Small: DB.EnumCase<null>;
@@ -69,7 +69,10 @@ export declare const DefaultItem: (sourceUrl: string, singularName: string, plur
69
69
  medium: DB.MemberDecl<DB.Integer, true>;
70
70
  far: DB.MemberDecl<DB.Integer, true>;
71
71
  }>, []>>, true>;
72
- ammunition: DB.MemberDecl<DB.ReferenceIdentifier, false>;
72
+ ammunition: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"AmmunitionishIdentifier", {
73
+ Ammunition: DB.EnumCase<DB.ReferenceIdentifier>;
74
+ Weapon: DB.EnumCase<DB.ReferenceIdentifier>;
75
+ }, []>>, false>;
73
76
  length: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Length", DB.Integer, []>>, false>;
74
77
  is_improvised_weapon: DB.MemberDecl<DB.Boolean, true>;
75
78
  }>, false>;
@@ -223,7 +226,7 @@ export declare const CombatUse: DB.Enum<"CombatUse", {
223
226
  }, []>>, false>;
224
227
  attackModifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"AttackModifier", DB.Integer, []>>, false>;
225
228
  parryModifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ParryModifier", DB.Integer, []>>, false>;
226
- reach: DB.MemberDecl<DB.ReferenceIdentifier, false>;
229
+ reach: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, false>;
227
230
  length: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Length", DB.Integer, []>>, false>;
228
231
  size: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ShieldSize", {
229
232
  Small: DB.EnumCase<null>;
@@ -246,7 +249,10 @@ export declare const CombatUse: DB.Enum<"CombatUse", {
246
249
  medium: DB.MemberDecl<DB.Integer, true>;
247
250
  far: DB.MemberDecl<DB.Integer, true>;
248
251
  }>, []>>, true>;
249
- ammunition: DB.MemberDecl<DB.ReferenceIdentifier, false>;
252
+ ammunition: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"AmmunitionishIdentifier", {
253
+ Ammunition: DB.EnumCase<DB.ReferenceIdentifier>;
254
+ Weapon: DB.EnumCase<DB.ReferenceIdentifier>;
255
+ }, []>>, false>;
250
256
  length: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Length", DB.Integer, []>>, false>;
251
257
  is_improvised_weapon: DB.MemberDecl<DB.Boolean, true>;
252
258
  }>, false>;
@@ -19,7 +19,7 @@ export declare const MeleeWeapon: DB.TypeAlias<"MeleeWeapon", DB.IncludeIdentifi
19
19
  }, []>>, false>;
20
20
  attackModifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"AttackModifier", DB.Integer, []>>, false>;
21
21
  parryModifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ParryModifier", DB.Integer, []>>, false>;
22
- reach: DB.MemberDecl<DB.ReferenceIdentifier, false>;
22
+ reach: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, false>;
23
23
  length: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Length", DB.Integer, []>>, false>;
24
24
  size: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ShieldSize", {
25
25
  Small: DB.EnumCase<null>;
@@ -47,7 +47,7 @@ export declare const GenMeleeWeapon: DB.TypeAlias<"GenMeleeWeapon", DB.Object<{
47
47
  }, []>>, false>;
48
48
  attackModifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"AttackModifier", DB.Integer, []>>, false>;
49
49
  parryModifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ParryModifier", DB.Integer, []>>, false>;
50
- reach: DB.MemberDecl<DB.ReferenceIdentifier, false>;
50
+ reach: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, false>;
51
51
  length: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Length", DB.Integer, []>>, false>;
52
52
  size: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ShieldSize", {
53
53
  Small: DB.EnumCase<null>;
@@ -74,7 +74,7 @@ export const GenMeleeWeapon = DB.GenTypeAlias(import.meta.url, {
74
74
  }),
75
75
  reach: DB.Optional({
76
76
  comment: "The reach of the weapon.",
77
- type: ReachIdentifier(),
77
+ type: DB.Array(ReachIdentifier(), { minItems: 1, uniqueItems: true }),
78
78
  }),
79
79
  length: DB.Optional({
80
80
  comment: "The length of the weapon in cm/halffingers.",
@@ -12,7 +12,10 @@ export declare const RangedWeapon: DB.TypeAlias<"RangedWeapon", DB.IncludeIdenti
12
12
  medium: DB.MemberDecl<DB.Integer, true>;
13
13
  far: DB.MemberDecl<DB.Integer, true>;
14
14
  }>, []>>, true>;
15
- ammunition: DB.MemberDecl<DB.ReferenceIdentifier, false>;
15
+ ammunition: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"AmmunitionishIdentifier", {
16
+ Ammunition: DB.EnumCase<DB.ReferenceIdentifier>;
17
+ Weapon: DB.EnumCase<DB.ReferenceIdentifier>;
18
+ }, []>>, false>;
16
19
  length: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Length", DB.Integer, []>>, false>;
17
20
  is_improvised_weapon: DB.MemberDecl<DB.Boolean, true>;
18
21
  }>, [Damage: DB.Param<"Damage", DB.Type>]>>, []>;
@@ -26,7 +29,10 @@ export declare const GenRangedWeapon: DB.TypeAlias<"GenRangedWeapon", DB.Object<
26
29
  medium: DB.MemberDecl<DB.Integer, true>;
27
30
  far: DB.MemberDecl<DB.Integer, true>;
28
31
  }>, []>>, true>;
29
- ammunition: DB.MemberDecl<DB.ReferenceIdentifier, false>;
32
+ ammunition: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"AmmunitionishIdentifier", {
33
+ Ammunition: DB.EnumCase<DB.ReferenceIdentifier>;
34
+ Weapon: DB.EnumCase<DB.ReferenceIdentifier>;
35
+ }, []>>, false>;
30
36
  length: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Length", DB.Integer, []>>, false>;
31
37
  is_improvised_weapon: DB.MemberDecl<DB.Boolean, true>;
32
38
  }>, [Damage: DB.Param<"Damage", DB.Type>]>;
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import * as DB from "tsondb/schema/dsl";
5
5
  import { Dice } from "../../_Dice.js";
6
- import { AmmunitionIdentifier } from "../../_Identifier.js";
6
+ import { AmmunitionishIdentifier } from "../../_IdentifierGroup.js";
7
7
  import { Length } from "./_Weapon.js";
8
8
  const RangedDamage = DB.Enum(import.meta.url, {
9
9
  name: "RangedDamage",
@@ -53,7 +53,7 @@ export const GenRangedWeapon = DB.GenTypeAlias(import.meta.url, {
53
53
  }),
54
54
  ammunition: DB.Optional({
55
55
  comment: "The needed ammunition.",
56
- type: AmmunitionIdentifier(),
56
+ type: DB.IncludeIdentifier(AmmunitionishIdentifier),
57
57
  }),
58
58
  length: DB.Optional({
59
59
  comment: "The length of the weapon in cm/halffingers.",
@@ -1,5 +1,6 @@
1
1
  import * as DB from "tsondb/schema/dsl";
2
2
  export declare const Reach: DB.Entity<"Reach", {
3
+ position: DB.MemberDecl<DB.Integer, true>;
3
4
  translations: DB.MemberDecl<DB.NestedEntityMap<"ReachTranslation", {
4
5
  name: DB.MemberDecl<DB.String, true>;
5
6
  }>, true>;
@@ -4,6 +4,10 @@ export const Reach = DB.Entity(import.meta.url, {
4
4
  name: "Reach",
5
5
  namePlural: "Reaches",
6
6
  type: () => DB.Object({
7
+ position: DB.Required({
8
+ comment: "The position of the reach in lists. Lower values indicate a shorter range; higher values a larger range. This has to be a unique value.",
9
+ type: DB.Integer({ minimum: 0 }),
10
+ }),
7
11
  translations: NestedTranslationMap(DB.Required, "Reach", DB.Object({
8
12
  name: DB.Required({
9
13
  comment: "The reach’s name.",
@@ -12,6 +16,9 @@ export const Reach = DB.Entity(import.meta.url, {
12
16
  })),
13
17
  }),
14
18
  instanceDisplayName: {},
19
+ sortOrder: {
20
+ keyPath: "position",
21
+ },
15
22
  uniqueConstraints: [
16
23
  {
17
24
  entityMapKeyPath: "translations",
@@ -68,6 +68,7 @@ export declare const AnimistPower: DB.Entity<"AnimistPower", {
68
68
  base: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultValue", {
69
69
  QualityLevels: DB.EnumCase<null>;
70
70
  SkillPoints: DB.EnumCase<null>;
71
+ SkillRating: DB.EnumCase<null>;
71
72
  }, []>>, true>;
72
73
  modifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CheckResultBasedModifier", DB.Object<{
73
74
  arithmetic: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultArithmetic", {
@@ -56,6 +56,7 @@ export declare const Curse: DB.Entity<"Curse", {
56
56
  base: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultValue", {
57
57
  QualityLevels: DB.EnumCase<null>;
58
58
  SkillPoints: DB.EnumCase<null>;
59
+ SkillRating: DB.EnumCase<null>;
59
60
  }, []>>, true>;
60
61
  modifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CheckResultBasedModifier", DB.Object<{
61
62
  arithmetic: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultArithmetic", {
@@ -105,6 +106,7 @@ export declare const Curse: DB.Entity<"Curse", {
105
106
  base: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultValue", {
106
107
  QualityLevels: DB.EnumCase<null>;
107
108
  SkillPoints: DB.EnumCase<null>;
109
+ SkillRating: DB.EnumCase<null>;
108
110
  }, []>>, true>;
109
111
  modifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CheckResultBasedModifier", DB.Object<{
110
112
  arithmetic: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultArithmetic", {
@@ -41,6 +41,7 @@ export declare const DominationRitual: DB.Entity<"DominationRitual", {
41
41
  base: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultValue", {
42
42
  QualityLevels: DB.EnumCase<null>;
43
43
  SkillPoints: DB.EnumCase<null>;
44
+ SkillRating: DB.EnumCase<null>;
44
45
  }, []>>, true>;
45
46
  modifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CheckResultBasedModifier", DB.Object<{
46
47
  arithmetic: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultArithmetic", {
@@ -90,6 +91,7 @@ export declare const DominationRitual: DB.Entity<"DominationRitual", {
90
91
  base: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultValue", {
91
92
  QualityLevels: DB.EnumCase<null>;
92
93
  SkillPoints: DB.EnumCase<null>;
94
+ SkillRating: DB.EnumCase<null>;
93
95
  }, []>>, true>;
94
96
  modifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CheckResultBasedModifier", DB.Object<{
95
97
  arithmetic: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultArithmetic", {
@@ -76,6 +76,7 @@ export declare const GeodeRitual: DB.Entity<"GeodeRitual", {
76
76
  base: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultValue", {
77
77
  QualityLevels: DB.EnumCase<null>;
78
78
  SkillPoints: DB.EnumCase<null>;
79
+ SkillRating: DB.EnumCase<null>;
79
80
  }, []>>, true>;
80
81
  modifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CheckResultBasedModifier", DB.Object<{
81
82
  arithmetic: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultArithmetic", {
@@ -46,6 +46,7 @@ export declare const JesterTrick: DB.Entity<"JesterTrick", {
46
46
  base: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultValue", {
47
47
  QualityLevels: DB.EnumCase<null>;
48
48
  SkillPoints: DB.EnumCase<null>;
49
+ SkillRating: DB.EnumCase<null>;
49
50
  }, []>>, true>;
50
51
  modifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CheckResultBasedModifier", DB.Object<{
51
52
  arithmetic: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultArithmetic", {
@@ -212,6 +213,7 @@ export declare const JesterTrickPerformanceParameters: DB.TypeAlias<"JesterTrick
212
213
  base: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultValue", {
213
214
  QualityLevels: DB.EnumCase<null>;
214
215
  SkillPoints: DB.EnumCase<null>;
216
+ SkillRating: DB.EnumCase<null>;
215
217
  }, []>>, true>;
216
218
  modifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CheckResultBasedModifier", DB.Object<{
217
219
  arithmetic: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultArithmetic", {
@@ -272,6 +274,7 @@ export declare const JesterTrickDuration: DB.Enum<"JesterTrickDuration", {
272
274
  base: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultValue", {
273
275
  QualityLevels: DB.EnumCase<null>;
274
276
  SkillPoints: DB.EnumCase<null>;
277
+ SkillRating: DB.EnumCase<null>;
275
278
  }, []>>, true>;
276
279
  modifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CheckResultBasedModifier", DB.Object<{
277
280
  arithmetic: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultArithmetic", {
@@ -25,6 +25,21 @@ export declare const MagicalMelody: DB.Entity<"MagicalMelody", {
25
25
  cost: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"MagicalMelodyCost", {
26
26
  Fixed: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"FixedMagicalMelodyCost", DB.Object<{
27
27
  value: DB.MemberDecl<DB.Integer, true>;
28
+ interval: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"DurationUnitValue", DB.Object<{
29
+ value: DB.MemberDecl<DB.Integer, true>;
30
+ unit: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"DurationUnit", {
31
+ Seconds: DB.EnumCase<null>;
32
+ Minutes: DB.EnumCase<null>;
33
+ Hours: DB.EnumCase<null>;
34
+ Days: DB.EnumCase<null>;
35
+ Weeks: DB.EnumCase<null>;
36
+ Months: DB.EnumCase<null>;
37
+ Years: DB.EnumCase<null>;
38
+ Centuries: DB.EnumCase<null>;
39
+ Actions: DB.EnumCase<null>;
40
+ CombatRounds: DB.EnumCase<null>;
41
+ }, []>>, true>;
42
+ }>, []>>, false>;
28
43
  }>, []>>>;
29
44
  FirstPerson: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"FirstPersonMagicalMelodyCost", DB.Object<{
30
45
  value: DB.MemberDecl<DB.Integer, true>;
@@ -1,5 +1,6 @@
1
1
  import * as DB from "tsondb/schema/dsl";
2
2
  import { OldParameter } from "../_ActivatableSkill.js";
3
+ import { DurationUnitValue } from "../_ActivatableSkillDuration.js";
3
4
  import { ActivatableSkillEffect } from "../_ActivatableSkillEffect.js";
4
5
  import { ArcaneBardTraditionIdentifier, PropertyIdentifier, SkillIdentifier, } from "../_Identifier.js";
5
6
  import { ImprovementCost } from "../_ImprovementCost.js";
@@ -105,6 +106,10 @@ const FixedMagicalMelodyCost = DB.TypeAlias(import.meta.url, {
105
106
  comment: "The (temporary) AE cost value.",
106
107
  type: DB.Integer({ minimum: 1 }),
107
108
  }),
109
+ interval: DB.Optional({
110
+ comment: "The interval at which to pay half the initial cost.",
111
+ type: DB.IncludeIdentifier(DurationUnitValue),
112
+ }),
108
113
  }),
109
114
  });
110
115
  const FirstPersonMagicalMelodyCost = DB.TypeAlias(import.meta.url, {
@@ -85,6 +85,7 @@ export declare const MagicalRune: DB.Entity<"MagicalRune", {
85
85
  base: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultValue", {
86
86
  QualityLevels: DB.EnumCase<null>;
87
87
  SkillPoints: DB.EnumCase<null>;
88
+ SkillRating: DB.EnumCase<null>;
88
89
  }, []>>, true>;
89
90
  modifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CheckResultBasedModifier", DB.Object<{
90
91
  arithmetic: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultArithmetic", {
@@ -117,6 +118,7 @@ export declare const MagicalRune: DB.Entity<"MagicalRune", {
117
118
  base: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultValue", {
118
119
  QualityLevels: DB.EnumCase<null>;
119
120
  SkillPoints: DB.EnumCase<null>;
121
+ SkillRating: DB.EnumCase<null>;
120
122
  }, []>>, true>;
121
123
  modifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CheckResultBasedModifier", DB.Object<{
122
124
  arithmetic: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultArithmetic", {
@@ -193,6 +193,7 @@ export declare const ZibiljaRitual: DB.Entity<"ZibiljaRitual", {
193
193
  base: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultValue", {
194
194
  QualityLevels: DB.EnumCase<null>;
195
195
  SkillPoints: DB.EnumCase<null>;
196
+ SkillRating: DB.EnumCase<null>;
196
197
  }, []>>, true>;
197
198
  modifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CheckResultBasedModifier", DB.Object<{
198
199
  arithmetic: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultArithmetic", {
@@ -278,6 +279,7 @@ export declare const ZibiljaRitual: DB.Entity<"ZibiljaRitual", {
278
279
  base: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultValue", {
279
280
  QualityLevels: DB.EnumCase<null>;
280
281
  SkillPoints: DB.EnumCase<null>;
282
+ SkillRating: DB.EnumCase<null>;
281
283
  }, []>>, true>;
282
284
  modifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CheckResultBasedModifier", DB.Object<{
283
285
  arithmetic: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultArithmetic", {