@optolith/database-schema 0.103.1 → 0.104.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 (33) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/gen/types.d.ts +16 -2
  3. package/lib/types/Locale.d.ts +1 -0
  4. package/lib/types/Locale.js +1 -0
  5. package/lib/types/Talisman.js +1 -0
  6. package/lib/types/equipment/item/ArmorAccessory.d.ts +6 -3
  7. package/lib/types/equipment/item/BandageOrRemedy.d.ts +6 -3
  8. package/lib/types/equipment/item/Book.d.ts +6 -3
  9. package/lib/types/equipment/item/CeremonialItem.d.ts +6 -3
  10. package/lib/types/equipment/item/Clothes.d.ts +6 -3
  11. package/lib/types/equipment/item/Container.d.ts +6 -3
  12. package/lib/types/equipment/item/EquipmentOfBlessedOnes.d.ts +6 -3
  13. package/lib/types/equipment/item/IlluminationLightSource.d.ts +6 -3
  14. package/lib/types/equipment/item/IlluminationRefillOrSupply.d.ts +6 -3
  15. package/lib/types/equipment/item/Item.d.ts +6 -3
  16. package/lib/types/equipment/item/Jewelry.d.ts +6 -3
  17. package/lib/types/equipment/item/Liebesspielzeug.d.ts +6 -3
  18. package/lib/types/equipment/item/LuxuryGood.d.ts +6 -3
  19. package/lib/types/equipment/item/MagicalArtifact.d.ts +6 -3
  20. package/lib/types/equipment/item/MusicalInstrument.d.ts +6 -3
  21. package/lib/types/equipment/item/OrienteeringAid.d.ts +6 -3
  22. package/lib/types/equipment/item/RopeOrChain.d.ts +6 -3
  23. package/lib/types/equipment/item/Stationery.d.ts +6 -3
  24. package/lib/types/equipment/item/ThievesTool.d.ts +6 -3
  25. package/lib/types/equipment/item/ToolOfTheTrade.d.ts +6 -3
  26. package/lib/types/equipment/item/TravelGearOrTool.d.ts +6 -3
  27. package/lib/types/equipment/item/Weapon.d.ts +6 -3
  28. package/lib/types/equipment/item/WeaponAccessory.d.ts +6 -3
  29. package/lib/types/equipment/item/_Item.d.ts +12 -6
  30. package/lib/types/equipment/item/_Item.js +9 -1
  31. package/lib/types/equipment/item/_Weapon.d.ts +2 -1
  32. package/lib/types/equipment/item/_Weapon.js +3 -2
  33. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,22 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.
4
4
 
