optolith-database-schema 0.40.0 → 0.41.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 (268) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/README.md +1 -1
  3. package/gen/types.d.ts +1705 -1606
  4. package/lib/types/DerivedCharacteristic.d.ts +23 -14
  5. package/lib/types/DerivedCharacteristic.js +58 -21
  6. package/lib/types/Disease.d.ts +2 -0
  7. package/lib/types/Disease.js +8 -0
  8. package/lib/types/Profession.d.ts +31 -14
  9. package/lib/types/Profession.js +12 -2
  10. package/lib/types/Race.d.ts +22 -15
  11. package/lib/types/Race.js +26 -20
  12. package/lib/types/Talisman.d.ts +32 -6
  13. package/lib/types/Talisman.js +51 -11
  14. package/lib/types/_Identifier.d.ts +1 -0
  15. package/lib/types/_Identifier.js +2 -0
  16. package/lib/types/_IdentifierGroup.d.ts +58 -0
  17. package/lib/types/_IdentifierGroup.js +15 -1
  18. package/lib/types/equipment/item/BandageOrRemedy.d.ts +5 -2
  19. package/lib/types/equipment/item/CeremonialItem.d.ts +6 -3
  20. package/lib/types/equipment/item/CeremonialItem.js +1 -1
  21. package/lib/types/equipment/item/Clothes.d.ts +5 -2
  22. package/lib/types/equipment/item/Container.d.ts +5 -2
  23. package/lib/types/equipment/item/Elixir.d.ts +16 -1
  24. package/lib/types/equipment/item/Elixir.js +35 -5
  25. package/lib/types/equipment/item/EquipmentOfBlessedOnes.d.ts +5 -2
  26. package/lib/types/equipment/item/IlluminationLightSource.d.ts +5 -2
  27. package/lib/types/equipment/item/IlluminationRefillOrSupply.d.ts +5 -2
  28. package/lib/types/equipment/item/Liebesspielzeug.d.ts +5 -2
  29. package/lib/types/equipment/item/LuxuryGood.d.ts +5 -2
  30. package/lib/types/equipment/item/MagicalArtifact.d.ts +5 -2
  31. package/lib/types/equipment/item/MusicalInstrument.d.ts +5 -2
  32. package/lib/types/equipment/item/OrienteeringAid.d.ts +5 -2
  33. package/lib/types/equipment/item/Poison.d.ts +64 -91
  34. package/lib/types/equipment/item/Poison.js +5 -34
  35. package/lib/types/equipment/item/RopeOrChain.d.ts +5 -2
  36. package/lib/types/equipment/item/Stationery.d.ts +5 -2
  37. package/lib/types/equipment/item/ThievesTool.d.ts +5 -2
  38. package/lib/types/equipment/item/TravelGearOrTool.d.ts +5 -2
  39. package/lib/types/equipment/item/Weapon.d.ts +10 -4
  40. package/lib/types/equipment/item/WeaponAccessory.d.ts +5 -2
  41. package/lib/types/equipment/item/_Herbary.d.ts +31 -0
  42. package/lib/types/equipment/item/_Herbary.js +9 -0
  43. package/lib/types/equipment/item/_Item.d.ts +10 -4
  44. package/lib/types/equipment/item/_MeleeWeapon.d.ts +2 -2
  45. package/lib/types/equipment/item/_MeleeWeapon.js +1 -1
  46. package/lib/types/equipment/item/_RangedWeapon.d.ts +8 -2
  47. package/lib/types/equipment/item/_RangedWeapon.js +2 -2
  48. package/lib/types/equipment/item/sub/Reach.d.ts +1 -0
  49. package/lib/types/equipment/item/sub/Reach.js +7 -0
  50. package/lib/types/magicalActions/MagicalMelody.d.ts +15 -0
  51. package/lib/types/magicalActions/MagicalMelody.js +5 -0
  52. package/lib/types/prerequisites/PrerequisiteGroups.d.ts +132 -0
  53. package/lib/types/prerequisites/PrerequisiteGroups.js +1 -0
  54. package/package.json +7 -7
  55. package/schema/Advantage.schema.json +0 -108
  56. package/schema/AnimalDisease.schema.json +0 -74
  57. package/schema/AnimalType.schema.json +0 -47
  58. package/schema/ArcaneBardTradition.schema.json +0 -11
  59. package/schema/ArcaneDancerTradition.schema.json +0 -11
  60. package/schema/Aspect.schema.json +0 -51
  61. package/schema/Attribute.schema.json +0 -57
  62. package/schema/Blessing.schema.json +0 -265
  63. package/schema/Cantrip.schema.json +0 -443
  64. package/schema/Ceremony.schema.json +0 -122
  65. package/schema/CombatTechnique_Close.schema.json +0 -116
  66. package/schema/CombatTechnique_Ranged.schema.json +0 -99
  67. package/schema/Condition.schema.json +0 -68
  68. package/schema/Continent.schema.json +0 -49
  69. package/schema/Culture.schema.json +0 -781
  70. package/schema/DerivedCharacteristic.schema.json +0 -90
  71. package/schema/Disadvantage.schema.json +0 -97
  72. package/schema/Disease.schema.json +0 -58
  73. package/schema/Element.schema.json +0 -48
  74. package/schema/ExperienceLevel.schema.json +0 -84
  75. package/schema/EyeColor.schema.json +0 -47
  76. package/schema/FamiliarsTrick.schema.json +0 -576
  77. package/schema/HairColor.schema.json +0 -47
  78. package/schema/Kirchenpraegung.schema.json +0 -11
  79. package/schema/Lessons_Curriculum.schema.json +0 -499
  80. package/schema/Lessons_Guideline.schema.json +0 -53
  81. package/schema/LiturgicalChant.schema.json +0 -122
  82. package/schema/Locale.schema.json +0 -38
  83. package/schema/MetaCondition.schema.json +0 -69
  84. package/schema/PactCategory.schema.json +0 -150
  85. package/schema/Patron.schema.json +0 -352
  86. package/schema/PatronCategory.schema.json +0 -57
  87. package/schema/PersonalityTrait.schema.json +0 -100
  88. package/schema/Profession.schema.json +0 -1424
  89. package/schema/Property.schema.json +0 -51
  90. package/schema/Race.schema.json +0 -534
  91. package/schema/Region.schema.json +0 -47
  92. package/schema/Ritual.schema.json +0 -120
  93. package/schema/Service.schema.json +0 -79
  94. package/schema/SexPractice.schema.json +0 -70
  95. package/schema/Skill.schema.json +0 -223
  96. package/schema/SkillGroup.schema.json +0 -57
  97. package/schema/SkillModificationLevel.schema.json +0 -153
  98. package/schema/SocialStatus.schema.json +0 -47
  99. package/schema/Spell.schema.json +0 -119
  100. package/schema/State.schema.json +0 -59
  101. package/schema/Talisman.schema.json +0 -120
  102. package/schema/TargetCategory.schema.json +0 -65
  103. package/schema/UI.schema.json +0 -4441
  104. package/schema/_Activatable.schema.json +0 -2755
  105. package/schema/_ActivatableSelectOptionCategory.schema.json +0 -1313
  106. package/schema/_ActivatableSkill.schema.json +0 -188
  107. package/schema/_ActivatableSkillCastingTime.schema.json +0 -181
  108. package/schema/_ActivatableSkillCheckResultBased.schema.json +0 -65
  109. package/schema/_ActivatableSkillCost.schema.json +0 -513
  110. package/schema/_ActivatableSkillDuration.schema.json +0 -353
  111. package/schema/_ActivatableSkillEffect.schema.json +0 -122
  112. package/schema/_ActivatableSkillRange.schema.json +0 -264
  113. package/schema/_ActivatableSkillTargetCategory.schema.json +0 -145
  114. package/schema/_AlternativeNames.schema.json +0 -23
  115. package/schema/_ArcaneTradition.schema.json +0 -51
  116. package/schema/_Blessed.schema.json +0 -64
  117. package/schema/_Dice.schema.json +0 -40
  118. package/schema/_DiseasePoison.schema.json +0 -152
  119. package/schema/_Enhancements.schema.json +0 -85
  120. package/schema/_I18n.schema.json +0 -55
  121. package/schema/_Identifier.schema.json +0 -2577
  122. package/schema/_IdentifierGroup.schema.json +0 -753
  123. package/schema/_ImprovementCost.schema.json +0 -23
  124. package/schema/_Influence.schema.json +0 -84
  125. package/schema/_NonEmptyString.schema.json +0 -14
  126. package/schema/_Prerequisite.schema.json +0 -1518
  127. package/schema/_ResponsiveText.schema.json +0 -66
  128. package/schema/_Sex.schema.json +0 -18
  129. package/schema/_SimpleReferences.schema.json +0 -522
  130. package/schema/_SkillCheck.schema.json +0 -38
  131. package/schema/_Spellwork.schema.json +0 -54
  132. package/schema/equipment/EquipmentPackage.schema.json +0 -79
  133. package/schema/equipment/item/Ammunition.schema.json +0 -56
  134. package/schema/equipment/item/Animal.schema.json +0 -36
  135. package/schema/equipment/item/AnimalCare.schema.json +0 -124
  136. package/schema/equipment/item/Armor.schema.json +0 -309
  137. package/schema/equipment/item/BandageOrRemedy.schema.json +0 -53
  138. package/schema/equipment/item/Book.schema.json +0 -89
  139. package/schema/equipment/item/CeremonialItem.schema.json +0 -59
  140. package/schema/equipment/item/Clothes.schema.json +0 -10
  141. package/schema/equipment/item/Container.schema.json +0 -10
  142. package/schema/equipment/item/Elixir.schema.json +0 -103
  143. package/schema/equipment/item/EquipmentOfBlessedOnes.schema.json +0 -49
  144. package/schema/equipment/item/GemOrPreciousStone.schema.json +0 -69
  145. package/schema/equipment/item/IlluminationLightSource.schema.json +0 -120
  146. package/schema/equipment/item/IlluminationRefillsOrSupplies.schema.json +0 -10
  147. package/schema/equipment/item/Jewelry.schema.json +0 -113
  148. package/schema/equipment/item/Liebesspielzeug.schema.json +0 -10
  149. package/schema/equipment/item/LuxuryGood.schema.json +0 -53
  150. package/schema/equipment/item/MagicalArtifact.schema.json +0 -64
  151. package/schema/equipment/item/MusicalInstrument.schema.json +0 -49
  152. package/schema/equipment/item/OrienteeringAid.schema.json +0 -10
  153. package/schema/equipment/item/Poison.schema.json +0 -835
  154. package/schema/equipment/item/RopeOrChain.schema.json +0 -10
  155. package/schema/equipment/item/Stationary.schema.json +0 -10
  156. package/schema/equipment/item/ThievesTool.schema.json +0 -10
  157. package/schema/equipment/item/ToolOfTheTrade.schema.json +0 -93
  158. package/schema/equipment/item/TravelGearOrTool.schema.json +0 -10
  159. package/schema/equipment/item/Vehicle.schema.json +0 -36
  160. package/schema/equipment/item/Weapon.schema.json +0 -285
  161. package/schema/equipment/item/WeaponAccessory.schema.json +0 -10
  162. package/schema/equipment/item/_Herbary.schema.json +0 -62
  163. package/schema/equipment/item/_Item.schema.json +0 -384
  164. package/schema/equipment/item/_MeleeWeapon.schema.json +0 -164
  165. package/schema/equipment/item/_RangedWeapon.schema.json +0 -185
  166. package/schema/equipment/item/_Weapon.schema.json +0 -99
  167. package/schema/equipment/item/sub/ArmorType.schema.json +0 -52
  168. package/schema/equipment/item/sub/Reach.schema.json +0 -47
  169. package/schema/magicalActions/AnimistPower.schema.json +0 -488
  170. package/schema/magicalActions/AnimistPower_Tribe.schema.json +0 -47
  171. package/schema/magicalActions/Curse.schema.json +0 -332
  172. package/schema/magicalActions/DominationRitual.schema.json +0 -275
  173. package/schema/magicalActions/ElvenMagicalSong.schema.json +0 -196
  174. package/schema/magicalActions/GeodeRitual.schema.json +0 -327
  175. package/schema/magicalActions/JesterTrick.schema.json +0 -311
  176. package/schema/magicalActions/MagicalDance.schema.json +0 -198
  177. package/schema/magicalActions/MagicalMelody.schema.json +0 -193
  178. package/schema/magicalActions/MagicalRune.schema.json +0 -578
  179. package/schema/magicalActions/ZibiljaRitual.schema.json +0 -165
  180. package/schema/magicalActions/_MusicTradition.schema.json +0 -82
  181. package/schema/magicalActions/_SkillReference.schema.json +0 -20
  182. package/schema/prerequisites/ConditionalPrerequisites.schema.json +0 -15
  183. package/schema/prerequisites/DisplayOption.schema.json +0 -70
  184. package/schema/prerequisites/PrerequisiteGroups.schema.json +0 -1029
  185. package/schema/prerequisites/single/ActivatablePrerequisite.schema.json +0 -45
  186. package/schema/prerequisites/single/AncestorBloodPrerequisite.schema.json +0 -14
  187. package/schema/prerequisites/single/AnimistPowerPrerequisite.schema.json +0 -36
  188. package/schema/prerequisites/single/CulturePrerequisite.schema.json +0 -24
  189. package/schema/prerequisites/single/EnhancementPrerequisite.schema.json +0 -61
  190. package/schema/prerequisites/single/InfluencePrerequisite.schema.json +0 -28
  191. package/schema/prerequisites/single/PactPrerequisite.schema.json +0 -36
  192. package/schema/prerequisites/single/PrimaryAttributePrerequisite.schema.json +0 -39
  193. package/schema/prerequisites/single/PublicationPrerequisite.schema.json +0 -22
  194. package/schema/prerequisites/single/RacePrerequisite.schema.json +0 -28
  195. package/schema/prerequisites/single/RatedMinimumNumberPrerequisite.schema.json +0 -172
  196. package/schema/prerequisites/single/RatedPrerequisite.schema.json +0 -29
  197. package/schema/prerequisites/single/RatedSumPrerequisite.schema.json +0 -33
  198. package/schema/prerequisites/single/RulePrerequisite.schema.json +0 -22
  199. package/schema/prerequisites/single/SexPrerequisite.schema.json +0 -23
  200. package/schema/prerequisites/single/SexualCharacteristicPrerequisite.schema.json +0 -30
  201. package/schema/prerequisites/single/SocialStatusPrerequisite.schema.json +0 -24
  202. package/schema/prerequisites/single/StatePrerequisite.schema.json +0 -23
  203. package/schema/prerequisites/single/TextPrerequisite.schema.json +0 -64
  204. package/schema/prerequisites/single/TraditionPrerequisite.schema.json +0 -58
  205. package/schema/rule/CoreRule.schema.json +0 -1403
  206. package/schema/rule/FocusRule.schema.json +0 -76
  207. package/schema/rule/FocusRule_Subject.schema.json +0 -48
  208. package/schema/rule/OptionalRule.schema.json +0 -64
  209. package/schema/source/Publication.schema.json +0 -103
  210. package/schema/source/_Erratum.schema.json +0 -36
  211. package/schema/source/_PublicationRef.schema.json +0 -285
  212. package/schema/specialAbility/AdvancedCombatSpecialAbility.schema.json +0 -102
  213. package/schema/specialAbility/AdvancedKarmaSpecialAbility.schema.json +0 -80
  214. package/schema/specialAbility/AdvancedMagicalSpecialAbility.schema.json +0 -80
  215. package/schema/specialAbility/AdvancedSkillSpecialAbility.schema.json +0 -80
  216. package/schema/specialAbility/AncestorGlyph.schema.json +0 -80
  217. package/schema/specialAbility/BlessedTradition.schema.json +0 -354
  218. package/schema/specialAbility/BrawlingSpecialAbility.schema.json +0 -82
  219. package/schema/specialAbility/CeremonialItemSpecialAbility.schema.json +0 -87
  220. package/schema/specialAbility/CombatSpecialAbility.schema.json +0 -98
  221. package/schema/specialAbility/CombatStyleSpecialAbility.schema.json +0 -273
  222. package/schema/specialAbility/CommandSpecialAbility.schema.json +0 -82
  223. package/schema/specialAbility/FamiliarSpecialAbility.schema.json +0 -74
  224. package/schema/specialAbility/FatePointSexSpecialAbility.schema.json +0 -74
  225. package/schema/specialAbility/FatePointSpecialAbility.schema.json +0 -84
  226. package/schema/specialAbility/GeneralSpecialAbility.schema.json +0 -88
  227. package/schema/specialAbility/KarmaSpecialAbility.schema.json +0 -78
  228. package/schema/specialAbility/LiturgicalStyleSpecialAbility.schema.json +0 -260
  229. package/schema/specialAbility/LycantropicGift.schema.json +0 -74
  230. package/schema/specialAbility/MagicStyleSpecialAbility.schema.json +0 -260
  231. package/schema/specialAbility/MagicalSign.schema.json +0 -72
  232. package/schema/specialAbility/MagicalSpecialAbility.schema.json +0 -88
  233. package/schema/specialAbility/MagicalTradition.schema.json +0 -163
  234. package/schema/specialAbility/PactGift.schema.json +0 -254
  235. package/schema/specialAbility/ProtectiveWardingCircleSpecialAbility.schema.json +0 -86
  236. package/schema/specialAbility/Sermon.schema.json +0 -74
  237. package/schema/specialAbility/SexSpecialAbility.schema.json +0 -80
  238. package/schema/specialAbility/SikaryanDrainSpecialAbility.schema.json +0 -78
  239. package/schema/specialAbility/SkillStyleSpecialAbility.schema.json +0 -254
  240. package/schema/specialAbility/VampiricGift.schema.json +0 -78
  241. package/schema/specialAbility/Vision.schema.json +0 -74
  242. package/schema/specialAbility/_Tradition.schema.json +0 -23
  243. package/schema/specialAbility/sub/Language.schema.json +0 -222
  244. package/schema/specialAbility/sub/Script.schema.json +0 -90
  245. package/schema/specialAbility/sub/TradeSecret.schema.json +0 -72
  246. package/schema/specialAbility/sub/_LanguageScript.schema.json +0 -24
  247. package/schema/traditionArtifacts/ArcaneOrbEnchantment.schema.json +0 -95
  248. package/schema/traditionArtifacts/AttireEnchantment.schema.json +0 -95
  249. package/schema/traditionArtifacts/BowlEnchantment.schema.json +0 -95
  250. package/schema/traditionArtifacts/CauldronEnchantment.schema.json +0 -115
  251. package/schema/traditionArtifacts/ChronicleEnchantment.schema.json +0 -95
  252. package/schema/traditionArtifacts/DaggerRitual.schema.json +0 -176
  253. package/schema/traditionArtifacts/FoolsHatEnchantment.schema.json +0 -95
  254. package/schema/traditionArtifacts/InstrumentEnchantment.schema.json +0 -95
  255. package/schema/traditionArtifacts/Krallenkettenzauber.schema.json +0 -95
  256. package/schema/traditionArtifacts/OrbEnchantment.schema.json +0 -95
  257. package/schema/traditionArtifacts/RingEnchantment.schema.json +0 -95
  258. package/schema/traditionArtifacts/SickleRitual.schema.json +0 -95
  259. package/schema/traditionArtifacts/SpellSwordEnchantment.schema.json +0 -99
  260. package/schema/traditionArtifacts/StaffEnchantment.schema.json +0 -103
  261. package/schema/traditionArtifacts/ToyEnchantment.schema.json +0 -95
  262. package/schema/traditionArtifacts/Trinkhornzauber.schema.json +0 -95
  263. package/schema/traditionArtifacts/WandEnchantment.schema.json +0 -87
  264. package/schema/traditionArtifacts/WeaponEnchantment.schema.json +0 -95
  265. package/schema/traditionArtifacts/sub/AnimalShape.schema.json +0 -85
  266. package/schema/traditionArtifacts/sub/AnimalShapePath.schema.json +0 -47
  267. package/schema/traditionArtifacts/sub/AnimalShapeSize.schema.json +0 -59
  268. package/schema/traditionArtifacts/sub/Brew.schema.json +0 -47
