@optolith/database-schema 0.113.1 → 0.114.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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,16 @@
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.114.0](https://github.com/Optolith/database-schema/compare/v0.113.1...v0.114.0) (2026-10-30)
6
+
7
+ ### ⚠ BREAKING CHANGES
8
+
9
+ * more data-driven logic from client
10
+
11
+ ### Features
12
+
13
+ * more data-driven logic from client ([2126a3c](https://github.com/Optolith/database-schema/commit/2126a3c70cc826a96ff427aef0c12e8cc38239ea))
14
+
5
15
  ## [0.113.1](https://github.com/Optolith/database-schema/compare/v0.113.0...v0.113.1) (2026-10-26)
6
16
 
7
17
  ### Bug Fixes
package/gen/types.d.ts CHANGED
@@ -324,6 +324,7 @@ export type EnumMap = {
324
324
  DerivedCharacteristicModifierPrerequisiteGroup: DerivedCharacteristicModifierPrerequisiteGroup
325
325
  DerivedCharacteristicPrerequisiteGroup: DerivedCharacteristicPrerequisiteGroup
326
326
  DerivedCharacteristicPrimaryAttributeValue: DerivedCharacteristicPrimaryAttributeValue
327
+ DerivedCharacteristicPurchaseMaximumValue: DerivedCharacteristicPurchaseMaximumValue
327
328
  DerivedCharacteristicSkillCheckPenalty: DerivedCharacteristicSkillCheckPenalty
328
329
  DerivedCharacteristicType: DerivedCharacteristicType
329
330
  DerivedPropertySpecializations: DerivedPropertySpecializations
@@ -622,6 +623,7 @@ export type TypeAliasMap = {
622
623
  CombatAnimalPower: CombatAnimalPower
623
624
  CombatTechniqueAdjustment: CombatTechniqueAdjustment
624
625
  CombatTechniqueRating: CombatTechniqueRating
626
+ CombatTechniqueSettings: CombatTechniqueSettings
625
627
  CombatTechniquesForAdventurePointsOption: CombatTechniquesForAdventurePointsOption
626
628
  CombatTechniquesOptions: CombatTechniquesOptions
627
629
  CombatTechniquesSelectOptionCategory: CombatTechniquesSelectOptionCategory
@@ -686,7 +688,6 @@ export type TypeAliasMap = {
686
688
  EnergyType: EnergyType
687
689
  EnhancementPrerequisite: EnhancementPrerequisite
688
690
  EnhancementPrerequisites: EnhancementPrerequisites
689
- EnhancementsSettings: EnhancementsSettings
690
691
  EquipmentPackageItem: EquipmentPackageItem
691
692
  EquipmentPrerequisites: EquipmentPrerequisites
692
693
  Errata: Errata
@@ -802,6 +803,7 @@ export type TypeAliasMap = {
802
803
  LevelTypeConfigTranslation: LevelTypeConfigTranslation
803
804
  LimitedBurningTime: LimitedBurningTime
804
805
  LiturgicalChantRating: LiturgicalChantRating
806
+ LiturgicalChantSettings: LiturgicalChantSettings
805
807
  LiturgiesOptions: LiturgiesOptions
806
808
  LiturgyPrerequisites: LiturgyPrerequisites
807
809
  LiturgyTraditionWithAspects: LiturgyTraditionWithAspects
@@ -984,6 +986,7 @@ export type TypeAliasMap = {
984
986
  SkillCheck: SkillCheck
985
987
  SkillRating: SkillRating
986
988
  SkillSelectOptionCategoryCategory: SkillSelectOptionCategoryCategory
989
+ SkillSettings: SkillSettings
987
990
  SkillsOptions: SkillsOptions
988
991
  SkillsSelectOptionCategory: SkillsSelectOptionCategory
989
992
  SlowCastingTime: SlowCastingTime
@@ -1009,6 +1012,7 @@ export type TypeAliasMap = {
1009
1012
  SpellworkAdjustmentWithBase: SpellworkAdjustmentWithBase
1010
1013
  SpellworkChange: SpellworkChange
1011
1014
  SpellworkPrerequisites: SpellworkPrerequisites
1015
+ SpellworkSettings: SpellworkSettings
1012
1016
  SpellworksForChosenProperty: SpellworksForChosenProperty
1013
1017
  SpellworksOptions: SpellworksOptions
1014
1018
  StandaloneCostMap: StandaloneCostMap
@@ -1527,6 +1531,7 @@ export interface Locale {
1527
1531
  "Sort By": string
1528
1532
  "Name": string
1529
1533
  "Date Modified": string
1534
+ "Date Created": string
1530
1535
  "Group": string
1531
1536
  "Property": string
1532
1537
  "general.filters.sort.bylocation": string
@@ -1977,6 +1982,8 @@ export interface Locale {
1977
1982
  "Lost Total": string
1978
1983
  "Bought Back": string
1979
1984
  "Buy Back Permanently Lost Point": string
1985
+ "Permanently Lost {$energy}": string & { __params: { "energy": string } }
1986
+ "p{$energy}": string & { __params: { "energy": string } }
1980
1987
  "Permanently Lost Life Points": string
1981
1988
  "pLP": string
1982
1989
  "Permanently Lost Arcane Energy": string
@@ -1992,7 +1999,9 @@ export interface Locale {
1992
1999
  "Custom AP Cost": string
1993
2000
  "AP Cost for {$category}": string & { __params: { "category": string } }
1994
2001
  "Custom option": string
2002
+ "Show entries with unmet prerequisites": string
1995
2003
  "specialabilities.nativetonguelevel": string
2004
+ "Adoruzepterzauber": string
1996
2005
  "Advanced Combat Special Abilities": string
1997
2006
  "Advanced Karma Special Abilities": string
1998
2007
  "Advanced Magical Special Abilities": string
@@ -2000,6 +2009,7 @@ export interface Locale {
2000
2009
  "Ancestor Glyphs": string
2001
2010
  "Arcane Orb Enchantments": string
2002
2011
  "Attire Enchantments": string
2012
+ "Beutelzauber": string
2003
2013
  "Blessed Traditions": string
2004
2014
  "Bowl Enchantments": string
2005
2015
  "Brawling Special Abilities": string
@@ -2015,9 +2025,13 @@ export interface Locale {
2015
2025
  "Fate Point Special Abilities": string
2016
2026
  "Fools Hat Enchantments": string
2017
2027
  "General Special Abilities": string
2028
+ "Haubenzauber": string
2029
+ "Hauerkettenzauber": string
2018
2030
  "Instrument Enchantments": string
2019
2031
  "Karma Special Abilities": string
2032
+ "Keulenzauber": string
2020
2033
  "Krallenkettenzauber": string
2034
+ "Kristallkugelzauber": string
2021
2035
  "Liturgical Style Special Abilities": string
2022
2036
  "Lycantropic Gifts": string
2023
2037
  "Magical Signs": string
@@ -2028,6 +2042,7 @@ export interface Locale {
2028
2042
  "Pact Gifts": string
2029
2043
  "Protective/Warding Circle Special Abilities": string
2030
2044
  "Ring Enchantments": string
2045
+ "Schweinetrommelzauber": string
2031
2046
  "Sermons": string
2032
2047
  "Sex Special Abilities": string
2033
2048
  "Sickle Rituals": string
@@ -4953,7 +4968,51 @@ export interface DerivedCharacteristicPurchase {
4953
4968
  /**
4954
4969
  * The maximum value that can be achieved for the derived characteristic through improvements.
4955
4970
  */
4956
- maximum: DerivedCharacteristicBase
4971
+ maximum: DerivedCharacteristicPurchaseMaximumValue
4972
+ }
4973
+
4974
+ export type DerivedCharacteristicPurchaseMaximumValue =
4975
+ | {
4976
+ kind: "Attribute"
4977
+ Attribute: Attribute_ID
4978
+ }
4979
+ | {
4980
+ kind: "PrimaryAttribute"
4981
+ PrimaryAttribute: DerivedCharacteristicPrimaryAttributeValue
4982
+ }
4983
+
4984
+ export type DerivedCharacteristicPrimaryAttributeValue =
4985
+ | {
4986
+ kind: "Magical"
4987
+ }
4988
+ | {
4989
+ kind: "Blessed"
4990
+ }
4991
+
4992
+ export interface DerivedCharacteristicPermanentLoss {
4993
+ /**
4994
+ * If set, permanent losses to the derived characteristic can be bought back for the specified cost.
4995
+ */
4996
+ canBeBoughtBack?: DerivedCharacteristicBuyBack
4997
+ }
4998
+
4999
+ export interface DerivedCharacteristicBuyBack {
5000
+ /**
5001
+ * The AP cost for buying back one point.
5002
+ */
5003
+ cost: number
5004
+ }
5005
+
5006
+ export interface DerivedCharacteristicCalculation {
5007
+ /**
5008
+ * The base value for the calculation.
5009
+ */
5010
+ base: DerivedCharacteristicBase
5011
+
5012
+ /**
5013
+ * A list of modifiers that are applied to the base value. The modifiers are applied in the order they appear in the list.
5014
+ */
5015
+ modifiers?: DerivedCharacteristicModifier[]
4957
5016
  }
4958
5017
 
4959
5018
  export type DerivedCharacteristicBase = MathOperation<DerivedCharacteristicBaseValue>
@@ -5001,40 +5060,6 @@ export type DerivedCharacteristicBaseValue =
5001
5060
  PrimaryAttribute: DerivedCharacteristicPrimaryAttributeValue
5002
5061
  }
5003
5062
 
5004
- export type DerivedCharacteristicPrimaryAttributeValue =
5005
- | {
5006
- kind: "Magical"
5007
- }
5008
- | {
5009
- kind: "Blessed"
5010
- }
5011
-
5012
- export interface DerivedCharacteristicPermanentLoss {
5013
- /**
5014
- * If set, permanent losses to the derived characteristic can be bought back for the specified cost.
5015
- */
5016
- canBeBoughtBack?: DerivedCharacteristicBuyBack
5017
- }
5018
-
5019
- export interface DerivedCharacteristicBuyBack {
5020
- /**
5021
- * The AP cost for buying back one point.
5022
- */
5023
- cost: number
5024
- }
5025
-
5026
- export interface DerivedCharacteristicCalculation {
5027
- /**
5028
- * The base value for the calculation.
5029
- */
5030
- base: DerivedCharacteristicBase
5031
-
5032
- /**
5033
- * A list of modifiers that are applied to the base value. The modifiers are applied in the order they appear in the list.
5034
- */
5035
- modifiers?: DerivedCharacteristicModifier[]
5036
- }
5037
-
5038
5063
  export interface DerivedCharacteristicModifier {
5039
5064
  /**
5040
5065
  * The entry that, when active, causes the modifier.
@@ -29261,25 +29286,18 @@ export interface Settings {
29261
29286
  */
29262
29287
  styles: StyleSpecialAbilitySettings
29263
29288
 
29264
- /**
29265
- * Spell and Liturgical Chant Enhancements are part of focus rules. This type defines which focus rule must be enabled in order to use an enhancement. Essentially, this is a default prerequisite they must meet, but manually inserting them with every enhancement is a lot of work and error-prone. Therefore, in order to use an enhancement, prerequisites for the respective focus rule must be generated for every entry.
29266
- */
29267
- enhancements: EnhancementsSettings
29268
-
29269
29289
  /**
29270
29290
  * The publication that extends the description of books with additional information.
29271
29291
  */
29272
29292
  extendedBookDescriptionPublication: Publication_ID
29273
29293
 
29274
- /**
29275
- * The entry that grants a bonus of 1 towards the maximum skill rating per selection.
29276
- */
29277
- maximumSkillRatingBonusEntry: ActivatableIdentifier
29294
+ skills: SkillSettings
29278
29295
 
29279
- /**
29280
- * The entry that grants a bonus of 1 towards the maximum skill rating per selection.
29281
- */
29282
- maximumCombatTechniqueRatingBonusEntry: ActivatableIdentifier
29296
+ combatTechniques: CombatTechniqueSettings
29297
+
29298
+ spellworks: SpellworkSettings
29299
+
29300
+ liturgicalChants: LiturgicalChantSettings
29283
29301
  }
29284
29302
 
29285
29303
  /**
@@ -29347,19 +29365,57 @@ export interface StyleSpecialAbilitySettings {
29347
29365
  liturgical: FocusRule_ID
29348
29366
  }
29349
29367
 
29350
- /**
29351
- * Spell and Liturgical Chant Enhancements are part of focus rules. This type defines which focus rule must be enabled in order to use an enhancement. Essentially, this is a default prerequisite they must meet, but manually inserting them with every enhancement is a lot of work and error-prone. Therefore, in order to use an enhancement, prerequisites for the respective focus rule must be generated for every entry.
29352
- */
29353
- export interface EnhancementsSettings {
29368
+ export interface SkillSettings {
29369
+ /**
29370
+ * The entry that grants a bonus of 1 towards the maximum skill rating per selection.
29371
+ */
29372
+ maximumSkillRatingBonusEntry: ActivatableIdentifier
29373
+ }
29374
+
29375
+ export interface CombatTechniqueSettings {
29376
+ /**
29377
+ * The entry that grants a bonus of 1 towards the maximum skill rating per selection.
29378
+ */
29379
+ maximumCombatTechniqueRatingBonusEntry: ActivatableIdentifier
29380
+
29381
+ /**
29382
+ * The attribute that increases the attack value of a close combat technique.
29383
+ */
29384
+ closeCombatTechniqueAttackAttribute: Attribute_ID
29385
+ }
29386
+
29387
+ export interface SpellworkSettings {
29388
+ /**
29389
+ * The entry that removes the maximum rating of 14 from spellworks for selected properties. It must provide the property as a selected option.
29390
+ */
29391
+ maximumRatingUnlockEntry: ActivatableIdentifier
29392
+
29393
+ /**
29394
+ * Spell Enhancements are part of focus rules. This type defines which focus rule must be enabled in order to use an enhancement. Essentially, this is a default prerequisite they must meet, but manually inserting them with every enhancement is a lot of work and error-prone. Therefore, in order to use an enhancement, prerequisites for the focus rule must be generated for every entry.
29395
+ */
29396
+ enhancementsFocusRule: FocusRule_ID
29397
+ }
29398
+
29399
+ export interface LiturgicalChantSettings {
29400
+ /**
29401
+ * The general aspect for church traditions.
29402
+ */
29403
+ generalAspectForChurch: Aspect_ID
29404
+
29405
+ /**
29406
+ * The general aspect for shamanistic traditions.
29407
+ */
29408
+ generalAspectForShamanistic: Aspect_ID
29409
+
29354
29410
  /**
29355
- * The focus rule for spell enhancements.
29411
+ * The entry that removes the maximum rating of 14 from liturgical chants for selected aspects. It must provide the aspect as a selected option.
29356
29412
  */
29357
- spell: FocusRule_ID
29413
+ maximumRatingUnlockEntry: ActivatableIdentifier
29358
29414
 
29359
29415
  /**
29360
- * The focus rule for liturgical chant enhancements.
29416
+ * Liturgical Chant Enhancements are part of focus rules. This type defines which focus rule must be enabled in order to use an enhancement. Essentially, this is a default prerequisite they must meet, but manually inserting them with every enhancement is a lot of work and error-prone. Therefore, in order to use an enhancement, prerequisites for the focus rule must be generated for every entry.
29361
29417
  */
29362
- liturgicalChant: FocusRule_ID
29418
+ enhancementsFocusRule: FocusRule_ID
29363
29419
  }
29364
29420
 
29365
29421
  export interface SexPractice {
@@ -2,7 +2,7 @@ import { Case } from "tsondb/schema/gen";
2
2
  import type { ActivatableIdentifier as ActivatableIdentifierType, GeneralSelectOption, RequirableSelectOptionIdentifier, TradeSecretAdventurePointsValue } from "../../gen/types.js";
3
3
  import type { CacheBuilder } from "./internal.ts";
4
4
  import type { ResolvedNewSkillApplication, ResolvedSkillUse } from "./newApplicationsAndUses.ts";
5
- export type ResolvedSelectOptionIdentifier = RequirableSelectOptionIdentifier | Case<"Blessing" | "Cantrip" | "Script" | "Culture" | "SexPractice" | "HomunculusType" | "BlessedTradition" | "Disease" | "Poison" | "TargetCategory" | "Advantage", string>;
5
+ export type ResolvedSelectOptionIdentifier = RequirableSelectOptionIdentifier | Case<"Blessing" | "Cantrip" | "Script" | "Culture" | "SexPractice" | "HomunculusType" | "BlessedTradition" | "Disease" | "Poison" | "TargetCategory" | "Patron" | "Advantage", string>;
6
6
  export type ResolvedSelectOption = {
7
7
  id: ResolvedSelectOptionIdentifier;
8
8
  content: Omit<GeneralSelectOption, "ap_value"> & {
@@ -12,7 +12,13 @@ export declare const DerivedCharacteristic: DB.Entity<"DerivedCharacteristic", {
12
12
  C: DB.EnumCase<null>;
13
13
  D: DB.EnumCase<null>;
14
14
  }, []>>, true>;
15
- maximum: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"DerivedCharacteristicBase", DB.IncludeIdentifier<DB.Param<string, DB.Type>[], MathOperation>, []>>, true>;
15
+ maximum: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"DerivedCharacteristicPurchaseMaximumValue", {
16
+ Attribute: DB.EnumCase<DB.ReferenceIdentifier>;
17
+ PrimaryAttribute: DB.EnumCase<DB.IncludeIdentifier<[], DB.Enum<"DerivedCharacteristicPrimaryAttributeValue", {
18
+ Magical: DB.EnumCase<null>;
19
+ Blessed: DB.EnumCase<null>;
20
+ }, []>>>;
21
+ }, []>>, true>;
16
22
  }>, []>>, false>;
17
23
  permanentLoss: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"DerivedCharacteristicPermanentLoss", DB.Object<{
18
24
  canBeBoughtBack: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"DerivedCharacteristicBuyBack", DB.Object<{
@@ -130,6 +130,15 @@ const DerivedCharacteristicBaseValue = DB.Enum(import.meta.url, {
130
130
  }),
131
131
  }),
132
132
  });
133
+ const DerivedCharacteristicPurchaseMaximumValue = DB.Enum(import.meta.url, {
134
+ name: "DerivedCharacteristicPurchaseMaximumValue",
135
+ values: () => ({
136
+ Attribute: DB.EnumCase({ type: AttributeIdentifier() }),
137
+ PrimaryAttribute: DB.EnumCase({
138
+ type: DB.IncludeIdentifier(DerivedCharacteristicPrimaryAttributeValue),
139
+ }),
140
+ }),
141
+ });
133
142
  const DerivedCharacteristicBase = DB.TypeAlias(import.meta.url, {
134
143
  name: "DerivedCharacteristicBase",
135
144
  type: () => DB.GenIncludeIdentifier(MathOperation, [DB.IncludeIdentifier(DerivedCharacteristicBaseValue)]),
@@ -194,7 +203,7 @@ const DerivedCharacteristicPurchase = DB.TypeAlias(import.meta.url, {
194
203
  }),
195
204
  maximum: DB.Required({
196
205
  comment: "The maximum value that can be achieved for the derived characteristic through improvements.",
197
- type: DB.IncludeIdentifier(DerivedCharacteristicBase),
206
+ type: DB.IncludeIdentifier(DerivedCharacteristicPurchaseMaximumValue),
198
207
  }),
199
208
  }),
200
209
  });
@@ -230,6 +230,7 @@ export declare const Locale: DB.Entity<"Locale", {
230
230
  "Sort By": null;
231
231
  Name: null;
232
232
  "Date Modified": null;
233
+ "Date Created": null;
233
234
  Group: null;
234
235
  Property: null;
235
236
  "general.filters.sort.bylocation": null;
@@ -748,6 +749,8 @@ export declare const Locale: DB.Entity<"Locale", {
748
749
  "Lost Total": null;
749
750
  "Bought Back": null;
750
751
  "Buy Back Permanently Lost Point": null;
752
+ "Permanently Lost {$energy}": null;
753
+ "p{$energy}": null;
751
754
  "Permanently Lost Life Points": null;
752
755
  pLP: null;
753
756
  "Permanently Lost Arcane Energy": null;
@@ -766,7 +769,9 @@ export declare const Locale: DB.Entity<"Locale", {
766
769
  */
767
770
  "AP Cost for {$category}": null;
768
771
  "Custom option": null;
772
+ "Show entries with unmet prerequisites": null;
769
773
  "specialabilities.nativetonguelevel": null;
774
+ Adoruzepterzauber: null;
770
775
  "Advanced Combat Special Abilities": null;
771
776
  "Advanced Karma Special Abilities": null;
772
777
  "Advanced Magical Special Abilities": null;
@@ -774,6 +779,7 @@ export declare const Locale: DB.Entity<"Locale", {
774
779
  "Ancestor Glyphs": null;
775
780
  "Arcane Orb Enchantments": null;
776
781
  "Attire Enchantments": null;
782
+ Beutelzauber: null;
777
783
  "Blessed Traditions": null;
778
784
  "Bowl Enchantments": null;
779
785
  "Brawling Special Abilities": null;
@@ -789,9 +795,13 @@ export declare const Locale: DB.Entity<"Locale", {
789
795
  "Fate Point Special Abilities": null;
790
796
  "Fools Hat Enchantments": null;
791
797
  "General Special Abilities": null;
798
+ Haubenzauber: null;
799
+ Hauerkettenzauber: null;
792
800
  "Instrument Enchantments": null;
793
801
  "Karma Special Abilities": null;
802
+ Keulenzauber: null;
794
803
  Krallenkettenzauber: null;
804
+ Kristallkugelzauber: null;
795
805
  "Liturgical Style Special Abilities": null;
796
806
  "Lycantropic Gifts": null;
797
807
  "Magical Signs": null;
@@ -802,6 +812,7 @@ export declare const Locale: DB.Entity<"Locale", {
802
812
  "Pact Gifts": null;
803
813
  "Protective/Warding Circle Special Abilities": null;
804
814
  "Ring Enchantments": null;
815
+ Schweinetrommelzauber: null;
805
816
  Sermons: null;
806
817
  "Sex Special Abilities": null;
807
818
  "Sickle Rituals": null;
@@ -251,6 +251,7 @@ export const Locale = DB.Entity(import.meta.url, {
251
251
  "Sort By": null,
252
252
  "Name": null,
253
253
  "Date Modified": null,
254
+ "Date Created": null,
254
255
  "Group": null,
255
256
  "Property": null,
256
257
  "general.filters.sort.bylocation": null,
@@ -772,6 +773,8 @@ export const Locale = DB.Entity(import.meta.url, {
772
773
  "Lost Total": null,
773
774
  "Bought Back": null,
774
775
  "Buy Back Permanently Lost Point": null,
776
+ "Permanently Lost {$energy}": null,
777
+ "p{$energy}": null,
775
778
  "Permanently Lost Life Points": null,
776
779
  "pLP": null,
777
780
  "Permanently Lost Arcane Energy": null,
@@ -790,7 +793,9 @@ export const Locale = DB.Entity(import.meta.url, {
790
793
  */
791
794
  "AP Cost for {$category}": null,
792
795
  "Custom option": null,
796
+ "Show entries with unmet prerequisites": null,
793
797
  "specialabilities.nativetonguelevel": null,
798
+ "Adoruzepterzauber": null,
794
799
  "Advanced Combat Special Abilities": null,
795
800
  "Advanced Karma Special Abilities": null,
796
801
  "Advanced Magical Special Abilities": null,
@@ -798,6 +803,7 @@ export const Locale = DB.Entity(import.meta.url, {
798
803
  "Ancestor Glyphs": null,
799
804
  "Arcane Orb Enchantments": null,
800
805
  "Attire Enchantments": null,
806
+ "Beutelzauber": null,
801
807
  "Blessed Traditions": null,
802
808
  "Bowl Enchantments": null,
803
809
  "Brawling Special Abilities": null,
@@ -813,9 +819,13 @@ export const Locale = DB.Entity(import.meta.url, {
813
819
  "Fate Point Special Abilities": null,
814
820
  "Fools Hat Enchantments": null,
815
821
  "General Special Abilities": null,
822
+ "Haubenzauber": null,
823
+ "Hauerkettenzauber": null,
816
824
  "Instrument Enchantments": null,
817
825
  "Karma Special Abilities": null,
826
+ "Keulenzauber": null,
818
827
  "Krallenkettenzauber": null,
828
+ "Kristallkugelzauber": null,
819
829
  "Liturgical Style Special Abilities": null,
820
830
  "Lycantropic Gifts": null,
821
831
  "Magical Signs": null,
@@ -826,6 +836,7 @@ export const Locale = DB.Entity(import.meta.url, {
826
836
  "Pact Gifts": null,
827
837
  "Protective/Warding Circle Special Abilities": null,
828
838
  "Ring Enchantments": null,
839
+ "Schweinetrommelzauber": null,
829
840
  "Sermons": null,
830
841
  "Sex Special Abilities": null,
831
842
  "Sickle Rituals": null,
@@ -186,127 +186,254 @@ export declare const Settings: DB.SingletonEntity<"Settings", {
186
186
  magic: DB.MemberDecl<DB.ReferenceIdentifier, true>;
187
187
  liturgical: DB.MemberDecl<DB.ReferenceIdentifier, true>;
188
188
  }>, []>>, true>;
189
- enhancements: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"EnhancementsSettings", DB.Object<{
190
- spell: DB.MemberDecl<DB.ReferenceIdentifier, true>;
191
- liturgicalChant: DB.MemberDecl<DB.ReferenceIdentifier, true>;
192
- }>, []>>, true>;
193
189
  extendedBookDescriptionPublication: DB.MemberDecl<DB.ReferenceIdentifier, true>;
194
- maximumSkillRatingBonusEntry: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ActivatableIdentifier", {
195
- Adoruzepterzauber: DB.EnumCase<DB.ReferenceIdentifier>;
196
- ArcaneOrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
197
- AttireEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
198
- Beutelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
199
- BowlEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
200
- CauldronEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
201
- ChronicleEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
202
- DaggerRitual: DB.EnumCase<DB.ReferenceIdentifier>;
203
- FoolsHatEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
204
- Haubenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
205
- Hauerkettenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
206
- InstrumentEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
207
- Keulenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
208
- Krallenkettenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
209
- Kristallkugelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
210
- OrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
211
- RingEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
212
- Schweinetrommelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
213
- SickleRitual: DB.EnumCase<DB.ReferenceIdentifier>;
214
- SpellSwordEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
215
- StaffEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
216
- ToyEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
217
- Trinkhornzauber: DB.EnumCase<DB.ReferenceIdentifier>;
218
- WandEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
219
- WeaponEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
220
- AdvancedCombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
221
- AdvancedKarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
222
- AdvancedMagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
223
- AdvancedSkillSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
224
- AncestorGlyph: DB.EnumCase<DB.ReferenceIdentifier>;
225
- BlessedTradition: DB.EnumCase<DB.ReferenceIdentifier>;
226
- BrawlingSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
227
- CeremonialItemSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
228
- CombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
229
- CombatStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
230
- CommandSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
231
- FamiliarSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
232
- FatePointSexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
233
- FatePointSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
234
- GeneralSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
235
- KarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
236
- LiturgicalStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
237
- LycantropicGift: DB.EnumCase<DB.ReferenceIdentifier>;
238
- MagicalSign: DB.EnumCase<DB.ReferenceIdentifier>;
239
- MagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
240
- MagicalTradition: DB.EnumCase<DB.ReferenceIdentifier>;
241
- MagicStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
242
- PactGift: DB.EnumCase<DB.ReferenceIdentifier>;
243
- ProtectiveWardingCircleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
244
- Sermon: DB.EnumCase<DB.ReferenceIdentifier>;
245
- SexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
246
- SikaryanDrainSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
247
- SkillStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
248
- VampiricGift: DB.EnumCase<DB.ReferenceIdentifier>;
249
- Vision: DB.EnumCase<DB.ReferenceIdentifier>;
250
- Advantage: DB.EnumCase<DB.ReferenceIdentifier>;
251
- Disadvantage: DB.EnumCase<DB.ReferenceIdentifier>;
252
- }, []>>, true>;
253
- maximumCombatTechniqueRatingBonusEntry: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ActivatableIdentifier", {
254
- Adoruzepterzauber: DB.EnumCase<DB.ReferenceIdentifier>;
255
- ArcaneOrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
256
- AttireEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
257
- Beutelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
258
- BowlEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
259
- CauldronEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
260
- ChronicleEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
261
- DaggerRitual: DB.EnumCase<DB.ReferenceIdentifier>;
262
- FoolsHatEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
263
- Haubenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
264
- Hauerkettenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
265
- InstrumentEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
266
- Keulenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
267
- Krallenkettenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
268
- Kristallkugelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
269
- OrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
270
- RingEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
271
- Schweinetrommelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
272
- SickleRitual: DB.EnumCase<DB.ReferenceIdentifier>;
273
- SpellSwordEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
274
- StaffEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
275
- ToyEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
276
- Trinkhornzauber: DB.EnumCase<DB.ReferenceIdentifier>;
277
- WandEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
278
- WeaponEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
279
- AdvancedCombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
280
- AdvancedKarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
281
- AdvancedMagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
282
- AdvancedSkillSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
283
- AncestorGlyph: DB.EnumCase<DB.ReferenceIdentifier>;
284
- BlessedTradition: DB.EnumCase<DB.ReferenceIdentifier>;
285
- BrawlingSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
286
- CeremonialItemSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
287
- CombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
288
- CombatStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
289
- CommandSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
290
- FamiliarSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
291
- FatePointSexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
292
- FatePointSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
293
- GeneralSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
294
- KarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
295
- LiturgicalStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
296
- LycantropicGift: DB.EnumCase<DB.ReferenceIdentifier>;
297
- MagicalSign: DB.EnumCase<DB.ReferenceIdentifier>;
298
- MagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
299
- MagicalTradition: DB.EnumCase<DB.ReferenceIdentifier>;
300
- MagicStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
301
- PactGift: DB.EnumCase<DB.ReferenceIdentifier>;
302
- ProtectiveWardingCircleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
303
- Sermon: DB.EnumCase<DB.ReferenceIdentifier>;
304
- SexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
305
- SikaryanDrainSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
306
- SkillStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
307
- VampiricGift: DB.EnumCase<DB.ReferenceIdentifier>;
308
- Vision: DB.EnumCase<DB.ReferenceIdentifier>;
309
- Advantage: DB.EnumCase<DB.ReferenceIdentifier>;
310
- Disadvantage: DB.EnumCase<DB.ReferenceIdentifier>;
311
- }, []>>, true>;
190
+ skills: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"SkillSettings", DB.Object<{
191
+ maximumSkillRatingBonusEntry: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ActivatableIdentifier", {
192
+ Adoruzepterzauber: DB.EnumCase<DB.ReferenceIdentifier>;
193
+ ArcaneOrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
194
+ AttireEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
195
+ Beutelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
196
+ BowlEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
197
+ CauldronEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
198
+ ChronicleEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
199
+ DaggerRitual: DB.EnumCase<DB.ReferenceIdentifier>;
200
+ FoolsHatEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
201
+ Haubenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
202
+ Hauerkettenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
203
+ InstrumentEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
204
+ Keulenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
205
+ Krallenkettenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
206
+ Kristallkugelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
207
+ OrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
208
+ RingEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
209
+ Schweinetrommelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
210
+ SickleRitual: DB.EnumCase<DB.ReferenceIdentifier>;
211
+ SpellSwordEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
212
+ StaffEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
213
+ ToyEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
214
+ Trinkhornzauber: DB.EnumCase<DB.ReferenceIdentifier>;
215
+ WandEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
216
+ WeaponEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
217
+ AdvancedCombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
218
+ AdvancedKarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
219
+ AdvancedMagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
220
+ AdvancedSkillSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
221
+ AncestorGlyph: DB.EnumCase<DB.ReferenceIdentifier>;
222
+ BlessedTradition: DB.EnumCase<DB.ReferenceIdentifier>;
223
+ BrawlingSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
224
+ CeremonialItemSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
225
+ CombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
226
+ CombatStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
227
+ CommandSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
228
+ FamiliarSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
229
+ FatePointSexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
230
+ FatePointSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
231
+ GeneralSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
232
+ KarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
233
+ LiturgicalStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
234
+ LycantropicGift: DB.EnumCase<DB.ReferenceIdentifier>;
235
+ MagicalSign: DB.EnumCase<DB.ReferenceIdentifier>;
236
+ MagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
237
+ MagicalTradition: DB.EnumCase<DB.ReferenceIdentifier>;
238
+ MagicStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
239
+ PactGift: DB.EnumCase<DB.ReferenceIdentifier>;
240
+ ProtectiveWardingCircleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
241
+ Sermon: DB.EnumCase<DB.ReferenceIdentifier>;
242
+ SexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
243
+ SikaryanDrainSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
244
+ SkillStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
245
+ VampiricGift: DB.EnumCase<DB.ReferenceIdentifier>;
246
+ Vision: DB.EnumCase<DB.ReferenceIdentifier>;
247
+ Advantage: DB.EnumCase<DB.ReferenceIdentifier>;
248
+ Disadvantage: DB.EnumCase<DB.ReferenceIdentifier>;
249
+ }, []>>, true>;
250
+ }>, []>>, true>;
251
+ combatTechniques: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CombatTechniqueSettings", DB.Object<{
252
+ maximumCombatTechniqueRatingBonusEntry: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ActivatableIdentifier", {
253
+ Adoruzepterzauber: DB.EnumCase<DB.ReferenceIdentifier>;
254
+ ArcaneOrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
255
+ AttireEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
256
+ Beutelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
257
+ BowlEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
258
+ CauldronEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
259
+ ChronicleEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
260
+ DaggerRitual: DB.EnumCase<DB.ReferenceIdentifier>;
261
+ FoolsHatEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
262
+ Haubenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
263
+ Hauerkettenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
264
+ InstrumentEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
265
+ Keulenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
266
+ Krallenkettenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
267
+ Kristallkugelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
268
+ OrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
269
+ RingEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
270
+ Schweinetrommelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
271
+ SickleRitual: DB.EnumCase<DB.ReferenceIdentifier>;
272
+ SpellSwordEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
273
+ StaffEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
274
+ ToyEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
275
+ Trinkhornzauber: DB.EnumCase<DB.ReferenceIdentifier>;
276
+ WandEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
277
+ WeaponEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
278
+ AdvancedCombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
279
+ AdvancedKarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
280
+ AdvancedMagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
281
+ AdvancedSkillSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
282
+ AncestorGlyph: DB.EnumCase<DB.ReferenceIdentifier>;
283
+ BlessedTradition: DB.EnumCase<DB.ReferenceIdentifier>;
284
+ BrawlingSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
285
+ CeremonialItemSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
286
+ CombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
287
+ CombatStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
288
+ CommandSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
289
+ FamiliarSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
290
+ FatePointSexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
291
+ FatePointSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
292
+ GeneralSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
293
+ KarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
294
+ LiturgicalStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
295
+ LycantropicGift: DB.EnumCase<DB.ReferenceIdentifier>;
296
+ MagicalSign: DB.EnumCase<DB.ReferenceIdentifier>;
297
+ MagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
298
+ MagicalTradition: DB.EnumCase<DB.ReferenceIdentifier>;
299
+ MagicStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
300
+ PactGift: DB.EnumCase<DB.ReferenceIdentifier>;
301
+ ProtectiveWardingCircleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
302
+ Sermon: DB.EnumCase<DB.ReferenceIdentifier>;
303
+ SexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
304
+ SikaryanDrainSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
305
+ SkillStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
306
+ VampiricGift: DB.EnumCase<DB.ReferenceIdentifier>;
307
+ Vision: DB.EnumCase<DB.ReferenceIdentifier>;
308
+ Advantage: DB.EnumCase<DB.ReferenceIdentifier>;
309
+ Disadvantage: DB.EnumCase<DB.ReferenceIdentifier>;
310
+ }, []>>, true>;
311
+ closeCombatTechniqueAttackAttribute: DB.MemberDecl<DB.ReferenceIdentifier, true>;
312
+ }>, []>>, true>;
313
+ spellworks: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"SpellworkSettings", DB.Object<{
314
+ maximumRatingUnlockEntry: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ActivatableIdentifier", {
315
+ Adoruzepterzauber: DB.EnumCase<DB.ReferenceIdentifier>;
316
+ ArcaneOrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
317
+ AttireEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
318
+ Beutelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
319
+ BowlEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
320
+ CauldronEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
321
+ ChronicleEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
322
+ DaggerRitual: DB.EnumCase<DB.ReferenceIdentifier>;
323
+ FoolsHatEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
324
+ Haubenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
325
+ Hauerkettenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
326
+ InstrumentEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
327
+ Keulenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
328
+ Krallenkettenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
329
+ Kristallkugelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
330
+ OrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
331
+ RingEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
332
+ Schweinetrommelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
333
+ SickleRitual: DB.EnumCase<DB.ReferenceIdentifier>;
334
+ SpellSwordEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
335
+ StaffEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
336
+ ToyEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
337
+ Trinkhornzauber: DB.EnumCase<DB.ReferenceIdentifier>;
338
+ WandEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
339
+ WeaponEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
340
+ AdvancedCombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
341
+ AdvancedKarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
342
+ AdvancedMagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
343
+ AdvancedSkillSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
344
+ AncestorGlyph: DB.EnumCase<DB.ReferenceIdentifier>;
345
+ BlessedTradition: DB.EnumCase<DB.ReferenceIdentifier>;
346
+ BrawlingSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
347
+ CeremonialItemSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
348
+ CombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
349
+ CombatStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
350
+ CommandSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
351
+ FamiliarSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
352
+ FatePointSexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
353
+ FatePointSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
354
+ GeneralSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
355
+ KarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
356
+ LiturgicalStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
357
+ LycantropicGift: DB.EnumCase<DB.ReferenceIdentifier>;
358
+ MagicalSign: DB.EnumCase<DB.ReferenceIdentifier>;
359
+ MagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
360
+ MagicalTradition: DB.EnumCase<DB.ReferenceIdentifier>;
361
+ MagicStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
362
+ PactGift: DB.EnumCase<DB.ReferenceIdentifier>;
363
+ ProtectiveWardingCircleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
364
+ Sermon: DB.EnumCase<DB.ReferenceIdentifier>;
365
+ SexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
366
+ SikaryanDrainSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
367
+ SkillStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
368
+ VampiricGift: DB.EnumCase<DB.ReferenceIdentifier>;
369
+ Vision: DB.EnumCase<DB.ReferenceIdentifier>;
370
+ Advantage: DB.EnumCase<DB.ReferenceIdentifier>;
371
+ Disadvantage: DB.EnumCase<DB.ReferenceIdentifier>;
372
+ }, []>>, true>;
373
+ enhancementsFocusRule: DB.MemberDecl<DB.ReferenceIdentifier, true>;
374
+ }>, []>>, true>;
375
+ liturgicalChants: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"LiturgicalChantSettings", DB.Object<{
376
+ generalAspectForChurch: DB.MemberDecl<DB.ReferenceIdentifier, true>;
377
+ generalAspectForShamanistic: DB.MemberDecl<DB.ReferenceIdentifier, true>;
378
+ maximumRatingUnlockEntry: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ActivatableIdentifier", {
379
+ Adoruzepterzauber: DB.EnumCase<DB.ReferenceIdentifier>;
380
+ ArcaneOrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
381
+ AttireEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
382
+ Beutelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
383
+ BowlEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
384
+ CauldronEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
385
+ ChronicleEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
386
+ DaggerRitual: DB.EnumCase<DB.ReferenceIdentifier>;
387
+ FoolsHatEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
388
+ Haubenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
389
+ Hauerkettenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
390
+ InstrumentEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
391
+ Keulenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
392
+ Krallenkettenzauber: DB.EnumCase<DB.ReferenceIdentifier>;
393
+ Kristallkugelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
394
+ OrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
395
+ RingEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
396
+ Schweinetrommelzauber: DB.EnumCase<DB.ReferenceIdentifier>;
397
+ SickleRitual: DB.EnumCase<DB.ReferenceIdentifier>;
398
+ SpellSwordEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
399
+ StaffEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
400
+ ToyEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
401
+ Trinkhornzauber: DB.EnumCase<DB.ReferenceIdentifier>;
402
+ WandEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
403
+ WeaponEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
404
+ AdvancedCombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
405
+ AdvancedKarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
406
+ AdvancedMagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
407
+ AdvancedSkillSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
408
+ AncestorGlyph: DB.EnumCase<DB.ReferenceIdentifier>;
409
+ BlessedTradition: DB.EnumCase<DB.ReferenceIdentifier>;
410
+ BrawlingSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
411
+ CeremonialItemSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
412
+ CombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
413
+ CombatStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
414
+ CommandSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
415
+ FamiliarSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
416
+ FatePointSexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
417
+ FatePointSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
418
+ GeneralSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
419
+ KarmaSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
420
+ LiturgicalStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
421
+ LycantropicGift: DB.EnumCase<DB.ReferenceIdentifier>;
422
+ MagicalSign: DB.EnumCase<DB.ReferenceIdentifier>;
423
+ MagicalSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
424
+ MagicalTradition: DB.EnumCase<DB.ReferenceIdentifier>;
425
+ MagicStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
426
+ PactGift: DB.EnumCase<DB.ReferenceIdentifier>;
427
+ ProtectiveWardingCircleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
428
+ Sermon: DB.EnumCase<DB.ReferenceIdentifier>;
429
+ SexSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
430
+ SikaryanDrainSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
431
+ SkillStyleSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
432
+ VampiricGift: DB.EnumCase<DB.ReferenceIdentifier>;
433
+ Vision: DB.EnumCase<DB.ReferenceIdentifier>;
434
+ Advantage: DB.EnumCase<DB.ReferenceIdentifier>;
435
+ Disadvantage: DB.EnumCase<DB.ReferenceIdentifier>;
436
+ }, []>>, true>;
437
+ enhancementsFocusRule: DB.MemberDecl<DB.ReferenceIdentifier, true>;
438
+ }>, []>>, true>;
312
439
  }>;
@@ -1,5 +1,5 @@
1
1
  import * as DB from "tsondb/schema/dsl";
2
- import { AdvantageIdentifier, DerivedCharacteristicIdentifier, ExperienceLevelIdentifier, FocusRuleIdentifier, PublicationIdentifier, } from "./_Identifier.js";
2
+ import { AdvantageIdentifier, AspectIdentifier, AttributeIdentifier, DerivedCharacteristicIdentifier, ExperienceLevelIdentifier, FocusRuleIdentifier, PublicationIdentifier, } from "./_Identifier.js";
3
3
  import { ActivatableIdentifier, SpecialAbilityIdentifier } from "./_IdentifierGroup.js";
4
4
  export const Settings = DB.SingletonEntity(import.meta.url, {
5
5
  name: "Settings",
@@ -27,21 +27,25 @@ export const Settings = DB.SingletonEntity(import.meta.url, {
27
27
  comment: StyleSpecialAbilitySettings.comment,
28
28
  type: DB.IncludeIdentifier(StyleSpecialAbilitySettings),
29
29
  }),
30
- enhancements: DB.Required({
31
- comment: EnhancementsSettings.comment,
32
- type: DB.IncludeIdentifier(EnhancementsSettings),
33
- }),
34
30
  extendedBookDescriptionPublication: DB.Required({
35
31
  comment: "The publication that extends the description of books with additional information.",
36
32
  type: PublicationIdentifier(),
37
33
  }),
38
- maximumSkillRatingBonusEntry: DB.Required({
39
- comment: "The entry that grants a bonus of 1 towards the maximum skill rating per selection.",
40
- type: DB.IncludeIdentifier(ActivatableIdentifier),
34
+ skills: DB.Required({
35
+ comment: SkillSettings.comment,
36
+ type: DB.IncludeIdentifier(SkillSettings),
41
37
  }),
42
- maximumCombatTechniqueRatingBonusEntry: DB.Required({
43
- comment: "The entry that grants a bonus of 1 towards the maximum skill rating per selection.",
44
- type: DB.IncludeIdentifier(ActivatableIdentifier),
38
+ combatTechniques: DB.Required({
39
+ comment: CombatTechniqueSettings.comment,
40
+ type: DB.IncludeIdentifier(CombatTechniqueSettings),
41
+ }),
42
+ spellworks: DB.Required({
43
+ comment: SpellworkSettings.comment,
44
+ type: DB.IncludeIdentifier(SpellworkSettings),
45
+ }),
46
+ liturgicalChants: DB.Required({
47
+ comment: LiturgicalChantSettings.comment,
48
+ type: DB.IncludeIdentifier(LiturgicalChantSettings),
45
49
  }),
46
50
  }),
47
51
  });
@@ -107,16 +111,58 @@ const StyleSpecialAbilitySettings = DB.TypeAlias(import.meta.url, {
107
111
  }),
108
112
  }),
109
113
  });
110
- const EnhancementsSettings = DB.TypeAlias(import.meta.url, {
111
- name: "EnhancementsSettings",
112
- comment: "Spell and Liturgical Chant Enhancements are part of focus rules. This type defines which focus rule must be enabled in order to use an enhancement. Essentially, this is a default prerequisite they must meet, but manually inserting them with every enhancement is a lot of work and error-prone. Therefore, in order to use an enhancement, prerequisites for the respective focus rule must be generated for every entry.",
114
+ const SkillSettings = DB.TypeAlias(import.meta.url, {
115
+ name: "SkillSettings",
113
116
  type: () => DB.Object({
114
- spell: DB.Required({
115
- comment: "The focus rule for spell enhancements.",
117
+ maximumSkillRatingBonusEntry: DB.Required({
118
+ comment: "The entry that grants a bonus of 1 towards the maximum skill rating per selection.",
119
+ type: DB.IncludeIdentifier(ActivatableIdentifier),
120
+ }),
121
+ }),
122
+ });
123
+ const CombatTechniqueSettings = DB.TypeAlias(import.meta.url, {
124
+ name: "CombatTechniqueSettings",
125
+ type: () => DB.Object({
126
+ maximumCombatTechniqueRatingBonusEntry: DB.Required({
127
+ comment: "The entry that grants a bonus of 1 towards the maximum skill rating per selection.",
128
+ type: DB.IncludeIdentifier(ActivatableIdentifier),
129
+ }),
130
+ closeCombatTechniqueAttackAttribute: DB.Required({
131
+ comment: "The attribute that increases the attack value of a close combat technique.",
132
+ type: AttributeIdentifier(),
133
+ }),
134
+ }),
135
+ });
136
+ const SpellworkSettings = DB.TypeAlias(import.meta.url, {
137
+ name: "SpellworkSettings",
138
+ type: () => DB.Object({
139
+ maximumRatingUnlockEntry: DB.Required({
140
+ comment: "The entry that removes the maximum rating of 14 from spellworks for selected properties. It must provide the property as a selected option.",
141
+ type: DB.IncludeIdentifier(ActivatableIdentifier),
142
+ }),
143
+ enhancementsFocusRule: DB.Required({
144
+ comment: "Spell Enhancements are part of focus rules. This type defines which focus rule must be enabled in order to use an enhancement. Essentially, this is a default prerequisite they must meet, but manually inserting them with every enhancement is a lot of work and error-prone. Therefore, in order to use an enhancement, prerequisites for the focus rule must be generated for every entry.",
116
145
  type: FocusRuleIdentifier(),
117
146
  }),
118
- liturgicalChant: DB.Required({
119
- comment: "The focus rule for liturgical chant enhancements.",
147
+ }),
148
+ });
149
+ const LiturgicalChantSettings = DB.TypeAlias(import.meta.url, {
150
+ name: "LiturgicalChantSettings",
151
+ type: () => DB.Object({
152
+ generalAspectForChurch: DB.Required({
153
+ comment: "The general aspect for church traditions.",
154
+ type: AspectIdentifier(),
155
+ }),
156
+ generalAspectForShamanistic: DB.Required({
157
+ comment: "The general aspect for shamanistic traditions.",
158
+ type: AspectIdentifier(),
159
+ }),
160
+ maximumRatingUnlockEntry: DB.Required({
161
+ comment: "The entry that removes the maximum rating of 14 from liturgical chants for selected aspects. It must provide the aspect as a selected option.",
162
+ type: DB.IncludeIdentifier(ActivatableIdentifier),
163
+ }),
164
+ enhancementsFocusRule: DB.Required({
165
+ comment: "Liturgical Chant Enhancements are part of focus rules. This type defines which focus rule must be enabled in order to use an enhancement. Essentially, this is a default prerequisite they must meet, but manually inserting them with every enhancement is a lot of work and error-prone. Therefore, in order to use an enhancement, prerequisites for the focus rule must be generated for every entry.",
120
166
  type: FocusRuleIdentifier(),
121
167
  }),
122
168
  }),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@optolith/database-schema",
3
- "version": "0.113.1",
3
+ "version": "0.114.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",
@@ -39,7 +39,7 @@
39
39
  "license": "MPL-2.0",
40
40
  "dependencies": {
41
41
  "@elyukai/utils": "^0.3.6",
42
- "tsondb": "^0.23.2"
42
+ "tsondb": "^0.23.4"
43
43
  },
44
44
  "devDependencies": {
45
45
  "@elyukai/oxc-config": "^0.1.0",