optolith-database-schema 0.24.3 → 0.26.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 (161) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/gen/types.d.ts +49 -6
  3. package/lib/main.d.ts +7 -0
  4. package/lib/test.d.ts +1 -1
  5. package/lib/test.js +10 -1
  6. package/lib/types/Advantage.js +7 -0
  7. package/lib/types/AnimalDisease.js +6 -0
  8. package/lib/types/AnimalType.js +6 -0
  9. package/lib/types/ArcaneBardTradition.js +6 -0
  10. package/lib/types/ArcaneDancerTradition.js +6 -0
  11. package/lib/types/Aspect.js +6 -0
  12. package/lib/types/Attribute.js +10 -0
  13. package/lib/types/Blessing.js +6 -0
  14. package/lib/types/Cantrip.js +6 -0
  15. package/lib/types/Ceremony.js +6 -0
  16. package/lib/types/CombatTechnique.d.ts +79 -55
  17. package/lib/types/CombatTechnique.js +37 -7
  18. package/lib/types/Condition.js +6 -0
  19. package/lib/types/Continent.js +6 -0
  20. package/lib/types/Culture.js +6 -0
  21. package/lib/types/DerivedCharacteristic.js +10 -0
  22. package/lib/types/Disadvantage.js +7 -0
  23. package/lib/types/Disease.js +6 -0
  24. package/lib/types/Element.js +6 -0
  25. package/lib/types/ExperienceLevel.js +6 -0
  26. package/lib/types/EyeColor.js +6 -0
  27. package/lib/types/FamiliarsTrick.js +6 -0
  28. package/lib/types/HairColor.js +6 -0
  29. package/lib/types/Lessons.js +12 -0
  30. package/lib/types/LiturgicalChant.js +6 -0
  31. package/lib/types/Locale.js +10 -0
  32. package/lib/types/MetaCondition.js +6 -0
  33. package/lib/types/PactCategory.js +36 -0
  34. package/lib/types/Patron.js +6 -0
  35. package/lib/types/PatronCategory.js +6 -0
  36. package/lib/types/PersonalityTrait.js +6 -0
  37. package/lib/types/Profession.d.ts +25 -0
  38. package/lib/types/Profession.js +16 -0
  39. package/lib/types/Property.js +6 -0
  40. package/lib/types/Race.js +17 -0
  41. package/lib/types/Region.js +6 -0
  42. package/lib/types/Ritual.js +6 -0
  43. package/lib/types/Service.js +6 -0
  44. package/lib/types/SexPractice.js +6 -0
  45. package/lib/types/Skill.js +15 -0
  46. package/lib/types/SkillGroup.js +6 -0
  47. package/lib/types/SkillModificationLevel.js +8 -0
  48. package/lib/types/SocialStatus.js +7 -0
  49. package/lib/types/Spell.js +6 -0
  50. package/lib/types/State.js +6 -0
  51. package/lib/types/Talisman.js +6 -0
  52. package/lib/types/TargetCategory.js +6 -0
  53. package/lib/types/_ActivatableSelectOptions.js +11 -0
  54. package/lib/types/_Enhancements.js +11 -0
  55. package/lib/types/_Influence.js +6 -0
  56. package/lib/types/equipment/EquipmentPackage.js +6 -0
  57. package/lib/types/equipment/item/Ammunition.js +6 -0
  58. package/lib/types/equipment/item/Animal.js +6 -0
  59. package/lib/types/equipment/item/AnimalCare.js +6 -0
  60. package/lib/types/equipment/item/Armor.js +6 -0
  61. package/lib/types/equipment/item/BandageOrRemedy.js +16 -0
  62. package/lib/types/equipment/item/Book.js +6 -0
  63. package/lib/types/equipment/item/CeremonialItem.js +16 -0
  64. package/lib/types/equipment/item/Clothes.js +16 -0
  65. package/lib/types/equipment/item/Container.js +16 -0
  66. package/lib/types/equipment/item/Elixir.js +6 -0
  67. package/lib/types/equipment/item/EquipmentOfBlessedOnes.js +16 -0
  68. package/lib/types/equipment/item/GemOrPreciousStone.js +6 -0
  69. package/lib/types/equipment/item/IlluminationLightSource.js +16 -0
  70. package/lib/types/equipment/item/IlluminationRefillOrSupply.js +16 -0
  71. package/lib/types/equipment/item/Jewelry.js +6 -0
  72. package/lib/types/equipment/item/Laboratory.js +6 -0
  73. package/lib/types/equipment/item/Liebesspielzeug.js +16 -0
  74. package/lib/types/equipment/item/LuxuryGood.js +16 -0
  75. package/lib/types/equipment/item/MagicalArtifact.js +16 -0
  76. package/lib/types/equipment/item/MusicalInstrument.js +16 -0
  77. package/lib/types/equipment/item/Newspaper.js +6 -0
  78. package/lib/types/equipment/item/Poison.js +6 -0
  79. package/lib/types/equipment/item/ToolOfTheTrade.js +6 -0
  80. package/lib/types/equipment/item/TravelGearOrTool.js +16 -0
  81. package/lib/types/equipment/item/Vehicle.js +6 -0
  82. package/lib/types/equipment/item/Weapon.d.ts +45 -45
  83. package/lib/types/equipment/item/Weapon.js +13 -5
  84. package/lib/types/equipment/item/WeaponAccessory.js +16 -0
  85. package/lib/types/equipment/item/_Item.js +19 -1
  86. package/lib/types/equipment/item/_Weapon.d.ts +13 -4
  87. package/lib/types/equipment/item/_Weapon.js +32 -4
  88. package/lib/types/equipment/item/sub/ArmorType.js +6 -0
  89. package/lib/types/equipment/item/sub/Reach.js +6 -0
  90. package/lib/types/magicalActions/AnimistPower.js +6 -0
  91. package/lib/types/magicalActions/AnimistPower_Tribe.js +6 -0
  92. package/lib/types/magicalActions/Curse.js +6 -0
  93. package/lib/types/magicalActions/DominationRitual.js +6 -0
  94. package/lib/types/magicalActions/ElvenMagicalSong.js +6 -0
  95. package/lib/types/magicalActions/GeodeRitual.js +6 -0
  96. package/lib/types/magicalActions/JesterTrick.js +6 -0
  97. package/lib/types/magicalActions/MagicalDance.js +6 -0
  98. package/lib/types/magicalActions/MagicalMelody.js +6 -0
  99. package/lib/types/magicalActions/MagicalRune.js +6 -0
  100. package/lib/types/magicalActions/ZibiljaRitual.js +6 -0
  101. package/lib/types/rule/AlternativeRule.js +6 -0
  102. package/lib/types/rule/CoreRule.js +6 -0
  103. package/lib/types/rule/FocusRule.js +6 -0
  104. package/lib/types/rule/FocusRule_Subject.js +6 -0
  105. package/lib/types/rule/OptionalRule.js +6 -0
  106. package/lib/types/source/Publication.js +6 -0
  107. package/lib/types/specialAbility/AdvancedCombatSpecialAbility.js +7 -0
  108. package/lib/types/specialAbility/AdvancedKarmaSpecialAbility.js +7 -0
  109. package/lib/types/specialAbility/AdvancedMagicalSpecialAbility.js +7 -0
  110. package/lib/types/specialAbility/AdvancedSkillSpecialAbility.js +7 -0
  111. package/lib/types/specialAbility/AncestorGlyph.js +7 -0
  112. package/lib/types/specialAbility/BlessedTradition.js +7 -0
  113. package/lib/types/specialAbility/BrawlingSpecialAbility.js +7 -0
  114. package/lib/types/specialAbility/CeremonialItemSpecialAbility.js +12 -0
  115. package/lib/types/specialAbility/CombatSpecialAbility.js +7 -0
  116. package/lib/types/specialAbility/CombatStyleSpecialAbility.js +7 -0
  117. package/lib/types/specialAbility/CommandSpecialAbility.js +7 -0
  118. package/lib/types/specialAbility/FamiliarSpecialAbility.js +7 -0
  119. package/lib/types/specialAbility/FatePointSexSpecialAbility.js +7 -0
  120. package/lib/types/specialAbility/FatePointSpecialAbility.js +7 -0
  121. package/lib/types/specialAbility/GeneralSpecialAbility.js +7 -0
  122. package/lib/types/specialAbility/KarmaSpecialAbility.js +7 -0
  123. package/lib/types/specialAbility/LiturgicalStyleSpecialAbility.js +7 -0
  124. package/lib/types/specialAbility/LycantropicGift.js +7 -0
  125. package/lib/types/specialAbility/MagicStyleSpecialAbility.js +7 -0
  126. package/lib/types/specialAbility/MagicalSign.js +7 -0
  127. package/lib/types/specialAbility/MagicalSpecialAbility.js +7 -0
  128. package/lib/types/specialAbility/MagicalTradition.js +7 -0
  129. package/lib/types/specialAbility/PactGift.js +7 -0
  130. package/lib/types/specialAbility/ProtectiveWardingCircleSpecialAbility.js +7 -0
  131. package/lib/types/specialAbility/Sermon.js +7 -0
  132. package/lib/types/specialAbility/SexSpecialAbility.js +7 -0
  133. package/lib/types/specialAbility/SikaryanDrainSpecialAbility.js +7 -0
  134. package/lib/types/specialAbility/SkillStyleSpecialAbility.js +7 -0
  135. package/lib/types/specialAbility/VampiricGift.js +7 -0
  136. package/lib/types/specialAbility/Vision.js +7 -0
  137. package/lib/types/specialAbility/sub/Language.js +6 -0
  138. package/lib/types/specialAbility/sub/Script.js +6 -0
  139. package/lib/types/specialAbility/sub/TradeSecret.js +6 -0
  140. package/lib/types/traditionArtifacts/ArcaneOrbEnchantment.js +7 -0
  141. package/lib/types/traditionArtifacts/AttireEnchantment.js +7 -0
  142. package/lib/types/traditionArtifacts/Beutelzauber.js +7 -0
  143. package/lib/types/traditionArtifacts/BowlEnchantment.js +7 -0
  144. package/lib/types/traditionArtifacts/CauldronEnchantment.js +7 -0
  145. package/lib/types/traditionArtifacts/ChronicleEnchantment.js +7 -0
  146. package/lib/types/traditionArtifacts/DaggerRitual.js +7 -0
  147. package/lib/types/traditionArtifacts/FoolsHatEnchantment.js +7 -0
  148. package/lib/types/traditionArtifacts/Haubenzauber.js +7 -0
  149. package/lib/types/traditionArtifacts/InstrumentEnchantment.js +7 -0
  150. package/lib/types/traditionArtifacts/Krallenkettenzauber.js +7 -0
  151. package/lib/types/traditionArtifacts/Kristallkugelzauber.js +7 -0
  152. package/lib/types/traditionArtifacts/OrbEnchantment.js +7 -0
  153. package/lib/types/traditionArtifacts/RingEnchantment.js +7 -0
  154. package/lib/types/traditionArtifacts/SickleRitual.js +7 -0
  155. package/lib/types/traditionArtifacts/SpellSwordEnchantment.js +7 -0
  156. package/lib/types/traditionArtifacts/StaffEnchantment.js +7 -0
  157. package/lib/types/traditionArtifacts/ToyEnchantment.js +7 -0
  158. package/lib/types/traditionArtifacts/Trinkhornzauber.js +7 -0
  159. package/lib/types/traditionArtifacts/WandEnchantment.js +7 -0
  160. package/lib/types/traditionArtifacts/WeaponEnchantment.js +7 -0
  161. package/package.json +2 -2
