@optolith/database-schema 0.106.0 → 0.107.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 (71) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/gen/types.d.ts +176 -1
  3. package/lib/types/_Prerequisite.d.ts +24 -0
  4. package/lib/types/_Prerequisite.js +5 -1
  5. package/lib/types/equipment/item/Ammunition.d.ts +24 -0
  6. package/lib/types/equipment/item/Ammunition.js +5 -0
  7. package/lib/types/equipment/item/Animal.d.ts +24 -0
  8. package/lib/types/equipment/item/Animal.js +5 -0
  9. package/lib/types/equipment/item/AnimalCare.d.ts +25 -1
  10. package/lib/types/equipment/item/AnimalCare.js +6 -1
  11. package/lib/types/equipment/item/Armor.d.ts +24 -0
  12. package/lib/types/equipment/item/Armor.js +5 -0
  13. package/lib/types/equipment/item/ArmorAccessory.d.ts +24 -0
  14. package/lib/types/equipment/item/ArmorAccessory.js +5 -0
  15. package/lib/types/equipment/item/BandageOrRemedy.d.ts +24 -0
  16. package/lib/types/equipment/item/BandageOrRemedy.js +5 -0
  17. package/lib/types/equipment/item/Book.d.ts +24 -0
  18. package/lib/types/equipment/item/Book.js +5 -1
  19. package/lib/types/equipment/item/CeremonialItem.d.ts +24 -0
  20. package/lib/types/equipment/item/CeremonialItem.js +5 -0
  21. package/lib/types/equipment/item/Clothes.d.ts +24 -0
  22. package/lib/types/equipment/item/Clothes.js +5 -0
  23. package/lib/types/equipment/item/Container.d.ts +24 -0
  24. package/lib/types/equipment/item/Container.js +5 -0
  25. package/lib/types/equipment/item/Elixir.d.ts +24 -0
  26. package/lib/types/equipment/item/Elixir.js +5 -0
  27. package/lib/types/equipment/item/EquipmentOfBlessedOnes.d.ts +24 -0
  28. package/lib/types/equipment/item/EquipmentOfBlessedOnes.js +5 -0
  29. package/lib/types/equipment/item/GemOrPreciousStone.d.ts +24 -0
  30. package/lib/types/equipment/item/GemOrPreciousStone.js +5 -0
  31. package/lib/types/equipment/item/IlluminationLightSource.d.ts +24 -0
  32. package/lib/types/equipment/item/IlluminationLightSource.js +5 -0
  33. package/lib/types/equipment/item/IlluminationRefillOrSupply.d.ts +24 -0
  34. package/lib/types/equipment/item/IlluminationRefillOrSupply.js +5 -0
  35. package/lib/types/equipment/item/Item.d.ts +24 -0
  36. package/lib/types/equipment/item/Item.js +5 -0
  37. package/lib/types/equipment/item/ItemComponent.d.ts +24 -0
  38. package/lib/types/equipment/item/ItemComponent.js +5 -0
  39. package/lib/types/equipment/item/Jewelry.d.ts +24 -0
  40. package/lib/types/equipment/item/Jewelry.js +5 -0
  41. package/lib/types/equipment/item/Laboratory.d.ts +24 -0
  42. package/lib/types/equipment/item/Laboratory.js +5 -0
  43. package/lib/types/equipment/item/Liebesspielzeug.d.ts +24 -0
  44. package/lib/types/equipment/item/Liebesspielzeug.js +5 -0
  45. package/lib/types/equipment/item/LuxuryGood.d.ts +24 -0
  46. package/lib/types/equipment/item/LuxuryGood.js +5 -0
  47. package/lib/types/equipment/item/MagicalArtifact.d.ts +24 -0
  48. package/lib/types/equipment/item/MagicalArtifact.js +5 -0
  49. package/lib/types/equipment/item/MusicalInstrument.d.ts +24 -0
  50. package/lib/types/equipment/item/MusicalInstrument.js +5 -0
  51. package/lib/types/equipment/item/OrienteeringAid.d.ts +24 -0
  52. package/lib/types/equipment/item/Poison.d.ts +24 -0
  53. package/lib/types/equipment/item/Poison.js +5 -0
  54. package/lib/types/equipment/item/RopeOrChain.d.ts +24 -0
  55. package/lib/types/equipment/item/Stationery.d.ts +24 -0
  56. package/lib/types/equipment/item/ThievesTool.d.ts +24 -0
  57. package/lib/types/equipment/item/ToolOfTheTrade.d.ts +24 -0
  58. package/lib/types/equipment/item/ToolOfTheTrade.js +5 -0
  59. package/lib/types/equipment/item/TravelGearOrTool.d.ts +24 -0
  60. package/lib/types/equipment/item/TravelGearOrTool.js +5 -0
  61. package/lib/types/equipment/item/Vehicle.d.ts +24 -0
  62. package/lib/types/equipment/item/Vehicle.js +5 -0
  63. package/lib/types/equipment/item/Weapon.d.ts +24 -0
  64. package/lib/types/equipment/item/Weapon.js +5 -0
  65. package/lib/types/equipment/item/WeaponAccessory.d.ts +24 -0
  66. package/lib/types/equipment/item/WeaponAccessory.js +5 -0
  67. package/lib/types/equipment/item/_Item.d.ts +24 -0
  68. package/lib/types/equipment/item/_Item.js +5 -1
  69. package/lib/types/prerequisites/PrerequisiteGroups.d.ts +21 -0
  70. package/lib/types/prerequisites/PrerequisiteGroups.js +6 -0
  71. package/package.json +1 -1