@@ -20,33 +20,37 @@ export declare const Poison: DB.Entity<"Poison", {
20
20
  }>>, []>>>;
21
21
  }, []>>, true>;
22
22
  is_extractable: DB.MemberDecl<DB.Boolean, true>;
23
- trade_secret: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"RecipeTradeSecret", DB.Object<{
24
- ap_value: DB.MemberDecl<DB.Integer, true>;
25
- 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", {
26
- Single: DB.EnumCase<DB.TypeArgument<DB.Param<"T", DB.Type>>>;
27
- Disjunction: DB.EnumCase<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"PrerequisitesDisjunction", DB.Object<{
28
- list: DB.MemberDecl<DB.Array<DB.TypeArgument<DB.Param<"T", DB.Type>>>, true>;
29
- display_option: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"DisplayOption", {
30
- Hide: DB.EnumCase<null>;
31
- ReplaceWith: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ReplacementDisplayOption", DB.Object<{
32
- sentence_type: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SentenceType", {
33
- Standalone: DB.EnumCase<null>;
34
- Connected: DB.EnumCase<null>;
35
- }, []>>, false>;
36
- translations: DB.MemberDecl<DB.NestedEntityMap<"ReplacementDisplayOptionTranslation", {
37
- replacement: DB.MemberDecl<DB.String, true>;
38
- }>, true>;
39
- }>, []>>>;
40
- }, []>>, false>;
41
- }>, [T: DB.Param<"T", DB.Type>]>>>;
42
- Group: DB.EnumCase<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"PrerequisiteGroup", DB.Object<{
43
- list: DB.MemberDecl<DB.Array<DB.TypeArgument<DB.Param<"T", DB.Type>>>, true>;
44
- translations: DB.MemberDecl<DB.NestedEntityMap<"PrerequisiteGroupTranslation", {
45
- text: DB.MemberDecl<DB.String, true>;
46
- }>, true>;
47
- }>, [T: DB.Param<"T", DB.Type>]>>>;
48
- }, [T: DB.Param<"T", DB.Type>]>>>, [T: DB.Param<"T", DB.Type>]>>, []>>, false>;
49
- }>, []>>, false>;
23
+ complexity: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"RecipeComplexity", {
24
+ Primitive: DB.EnumCase<null>;
25
+ Simple: DB.EnumCase<null>;
26
+ Complex: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"RecipeTradeSecret", DB.Object<{
27
+ ap_value: DB.MemberDecl<DB.Integer, true>;
28
+ 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", {
29
+ Single: DB.EnumCase<DB.TypeArgument<DB.Param<"T", DB.Type>>>;
30
+ Disjunction: DB.EnumCase<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"PrerequisitesDisjunction", DB.Object<{
31
+ list: DB.MemberDecl<DB.Array<DB.TypeArgument<DB.Param<"T", DB.Type>>>, true>;
32
+ display_option: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"DisplayOption", {
33
+ Hide: DB.EnumCase<null>;
34
+ ReplaceWith: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ReplacementDisplayOption", DB.Object<{
35
+ sentence_type: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SentenceType", {
36
+ Standalone: DB.EnumCase<null>;
37
+ Connected: DB.EnumCase<null>;
38
+ }, []>>, false>;
39
+ translations: DB.MemberDecl<DB.NestedEntityMap<"ReplacementDisplayOptionTranslation", {
40
+ replacement: DB.MemberDecl<DB.String, true>;
41
+ }>, true>;
42
+ }>, []>>>;
43
+ }, []>>, false>;
44
+ }>, [T: DB.Param<"T", DB.Type>]>>>;
45
+ Group: DB.EnumCase<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"PrerequisiteGroup", DB.Object<{
46
+ list: DB.MemberDecl<DB.Array<DB.TypeArgument<DB.Param<"T", DB.Type>>>, true>;
47
+ translations: DB.MemberDecl<DB.NestedEntityMap<"PrerequisiteGroupTranslation", {
48
+ text: DB.MemberDecl<DB.String, true>;
49
+ }>, true>;
50
+ }>, [T: DB.Param<"T", DB.Type>]>>>;
51
+ }, [T: DB.Param<"T", DB.Type>]>>>, [T: DB.Param<"T", DB.Type>]>>, []>>, false>;
52
+ }>, []>>>;
53
+ }, []>>, false>;
50
54
  }>, []>>>;