@@ -12,4 +12,10 @@ export const Element = Entity(import.meta.url, {
12
12
  })),
13
13
  }),
14
14
  displayName: {},
15
+ uniqueConstraints: [
16
+ {
17
+ entityMapKeyPath: "translations",
18
+ keyPathInEntityMap: "name",
19
+ },
20
+ ],
15
21
  });
@@ -41,4 +41,10 @@ export const ExperienceLevel = Entity(import.meta.url, {
41
41
  })),
42
42
  }),
43
43
  displayName: {},
44
+ uniqueConstraints: [
45
+ {
46
+ entityMapKeyPath: "translations",
47
+ keyPathInEntityMap: "name",
48
+ },
49
+ ],
44
50
  });
@@ -12,4 +12,10 @@ export const EyeColor = Entity(import.meta.url, {
12
12
  })),
13
13
  }),
14
14
  displayName: {},
15
+ uniqueConstraints: [
16
+ {
17
+ entityMapKeyPath: "translations",
18
+ keyPathInEntityMap: "name",
19
+ },
20
+ ],
15
21
  });
@@ -53,6 +53,12 @@ If no animal types are given, the animal disease applies to all animal types.`,
53
53
  })),
54
54
  }),
55
55
  displayName: {},
56
+ uniqueConstraints: [
57
+ {
58
+ entityMapKeyPath: "translations",
59
+ keyPathInEntityMap: "name",
60
+ },
61
+ ],
56
62
  });
57
63
  const FamiliarsTrickProperty = Enum(import.meta.url, {
58
64
  name: "FamiliarsTrickProperty",
@@ -12,4 +12,10 @@ export const HairColor = Entity(import.meta.url, {
12
12
  })),
13
13
  }),
14
14
  displayName: {},
15
+ uniqueConstraints: [
16
+ {
17
+ entityMapKeyPath: "translations",
18
+ keyPathInEntityMap: "name",
19
+ },
20
+ ],
15
21
  });
@@ -20,6 +20,12 @@ export const Guideline = Entity(import.meta.url, {
20
20
  })),
21
21
  }),
22
22
  displayName: {},
23
+ uniqueConstraints: [
24
+ {
25
+ entityMapKeyPath: "translations",
26
+ keyPathInEntityMap: "name",
27
+ },
28
+ ],
23
29
  });
24
30
  export const Curriculum = Entity(import.meta.url, {
25
31
  name: "Curriculum",
@@ -54,6 +60,12 @@ export const Curriculum = Entity(import.meta.url, {
54
60
  })),
55
61
  }),
56
62
  displayName: {},
63
+ uniqueConstraints: [
64
+ {
65
+ entityMapKeyPath: "translations",
66
+ keyPathInEntityMap: "name",
67
+ },
68
+ ],
57
69
  });
58
70
  const ElectiveSpellworks = Enum(import.meta.url, {
59
71
  name: "ElectiveSpellworks",
@@ -85,4 +85,10 @@ export const LiturgicalChant = Entity(import.meta.url, {
85
85
  }),
86
86
  }),
87
87
  displayName: {},
88
+ uniqueConstraints: [
89
+ {
90
+ entityMapKeyPath: "translations",
91
+ keyPathInEntityMap: "name",
92
+ },
93
+ ],
88
94
  });
@@ -1289,6 +1289,16 @@ export const Locale = Entity(import.meta.url, {
1289
1289
  }, { allKeysAreRequired: true }),
1290
1290
  }),
1291
1291
  }),
1292
+ uniqueConstraints: [
1293
+ [
1294
+ {
1295
+ keyPath: "name",
1296
+ },
1297
+ {
1298
+ keyPath: "region",
1299
+ },
1300
+ ],
1301
+ ],
1292
1302
  });
1293
1303
  export const NestedTranslationMap = (MemberDeclCreator, entityName, type) => MemberDeclCreator({
1294
1304
  comment: "All translations for the entry, identified by IETF language tag (BCP47).",
@@ -30,4 +30,10 @@ export const MetaCondition = Entity(import.meta.url, {
30
30
  })),
31
31
  }),
32
32
  displayName: {},
33
+ uniqueConstraints: [
34
+ {
35
+ entityMapKeyPath: "translations",
36
+ keyPathInEntityMap: "name",
37
+ },
38
+ ],
33
39
  });
@@ -27,6 +27,12 @@ export const PactCategory = Entity(import.meta.url, {
27
27
  })),
28
28
  }),
29
29
  displayName: {},
30
+ uniqueConstraints: [
31
+ {
32
+ entityMapKeyPath: "translations",
33
+ keyPathInEntityMap: "name",
34
+ },
35
+ ],
30
36
  });
31
37
  export const PactType = Entity(import.meta.url, {
32
38
  name: "PactType",
@@ -45,6 +51,21 @@ export const PactType = Entity(import.meta.url, {
45
51
  }),
46
52
  parentReferenceKey: "parent",
47
53
  displayName: {},
54
+ displayNameCustomizer: ({ instance, instanceDisplayName, instanceDisplayNameLocaleId, getDisplayNameForInstanceId, }) => ({
55
+ name: `${getDisplayNameForInstanceId(instance.parent)?.name ?? ""} — ${instanceDisplayName}`,
56
+ localeId: instanceDisplayNameLocaleId,
57
+ }),
58
+ uniqueConstraints: [
59
+ [
60
+ {
61
+ keyPath: "parent",
62
+ },
63
+ {
64
+ entityMapKeyPath: "translations",
65
+ keyPathInEntityMap: "name",
66
+ },
67
+ ],
68
+ ],
48
69
  });
49
70
  export const PactDomain = Entity(import.meta.url, {
50
71
  name: "PactDomain",
@@ -63,4 +84,19 @@ export const PactDomain = Entity(import.meta.url, {
63
84
  }),
64
85
  parentReferenceKey: "parent",
65
86
  displayName: {},
87
+ displayNameCustomizer: ({ instance, instanceDisplayName, instanceDisplayNameLocaleId, getDisplayNameForInstanceId, }) => ({
88
+ name: `${getDisplayNameForInstanceId(instance.parent)?.name ?? ""} — ${instanceDisplayName}`,
89
+ localeId: instanceDisplayNameLocaleId,
90
+ }),
91
+ uniqueConstraints: [
92
+ [
93
+ {
94
+ keyPath: "parent",
95
+ },
96
+ {
97
+ entityMapKeyPath: "translations",
98
+ keyPathInEntityMap: "name",
99
+ },
100
+ ],
101
+ ],
66
102
  });
@@ -59,6 +59,12 @@ export const Patron = Entity(import.meta.url, {
59
59
  })),
60
60
  }),
61
61
  displayName: {},
62
+ uniqueConstraints: [
63
+ {
64
+ entityMapKeyPath: "translations",
65
+ keyPathInEntityMap: "name",
66
+ },
67
+ ],
62
68
  });
63
69
  const PatronCulture = TypeAlias(import.meta.url, {
64
70
  name: "PatronCulture",
@@ -17,4 +17,10 @@ export const PatronCategory = Entity(import.meta.url, {
17
17
  })),
18
18
  }),
19
19
  displayName: {},
20
+ uniqueConstraints: [
21
+ {
22
+ entityMapKeyPath: "translations",
23
+ keyPathInEntityMap: "name",
24
+ },
25
+ ],
20
26
  });
@@ -36,6 +36,12 @@ export const PersonalityTrait = Entity(import.meta.url, {
36
36
  })),
37
37
  }),
38
38
  displayName: {},
39
+ uniqueConstraints: [
40
+ {
41
+ entityMapKeyPath: "translations",
42
+ keyPathInEntityMap: "name",
43
+ },
44
+ ],
39
45
  });
40
46
  const PersonalityTraitEffect = TypeAlias(import.meta.url, {
41
47
  name: "PersonalityTraitEffect",
@@ -76,6 +76,9 @@ export declare const Profession: Entity<"Profession", {
76
76
  group: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ReferenceIdentifierType, false>;
77
77
  ap_value: import("tsondb/schema/def").MemberDecl<Integer, true>;
78
78
  }>, []>>, false>;
79
+ liturgies: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"LiturgiesOptions", ObjectType<{
80
+ ap_value: import("tsondb/schema/def").MemberDecl<Integer, true>;
81
+ }>, []>>, false>;
79
82
  }>, []>>, false>;
80
83
  special_abilities: import("tsondb/schema/def").MemberDecl<Array<IncludeIdentifier<[], Enum<"ProfessionSpecialAbility", {
81
84
  Constant: EnumCase<IncludeIdentifier<[], TypeAlias<"ConstantProfessionSpecialAbility", ObjectType<{
@@ -332,6 +335,10 @@ export declare const Profession: Entity<"Profession", {
332
335
  Remove: EnumCase<null>;
333
336
  Override: EnumCase<TypeArgument<import("tsondb/schema/def").TypeParameter<"T", import("tsondb/schema/def").Type>>>;
334
337
  }, [T: import("tsondb/schema/def").TypeParameter<"T", import("tsondb/schema/def").Type>]>>, false>;
338
+ liturgies: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<import("tsondb/schema/def").TypeParameter<string, import("tsondb/schema/def").Type>[], Enum<"VariantOptionAction", {
339
+ Remove: EnumCase<null>;
340
+ Override: EnumCase<TypeArgument<import("tsondb/schema/def").TypeParameter<"T", import("tsondb/schema/def").Type>>>;
341
+ }, [T: import("tsondb/schema/def").TypeParameter<"T", import("tsondb/schema/def").Type>]>>, false>;
335
342
  }>, []>>, false>;
336
343
  special_abilities: import("tsondb/schema/def").MemberDecl<Array<IncludeIdentifier<[], TypeAlias<"ProfessionVariantSpecialAbility", ObjectType<{
337
344
  action: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], Enum<"VariantSpecialAbilityAction", {
@@ -692,6 +699,9 @@ export declare const ProfessionVersion: Entity<"ProfessionVersion", {
692
699
  group: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ReferenceIdentifierType, false>;
693
700
  ap_value: import("tsondb/schema/def").MemberDecl<Integer, true>;
694
701
  }>, []>>, false>;
702
+ liturgies: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"LiturgiesOptions", ObjectType<{
703
+ ap_value: import("tsondb/schema/def").MemberDecl<Integer, true>;
704
+ }>, []>>, false>;
695
705
  }>, []>>, false>;
696
706
  special_abilities: import("tsondb/schema/def").MemberDecl<Array<IncludeIdentifier<[], Enum<"ProfessionSpecialAbility", {
697
707
  Constant: EnumCase<IncludeIdentifier<[], TypeAlias<"ConstantProfessionSpecialAbility", ObjectType<{
@@ -948,6 +958,10 @@ export declare const ProfessionVersion: Entity<"ProfessionVersion", {
948
958
  Remove: EnumCase<null>;
949
959
  Override: EnumCase<TypeArgument<import("tsondb/schema/def").TypeParameter<"T", import("tsondb/schema/def").Type>>>;
950
960
  }, [T: import("tsondb/schema/def").TypeParameter<"T", import("tsondb/schema/def").Type>]>>, false>;
961
+ liturgies: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<import("tsondb/schema/def").TypeParameter<string, import("tsondb/schema/def").Type>[], Enum<"VariantOptionAction", {
962
+ Remove: EnumCase<null>;
963
+ Override: EnumCase<TypeArgument<import("tsondb/schema/def").TypeParameter<"T", import("tsondb/schema/def").Type>>>;
964
+ }, [T: import("tsondb/schema/def").TypeParameter<"T", import("tsondb/schema/def").Type>]>>, false>;
951
965
  }>, []>>, false>;
952
966
  special_abilities: import("tsondb/schema/def").MemberDecl<Array<IncludeIdentifier<[], TypeAlias<"ProfessionVariantSpecialAbility", ObjectType<{
953
967
  action: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], Enum<"VariantSpecialAbilityAction", {
@@ -1300,6 +1314,9 @@ export declare const ProfessionPackage: Entity<"ProfessionPackage", {
1300
1314
  group: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ReferenceIdentifierType, false>;
1301
1315
  ap_value: import("tsondb/schema/def").MemberDecl<Integer, true>;
1302
1316
  }>, []>>, false>;
1317
+ liturgies: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"LiturgiesOptions", ObjectType<{
1318
+ ap_value: import("tsondb/schema/def").MemberDecl<Integer, true>;
1319
+ }>, []>>, false>;
1303
1320
  }>, []>>, false>;
1304
1321
  special_abilities: import("tsondb/schema/def").MemberDecl<Array<IncludeIdentifier<[], Enum<"ProfessionSpecialAbility", {
1305
1322
  Constant: EnumCase<IncludeIdentifier<[], TypeAlias<"ConstantProfessionSpecialAbility", ObjectType<{
@@ -1556,6 +1573,10 @@ export declare const ProfessionPackage: Entity<"ProfessionPackage", {
1556
1573
  Remove: EnumCase<null>;
1557
1574
  Override: EnumCase<TypeArgument<import("tsondb/schema/def").TypeParameter<"T", import("tsondb/schema/def").Type>>>;
1558
1575
  }, [T: import("tsondb/schema/def").TypeParameter<"T", import("tsondb/schema/def").Type>]>>, false>;
1576
+ liturgies: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<import("tsondb/schema/def").TypeParameter<string, import("tsondb/schema/def").Type>[], Enum<"VariantOptionAction", {
1577
+ Remove: EnumCase<null>;
1578
+ Override: EnumCase<TypeArgument<import("tsondb/schema/def").TypeParameter<"T", import("tsondb/schema/def").Type>>>;
1579
+ }, [T: import("tsondb/schema/def").TypeParameter<"T", import("tsondb/schema/def").Type>]>>, false>;
1559
1580
  }>, []>>, false>;
1560
1581
  special_abilities: import("tsondb/schema/def").MemberDecl<Array<IncludeIdentifier<[], TypeAlias<"ProfessionVariantSpecialAbility", ObjectType<{
1561
1582
  action: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], Enum<"VariantSpecialAbilityAction", {
@@ -1828,6 +1849,10 @@ export declare const ProfessionVariant: Entity<"ProfessionVariant", {
1828
1849
  Remove: EnumCase<null>;
1829
1850
  Override: EnumCase<TypeArgument<import("tsondb/schema/def").TypeParameter<"T", import("tsondb/schema/def").Type>>>;
1830
1851
  }, [T: import("tsondb/schema/def").TypeParameter<"T", import("tsondb/schema/def").Type>]>>, false>;
1852
+ liturgies: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<import("tsondb/schema/def").TypeParameter<string, import("tsondb/schema/def").Type>[], Enum<"VariantOptionAction", {
1853
+ Remove: EnumCase<null>;
1854
+ Override: EnumCase<TypeArgument<import("tsondb/schema/def").TypeParameter<"T", import("tsondb/schema/def").Type>>>;
1855
+ }, [T: import("tsondb/schema/def").TypeParameter<"T", import("tsondb/schema/def").Type>]>>, false>;
1831
1856
  }>, []>>, false>;
1832
1857
  special_abilities: import("tsondb/schema/def").MemberDecl<Array<IncludeIdentifier<[], TypeAlias<"ProfessionVariantSpecialAbility", ObjectType<{
1833
1858
  action: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], Enum<"VariantSpecialAbilityAction", {
@@ -435,6 +435,9 @@ const ProfessionPackageOptions = TypeAlias(import.meta.url, {
435
435
  skills: Optional({
436
436
  type: IncludeIdentifier(SkillsOptions),
437
437
  }),
438
+ liturgies: Optional({
439
+ type: IncludeIdentifier(LiturgiesOptions),
440
+ }),
438
441
  }, { minProperties: 1 }),
439
442
  });
440
443
  const ProfessionVariantPackageOptions = TypeAlias(import.meta.url, {
@@ -470,6 +473,9 @@ const ProfessionVariantPackageOptions = TypeAlias(import.meta.url, {
470
473
  skills: Optional({
471
474
  type: GenIncludeIdentifier(VariantOptionAction, [IncludeIdentifier(SkillsOptions)]),
472
475
  }),
476
+ liturgies: Optional({
477
+ type: GenIncludeIdentifier(VariantOptionAction, [IncludeIdentifier(LiturgiesOptions)]),
478
+ }),
473
479
  }, { minProperties: 1 }),
474
480
  });
475
481
  const VariantOptionAction = GenEnum(import.meta.url, {
@@ -589,6 +595,16 @@ const SkillsOptions = TypeAlias(import.meta.url, {
589
595
  }),
590
596
  }),
591
597
  });
598
+ const LiturgiesOptions = TypeAlias(import.meta.url, {
599
+ name: "LiturgiesOptions",
600
+ comment: `Buy liturgical chants and ceremonies for a specific amount of AP.`,
601
+ type: () => ObjectType({
602
+ ap_value: Required({
603
+ comment: "The AP value you can buy liturgical chants and ceremonies for.",
604
+ type: Integer({ minimum: 1 }),
605
+ }),
606
+ }),
607
+ });
592
608
  const ProfessionName = TypeAlias(import.meta.url, {
593
609
  name: "ProfessionName",
594
610
  comment: "The name of the profession that may have sex-specific names. Useful if the term in generell is different (i.e. actor/actress) or if the language uses gendered nouns. The default name is also used in case neither the male nor female name strictly applies.",
@@ -17,4 +17,10 @@ export const Property = Entity(import.meta.url, {
17
17
  })),
18
18
  }),
19
19
  displayName: {},
20
+ uniqueConstraints: [
21
+ {
22
+ entityMapKeyPath: "translations",
23
+ keyPathInEntityMap: "name",
24
+ },
25
+ ],
20
26
  });
package/lib/types/Race.js CHANGED
@@ -89,6 +89,12 @@ export const Race = Entity(import.meta.url, {
89
89
  })),
90
90
  }),
91
91
  displayName: {},
92
+ uniqueConstraints: [
93
+ {
94
+ entityMapKeyPath: "translations",
95
+ keyPathInEntityMap: "name",
96
+ },
97
+ ],
92
98
  });
93
99
  const BaseValues = TypeAlias(import.meta.url, {
94
100
  name: "BaseValues",
@@ -273,6 +279,17 @@ export const RaceVariant = Entity(import.meta.url, {
273
279
  }),
274
280
  parentReferenceKey: "race",
275
281
  displayName: {},
282
+ uniqueConstraints: [
283
+ [
284
+ {
285
+ keyPath: "race",
286
+ },
287
+ {
288
+ entityMapKeyPath: "translations",
289
+ keyPathInEntityMap: "name",
290
+ },
291
+ ],
292
+ ],
276
293
  });
277
294
  const RandomHeightGeneration = TypeAlias(import.meta.url, {
278
295
  name: "RandomHeightGeneration",
@@ -12,4 +12,10 @@ export const Region = Entity(import.meta.url, {
12
12
  })),
13
13
  }),
14
14
  displayName: {},
15
+ uniqueConstraints: [
16
+ {
17
+ entityMapKeyPath: "translations",
18
+ keyPathInEntityMap: "name",
19
+ },
20
+ ],
15
21
  });
@@ -86,4 +86,10 @@ export const Ritual = Entity(import.meta.url, {
86
86
  }),
87
87
  }),
88
88
  displayName: {},
89
+ uniqueConstraints: [
90
+ {
91
+ entityMapKeyPath: "translations",
92
+ keyPathInEntityMap: "name",
93
+ },
94
+ ],
89
95
  });
@@ -29,6 +29,12 @@ export const Service = Entity(import.meta.url, {
29
29
  })),
30
30
  }),
31
31
  displayName: {},
32
+ uniqueConstraints: [
33
+ {
34
+ entityMapKeyPath: "translations",
35
+ keyPathInEntityMap: "name",
36
+ },
37
+ ],
32
38
  });
33
39
  const ServiceAvailability = Enum(import.meta.url, {
34
40
  name: "ServiceAvailability",
@@ -30,4 +30,10 @@ export const SexPractice = Entity(import.meta.url, {
30
30
  })),
31
31
  }),
32
32
  displayName: {},
33
+ uniqueConstraints: [
34
+ {
35
+ entityMapKeyPath: "translations",
36
+ keyPathInEntityMap: "name",
37
+ },
38
+ ],
33
39
  });
@@ -72,6 +72,12 @@ export const Skill = Entity(import.meta.url, {
72
72
  })),
73
73
  }),
74
74
  displayName: {},
75
+ uniqueConstraints: [
76
+ {
77
+ entityMapKeyPath: "translations",
78
+ keyPathInEntityMap: "name",
79
+ },
80
+ ],
75
81
  });
76
82
  export const Applications = TypeAlias(import.meta.url, {
77
83
  name: "Applications",
@@ -112,6 +118,15 @@ export const SkillApplication = Entity(import.meta.url, {
112
118
  }),
113
119
  parentReferenceKey: "parent",
114
120
  displayName: {},
121
+ uniqueConstraints: [
122
+ [
123
+ { keyPath: "parent" },
124
+ {
125
+ entityMapKeyPath: "translations",
126
+ keyPathInEntityMap: "name",
127
+ },
128
+ ],
129
+ ],
115
130
  });
116
131
  export const EncumbranceInfluence = Enum(import.meta.url, {
117
132
  name: "EncumbranceInfluence",
@@ -21,4 +21,10 @@ export const SkillGroup = Entity(import.meta.url, {
21
21
  })),
22
22
  }),
23
23
  displayName: {},
24
+ uniqueConstraints: [
25
+ {
26
+ entityMapKeyPath: "translations",
27
+ keyPathInEntityMap: "name",
28
+ },
29
+ ],
24
30
  });
@@ -39,6 +39,14 @@ export const SkillModificationLevel = Entity(import.meta.url, {
39
39
  localeId: locales[0],
40
40
  };
41
41
  },
42
+ uniqueConstraints: [
43
+ { keyPath: ["fast", "casting_time"] },
44
+ { keyPath: ["fast", "range"] },
45
+ { keyPath: ["fast", "cost"] },
46
+ { keyPath: ["slow", "casting_time"] },
47
+ { keyPath: ["slow", "range"] },
48
+ { keyPath: ["slow", "cost"] },
49
+ ],
42
50
  });
43
51
  const FastSkillModificationLevelConfig = TypeAlias(import.meta.url, {
44
52
  name: "FastSkillModificationLevelConfig",
@@ -16,4 +16,11 @@ export const SocialStatus = Entity(import.meta.url, {
16
16
  })),
17
17
  }),
18
18
  displayName: {},
19
+ uniqueConstraints: [
20
+ { keyPath: "order" },
21
+ {
22
+ entityMapKeyPath: "translations",
23
+ keyPathInEntityMap: "name",
24
+ },
25
+ ],
19
26
  });
@@ -86,4 +86,10 @@ export const Spell = Entity(import.meta.url, {
86
86
  }),
87
87
  }),
88
88
  displayName: {},
89
+ uniqueConstraints: [
90
+ {
91
+ entityMapKeyPath: "translations",
92
+ keyPathInEntityMap: "name",
93
+ },
94
+ ],
89
95
  });
@@ -22,4 +22,10 @@ export const State = Entity(import.meta.url, {
22
22
  })),
23
23
  }),
24
24
  displayName: {},
25
+ uniqueConstraints: [
26
+ {
27
+ entityMapKeyPath: "translations",
28
+ keyPathInEntityMap: "name",
29
+ },
30
+ ],
25
31
  });
@@ -39,6 +39,12 @@ export const Talisman = Entity(import.meta.url, {
39
39
  })),
40
40
  }),
41
41
  displayName: {},
42
+ uniqueConstraints: [
43
+ {
44
+ entityMapKeyPath: "translations",
45
+ keyPathInEntityMap: "name",
46
+ },
47
+ ],
42
48
  });
43
49
  const TalismanType = Enum(import.meta.url, {
44
50
  name: "TalismanType",
@@ -17,4 +17,10 @@ export const TargetCategory = Entity(import.meta.url, {
17
17
  })),
18
18
  }),
19
19
  displayName: {},
20
+ uniqueConstraints: [
21
+ {
22
+ entityMapKeyPath: "translations",
23
+ keyPathInEntityMap: "name",
24
+ },
25
+ ],
20
26
  });
@@ -92,6 +92,17 @@ export const GeneralSelectOption = Entity(import.meta.url, {
92
92
  : (getDisplayNameForInstanceId(getAnyEnumCaseValue(instance.parent))?.name ?? "")} — ${instanceDisplayName}`,