@@ -270,6 +270,30 @@ export declare const ThievesTool: import("tsondb/schema/dsl").Entity<string, {
270
270
  }>, false>;
271
271
  }>, []>>>;
272
272
  }, []>>, false>;
273
+ prerequisites: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"EquipmentPrerequisites", import("tsondb/schema/dsl").IncludeIdentifier<import("tsondb/schema/dsl").Param<string, import("tsondb/schema/dsl").Type>[], import("tsondb/schema/dsl").TypeAlias<"PlainPrerequisites", import("tsondb/schema/dsl").Array<import("tsondb/schema/dsl").IncludeIdentifier<import("tsondb/schema/dsl").Param<string, import("tsondb/schema/dsl").Type>[], import("tsondb/schema/dsl").Enum<"PrerequisitesElement", {
274
+ Single: import("tsondb/schema/dsl").EnumCase<import("tsondb/schema/dsl").TypeArgument<import("tsondb/schema/dsl").Param<"T", import("tsondb/schema/dsl").Type>>>;
275
+ Disjunction: import("tsondb/schema/dsl").EnumCase<import("tsondb/schema/dsl").IncludeIdentifier<import("tsondb/schema/dsl").Param<string, import("tsondb/schema/dsl").Type>[], import("tsondb/schema/dsl").TypeAlias<"PrerequisitesDisjunction", import("tsondb/schema/dsl").Object<{
276
+ list: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").Array<import("tsondb/schema/dsl").TypeArgument<import("tsondb/schema/dsl").Param<"T", import("tsondb/schema/dsl").Type>>>, true>;
277
+ display_option: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").Enum<"DisplayOption", {
278
+ Hide: import("tsondb/schema/dsl").EnumCase<null>;
279
+ ReplaceWith: import("tsondb/schema/dsl").EnumCase<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"ReplacementDisplayOption", import("tsondb/schema/dsl").Object<{
280
+ sentence_type: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").Enum<"SentenceType", {
281
+ Standalone: import("tsondb/schema/dsl").EnumCase<null>;
282
+ Connected: import("tsondb/schema/dsl").EnumCase<null>;
283
+ }, []>>, false>;
284
+ translations: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").NestedEntityMap<"ReplacementDisplayOptionTranslation", {
285
+ replacement: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").String, true>;
286
+ }>, true>;
287
+ }>, []>>>;
288
+ }, []>>, false>;
289
+ }>, [T: import("tsondb/schema/dsl").Param<"T", import("tsondb/schema/dsl").Type>]>>>;
290
+ Group: import("tsondb/schema/dsl").EnumCase<import("tsondb/schema/dsl").IncludeIdentifier<import("tsondb/schema/dsl").Param<string, import("tsondb/schema/dsl").Type>[], import("tsondb/schema/dsl").TypeAlias<"PrerequisiteGroup", import("tsondb/schema/dsl").Object<{
291
+ list: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").Array<import("tsondb/schema/dsl").TypeArgument<import("tsondb/schema/dsl").Param<"T", import("tsondb/schema/dsl").Type>>>, true>;
292
+ translations: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").NestedEntityMap<"PrerequisiteGroupTranslation", {
293
+ text: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").String, true>;
294
+ }>, true>;
295
+ }>, [T: import("tsondb/schema/dsl").Param<"T", import("tsondb/schema/dsl").Type>]>>>;
296
+ }, [T: import("tsondb/schema/dsl").Param<"T", import("tsondb/schema/dsl").Type>]>>>, [T: import("tsondb/schema/dsl").Param<"T", import("tsondb/schema/dsl").Type>]>>, []>>, false>;
273
297
  src: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"PublicationRefs", import("tsondb/schema/dsl").Array<import("tsondb/schema/dsl").IncludeIdentifier<[], import("tsondb/schema/dsl").TypeAlias<"PublicationRef", import("tsondb/schema/dsl").Object<{
274
298
  id: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").ReferenceIdentifier, true>;
275
299
  occurrences: import("tsondb/schema/dsl").MemberDecl<import("tsondb/schema/dsl").NestedEntityMap<string, {
@@ -101,6 +101,30 @@ export declare const ToolOfTheTrade: DB.Entity<"ToolOfTheTrade", {
101
101
  points: DB.MemberDecl<DB.Integer, true>;
102
102
  }>, []>>>, []>>>;
103
103
  }, []>>, true>;
104
+ prerequisites: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"EquipmentPrerequisites", DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"PlainPrerequisites", DB.Array<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.Enum<"PrerequisitesElement", {
105
+ Single: DB.EnumCase<DB.TypeArgument<DB.Param<"T", DB.Type>>>;
106
+ Disjunction: DB.EnumCase<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"PrerequisitesDisjunction", DB.Object<{
107
+ list: DB.MemberDecl<DB.Array<DB.TypeArgument<DB.Param<"T", DB.Type>>>, true>;
108
+ display_option: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"DisplayOption", {
109
+ Hide: DB.EnumCase<null>;
110
+ ReplaceWith: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ReplacementDisplayOption", DB.Object<{
111
+ sentence_type: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SentenceType", {
112
+ Standalone: DB.EnumCase<null>;
113
+ Connected: DB.EnumCase<null>;
114
+ }, []>>, false>;
115
+ translations: DB.MemberDecl<DB.NestedEntityMap<"ReplacementDisplayOptionTranslation", {
116
+ replacement: DB.MemberDecl<DB.String, true>;
117
+ }>, true>;
118
+ }>, []>>>;
119
+ }, []>>, false>;
120
+ }>, [T: DB.Param<"T", DB.Type>]>>>;
121
+ Group: DB.EnumCase<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"PrerequisiteGroup", DB.Object<{
122
+ list: DB.MemberDecl<DB.Array<DB.TypeArgument<DB.Param<"T", DB.Type>>>, true>;
123
+ translations: DB.MemberDecl<DB.NestedEntityMap<"PrerequisiteGroupTranslation", {
124
+ text: DB.MemberDecl<DB.String, true>;
125
+ }>, true>;
126
+ }>, [T: DB.Param<"T", DB.Type>]>>>;
127
+ }, [T: DB.Param<"T", DB.Type>]>>>, [T: DB.Param<"T", DB.Type>]>>, []>>, false>;
104
128
  src: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"PublicationRefs", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"PublicationRef", DB.Object<{
105
129
  id: DB.MemberDecl<DB.ReferenceIdentifier, true>;
106
130
  occurrences: DB.MemberDecl<DB.NestedEntityMap<string, {
@@ -1,4 +1,5 @@
1
1
  import * as DB from "tsondb/schema/dsl";
2
+ import { EquipmentPrerequisites } from "../../_Prerequisite.js";
2
3
  import { src } from "../../source/_PublicationRef.js";
3
4
  import { Complexity, Cost, DefaultItemTranslations, StructurePoints, Weight } from "./_Item.js";
4
5
  export const ToolOfTheTrade = DB.Entity(import.meta.url, {
@@ -21,6 +22,10 @@ export const ToolOfTheTrade = DB.Entity(import.meta.url, {
21
22
  comment: "The structure points of the item. Use an array if the item consists of multiple components that have individual structure points.",
22
23
  type: DB.IncludeIdentifier(StructurePoints),
23
24
  }),
25
+ prerequisites: DB.Optional({
26
+ comment: "The prerequisites of the item, if any. Note that this is fully separate from the prerequisites of the item’s trade secret, which are defined independently from this.",
27
+ type: DB.IncludeIdentifier(EquipmentPrerequisites),
28
+ }),
24
29
  src,
25
30
  translations: DefaultItemTranslations("ToolOfTheTrade"),
26
31
  }),
@@ -271,6 +271,30 @@ export declare const TravelGearOrTool: DB.Entity<"TravelGearOrTool", {
271
271
  }>, false>;
272
272
  }>, []>>>;
273
273
  }, []>>, false>;