5
+ ## [0.104.0](https://github.com/Optolith/database-schema/compare/v0.103.2...v0.104.0) (2026-10-15)
6
+
7
+ ### ⚠ BREAKING CHANGES
8
+
9
+ * unbreakable item
10
+
11
+ ### Features
12
+
13
+ * unbreakable item ([33a049b](https://github.com/Optolith/database-schema/commit/33a049b15a560dff757d9253229c20bc1c6bb683))
14
+
15
+ ## [0.103.2](https://github.com/Optolith/database-schema/compare/v0.103.1...v0.103.2) (2026-10-15)
16
+
17
+ ### Features
18
+
19
+ * talisman may have weight and rules without actual combat values ([99d2c40](https://github.com/Optolith/database-schema/commit/99d2c40ea0baa2fa0cb5fa2e03a9c7f5d9d3d538))
20
+
5
21
  ## [0.103.1](https://github.com/Optolith/database-schema/compare/v0.103.0...v0.103.1) (2026-10-15)
6
22
 
7
23
  ### Features
package/gen/types.d.ts CHANGED
@@ -484,6 +484,7 @@ export type EnumMap = {
484
484
  SpellworkIdentifier: SpellworkIdentifier
485
485
  SpellworkPrerequisiteGroup: SpellworkPrerequisiteGroup
486
486
  SpellworkTraditions: SpellworkTraditions
487
+ StructurePoints: StructurePoints
487
488
  SustainedAnimistPowerCost: SustainedAnimistPowerCost
488
489
  SustainedCost: SustainedCost
489
490
  SustainedCostMap: SustainedCostMap
@@ -1000,8 +1001,8 @@ export type TypeAliasMap = {
1000
1001
  StandardArmorType: StandardArmorType
1001
1002
  StandardVariantArmorType: StandardVariantArmorType
1002
1003
  StatePrerequisite: StatePrerequisite
1003
- StructurePoints: StructurePoints
1004
1004
  StructurePointsComponent: StructurePointsComponent
1005
+ StructurePointsPoints: StructurePointsPoints
1005
1006
  StyleSpecialAbilitySettings: StyleSpecialAbilitySettings
1006
1007
  SupernaturalBaseAdvantageSettings: SupernaturalBaseAdvantageSettings
1007
1008
  SustainedAnimistPowerPerformanceParameters: SustainedAnimistPowerPerformanceParameters
@@ -2700,6 +2701,7 @@ export interface Locale {
2700
2701
  "Medium Shield": string
2701
2702
  "Small Shield": string
2702
2703
  "{$value} structure points": string & { __params: { "value": string } }
2704
+ "unbreakable": string
2703
2705
  "additional {$value} AT for main weapon": string & { __params: { "value": string } }
2704
2706
  "Price": string
2705
2707
  "all armor": string
@@ -12779,10 +12781,22 @@ export interface ComplexComplexity {
12779
12781
  src?: PublicationRefs
12780
12782
  }
12781
12783
 
12784
+ /**
12785
+ * The structure points of the item. Use an array if the item consists of multiple components that have individual structure points. The item may also be declared as unbreakable, in which case the item has no structure points.
12786
+ */
12787
+ export type StructurePoints =
12788
+ | {
12789
+ kind: "Unbreakable"
12790
+ }
12791
+ | {
12792
+ kind: "Points"
12793
+ Points: StructurePointsPoints
12794
+ }
12795
+
12782
12796
  /**
12783
12797
  * The structure points of the item. Use an array if the item consists of multiple components that have individual structure points.
12784
12798
  */
12785
- export type StructurePoints = StructurePointsComponent[]
12799
+ export type StructurePointsPoints = StructurePointsComponent[]
12786
12800
 
12787
12801
  export interface StructurePointsComponent {
12788
12802
  /**
@@ -1511,6 +1511,7 @@ export declare const Locale: DB.Entity<"Locale", {
1511
1511
  "Medium Shield": null;
1512
1512
  "Small Shield": null;
1513
1513
  "{$value} structure points": null;
1514
+ unbreakable: null;
1514
1515
  "additional {$value} AT for main weapon": null;
1515
1516
  Price: null;
1516
1517
  "all armor": null;
@@ -1553,6 +1553,7 @@ export const Locale = DB.Entity(import.meta.url, {
1553
1553
  "Medium Shield": null,
1554
1554
  "Small Shield": null,
1555
1555
  "{$value} structure points": null,
1556
+ "unbreakable": null,
1556
1557
  "additional {$value} AT for main weapon": null,
1557
1558
  "Price": null,
1558
1559
  "all armor": null,
@@ -61,6 +61,7 @@ export const Talisman = DB.Entity(import.meta.url, {
61
61
  instanceContent: instanceContent.combatUse,
62
62
  getDisplayNameAndId,
63
63
  getInstanceById,
64
+ allowNoUses: true,
64
65
  })
65
66
  : [],
66
67
  });
@@ -95,9 +95,12 @@ export declare const ArmorAccessory: DB.Entity<"ArmorAccessory", {
95
95
  }>, []>>>, []>>, false>;
96
96
  }>, []>>>;
97
97
  }, []>>, false>;
98
- structure_points: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePoints", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsComponent", DB.Object<{
99
- points: DB.MemberDecl<DB.Integer, true>;
100
- }>, []>>>, []>>, false>;
98
+ structure_points: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"StructurePoints", {
99
+ Unbreakable: DB.EnumCase<null>;
100
+ Points: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsPoints", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsComponent", DB.Object<{
101
+ points: DB.MemberDecl<DB.Integer, true>;
102
+ }>, []>>>, []>>>;
103
+ }, []>>, false>;
101
104
  combat_use: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CombatUse", {
102
105
  Weapon: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ImprovisedWeapon", DB.Object<{
103
106
  melee_uses: DB.MemberDecl<DB.NestedEntityMap<string, {
@@ -95,9 +95,12 @@ export declare const BandageOrRemedy: DB.Entity<"BandageOrRemedy", {
95
95
  }>, []>>>, []>>, false>;
96
96
  }>, []>>>;
97
97
  }, []>>, false>;
98
- structure_points: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePoints", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsComponent", DB.Object<{
99
- points: DB.MemberDecl<DB.Integer, true>;
100
- }>, []>>>, []>>, false>;
98
+ structure_points: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"StructurePoints", {
99
+ Unbreakable: DB.EnumCase<null>;
100
+ Points: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsPoints", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsComponent", DB.Object<{
101
+ points: DB.MemberDecl<DB.Integer, true>;
102
+ }>, []>>>, []>>>;
103
+ }, []>>, false>;
101
104
  combat_use: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CombatUse", {
102
105
  Weapon: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ImprovisedWeapon", DB.Object<{
103
106
  melee_uses: DB.MemberDecl<DB.NestedEntityMap<string, {
@@ -182,9 +182,12 @@ export declare const Book: DB.Entity<"Book", {
182
182
  }>, []>>>, []>>, false>;
183
183
  }>, []>>>;
184
184
  }, []>>, false>;
185
- structure_points: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePoints", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsComponent", DB.Object<{
186
- points: DB.MemberDecl<DB.Integer, true>;
187
- }>, []>>>, []>>, false>;
185
+ structure_points: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"StructurePoints", {
186
+ Unbreakable: DB.EnumCase<null>;
187
+ Points: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsPoints", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsComponent", DB.Object<{
188
+ points: DB.MemberDecl<DB.Integer, true>;
189
+ }>, []>>>, []>>>;
190
+ }, []>>, false>;
188
191
  contentQuality: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"BookContentQuality", {
189
192
  Modest: DB.EnumCase<null>;
190
193
  Average: DB.EnumCase<null>;
@@ -95,9 +95,12 @@ export declare const CeremonialItem: DB.Entity<"CeremonialItem", {
95
95
  }>, []>>>, []>>, false>;
96
96
  }>, []>>>;
97
97
  }, []>>, false>;
98
- structure_points: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePoints", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsComponent", DB.Object<{
99
- points: DB.MemberDecl<DB.Integer, true>;
100
- }>, []>>>, []>>, false>;
98
+ structure_points: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"StructurePoints", {
99
+ Unbreakable: DB.EnumCase<null>;
100
+ Points: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsPoints", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsComponent", DB.Object<{
101
+ points: DB.MemberDecl<DB.Integer, true>;
102
+ }>, []>>>, []>>>;
103
+ }, []>>, false>;
101
104
  associated_tradition: DB.MemberDecl<DB.ReferenceIdentifier, true>;
102
105
  combat_use: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CombatUse", {
103
106
  Weapon: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ImprovisedWeapon", DB.Object<{
@@ -95,9 +95,12 @@ export declare const Clothes: DB.Entity<"Clothes", {
95
95
  }>, []>>>, []>>, false>;
96
96
  }>, []>>>;
97
97
  }, []>>, false>;
98
- structure_points: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePoints", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsComponent", DB.Object<{
99
- points: DB.MemberDecl<DB.Integer, true>;
100
- }>, []>>>, []>>, false>;
98
+ structure_points: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"StructurePoints", {
99
+ Unbreakable: DB.EnumCase<null>;
100
+ Points: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsPoints", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsComponent", DB.Object<{
101
+ points: DB.MemberDecl<DB.Integer, true>;
102
+ }>, []>>>, []>>>;
103
+ }, []>>, false>;
101
104
  combat_use: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CombatUse", {
102
105
  Weapon: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ImprovisedWeapon", DB.Object<{
103
106
  melee_uses: DB.MemberDecl<DB.NestedEntityMap<string, {
@@ -95,9 +95,12 @@ export declare const Container: DB.Entity<"Container", {
95
95
  }>, []>>>, []>>, false>;
96
96
  }>, []>>>;
97
97
  }, []>>, false>;
98
- structure_points: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePoints", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsComponent", DB.Object<{
99
- points: DB.MemberDecl<DB.Integer, true>;
100
- }>, []>>>, []>>, false>;
98
+ structure_points: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"StructurePoints", {
99
+ Unbreakable: DB.EnumCase<null>;
100
+ Points: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsPoints", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsComponent", DB.Object<{
101
+ points: DB.MemberDecl<DB.Integer, true>;
102
+ }>, []>>>, []>>>;
103
+ }, []>>, false>;
101
104
  combat_use: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CombatUse", {
102
105
  Weapon: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ImprovisedWeapon", DB.Object<{
103
106
  melee_uses: DB.MemberDecl<DB.NestedEntityMap<string, {
@@ -22,9 +22,12 @@ export declare const EquipmentOfBlessedOnes: DB.Entity<"EquipmentOfBlessedOnes",
22
22
  }>, false>;
23
23
  }>, []>>>;
24
24
  }, []>>, true>;
25
- structure_points: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePoints", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsComponent", DB.Object<{
26
- points: DB.MemberDecl<DB.Integer, true>;
27
- }>, []>>>, []>>, true>;
25
+ structure_points: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"StructurePoints", {
26
+ Unbreakable: DB.EnumCase<null>;
27
+ Points: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsPoints", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsComponent", DB.Object<{
28
+ points: DB.MemberDecl<DB.Integer, true>;
29
+ }>, []>>>, []>>>;
30
+ }, []>>, true>;
28
31
  associatedTraditions: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"AssociatedTradition", {
29
32
  Specific: DB.EnumCase<DB.ReferenceIdentifier>;
30
33
  ManyShamans: DB.EnumCase<null>;
@@ -95,9 +95,12 @@ export declare const IlluminationLightSource: DB.Entity<"IlluminationLightSource
95
95
  }>, []>>>, []>>, false>;
96
96
  }>, []>>>;
97
97
  }, []>>, false>;
98
- structure_points: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePoints", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsComponent", DB.Object<{
99
- points: DB.MemberDecl<DB.Integer, true>;
100
- }>, []>>>, []>>, true>;
98
+ structure_points: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"StructurePoints", {
99
+ Unbreakable: DB.EnumCase<null>;
100
+ Points: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsPoints", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsComponent", DB.Object<{
101
+ points: DB.MemberDecl<DB.Integer, true>;
102
+ }>, []>>>, []>>>;
103
+ }, []>>, true>;
101
104
  burning_time: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"BurningTime", {
102
105
  Unlimited: DB.EnumCase<null>;
103
106
  Limited: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"LimitedBurningTime", DB.Object<{
@@ -95,9 +95,12 @@ export declare const IlluminationRefillOrSupply: DB.Entity<"IlluminationRefillOr
95
95
  }>, []>>>, []>>, false>;
96
96
  }>, []>>>;
97
97
  }, []>>, false>;
98
- structure_points: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePoints", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsComponent", DB.Object<{
99
- points: DB.MemberDecl<DB.Integer, true>;
100
- }>, []>>>, []>>, false>;
98
+ structure_points: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"StructurePoints", {
99
+ Unbreakable: DB.EnumCase<null>;
100
+ Points: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsPoints", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsComponent", DB.Object<{
101
+ points: DB.MemberDecl<DB.Integer, true>;
102
+ }>, []>>>, []>>>;
103
+ }, []>>, false>;
101
104
  combat_use: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CombatUse", {
102
105
  Weapon: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ImprovisedWeapon", DB.Object<{
103
106
  melee_uses: DB.MemberDecl<DB.NestedEntityMap<string, {
@@ -96,9 +96,12 @@ export declare const Item: DB.Entity<"Item", {
96
96
  }>, []>>>, []>>, false>;
97
97
  }>, []>>>;
98
98
  }, []>>, false>;
99
- structurePoints: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePoints", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsComponent", DB.Object<{
100
- points: DB.MemberDecl<DB.Integer, true>;
101
- }>, []>>>, []>>, true>;
99
+ structurePoints: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"StructurePoints", {
100
+ Unbreakable: DB.EnumCase<null>;
101
+ Points: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsPoints", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsComponent", DB.Object<{
102
+ points: DB.MemberDecl<DB.Integer, true>;
103
+ }>, []>>>, []>>>;
104
+ }, []>>, true>;
102
105
  burningTime: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"BurningTime", {
103
106
  Unlimited: DB.EnumCase<null>;
104
107
  Limited: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"LimitedBurningTime", DB.Object<{
@@ -82,9 +82,12 @@ export declare const Jewelry: DB.Entity<"Jewelry", {
82
82
  }>, []>>>, []>>, false>;
83
83
  }>, []>>>;
84
84
  }, []>>, false>;
85
- structure_points: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePoints", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsComponent", DB.Object<{
86
- points: DB.MemberDecl<DB.Integer, true>;
87
- }>, []>>>, []>>, true>;
85
+ structure_points: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"StructurePoints", {
86
+ Unbreakable: DB.EnumCase<null>;
87
+ Points: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsPoints", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsComponent", DB.Object<{
88
+ points: DB.MemberDecl<DB.Integer, true>;
89
+ }>, []>>>, []>>>;
90
+ }, []>>, true>;
88
91
  src: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"PublicationRefs", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"PublicationRef", DB.Object<{
89
92
  id: DB.MemberDecl<DB.ReferenceIdentifier, true>;
90
93
  occurrences: DB.MemberDecl<DB.NestedEntityMap<string, {
@@ -95,9 +95,12 @@ export declare const Liebesspielzeug: DB.Entity<"Liebesspielzeug", {
95
95
  }>, []>>>, []>>, false>;
96
96
  }>, []>>>;
97
97
  }, []>>, false>;
98
- structure_points: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePoints", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsComponent", DB.Object<{
99
- points: DB.MemberDecl<DB.Integer, true>;
100
- }>, []>>>, []>>, false>;
98
+ structure_points: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"StructurePoints", {
99
+ Unbreakable: DB.EnumCase<null>;
100
+ Points: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsPoints", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsComponent", DB.Object<{
101
+ points: DB.MemberDecl<DB.Integer, true>;
102
+ }>, []>>>, []>>>;
103
+ }, []>>, false>;
101
104
  combat_use: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CombatUse", {
102
105
  Weapon: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ImprovisedWeapon", DB.Object<{
103
106
  melee_uses: DB.MemberDecl<DB.NestedEntityMap<string, {
@@ -95,9 +95,12 @@ export declare const LuxuryGood: DB.Entity<"LuxuryGood", {
95
95
  }>, []>>>, []>>, false>;
96
96
  }>, []>>>;
97
97
  }, []>>, false>;
98
- structure_points: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePoints", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsComponent", DB.Object<{
99
- points: DB.MemberDecl<DB.Integer, true>;
100
- }>, []>>>, []>>, false>;
98
+ structure_points: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"StructurePoints", {
99
+ Unbreakable: DB.EnumCase<null>;
100
+ Points: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsPoints", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsComponent", DB.Object<{
101
+ points: DB.MemberDecl<DB.Integer, true>;
102
+ }>, []>>>, []>>>;
103
+ }, []>>, false>;
101
104
  combat_use: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CombatUse", {
102
105
  Weapon: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ImprovisedWeapon", DB.Object<{
103
106
  melee_uses: DB.MemberDecl<DB.NestedEntityMap<string, {
@@ -95,9 +95,12 @@ export declare const MagicalArtifact: DB.Entity<"MagicalArtifact", {
95
95
  }>, []>>>, []>>, false>;
96
96
  }>, []>>>;
97
97
  }, []>>, false>;
98
- structure_points: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePoints", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsComponent", DB.Object<{
99
- points: DB.MemberDecl<DB.Integer, true>;
100
- }>, []>>>, []>>, false>;
98
+ structure_points: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"StructurePoints", {
99
+ Unbreakable: DB.EnumCase<null>;
100
+ Points: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsPoints", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsComponent", DB.Object<{
101
+ points: DB.MemberDecl<DB.Integer, true>;
102
+ }>, []>>>, []>>>;
103
+ }, []>>, false>;
101
104
  combat_use: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CombatUse", {
102
105
  Weapon: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ImprovisedWeapon", DB.Object<{
103
106
  melee_uses: DB.MemberDecl<DB.NestedEntityMap<string, {
@@ -95,9 +95,12 @@ export declare const MusicalInstrument: DB.Entity<"MusicalInstrument", {
95
95
  }>, []>>>, []>>, false>;
96
96
  }>, []>>>;
97
97
  }, []>>, false>;
98
- structure_points: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePoints", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsComponent", DB.Object<{
99
- points: DB.MemberDecl<DB.Integer, true>;
100
- }>, []>>>, []>>, false>;
98
+ structure_points: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"StructurePoints", {
99
+ Unbreakable: DB.EnumCase<null>;
100
+ Points: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsPoints", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsComponent", DB.Object<{
101
+ points: DB.MemberDecl<DB.Integer, true>;
102
+ }>, []>>>, []>>>;
103
+ }, []>>, false>;
101
104
  combat_use: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CombatUse", {
102
105
  Weapon: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ImprovisedWeapon", DB.Object<{
103
106
  melee_uses: DB.MemberDecl<DB.NestedEntityMap<string, {
@@ -94,9 +94,12 @@ export declare const OrienteeringAid: import("tsondb/schema/dsl").Entity<string,
94
94
  }>, []>>>, []>>, false>;
95
95
  }>, []>>>;
96
96
  }, []>>, false>;
97
- structure_points: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"StructurePoints", import("tsondb/schema/dsl").Array<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"StructurePointsComponent", import("tsondb/schema/dsl").Object<{
98
- points: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").Integer, true>;
99
- }>, []>>>, []>>, true>;
97
+ structure_points: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").Enum<"StructurePoints", {
98
+ Unbreakable: import("tsondb/schema/dsl").EnumCase<null>;
99
+ Points: import("tsondb/schema/dsl").EnumCase<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"StructurePointsPoints", import("tsondb/schema/dsl").Array<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"StructurePointsComponent", import("tsondb/schema/dsl").Object<{
100
+ points: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").Integer, true>;
101
+ }>, []>>>, []>>>;
102
+ }, []>>, true>;
100
103
  combat_use: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").Enum<"CombatUse", {
101
104
  Weapon: import("tsondb/schema/dsl").EnumCase<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"ImprovisedWeapon", import("tsondb/schema/dsl").Object<{
102
105
  melee_uses: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").NestedEntityMap<string, {
@@ -94,9 +94,12 @@ export declare const RopeOrChain: import("tsondb/schema/dsl").Entity<string, {
94
94
  }>, []>>>, []>>, false>;
95
95
  }>, []>>>;
96
96
  }, []>>, false>;
97
- structure_points: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"StructurePoints", import("tsondb/schema/dsl").Array<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"StructurePointsComponent", import("tsondb/schema/dsl").Object<{
98
- points: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").Integer, true>;
99
- }>, []>>>, []>>, true>;
97
+ structure_points: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").Enum<"StructurePoints", {
98
+ Unbreakable: import("tsondb/schema/dsl").EnumCase<null>;
99
+ Points: import("tsondb/schema/dsl").EnumCase<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"StructurePointsPoints", import("tsondb/schema/dsl").Array<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"StructurePointsComponent", import("tsondb/schema/dsl").Object<{
100
+ points: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").Integer, true>;
101
+ }>, []>>>, []>>>;
102
+ }, []>>, true>;
100
103
  combat_use: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").Enum<"CombatUse", {
101
104
  Weapon: import("tsondb/schema/dsl").EnumCase<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"ImprovisedWeapon", import("tsondb/schema/dsl").Object<{
102
105
  melee_uses: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").NestedEntityMap<string, {
@@ -94,9 +94,12 @@ export declare const Stationery: import("tsondb/schema/dsl").Entity<string, {
94
94
  }>, []>>>, []>>, false>;
95
95
  }>, []>>>;
96
96
  }, []>>, false>;
97
- structure_points: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"StructurePoints", import("tsondb/schema/dsl").Array<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"StructurePointsComponent", import("tsondb/schema/dsl").Object<{
98
- points: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").Integer, true>;
99
- }>, []>>>, []>>, true>;
97
+ structure_points: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").Enum<"StructurePoints", {
98
+ Unbreakable: import("tsondb/schema/dsl").EnumCase<null>;
99
+ Points: import("tsondb/schema/dsl").EnumCase<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"StructurePointsPoints", import("tsondb/schema/dsl").Array<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"StructurePointsComponent", import("tsondb/schema/dsl").Object<{
100
+ points: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").Integer, true>;
101
+ }>, []>>>, []>>>;
102
+ }, []>>, true>;
100
103
  combat_use: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").Enum<"CombatUse", {
101
104
  Weapon: import("tsondb/schema/dsl").EnumCase<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"ImprovisedWeapon", import("tsondb/schema/dsl").Object<{
102
105
  melee_uses: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").NestedEntityMap<string, {
@@ -94,9 +94,12 @@ export declare const ThievesTool: import("tsondb/schema/dsl").Entity<string, {
94
94
  }>, []>>>, []>>, false>;
95
95
  }>, []>>>;
96
96
  }, []>>, false>;
97
- structure_points: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"StructurePoints", import("tsondb/schema/dsl").Array<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"StructurePointsComponent", import("tsondb/schema/dsl").Object<{
98
- points: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").Integer, true>;
99
- }>, []>>>, []>>, true>;
97
+ structure_points: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").Enum<"StructurePoints", {
98
+ Unbreakable: import("tsondb/schema/dsl").EnumCase<null>;
99
+ Points: import("tsondb/schema/dsl").EnumCase<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"StructurePointsPoints", import("tsondb/schema/dsl").Array<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"StructurePointsComponent", import("tsondb/schema/dsl").Object<{
100
+ points: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").Integer, true>;
101
+ }>, []>>>, []>>>;
102
+ }, []>>, true>;
100
103
  combat_use: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").Enum<"CombatUse", {
101
104
  Weapon: import("tsondb/schema/dsl").EnumCase<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"ImprovisedWeapon", import("tsondb/schema/dsl").Object<{
102
105
  melee_uses: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").NestedEntityMap<string, {
@@ -95,9 +95,12 @@ export declare const ToolOfTheTrade: DB.Entity<"ToolOfTheTrade", {
95
95
  }>, []>>>, []>>, false>;
96
96
  }>, []>>>;
97
97
  }, []>>, false>;
98
- structure_points: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePoints", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsComponent", DB.Object<{
99
- points: DB.MemberDecl<DB.Integer, true>;
100
- }>, []>>>, []>>, true>;
98
+ structure_points: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"StructurePoints", {
99
+ Unbreakable: DB.EnumCase<null>;
100
+ Points: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsPoints", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsComponent", DB.Object<{
101
+ points: DB.MemberDecl<DB.Integer, true>;
102
+ }>, []>>>, []>>>;
103
+ }, []>>, true>;
101
104
  src: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"PublicationRefs", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"PublicationRef", DB.Object<{
102
105
  id: DB.MemberDecl<DB.ReferenceIdentifier, true>;
103
106
  occurrences: DB.MemberDecl<DB.NestedEntityMap<string, {
@@ -95,9 +95,12 @@ export declare const TravelGearOrTool: DB.Entity<"TravelGearOrTool", {
95
95
  }>, []>>>, []>>, false>;
96
96
  }>, []>>>;
97
97
  }, []>>, false>;
98
- structure_points: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePoints", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsComponent", DB.Object<{
99
- points: DB.MemberDecl<DB.Integer, true>;
100
- }>, []>>>, []>>, false>;
98
+ structure_points: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"StructurePoints", {
99
+ Unbreakable: DB.EnumCase<null>;
100
+ Points: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsPoints", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsComponent", DB.Object<{
101
+ points: DB.MemberDecl<DB.Integer, true>;
102
+ }>, []>>>, []>>>;
103
+ }, []>>, false>;
101
104
  combat_use: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CombatUse", {
102
105
  Weapon: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ImprovisedWeapon", DB.Object<{
103
106
  melee_uses: DB.MemberDecl<DB.NestedEntityMap<string, {
@@ -95,9 +95,12 @@ export declare const Weapon: DB.Entity<"Weapon", {
95
95
  }>, []>>>, []>>, false>;
96
96
  }>, []>>>;
97
97
  }, []>>, false>;
98
- structure_points: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePoints", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsComponent", DB.Object<{
99
- points: DB.MemberDecl<DB.Integer, true>;
100
- }>, []>>>, []>>, false>;
98
+ structure_points: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"StructurePoints", {
99
+ Unbreakable: DB.EnumCase<null>;
100
+ Points: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsPoints", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsComponent", DB.Object<{
101
+ points: DB.MemberDecl<DB.Integer, true>;
102
+ }>, []>>>, []>>>;
103
+ }, []>>, false>;
101
104
  melee_uses: DB.MemberDecl<DB.NestedEntityMap<string, {
102
105
  damage: DB.MemberDecl<DB.TypeArgument<DB.Param<"Damage", DB.Type>>, true>;
103
106
  damage_threshold: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"PrimaryAttributeDamageThreshold", {
@@ -95,9 +95,12 @@ export declare const WeaponAccessory: DB.Entity<"WeaponAccessory", {
95
95
  }>, []>>>, []>>, false>;
96
96
  }>, []>>>;
97
97
  }, []>>, false>;
98
- structure_points: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePoints", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsComponent", DB.Object<{
99
- points: DB.MemberDecl<DB.Integer, true>;
100
- }>, []>>>, []>>, false>;
98
+ structure_points: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"StructurePoints", {
99
+ Unbreakable: DB.EnumCase<null>;
100
+ Points: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsPoints", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsComponent", DB.Object<{
101
+ points: DB.MemberDecl<DB.Integer, true>;
102
+ }>, []>>>, []>>>;
103
+ }, []>>, false>;
101
104
  combat_use: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CombatUse", {
102
105
  Weapon: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ImprovisedWeapon", DB.Object<{
103
106
  melee_uses: DB.MemberDecl<DB.NestedEntityMap<string, {
@@ -95,9 +95,12 @@ export declare const DefaultItem: (sourceUrl: string, singularName: string, plur
95
95
  }>, []>>>, []>>, false>;
96
96
  }>, []>>>;
97
97
  }, []>>, false>;
98
- structure_points: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePoints", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsComponent", DB.Object<{
99
- points: DB.MemberDecl<DB.Integer, true>;
100
- }>, []>>>, []>>, true>;
98
+ structure_points: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"StructurePoints", {
99
+ Unbreakable: DB.EnumCase<null>;
100
+ Points: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsPoints", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsComponent", DB.Object<{
101
+ points: DB.MemberDecl<DB.Integer, true>;
102
+ }>, []>>>, []>>>;
103
+ }, []>>, true>;
101
104
  combat_use: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CombatUse", {
102
105
  Weapon: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ImprovisedWeapon", DB.Object<{
103
106
  melee_uses: DB.MemberDecl<DB.NestedEntityMap<string, {
@@ -500,9 +503,12 @@ export declare const CombatUse: DB.Enum<"CombatUse", {
500
503
  }>, false>;
501
504
  }>, []>>>;
502
505
  }, []>;
503
- export declare const StructurePoints: DB.TypeAlias<"StructurePoints", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsComponent", DB.Object<{
504
- points: DB.MemberDecl<DB.Integer, true>;
505
- }>, []>>>, []>;
506
+ export declare const StructurePoints: DB.Enum<"StructurePoints", {
507
+ Unbreakable: DB.EnumCase<null>;
508
+ Points: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsPoints", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsComponent", DB.Object<{
509
+ points: DB.MemberDecl<DB.Integer, true>;
510
+ }>, []>>>, []>>>;
511
+ }, []>;
506
512
  export declare const Cost: DB.Enum<"Cost", {
507
513
  Free: DB.EnumCase<null>;
508
514
  Various: DB.EnumCase<null>;
@@ -83,8 +83,16 @@ export const CombatUse = DB.Enum(import.meta.url, {
83
83
  Armor: DB.EnumCase({ type: DB.IncludeIdentifier(SecondaryArmor) }),
84
84
  }),
85
85
  });
86
- export const StructurePoints = DB.TypeAlias(import.meta.url, {
86
+ export const StructurePoints = DB.Enum(import.meta.url, {
87
87
  name: "StructurePoints",
88
+ comment: "The structure points of the item. Use an array if the item consists of multiple components that have individual structure points. The item may also be declared as unbreakable, in which case the item has no structure points.",
89
+ values: () => ({
90
+ Unbreakable: DB.EnumCase({ type: null }),
91
+ Points: DB.EnumCase({ type: DB.IncludeIdentifier(StructurePointsPoints) }),
92
+ }),
93
+ });
94
+ const StructurePointsPoints = DB.TypeAlias(import.meta.url, {
95
+ name: "StructurePointsPoints",
88
96
  comment: "The structure points of the item. Use an array if the item consists of multiple components that have individual structure points.",
89
97
  type: () => DB.Array(DB.IncludeIdentifier(StructurePointsComponent), { minItems: 1 }),
90
98
  });
@@ -13,7 +13,7 @@ export declare const PrimaryAttributeDamageThreshold: DB.Enum<"PrimaryAttributeD
13
13
  }>, []>>>;
14
14
  }, []>;
15
15
  export declare const Length: DB.TypeAlias<"Length", DB.Integer, []>;
16
- export declare const checkWeaponCombatTechniqueIntegrity: ({ instanceContent, getInstanceById, getDisplayNameAndId, }: {
16
+ export declare const checkWeaponCombatTechniqueIntegrity: ({ instanceContent, getInstanceById, getDisplayNameAndId, allowNoUses, }: {
17
17
  instanceContent: {
18
18
  melee_uses?: Record<string, GenMeleeWeapon<unknown>>;
19
19
  meleeUses?: Record<string, GenMeleeWeapon<unknown>>;
@@ -22,4 +22,5 @@ export declare const checkWeaponCombatTechniqueIntegrity: ({ instanceContent, ge
22
22
  };
23
23
  getInstanceById: GetInstanceById;
24
24
  getDisplayNameAndId: GetDisplayNameAndId;
25
+ allowNoUses?: boolean;
25
26
  }) => string[];
@@ -47,12 +47,13 @@ export const Length = DB.TypeAlias(import.meta.url, {
47
47
  comment: "The length of the weapon in cm/halffingers.",
48
48
  type: () => DB.Integer({ minimum: 1 }),
49
49
  });
50
- export const checkWeaponCombatTechniqueIntegrity = ({ instanceContent, getInstanceById, getDisplayNameAndId, }) => {
50
+ export const checkWeaponCombatTechniqueIntegrity = ({ instanceContent, getInstanceById, getDisplayNameAndId, allowNoUses, }) => {
51
51
  const checkPart = (rule, value, name, type, id) => (rule.kind === "Prohibited") === (value === undefined) || rule.kind === "Optional"
52
52
  ? undefined
53
53
  : `${name} must${rule.kind === "Required" ? "" : " not"} be provided for ${type} combat technique ${getDisplayNameAndId(type === "close" ? "CloseCombatTechnique" : "RangedCombatTechnique", id)}`;
54
54
  return [
55
- instanceContent.melee_uses === undefined &&
55
+ allowNoUses !== true &&
56
+ instanceContent.melee_uses === undefined &&
56
57
  instanceContent.ranged_uses === undefined &&
57
58
  instanceContent.meleeUses === undefined &&
58
59
  instanceContent.rangedUses === undefined
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@optolith/database-schema",
3
- "version": "0.103.1",
3
+ "version": "0.104.0",
4
4
  "description": "Definitions and utilities for the flat-file database of Optolith, a character creation tool for the Pen and Paper RPG “The Dark Eye 5”, and its external integrations into other software.",
5
5
  "keywords": [
6
6
  "tde",