93
93
  localeId: instanceDisplayNameLocaleId,
94
94
  }),
95
+ uniqueConstraints: [
96
+ [
97
+ {
98
+ keyPath: "parent",
99
+ },
100
+ {
101
+ entityMapKeyPath: "translations",
102
+ keyPathInEntityMap: "name",
103
+ },
104
+ ],
105
+ ],
95
106
  });
96
107
  export const explicit_select_options = Required({
97
108
  comment: `Explicit definitions for possible options for the activatable entry.
@@ -66,4 +66,15 @@ export const Enhancement = Entity(import.meta.url, {
66
66
  name: `${getDisplayNameForInstanceId(getAnyEnumCaseValue(instance.parent))?.name ?? ""} — ${instanceDisplayName}`,
67
67
  localeId: instanceDisplayNameLocaleId,
68
68
  }),
69
+ uniqueConstraints: [
70
+ [
71
+ {
72
+ keyPath: "parent",
73
+ },
74
+ {
75
+ entityMapKeyPath: "translations",
76
+ keyPathInEntityMap: "name",
77
+ },
78
+ ],
79
+ ],
69
80
  });
@@ -26,6 +26,12 @@ export const Influence = Entity(import.meta.url, {
26
26
  })),
27
27
  }),
28
28
  displayName: {},
29
+ uniqueConstraints: [
30
+ {
31
+ entityMapKeyPath: "translations",
32
+ keyPathInEntityMap: "name",
33
+ },
34
+ ],
29
35
  });
30
36
  const InfluenceEffect = TypeAlias(import.meta.url, {
31
37
  name: "InfluenceEffect",
@@ -19,6 +19,12 @@ export const EquipmentPackage = Entity(import.meta.url, {
19
19
  })),
20
20
  }),
21
21
  displayName: {},
22
+ uniqueConstraints: [
23
+ {
24
+ entityMapKeyPath: "translations",
25
+ keyPathInEntityMap: "name",
26
+ },
27
+ ],
22
28
  });
23
29
  const EquipmentPackageItem = TypeAlias(import.meta.url, {
24
30
  name: "EquipmentPackageItem",
@@ -35,4 +35,10 @@ export const Ammunition = Entity(import.meta.url, {
35
35
  })),
36
36
  }),
37
37
  displayName: {},
38
+ uniqueConstraints: [
39
+ {
40
+ entityMapKeyPath: "translations",
41
+ keyPathInEntityMap: "name",
42
+ },
43
+ ],
38
44
  });
@@ -13,4 +13,10 @@ export const Animal = Entity(import.meta.url, {
13
13
  translations: DefaultItemTranslations("Animal"),
14
14
  }),
15
15
  displayName: {},
16
+ uniqueConstraints: [
17
+ {
18
+ entityMapKeyPath: "translations",
19
+ keyPathInEntityMap: "name",
20
+ },
21
+ ],
16
22
  });
@@ -13,6 +13,12 @@ export const AnimalCare = Entity(import.meta.url, {
13
13
  translations: DefaultItemTranslations("AnimalCare"),
14
14
  }),
15
15
  displayName: {},
16
+ uniqueConstraints: [
17
+ {
18
+ entityMapKeyPath: "translations",
19
+ keyPathInEntityMap: "name",
20
+ },
21
+ ],
16
22
  });
17
23
  const AnimalCareType = Enum(import.meta.url, {
18
24
  name: "AnimalCareType",