274
+ prerequisites: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"EquipmentPrerequisites", DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"PlainPrerequisites", DB.Array<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.Enum<"PrerequisitesElement", {
275
+ Single: DB.EnumCase<DB.TypeArgument<DB.Param<"T", DB.Type>>>;
276
+ Disjunction: DB.EnumCase<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"PrerequisitesDisjunction", DB.Object<{
277
+ list: DB.MemberDecl<DB.Array<DB.TypeArgument<DB.Param<"T", DB.Type>>>, true>;
278
+ display_option: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"DisplayOption", {
279
+ Hide: DB.EnumCase<null>;
280
+ ReplaceWith: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ReplacementDisplayOption", DB.Object<{
281
+ sentence_type: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SentenceType", {
282
+ Standalone: DB.EnumCase<null>;
283
+ Connected: DB.EnumCase<null>;
284
+ }, []>>, false>;
285
+ translations: DB.MemberDecl<DB.NestedEntityMap<"ReplacementDisplayOptionTranslation", {
286
+ replacement: DB.MemberDecl<DB.String, true>;
287
+ }>, true>;
288
+ }>, []>>>;
289
+ }, []>>, false>;
290
+ }>, [T: DB.Param<"T", DB.Type>]>>>;
291
+ Group: DB.EnumCase<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"PrerequisiteGroup", DB.Object<{
292
+ list: DB.MemberDecl<DB.Array<DB.TypeArgument<DB.Param<"T", DB.Type>>>, true>;
293
+ translations: DB.MemberDecl<DB.NestedEntityMap<"PrerequisiteGroupTranslation", {
294
+ text: DB.MemberDecl<DB.String, true>;
295
+ }>, true>;
296
+ }>, [T: DB.Param<"T", DB.Type>]>>>;
297
+ }, [T: DB.Param<"T", DB.Type>]>>>, [T: DB.Param<"T", DB.Type>]>>, []>>, false>;
274
298
  src: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"PublicationRefs", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"PublicationRef", DB.Object<{
275
299
  id: DB.MemberDecl<DB.ReferenceIdentifier, true>;
276
300
  occurrences: DB.MemberDecl<DB.NestedEntityMap<string, {
@@ -1,4 +1,5 @@
1
1
  import * as DB from "tsondb/schema/dsl";
2
+ import { EquipmentPrerequisites } from "../../_Prerequisite.js";
2
3
  import { src } from "../../source/_PublicationRef.js";
3
4
  import { CombatUse, Complexity, Cost, DefaultItemTranslations, StructurePoints, Weight, } from "./_Item.js";
4
5
  import { checkWeaponCombatTechniqueIntegrity } from "./_Weapon.js";
@@ -26,6 +27,10 @@ export const TravelGearOrTool = DB.Entity(import.meta.url, {
26
27
  comment: "The item can also be used either as an improvised weapon or as an armor, although this is not the primary use case of the item.",
27
28
  type: DB.IncludeIdentifier(CombatUse),
28
29
  }),
30
+ prerequisites: DB.Optional({
31
+ comment: "The prerequisites of the item, if any. Note that this is fully separate from the prerequisites of the item’s trade secret, which are defined independently from this.",
32
+ type: DB.IncludeIdentifier(EquipmentPrerequisites),
33
+ }),
29
34
  src,
30
35
  translations: DefaultItemTranslations("TravelGearOrTool"),
31
36
  }),
