@optolith/database-schema 0.77.0 → 0.77.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/gen/types.d.ts +243 -0
  3. package/lib/main.js +2 -0
  4. package/lib/types/Attribute.js +1 -3
  5. package/lib/types/DerivedCharacteristic.js +1 -3
  6. package/lib/types/SkillGroup.js +1 -3
  7. package/lib/types/SocialStatus.js +1 -0
  8. package/lib/types/Talisman.js +1 -1
  9. package/lib/types/_Identifier.d.ts +2 -0
  10. package/lib/types/_Identifier.js +4 -0
  11. package/lib/types/equipment/item/BandageOrRemedy.js +1 -1
  12. package/lib/types/equipment/item/CeremonialItem.js +1 -1
  13. package/lib/types/equipment/item/Clothes.js +1 -1
  14. package/lib/types/equipment/item/Container.js +1 -1
  15. package/lib/types/equipment/item/EquipmentCategory.d.ts +121 -0
  16. package/lib/types/equipment/item/EquipmentCategory.js +131 -0
  17. package/lib/types/equipment/item/EquipmentOfBlessedOnes.js +1 -1
  18. package/lib/types/equipment/item/IlluminationLightSource.js +1 -1
  19. package/lib/types/equipment/item/IlluminationRefillOrSupply.js +1 -1
  20. package/lib/types/equipment/item/Item.d.ts +287 -0
  21. package/lib/types/equipment/item/Item.js +167 -0
  22. package/lib/types/equipment/item/Liebesspielzeug.js +1 -1
  23. package/lib/types/equipment/item/LuxuryGood.js +1 -1
  24. package/lib/types/equipment/item/MagicalArtifact.js +1 -1
  25. package/lib/types/equipment/item/MusicalInstrument.js +1 -1
  26. package/lib/types/equipment/item/TravelGearOrTool.js +1 -1
  27. package/lib/types/equipment/item/Weapon.js +1 -1
  28. package/lib/types/equipment/item/WeaponAccessory.js +1 -1
  29. package/lib/types/equipment/item/_Item.js +1 -1
  30. package/lib/types/equipment/item/_Weapon.d.ts +2 -2
  31. package/lib/types/equipment/item/_Weapon.js +7 -4
  32. package/lib/types/equipment/item/sub/Reach.js +1 -3
  33. package/lib/types/index.d.ts +2 -0
  34. package/lib/types/index.js +2 -0
  35. package/package.json +9 -9