51
55
  AlchemicalPoison: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"AlchemicalPoison", DB.Object<{
52
56
  effect_types: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"EffectType", {
@@ -209,21 +213,8 @@ export declare const Poison: DB.Entity<"Poison", {
209
213
  }, []>>, true>;
210
214
  start: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"PoisonStart", {
211
215
  Immediate: DB.EnumCase<null>;
212
- Constant: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ConstantPoisonTime", DB.Object<{
213
- value: DB.MemberDecl<DB.Integer, true>;
214
- unit: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"PoisonTimeUnit", {
215
- CombatRounds: DB.EnumCase<null>;
216
- Minutes: DB.EnumCase<null>;
217
- Hours: DB.EnumCase<null>;
218
- Days: DB.EnumCase<null>;
219
- }, []>>, true>;
220
- }>, []>>>;
221
- DiceBased: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"DiceBasedPoisonTime", DB.Object<{
222
- dice: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Dice", DB.Object<{
223
- number: DB.MemberDecl<DB.Integer, true>;
224
- sides: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"DieType", DB.Integer, []>>, true>;
225
- }>, []>>, true>;
226
- flat: DB.MemberDecl<DB.Integer, false>;
216
+ ExpressionBased: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ExpressionBasedPoisonTime", DB.Object<{
217
+ value: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ExpressionBasedPoisonTimeValue", DB.IncludeIdentifier<DB.Param<string, DB.Type>[], MathOperation>, []>>, true>;
227
218
  unit: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"PoisonTimeUnit", {
228
219
  CombatRounds: DB.EnumCase<null>;
229
220
  Minutes: DB.EnumCase<null>;
@@ -328,28 +319,6 @@ export declare const IndefinitePoisonCost: DB.TypeAlias<"IndefinitePoisonCost",
328
319
  description: DB.MemberDecl<DB.String, true>;
329
320
  }>, true>;
330
321
  }>, []>;
331
- export declare const ConstantPoisonTime: DB.TypeAlias<"ConstantPoisonTime", DB.Object<{
332
- value: DB.MemberDecl<DB.Integer, true>;
333
- unit: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"PoisonTimeUnit", {
334
- CombatRounds: DB.EnumCase<null>;
335
- Minutes: DB.EnumCase<null>;
336
- Hours: DB.EnumCase<null>;
337
- Days: DB.EnumCase<null>;
338
- }, []>>, true>;
339
- }>, []>;
340
- export declare const DiceBasedPoisonTime: DB.TypeAlias<"DiceBasedPoisonTime", DB.Object<{
341
- dice: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Dice", DB.Object<{
342
- number: DB.MemberDecl<DB.Integer, true>;
343
- sides: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"DieType", DB.Integer, []>>, true>;
344
- }>, []>>, true>;
345
- flat: DB.MemberDecl<DB.Integer, false>;
346
- unit: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"PoisonTimeUnit", {
347
- CombatRounds: DB.EnumCase<null>;
348
- Minutes: DB.EnumCase<null>;
349
- Hours: DB.EnumCase<null>;
350
- Days: DB.EnumCase<null>;
351
- }, []>>, true>;
352
- }>, []>;
353
322
  export declare const ExpressionBasedPoisonTime: DB.TypeAlias<"ExpressionBasedPoisonTime", DB.Object<{
354
323
  value: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ExpressionBasedPoisonTimeValue", DB.IncludeIdentifier<DB.Param<string, DB.Type>[], MathOperation>, []>>, true>;
355
324
  unit: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"PoisonTimeUnit", {
@@ -385,33 +354,37 @@ export declare const AnimalVenom: DB.TypeAlias<"AnimalVenom", DB.Object<{
385
354
  }>>, []>>>;
386
355
  }, []>>, true>;
387
356
  is_extractable: DB.MemberDecl<DB.Boolean, true>;
388
- trade_secret: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"RecipeTradeSecret", DB.Object<{
389
- ap_value: DB.MemberDecl<DB.Integer, true>;
390
- 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", {
391
- Single: DB.EnumCase<DB.TypeArgument<DB.Param<"T", DB.Type>>>;
392
- Disjunction: DB.EnumCase<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"PrerequisitesDisjunction", DB.Object<{
393
- list: DB.MemberDecl<DB.Array<DB.TypeArgument<DB.Param<"T", DB.Type>>>, true>;
394
- display_option: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"DisplayOption", {
395
- Hide: DB.EnumCase<null>;
396
- ReplaceWith: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ReplacementDisplayOption", DB.Object<{
397
- sentence_type: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SentenceType", {
398
- Standalone: DB.EnumCase<null>;
399
- Connected: DB.EnumCase<null>;
400
- }, []>>, false>;
401
- translations: DB.MemberDecl<DB.NestedEntityMap<"ReplacementDisplayOptionTranslation", {
402
- replacement: DB.MemberDecl<DB.String, true>;
403
- }>, true>;
404
- }>, []>>>;
405
- }, []>>, false>;
406
- }>, [T: DB.Param<"T", DB.Type>]>>>;
407
- Group: DB.EnumCase<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"PrerequisiteGroup", DB.Object<{
408
- list: DB.MemberDecl<DB.Array<DB.TypeArgument<DB.Param<"T", DB.Type>>>, true>;
409
- translations: DB.MemberDecl<DB.NestedEntityMap<"PrerequisiteGroupTranslation", {
410
- text: DB.MemberDecl<DB.String, true>;
411
- }>, true>;
412
- }>, [T: DB.Param<"T", DB.Type>]>>>;
413
- }, [T: DB.Param<"T", DB.Type>]>>>, [T: DB.Param<"T", DB.Type>]>>, []>>, false>;
414
- }>, []>>, false>;
357
+ complexity: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"RecipeComplexity", {
358
+ Primitive: DB.EnumCase<null>;
359
+ Simple: DB.EnumCase<null>;
360
+ Complex: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"RecipeTradeSecret", DB.Object<{
361
+ ap_value: DB.MemberDecl<DB.Integer, true>;
362
+ 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", {
363
+ Single: DB.EnumCase<DB.TypeArgument<DB.Param<"T", DB.Type>>>;
364
+ Disjunction: DB.EnumCase<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"PrerequisitesDisjunction", DB.Object<{
365
+ list: DB.MemberDecl<DB.Array<DB.TypeArgument<DB.Param<"T", DB.Type>>>, true>;
366
+ display_option: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"DisplayOption", {
367
+ Hide: DB.EnumCase<null>;
368
+ ReplaceWith: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ReplacementDisplayOption", DB.Object<{
369
+ sentence_type: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SentenceType", {
370
+ Standalone: DB.EnumCase<null>;
371
+ Connected: DB.EnumCase<null>;
372
+ }, []>>, false>;
373
+ translations: DB.MemberDecl<DB.NestedEntityMap<"ReplacementDisplayOptionTranslation", {
374
+ replacement: DB.MemberDecl<DB.String, true>;
375
+ }>, true>;
376
+ }>, []>>>;
377
+ }, []>>, false>;
378
+ }>, [T: DB.Param<"T", DB.Type>]>>>;
379
+ Group: DB.EnumCase<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"PrerequisiteGroup", DB.Object<{
380
+ list: DB.MemberDecl<DB.Array<DB.TypeArgument<DB.Param<"T", DB.Type>>>, true>;
381
+ translations: DB.MemberDecl<DB.NestedEntityMap<"PrerequisiteGroupTranslation", {
382
+ text: DB.MemberDecl<DB.String, true>;
383
+ }>, true>;
384
+ }>, [T: DB.Param<"T", DB.Type>]>>>;
385
+ }, [T: DB.Param<"T", DB.Type>]>>>, [T: DB.Param<"T", DB.Type>]>>, []>>, false>;
386
+ }>, []>>>;
387
+ }, []>>, false>;
415
388
  }>, []>;
416
389
  export declare const AlchemicalPoison: DB.TypeAlias<"AlchemicalPoison", DB.Object<{
417
390
  effect_types: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"EffectType", {
@@ -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>;