@@ -95,6 +95,30 @@ export declare const Vehicle: DB.Entity<"Vehicle", {
95
95
  }>, []>>>, []>>, false>;
96
96
  }>, []>>>;
97
97
  }, []>>, false>;
98
+ prerequisites: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"EquipmentPrerequisites", DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"PlainPrerequisites", DB.Array<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.Enum<"PrerequisitesElement", {
99
+ Single: DB.EnumCase<DB.TypeArgument<DB.Param<"T", DB.Type>>>;
100
+ Disjunction: DB.EnumCase<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"PrerequisitesDisjunction", DB.Object<{
101
+ list: DB.MemberDecl<DB.Array<DB.TypeArgument<DB.Param<"T", DB.Type>>>, true>;
102
+ display_option: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"DisplayOption", {
103
+ Hide: DB.EnumCase<null>;
104
+ ReplaceWith: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ReplacementDisplayOption", DB.Object<{
105
+ sentence_type: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SentenceType", {
106
+ Standalone: DB.EnumCase<null>;
107
+ Connected: DB.EnumCase<null>;
108
+ }, []>>, false>;
109
+ translations: DB.MemberDecl<DB.NestedEntityMap<"ReplacementDisplayOptionTranslation", {
110
+ replacement: DB.MemberDecl<DB.String, true>;
111
+ }>, true>;
112
+ }>, []>>>;
113
+ }, []>>, false>;
114
+ }>, [T: DB.Param<"T", DB.Type>]>>>;
115
+ Group: DB.EnumCase<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"PrerequisiteGroup", DB.Object<{
116
+ list: DB.MemberDecl<DB.Array<DB.TypeArgument<DB.Param<"T", DB.Type>>>, true>;
117
+ translations: DB.MemberDecl<DB.NestedEntityMap<"PrerequisiteGroupTranslation", {
118
+ text: DB.MemberDecl<DB.String, true>;
119
+ }>, true>;
120
+ }>, [T: DB.Param<"T", DB.Type>]>>>;
121
+ }, [T: DB.Param<"T", DB.Type>]>>>, [T: DB.Param<"T", DB.Type>]>>, []>>, false>;
98
122
  src: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"PublicationRefs", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"PublicationRef", DB.Object<{
99
123
  id: DB.MemberDecl<DB.ReferenceIdentifier, true>;
100
124
  occurrences: DB.MemberDecl<DB.NestedEntityMap<string, {
@@ -1,4 +1,5 @@
1
1
  import * as DB from "tsondb/schema/dsl";
2
+ import { EquipmentPrerequisites } from "../../_Prerequisite.js";
2
3
  import { src } from "../../source/_PublicationRef.js";
3
4
  import { Complexity, Cost, DefaultItemTranslations, Weight } from "./_Item.js";
4
5
  export const Vehicle = DB.Entity(import.meta.url, {
@@ -17,6 +18,10 @@ export const Vehicle = DB.Entity(import.meta.url, {
17
18
  comment: "The complexity of crafting the item.",
18
19
  type: DB.IncludeIdentifier(Complexity),
19
20
  }),
21
+ prerequisites: DB.Optional({
22
+ comment: "The prerequisites of the item, if any. Note that this is fully separate from the prerequisites of the item’s trade secret, which are defined independently from this.",
23
+ type: DB.IncludeIdentifier(EquipmentPrerequisites),
24
+ }),
20
25
  src,
21
26
  translations: DefaultItemTranslations("Vehicle"),
22
27
  }),
@@ -231,6 +231,30 @@ export declare const Weapon: DB.Entity<"Weapon", {
231
231
  Invaluable: DB.EnumCase<null>;
232
232
  }, []>>, true>;
233
233
  }>, []>>, false>;
234
+ prerequisites: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"EquipmentPrerequisites", DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"PlainPrerequisites", DB.Array<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.Enum<"PrerequisitesElement", {
235
+ Single: DB.EnumCase<DB.TypeArgument<DB.Param<"T", DB.Type>>>;
236
+ Disjunction: DB.EnumCase<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"PrerequisitesDisjunction", DB.Object<{
237
+ list: DB.MemberDecl<DB.Array<DB.TypeArgument<DB.Param<"T", DB.Type>>>, true>;
238
+ display_option: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"DisplayOption", {
239
+ Hide: DB.EnumCase<null>;
240
+ ReplaceWith: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ReplacementDisplayOption", DB.Object<{
241
+ sentence_type: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SentenceType", {
242
+ Standalone: DB.EnumCase<null>;
243
+ Connected: DB.EnumCase<null>;
244
+ }, []>>, false>;
245
+ translations: DB.MemberDecl<DB.NestedEntityMap<"ReplacementDisplayOptionTranslation", {
246
+ replacement: DB.MemberDecl<DB.String, true>;
247
+ }>, true>;
248
+ }>, []>>>;
249
+ }, []>>, false>;
250
+ }>, [T: DB.Param<"T", DB.Type>]>>>;
251
+ Group: DB.EnumCase<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"PrerequisiteGroup", DB.Object<{
252
+ list: DB.MemberDecl<DB.Array<DB.TypeArgument<DB.Param<"T", DB.Type>>>, true>;
253
+ translations: DB.MemberDecl<DB.NestedEntityMap<"PrerequisiteGroupTranslation", {
254
+ text: DB.MemberDecl<DB.String, true>;
255
+ }>, true>;
256
+ }>, [T: DB.Param<"T", DB.Type>]>>>;
257
+ }, [T: DB.Param<"T", DB.Type>]>>>, [T: DB.Param<"T", DB.Type>]>>, []>>, false>;
234
258
  src: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"PublicationRefs", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"PublicationRef", DB.Object<{
235
259
  id: DB.MemberDecl<DB.ReferenceIdentifier, true>;
236
260
  occurrences: DB.MemberDecl<DB.NestedEntityMap<string, {
@@ -1,4 +1,5 @@
1
1
  import * as DB from "tsondb/schema/dsl";
2
+ import { EquipmentPrerequisites } from "../../_Prerequisite.js";
2
3
  import { CloseCombatTechnique, RangedCombatTechnique } from "../../CombatTechnique.js";
3
4
  import { NestedTranslationMap } from "../../Locale.js";
4
5
  import { Errata } from "../../source/_Erratum.js";
@@ -55,6 +56,10 @@ export const Weapon = DB.Entity(import.meta.url, {
55
56
  comment: "The weapon is a known item, which implies some additional values.",
56
57
  type: DB.IncludeIdentifier(KnownItemSpecifics),
57
58
  }),
59
+ prerequisites: DB.Optional({
60
+ comment: "The prerequisites of the item, if any. Note that this is fully separate from the prerequisites of the item’s trade secret, which are defined independently from this.",
61
+ type: DB.IncludeIdentifier(EquipmentPrerequisites),
62
+ }),
58
63
  src,
59
64
  translations: NestedTranslationMap(DB.Required, "Weapon", DB.Object({
60
65
  name: DB.Required({
@@ -271,6 +271,30 @@ export declare const WeaponAccessory: DB.Entity<"WeaponAccessory", {
271
271
  }>, false>;
272
272
  }>, []>>>;
273
273
  }, []>>, false>;
274
+ prerequisites: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"EquipmentPrerequisites", DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"PlainPrerequisites", DB.Array<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.Enum<"PrerequisitesElement", {
275
+ Single: DB.EnumCase<DB.TypeArgument<DB.Param<"T", DB.Type>>>;
276
+ Disjunction: DB.EnumCase<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"PrerequisitesDisjunction", DB.Object<{
277
+ list: DB.MemberDecl<DB.Array<DB.TypeArgument<DB.Param<"T", DB.Type>>>, true>;
278
+ display_option: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"DisplayOption", {
279
+ Hide: DB.EnumCase<null>;
280
+ ReplaceWith: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ReplacementDisplayOption", DB.Object<{
281
+ sentence_type: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SentenceType", {
282
+ Standalone: DB.EnumCase<null>;
283
+ Connected: DB.EnumCase<null>;
284
+ }, []>>, false>;
285
+ translations: DB.MemberDecl<DB.NestedEntityMap<"ReplacementDisplayOptionTranslation", {
286
+ replacement: DB.MemberDecl<DB.String, true>;
287
+ }>, true>;
288
+ }>, []>>>;
289
+ }, []>>, false>;
290
+ }>, [T: DB.Param<"T", DB.Type>]>>>;
291
+ Group: DB.EnumCase<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"PrerequisiteGroup", DB.Object<{
292
+ list: DB.MemberDecl<DB.Array<DB.TypeArgument<DB.Param<"T", DB.Type>>>, true>;
293
+ translations: DB.MemberDecl<DB.NestedEntityMap<"PrerequisiteGroupTranslation", {
294
+ text: DB.MemberDecl<DB.String, true>;
295
+ }>, true>;
296
+ }>, [T: DB.Param<"T", DB.Type>]>>>;
297
+ }, [T: DB.Param<"T", DB.Type>]>>>, [T: DB.Param<"T", DB.Type>]>>, []>>, false>;
274
298
  src: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"PublicationRefs", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"PublicationRef", DB.Object<{
275
299
  id: DB.MemberDecl<DB.ReferenceIdentifier, true>;
276
300
  occurrences: DB.MemberDecl<DB.NestedEntityMap<string, {
@@ -1,4 +1,5 @@
1
1
  import * as DB from "tsondb/schema/dsl";
2
+ import { EquipmentPrerequisites } from "../../_Prerequisite.js";
2
3
  import { src } from "../../source/_PublicationRef.js";
3
4
  import { CombatUse, Complexity, Cost, DefaultItemTranslations, StructurePoints, Weight, } from "./_Item.js";
4
5
  import { checkWeaponCombatTechniqueIntegrity } from "./_Weapon.js";
@@ -26,6 +27,10 @@ export const WeaponAccessory = DB.Entity(import.meta.url, {
26
27
  comment: "The item can also be used either as an improvised weapon or as an armor, although this is not the primary use case of the item.",
27
28
  type: DB.IncludeIdentifier(CombatUse),
28
29
  }),
30
+ prerequisites: DB.Optional({
31
+ comment: "The prerequisites of the item, if any. Note that this is fully separate from the prerequisites of the item’s trade secret, which are defined independently from this.",
32
+ type: DB.IncludeIdentifier(EquipmentPrerequisites),
33
+ }),
29
34
  src,
30
35
  translations: DefaultItemTranslations("WeaponAccessory"),
31
36
  }),
@@ -271,6 +271,30 @@ export declare const DefaultItem: (sourceUrl: string, singularName: string, plur
271
271
  }>, false>;
272
272
  }>, []>>>;
273
273
  }, []>>, false>;
274
+ prerequisites: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"EquipmentPrerequisites", DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"PlainPrerequisites", DB.Array<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.Enum<"PrerequisitesElement", {
275
+ Single: DB.EnumCase<DB.TypeArgument<DB.Param<"T", DB.Type>>>;
276
+ Disjunction: DB.EnumCase<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"PrerequisitesDisjunction", DB.Object<{
277
+ list: DB.MemberDecl<DB.Array<DB.TypeArgument<DB.Param<"T", DB.Type>>>, true>;
278
+ display_option: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"DisplayOption", {
279
+ Hide: DB.EnumCase<null>;
280
+ ReplaceWith: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ReplacementDisplayOption", DB.Object<{
281
+ sentence_type: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SentenceType", {
282
+ Standalone: DB.EnumCase<null>;
283
+ Connected: DB.EnumCase<null>;
284
+ }, []>>, false>;
285
+ translations: DB.MemberDecl<DB.NestedEntityMap<"ReplacementDisplayOptionTranslation", {
286
+ replacement: DB.MemberDecl<DB.String, true>;
287
+ }>, true>;
288
+ }>, []>>>;
289
+ }, []>>, false>;
290
+ }>, [T: DB.Param<"T", DB.Type>]>>>;
291
+ Group: DB.EnumCase<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"PrerequisiteGroup", DB.Object<{
292
+ list: DB.MemberDecl<DB.Array<DB.TypeArgument<DB.Param<"T", DB.Type>>>, true>;
293
+ translations: DB.MemberDecl<DB.NestedEntityMap<"PrerequisiteGroupTranslation", {
294
+ text: DB.MemberDecl<DB.String, true>;
295
+ }>, true>;
296
+ }>, [T: DB.Param<"T", DB.Type>]>>>;
297
+ }, [T: DB.Param<"T", DB.Type>]>>>, [T: DB.Param<"T", DB.Type>]>>, []>>, false>;
274
298
  src: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"PublicationRefs", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"PublicationRef", DB.Object<{
275
299
  id: DB.MemberDecl<DB.ReferenceIdentifier, true>;
276
300
  occurrences: DB.MemberDecl<DB.NestedEntityMap<string, {
@@ -1,6 +1,6 @@
1
1
  import * as DB from "tsondb/schema/dsl";
2
2
  import { BlessedTraditionIdentifier, CultureIdentifier, MagicalTraditionIdentifier, ProfessionIdentifier, RaceIdentifier, } from "../../_Identifier.js";
3
- import { PlainGeneralPrerequisites } from "../../_Prerequisite.js";
3
+ import { EquipmentPrerequisites, PlainGeneralPrerequisites } from "../../_Prerequisite.js";
4
4
  import { ResponsiveTextOptional, ResponsiveTextReplace } from "../../_ResponsiveText.js";
5
5
  import { NestedTranslationMap } from "../../Locale.js";
6
6
  import { Errata } from "../../source/_Erratum.js";
@@ -33,6 +33,10 @@ export const DefaultItem = (sourceUrl, singularName, pluralName) => DB.Entity(so
33
33
  comment: "The item can also be used either as an improvised weapon or as an armor, although this is not the primary use case of the item.",
34
34
  type: DB.IncludeIdentifier(CombatUse),
35
35
  }),
36
+ prerequisites: DB.Optional({
37
+ comment: "The prerequisites of the item, if any. Note that this is fully separate from the prerequisites of the item’s trade secret, which are defined independently from this.",
38
+ type: DB.IncludeIdentifier(EquipmentPrerequisites),
39
+ }),
36
40
  src,
37
41
  translations: DefaultItemTranslations(singularName),
38
42
  }),