package/CHANGELOG.md CHANGED
@@ -2,6 +2,13 @@
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.77.1](https://github.com/Optolith/database-schema/compare/v0.77.0...v0.77.1) (2026-10-03)
6
+
7
+ ### Features
8
+
9
+ * generic item and equipment category entities ([c154d95](https://github.com/Optolith/database-schema/commit/c154d955d161b02d8d43d13dad8a6b881a333e92))
10
+ * mark entities sortable by index value ([5c8dd28](https://github.com/Optolith/database-schema/commit/5c8dd28937e9176b431cb8e693e816e06fcfb8d5))
11
+
5
12
  ## [0.77.0](https://github.com/Optolith/database-schema/compare/v0.76.0...v0.77.0) (2026-10-01)
6
13
 
7
14
  ### ⚠ BREAKING CHANGES
package/gen/types.d.ts CHANGED
@@ -65,6 +65,7 @@ export type EntityMap = {
65
65
  Elixir: Elixir
66
66
  ElvenMagicalSong: ElvenMagicalSong
67
67
  Enhancement: Enhancement
68
+ EquipmentCategory: EquipmentCategory
68
69
  EquipmentOfBlessedOnes: EquipmentOfBlessedOnes
69
70
  EquipmentPackage: EquipmentPackage
70
71
  ExperienceLevel: ExperienceLevel
@@ -91,6 +92,7 @@ export type EntityMap = {
91
92
  IlluminationRefillOrSupply: IlluminationRefillOrSupply
92
93
  Influence: Influence
93
94
  InstrumentEnchantment: InstrumentEnchantment
95
+ Item: Item
94
96
  JesterTrick: JesterTrick
95
97
  Jewelry: Jewelry
96
98
  KarmaSpecialAbility: KarmaSpecialAbility
@@ -317,6 +319,7 @@ export type EnumMap = {
317
319
  EncumbranceInfluence: EncumbranceInfluence
318
320
  EnhancementAdventurePoints: EnhancementAdventurePoints
319
321
  EnhancementPrerequisiteGroup: EnhancementPrerequisiteGroup
322
+ EquipmentCategoryType: EquipmentCategoryType
320
323
  EquipmentIdentifier: EquipmentIdentifier
321
324
  ExpressionBasedParameterExpressionValue: ExpressionBasedParameterExpressionValue
322
325
  ExpressionBasedPoisonTimeExpressionValue: ExpressionBasedPoisonTimeExpressionValue
@@ -452,6 +455,7 @@ export type EnumMap = {
452
455
  SlowSkillCastingTimeUnit: SlowSkillCastingTimeUnit
453
456
  SpecialAbilityGroup: SpecialAbilityGroup
454
457
  SpecialAbilityIdentifier: SpecialAbilityIdentifier
458
+ SpecialEquipmentCategoryEntity: SpecialEquipmentCategoryEntity
455
459
  SpecificAffectedTargetCategoryIdentifier: SpecificAffectedTargetCategoryIdentifier
456
460
  SpecificFromSkillSelectOptionCategoryCategoryOperation: SpecificFromSkillSelectOptionCategoryCategoryOperation
457
461
  SpellFilter: SpellFilter
@@ -470,6 +474,7 @@ export type EnumMap = {
470
474
  TradeSecretSelectOptionCategory: TradeSecretSelectOptionCategory
471
475
  TribePrerequisiteGroup: TribePrerequisiteGroup
472
476
  ValueMapStyle: ValueMapStyle
477
+ ValueRule: ValueRule
473
478
  VariantOptionAction: VariantOptionAction<unknown>
474
479
  VariantSpecialAbilityAction: VariantSpecialAbilityAction
475
480
  Volume: Volume
@@ -503,6 +508,7 @@ export type TypeAliasMap = {
503
508
  AllApplicableCloseCombatTechniques: AllApplicableCloseCombatTechniques
504
509
  AllApplicableCombatTechniques: AllApplicableCombatTechniques
505
510
  AllApplicableRangedCombatTechniques: AllApplicableRangedCombatTechniques
511
+ AllowedCombatValues: AllowedCombatValues
506
512
  AlternativeName: AlternativeName
507
513
  AnimalFeed: AnimalFeed
508
514
  AnimalPowers: AnimalPowers
@@ -596,6 +602,7 @@ export type TypeAliasMap = {
596
602
  CustomDurationUnit: CustomDurationUnit
597
603
  CustomMagicalRuneSuboption: CustomMagicalRuneSuboption
598
604
  DaggerRitualArcaneEnergyCost: DaggerRitualArcaneEnergyCost
605
+ DefaultEquipmentCategoryTypeRules: DefaultEquipmentCategoryTypeRules
599
606
  DefaultPrimaryAttributeDamageThreshold: DefaultPrimaryAttributeDamageThreshold
600
607
  DefaultRangedDamage: DefaultRangedDamage
601
608
  DefiniteBookCostVariant: DefiniteBookCostVariant
@@ -24228,6 +24235,126 @@ export interface ElixirEffectForEachQualityLevel {
24228
24235
  qualityLevels: [string, string, string, string, string, string]
24229
24236
  }
24230
24237
 
24238
+ export interface EquipmentCategory {
24239
+ /**
24240
+ * The position of the category in the list. This has to be a unique value.
24241
+ */
24242
+ position: number
24243
+
24244
+ /**
24245
+ * The type of the equipment category.
24246
+ */
24247
+ type: EquipmentCategoryType
24248
+
24249
+ /**
24250
+ * All translations for the entry, identified by IETF language tag (BCP47).
24251
+ */
24252
+ translations: {
24253
+ [localeId: string]: EquipmentCategoryTranslation
24254
+ }
24255
+ }
24256
+
24257
+ /**
24258
+ * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
24259
+ */
24260
+ export type EquipmentCategory_ID = string
24261
+
24262
+ export interface EquipmentCategoryTranslation {
24263
+ /**
24264
+ * The equipment category’s name.
24265
+ */
24266
+ name: string
24267
+ }
24268
+
24269
+ export type EquipmentCategoryType =
24270
+ | {
24271
+ kind: "Default"
24272
+ Default: DefaultEquipmentCategoryTypeRules
24273
+ }
24274
+ | {
24275
+ kind: "Special"
24276
+ Special: SpecialEquipmentCategoryEntity
24277
+ }
24278
+
24279
+ export interface DefaultEquipmentCategoryTypeRules {
24280
+ /**
24281
+ * The combat values that are allowed for this category. If any combat value is allowed and used, advantages, disadvantages and known item specifics are also allowed to be defined for the item.
24282
+ */
24283
+ combatValues: AllowedCombatValues
24284
+
24285
+ /**
24286
+ * Presence of restrictions to certain groups for items in this category.
24287
+ */
24288
+ restrictedTo: ValueRule
24289
+
24290
+ /**
24291
+ * Presence of structure points to certain groups for items in this category.
24292
+ */
24293
+ structurePoints: ValueRule
24294
+
24295
+ /**
24296
+ * Presence of weight to certain groups for items in this category.
24297
+ */
24298
+ weight: ValueRule
24299
+
24300
+ /**
24301
+ * Presence of complexity to certain groups for items in this category.
24302
+ */
24303
+ complexity: ValueRule
24304
+ }
24305
+
24306
+ /**
24307
+ * The combat values that are allowed for this category. If any combat value is allowed and used, advantages, disadvantages and known item specifics are also allowed to be defined for the item.
24308
+ */
24309
+ export interface AllowedCombatValues {
24310
+ /**
24311
+ * Is the item allowed to be used as a weapon?
24312
+ */
24313
+ isWeaponAllowed: boolean
24314
+
24315
+ /**
24316
+ * Is the item allowed to be used as an armor?
24317
+ */
24318
+ isArmorAllowed: boolean
24319
+ }
24320
+
24321
+ /**
24322
+ * Defines if an instance MUST/CAN/MUST NOT define a value for this parameter. If multiple rules apply to the same parameter, the order of precedence is Required > Optional > Prohibited.
24323
+ */
24324
+ export type ValueRule =
24325
+ | {
24326
+ kind: "Required"
24327
+ }
24328
+ | {
24329
+ kind: "Optional"
24330
+ }
24331
+ | {
24332
+ kind: "Prohibited"
24333
+ }
24334
+
24335
+ export type SpecialEquipmentCategoryEntity =
24336
+ | {
24337
+ kind: "AnimalCare"
24338
+ }
24339
+ | {
24340
+ kind: "Book"
24341
+ }
24342
+ | {
24343
+ kind: "Elixir"
24344
+ }
24345
+ | {
24346
+ kind: "GemOrPreciousStone"
24347
+ }
24348
+ | {
24349
+ kind: "Newspaper"
24350
+ }
24351
+ | {
24352
+ kind: "Poison"
24353
+ }
24354
+ | {
24355
+ kind: "WorkingSupernaturalCreature"
24356
+ }
24357
+
24231
24358
  export interface EquipmentOfBlessedOnes {
24232
24359
  /**
24233
24360
  * The cost in silverthalers.
@@ -26132,6 +26259,122 @@ export interface HomunculusTypeTranslation {
26132
26259
  name: string
26133
26260
  }
26134
26261
 
26262
+ export interface Item {
26263
+ /**
26264
+ * The categories this item belongs to.
26265
+ */
26266
+ categories: EquipmentCategory_ID[]
26267
+
26268
+ /**
26269
+ * The cost in silverthalers.
26270
+ */
26271
+ cost: Cost
26272
+
26273
+ /**
26274
+ * The weight in kg.
26275
+ */
26276
+ weight: Weight
26277
+
26278
+ /**
26279
+ * The complexity of crafting the item.
26280
+ */
26281
+ complexity?: Complexity
26282
+
26283
+ /**
26284
+ * The structure points of the item. Use an array if the item consists of multiple components that have individual structure points.
26285
+ */
26286
+ structurePoints: StructurePoints
26287
+
26288
+ /**
26289
+ * A list of stat blocks for each close combat technique this weapon can be used with.
26290
+ */
26291
+ meleeUses?: {
26292
+ [closeCombatTechniqueId: string]: MeleeWeaponUse2
26293
+ }
26294
+
26295
+ /**
26296
+ * A list of stat blocks for each ranged combat technique this weapon can be used with.
26297
+ */
26298
+ rangedUses?: {
26299
+ [rangedCombatTechniqueId: string]: RangedWeaponUse2
26300
+ }
26301
+
26302
+ /**
26303
+ * Stats for this item being used as an armor.
26304
+ */
26305
+ armorUse?: SecondaryArmor
26306
+
26307
+ /**
26308
+ * Define if during character creation this weapon can only be bought by a specific subset of characters.
26309
+ */
26310
+ restrictedTo?: RestrictedTo
26311
+
26312
+ /**
26313
+ * The weapon is a known item, which implies some additional values.
26314
+ */
26315
+ knownItemSpecifics?: KnownItemSpecifics
26316
+
26317
+ /**
26318
+ * References to where in which publications this entry has been defined. Entries may also be added or removed in later printings.
26319
+ */
26320
+ src: PublicationRefs
26321
+
26322
+ /**
26323
+ * All translations for the entry, identified by IETF language tag (BCP47).
26324
+ */
26325
+ translations: {
26326
+ [localeId: string]: ItemTranslation
26327
+ }
26328
+ }
26329
+
26330
+ /**
26331
+ * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
26332
+ */
26333
+ export type Item_ID = string
26334
+
26335
+ export type MeleeWeaponUse2 = MeleeWeapon
26336
+
26337
+ export type RangedWeaponUse2 = RangedWeapon
26338
+
26339
+ export interface ItemTranslation {
26340
+ /**
26341
+ * The item’s name.
26342
+ */
26343
+ name: string
26344
+
26345
+ /**
26346
+ * An auxiliary name or label of the item, if available.
26347
+ */
26348
+ secondaryName?: string
26349
+
26350
+ /**
26351
+ * Note text.
26352
+ */
26353
+ note?: string
26354
+
26355
+ /**
26356
+ * Special rules text.
26357
+ */
26358
+ rules?: string
26359
+
26360
+ /**
26361
+ * The weapon advantage text.
26362
+ */
26363
+ advantage?: string
26364
+
26365
+ /**
26366
+ * The weapon disadvantage text.
26367
+ */
26368
+ disadvantage?: string
26369
+
26370
+ /**
26371
+ * The weapon is a known item, which implies some additional values.
26372
+ */
26373
+ knownItemSpecifics?: KnownItemSpecificsTranslation
26374
+
26375
+ errata?: Errata
26376
+ }
26377
+
26135
26378
  /**
26136
26379
  * Meta Conditions are rule elements that work like conditions in the sense that they have four levels with different effects, but which are not explicitly listed as conditions.
26137
26380
  */
package/lib/main.js CHANGED
@@ -63,6 +63,7 @@ export const schema = new Schema([
63
63
  Types.Element,
64
64
  Types.Elixir,
65
65
  Types.ElvenMagicalSong,
66
+ Types.EquipmentCategory,
66
67
  Types.EquipmentOfBlessedOnes,
67
68
  Types.EquipmentPackage,
68
69
  Types.ExperienceLevel,
@@ -87,6 +88,7 @@ export const schema = new Schema([
87
88
  Types.IlluminationLightSource,
88
89
  Types.IlluminationRefillOrSupply,
89
90
  Types.InstrumentEnchantment,
91
+ Types.Item,
90
92
  Types.JesterTrick,
91
93
  Types.Jewelry,
92
94
  Types.KarmaSpecialAbility,
@@ -30,9 +30,7 @@ export const Attribute = DB.Entity(import.meta.url, {
30
30
  })),
31
31
  }),
32
32
  instanceDisplayName: {},
33
- sortOrder: {
34
- keyPath: "position",
35
- },
33
+ sortOrder: { keyPath: "position", isIndex: true },
36
34
  uniqueConstraints: [
37
35
  {
38
36
  keyPath: "position",
@@ -48,9 +48,7 @@ export const DerivedCharacteristic = DB.Entity(import.meta.url, {
48
48
  })),
49
49
  }),
50
50
  instanceDisplayName: {},
51
- sortOrder: {
52
- keyPath: "position",
53
- },
51
+ sortOrder: { keyPath: "position", isIndex: true },
54
52
  uniqueConstraints: [
55
53
  {
56
54
  keyPath: "position",
@@ -30,9 +30,7 @@ export const SkillGroup = DB.Entity(import.meta.url, {
30
30
  })),
31
31
  }),
32
32
  instanceDisplayName: {},
33
- sortOrder: {
34
- keyPath: "position",
35
- },
33
+ sortOrder: { keyPath: "position", isIndex: true },
36
34
  uniqueConstraints: [
37
35
  {
38
36
  keyPath: "position",
@@ -16,6 +16,7 @@ export const SocialStatus = DB.Entity(import.meta.url, {
16
16
  })),
17
17
  }),
18
18
  instanceDisplayName: {},
19
+ sortOrder: { keyPath: "position", isIndex: true },
19
20
  uniqueConstraints: [
20
21
  { keyPath: "position" },
21
22
  {
@@ -81,7 +81,7 @@ export const Talisman = DB.Entity(import.meta.url, {
81
81
  instanceContent: instanceContent.combatUse,
82
82
  getDisplayNameAndId,
83
83
  getInstanceById,
84
- }, { secondary: true })
84
+ })
85
85
  : [],
86
86
  });
87
87
  const TalismanMeleeWeapon = DB.TypeAlias(import.meta.url, {
@@ -61,6 +61,7 @@ export declare const ElementIdentifier: () => R;
61
61
  export declare const ElixirIdentifier: () => R;
62
62
  export declare const ElvenMagicalSongIdentifier: () => R;
63
63
  export declare const EnhancementIdentifier: () => R;
64
+ export declare const EquipmentCategoryIdentifier: () => R;
64
65
  export declare const EquipmentOfBlessedOnesIdentifier: () => R;
65
66
  export declare const ExperienceLevelIdentifier: () => R;
66
67
  export declare const EyeColorIdentifier: () => R;
@@ -85,6 +86,7 @@ export declare const IlluminationLightSourceIdentifier: () => R;
85
86
  export declare const IlluminationRefillOrSupplyIdentifier: () => R;
86
87
  export declare const InfluenceIdentifier: () => R;
87
88
  export declare const InstrumentEnchantmentIdentifier: () => R;
89
+ export declare const ItemIdentifier: () => R;
88
90
  export declare const JesterTrickIdentifier: () => R;
89
91
  export declare const JewelryIdentifier: () => R;
90
92
  export declare const KarmaSpecialAbilityIdentifier: () => R;
@@ -30,12 +30,14 @@ import { Clothes } from "./equipment/item/Clothes.js";
30
30
  import { ClothingPackage } from "./equipment/item/ClothingPackage.js";
31
31
  import { Container } from "./equipment/item/Container.js";
32
32
  import { Elixir } from "./equipment/item/Elixir.js";
33
+ import { EquipmentCategory } from "./equipment/item/EquipmentCategory.js";
33
34
  import { EquipmentOfBlessedOnes } from "./equipment/item/EquipmentOfBlessedOnes.js";
34
35
  import { GemOrPreciousStone } from "./equipment/item/GemOrPreciousStone.js";
35
36
  import { HerbalAid } from "./equipment/item/HerbalAid.js";
36
37
  import { HerbalPreservation } from "./equipment/item/HerbalPreservation.js";
37
38
  import { IlluminationLightSource } from "./equipment/item/IlluminationLightSource.js";
38
39
  import { IlluminationRefillOrSupply } from "./equipment/item/IlluminationRefillOrSupply.js";
40
+ import { Item } from "./equipment/item/Item.js";
39
41
  import { Jewelry } from "./equipment/item/Jewelry.js";
40
42
  import { Laboratory } from "./equipment/item/Laboratory.js";
41
43
  import { Liebesspielzeug } from "./equipment/item/Liebesspielzeug.js";
@@ -225,6 +227,7 @@ export const ElementIdentifier = () => R(Element);
225
227
  export const ElixirIdentifier = () => R(Elixir);
226
228
  export const ElvenMagicalSongIdentifier = () => R(ElvenMagicalSong);
227
229
  export const EnhancementIdentifier = () => R(Enhancement);
230
+ export const EquipmentCategoryIdentifier = () => R(EquipmentCategory);
228
231
  export const EquipmentOfBlessedOnesIdentifier = () => R(EquipmentOfBlessedOnes);
229
232
  export const ExperienceLevelIdentifier = () => R(ExperienceLevel);
230
233
  export const EyeColorIdentifier = () => R(EyeColor);
@@ -249,6 +252,7 @@ export const IlluminationLightSourceIdentifier = () => R(IlluminationLightSource
249
252
  export const IlluminationRefillOrSupplyIdentifier = () => R(IlluminationRefillOrSupply);
250
253
  export const InfluenceIdentifier = () => R(Influence);
251
254
  export const InstrumentEnchantmentIdentifier = () => R(InstrumentEnchantment);
255
+ export const ItemIdentifier = () => R(Item);
252
256
  export const JesterTrickIdentifier = () => R(JesterTrick);
253
257
  export const JewelryIdentifier = () => R(Jewelry);
254
258
  export const KarmaSpecialAbilityIdentifier = () => R(KarmaSpecialAbility);
@@ -41,7 +41,7 @@ export const BandageOrRemedy = DB.Entity(import.meta.url, {
41
41
  return checkWeaponCombatTechniqueIntegrity({
42
42
  ...rest,
43
43
  instanceContent: instanceContent.combat_use.Weapon,
44
- }, { secondary: true });
44
+ });
45
45
  }
46
46
  return [];
47
47
  },
@@ -46,7 +46,7 @@ export const CeremonialItem = DB.Entity(import.meta.url, {
46
46
  return checkWeaponCombatTechniqueIntegrity({
47
47
  ...rest,
48
48
  instanceContent: instanceContent.combat_use.Weapon,
49
- }, { secondary: true });
49
+ });
50
50
  }
51
51
  return [];
52
52
  },
@@ -41,7 +41,7 @@ export const Clothes = DB.Entity(import.meta.url, {
41
41
  return checkWeaponCombatTechniqueIntegrity({
42
42
  ...rest,
43
43
  instanceContent: instanceContent.combat_use.Weapon,
44
- }, { secondary: true });
44
+ });
45
45
  }
46
46
  return [];
47
47
  },
@@ -41,7 +41,7 @@ export const Container = DB.Entity(import.meta.url, {
41
41
  return checkWeaponCombatTechniqueIntegrity({
42
42
  ...rest,
43
43
  instanceContent: instanceContent.combat_use.Weapon,
44
- }, { secondary: true });
44
+ });
45
45
  }
46
46
  return [];
47
47
  },
@@ -0,0 +1,121 @@
1
+ import type { NonEmptyArray } from "@elyukai/utils/array/nonEmpty";
2
+ import * as DB from "tsondb/schema/dsl";
3
+ import type { Case } from "tsondb/schema/gen";
4
+ import type { DefaultEquipmentCategoryTypeRules, EquipmentCategory as EquipmentCategoryType, ValueRule } from "../../../../gen/types.js";
5
+ declare const ValueRule: DB.Enum<"ValueRule", {
6
+ Required: DB.EnumCase<null>;
7
+ Optional: DB.EnumCase<null>;
8
+ Prohibited: DB.EnumCase<null>;
9
+ }, []>;
10
+ declare const EquipmentCategoryType: DB.Enum<"EquipmentCategoryType", {
11
+ Default: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"DefaultEquipmentCategoryTypeRules", DB.Object<{
12
+ combatValues: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"AllowedCombatValues", DB.Object<{
13
+ isWeaponAllowed: DB.MemberDecl<DB.Boolean, true>;
14
+ isArmorAllowed: DB.MemberDecl<DB.Boolean, true>;
15
+ }>, []>>, true>;
16
+ restrictedTo: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ValueRule", {
17
+ Required: DB.EnumCase<null>;
18
+ Optional: DB.EnumCase<null>;
19
+ Prohibited: DB.EnumCase<null>;
20
+ }, []>>, true>;
21
+ structurePoints: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ValueRule", {
22
+ Required: DB.EnumCase<null>;
23
+ Optional: DB.EnumCase<null>;
24
+ Prohibited: DB.EnumCase<null>;
25
+ }, []>>, true>;
26
+ weight: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ValueRule", {
27
+ Required: DB.EnumCase<null>;
28
+ Optional: DB.EnumCase<null>;
29
+ Prohibited: DB.EnumCase<null>;
30
+ }, []>>, true>;
31
+ complexity: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ValueRule", {
32
+ Required: DB.EnumCase<null>;
33
+ Optional: DB.EnumCase<null>;
34
+ Prohibited: DB.EnumCase<null>;
35
+ }, []>>, true>;
36
+ }>, []>>>;
37
+ Special: DB.EnumCase<DB.IncludeIdentifier<[], DB.Enum<"SpecialEquipmentCategoryEntity", {
38
+ AnimalCare: DB.EnumCase<null>;
39
+ Book: DB.EnumCase<null>;
40
+ Elixir: DB.EnumCase<null>;
41
+ GemOrPreciousStone: DB.EnumCase<null>;
42
+ Newspaper: DB.EnumCase<null>;
43
+ Poison: DB.EnumCase<null>;
44
+ WorkingSupernaturalCreature: DB.EnumCase<null>;
45
+ }, []>>>;
46
+ }, []>;
47
+ declare const DefaultEquipmentCategoryTypeRules: DB.TypeAlias<"DefaultEquipmentCategoryTypeRules", DB.Object<{
48
+ combatValues: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"AllowedCombatValues", DB.Object<{
49
+ isWeaponAllowed: DB.MemberDecl<DB.Boolean, true>;
50
+ isArmorAllowed: DB.MemberDecl<DB.Boolean, true>;
51
+ }>, []>>, true>;
52
+ restrictedTo: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ValueRule", {
53
+ Required: DB.EnumCase<null>;
54
+ Optional: DB.EnumCase<null>;
55
+ Prohibited: DB.EnumCase<null>;
56
+ }, []>>, true>;
57
+ structurePoints: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ValueRule", {
58
+ Required: DB.EnumCase<null>;
59
+ Optional: DB.EnumCase<null>;
60
+ Prohibited: DB.EnumCase<null>;
61
+ }, []>>, true>;
62
+ weight: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ValueRule", {
63
+ Required: DB.EnumCase<null>;
64
+ Optional: DB.EnumCase<null>;
65
+ Prohibited: DB.EnumCase<null>;
66
+ }, []>>, true>;
67
+ complexity: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ValueRule", {
68
+ Required: DB.EnumCase<null>;
69
+ Optional: DB.EnumCase<null>;
70
+ Prohibited: DB.EnumCase<null>;
71
+ }, []>>, true>;
72
+ }>, []>;
73
+ export declare const EquipmentCategory: DB.Entity<"EquipmentCategory", {
74
+ position: DB.MemberDecl<DB.Integer, true>;
75
+ type: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"EquipmentCategoryType", {
76
+ Default: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"DefaultEquipmentCategoryTypeRules", DB.Object<{
77
+ combatValues: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"AllowedCombatValues", DB.Object<{
78
+ isWeaponAllowed: DB.MemberDecl<DB.Boolean, true>;
79
+ isArmorAllowed: DB.MemberDecl<DB.Boolean, true>;
80
+ }>, []>>, true>;
81
+ restrictedTo: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ValueRule", {
82
+ Required: DB.EnumCase<null>;
83
+ Optional: DB.EnumCase<null>;
84
+ Prohibited: DB.EnumCase<null>;
85
+ }, []>>, true>;
86
+ structurePoints: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ValueRule", {
87
+ Required: DB.EnumCase<null>;
88
+ Optional: DB.EnumCase<null>;
89
+ Prohibited: DB.EnumCase<null>;
90
+ }, []>>, true>;
91
+ weight: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ValueRule", {
92
+ Required: DB.EnumCase<null>;
93
+ Optional: DB.EnumCase<null>;
94
+ Prohibited: DB.EnumCase<null>;
95
+ }, []>>, true>;
96
+ complexity: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ValueRule", {
97
+ Required: DB.EnumCase<null>;
98
+ Optional: DB.EnumCase<null>;
99
+ Prohibited: DB.EnumCase<null>;
100
+ }, []>>, true>;
101
+ }>, []>>>;
102
+ Special: DB.EnumCase<DB.IncludeIdentifier<[], DB.Enum<"SpecialEquipmentCategoryEntity", {
103
+ AnimalCare: DB.EnumCase<null>;
104
+ Book: DB.EnumCase<null>;
105
+ Elixir: DB.EnumCase<null>;
106
+ GemOrPreciousStone: DB.EnumCase<null>;
107
+ Newspaper: DB.EnumCase<null>;
108
+ Poison: DB.EnumCase<null>;
109
+ WorkingSupernaturalCreature: DB.EnumCase<null>;
110
+ }, []>>>;
111
+ }, []>>, true>;
112
+ translations: DB.MemberDecl<DB.NestedEntityMap<"EquipmentCategoryTranslation", {
113
+ name: DB.MemberDecl<DB.String, true>;
114
+ }>, true>;
115
+ }, undefined>;
116
+ export declare const isEquipmentCategoryOfDefaultType: (category: EquipmentCategoryType) => category is Omit<EquipmentCategoryType, "type"> & {
117
+ type: Case<"Default", DefaultEquipmentCategoryTypeRules>;
118
+ };
119
+ export declare const mergeValueRules: (categories: NonEmptyArray<ValueRule>) => ValueRule["kind"];
120
+ export declare const mergeAllValueRules: (categories: NonEmptyArray<DefaultEquipmentCategoryTypeRules>) => DefaultEquipmentCategoryTypeRules;
121
+ export {};