@@ -2295,6 +2295,27 @@ export declare const BookPrerequisiteGroup: DB.Enum<"BookPrerequisiteGroup", {
2295
2295
  id: DB.MemberDecl<DB.ReferenceIdentifier, true>;
2296
2296
  }>, []>>>;
2297
2297
  }, []>;
2298
+ export declare const EquipmentPrerequisiteGroup: DB.Enum<"EquipmentPrerequisiteGroup", {
2299
+ Rule: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"RulePrerequisite", DB.Object<{
2300
+ id: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ExtensionRuleIdentifier", {
2301
+ FocusRule: DB.EnumCase<DB.ReferenceIdentifier>;
2302
+ OptionalRule: DB.EnumCase<DB.ReferenceIdentifier>;
2303
+ }, []>>, true>;
2304
+ active: DB.MemberDecl<DB.Boolean, true>;
2305
+ display_option: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"DisplayOption", {
2306
+ Hide: DB.EnumCase<null>;
2307
+ ReplaceWith: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ReplacementDisplayOption", DB.Object<{
2308
+ sentence_type: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SentenceType", {
2309
+ Standalone: DB.EnumCase<null>;
2310
+ Connected: DB.EnumCase<null>;
2311
+ }, []>>, false>;
2312
+ translations: DB.MemberDecl<DB.NestedEntityMap<"ReplacementDisplayOptionTranslation", {
2313
+ replacement: DB.MemberDecl<DB.String, true>;
2314
+ }>, true>;
2315
+ }>, []>>>;
2316
+ }, []>>, false>;
2317
+ }>, []>>>;
2318
+ }, []>;
2298
2319
  export declare const PreconditionGroup: DB.Enum<"PreconditionGroup", {
2299
2320
  Publication: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"PublicationPrerequisite", DB.Object<{
2300
2321
  id: DB.MemberDecl<DB.ReferenceIdentifier, true>;
@@ -189,6 +189,12 @@ export const BookPrerequisiteGroup = DB.Enum(import.meta.url, {
189
189
  Script: DB.EnumCase({ type: DB.IncludeIdentifier(ScriptPrerequisite) }),
190
190
  }),
191
191
  });
192
+ export const EquipmentPrerequisiteGroup = DB.Enum(import.meta.url, {
193
+ name: "EquipmentPrerequisiteGroup",
194
+ values: () => ({
195
+ Rule: DB.EnumCase({ type: DB.IncludeIdentifier(RulePrerequisite) }),
196
+ }),
197
+ });
192
198
  export const PreconditionGroup = DB.Enum(import.meta.url, {
193
199
  name: "PreconditionGroup",
194
200
  values: () => ({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@optolith/database-schema",
3
- "version": "0.106.0",
3
+ "version": "0.107.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",