@optolith/database-schema 0.53.0 → 0.55.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 (82) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/gen/types.d.ts +292 -222
  3. package/lib/cache/activatableSelectOptions.js +28 -12
  4. package/lib/types/Blessing.d.ts +10 -0
  5. package/lib/types/Cantrip.d.ts +10 -0
  6. package/lib/types/Ceremony.d.ts +294 -125
  7. package/lib/types/FamiliarsTrick.d.ts +40 -0
  8. package/lib/types/LiturgicalChant.d.ts +294 -125
  9. package/lib/types/Locale.d.ts +6 -0
  10. package/lib/types/Locale.js +6 -0
  11. package/lib/types/Ritual.d.ts +294 -125
  12. package/lib/types/Spell.d.ts +294 -125
  13. package/lib/types/Talisman.d.ts +10 -0
  14. package/lib/types/_Activatable.d.ts +1 -0
  15. package/lib/types/_Activatable.js +4 -0
  16. package/lib/types/_ActivatableCombat.d.ts +5 -1
  17. package/lib/types/_ActivatableCombat.js +13 -1
  18. package/lib/types/_ActivatableNonMundane.d.ts +128 -64
  19. package/lib/types/_ActivatableNonMundane.js +10 -67
  20. package/lib/types/_ActivatableSelectOptionCategory.js +19 -3
  21. package/lib/types/_ActivatableSkill.d.ts +680 -284
  22. package/lib/types/_ActivatableSkillCastingTime.d.ts +30 -0
  23. package/lib/types/_ActivatableSkillCastingTime.js +20 -0
  24. package/lib/types/_ActivatableSkillCost.d.ts +288 -186
  25. package/lib/types/_ActivatableSkillCost.js +109 -110
  26. package/lib/types/_ActivatableSkillDuration.d.ts +70 -0
  27. package/lib/types/_ActivatableSkillDuration.js +44 -0
  28. package/lib/types/_ActivatableSkillParameterMap.d.ts +34 -0
  29. package/lib/types/_ActivatableSkillParameterMap.js +64 -0
  30. package/lib/types/equipment/item/HerbalPreservation.d.ts +20 -0
  31. package/lib/types/magicalActions/AnimistPower.d.ts +50 -0
  32. package/lib/types/magicalActions/Bannzeichen.d.ts +32 -15
  33. package/lib/types/magicalActions/Bannzeichen.js +2 -6
  34. package/lib/types/magicalActions/Curse.d.ts +20 -0
  35. package/lib/types/magicalActions/DominationRitual.d.ts +20 -0
  36. package/lib/types/magicalActions/ElvenMagicalSong.d.ts +10 -0
  37. package/lib/types/magicalActions/GeodeRitual.d.ts +28 -13
  38. package/lib/types/magicalActions/GeodeRitual.js +2 -2
  39. package/lib/types/magicalActions/GoblinRitual.d.ts +20 -0
  40. package/lib/types/magicalActions/JesterTrick.d.ts +30 -0
  41. package/lib/types/magicalActions/MagicalMelody.d.ts +10 -0
  42. package/lib/types/magicalActions/MagicalRune.d.ts +20 -0
  43. package/lib/types/magicalActions/ZibiljaRitual.d.ts +92 -34
  44. package/lib/types/prerequisites/single/PropertyPrerequisite.d.ts +16 -0
  45. package/lib/types/prerequisites/single/PropertyPrerequisite.js +16 -0
  46. package/lib/types/specialAbility/AdvancedCombatSpecialAbility.js +2 -2
  47. package/lib/types/specialAbility/BlessedTradition.d.ts +6 -5
  48. package/lib/types/specialAbility/BlessedTradition.js +11 -5
  49. package/lib/types/specialAbility/BrawlingSpecialAbility.js +2 -2
  50. package/lib/types/specialAbility/CombatSpecialAbility.js +2 -2
  51. package/lib/types/specialAbility/CombatStyleSpecialAbility.d.ts +2 -3
  52. package/lib/types/specialAbility/CombatStyleSpecialAbility.js +2 -2
  53. package/lib/types/specialAbility/CommandSpecialAbility.js +2 -2
  54. package/lib/types/specialAbility/MagicStyleSpecialAbility.d.ts +1 -0
  55. package/lib/types/specialAbility/MagicStyleSpecialAbility.js +2 -1
  56. package/lib/types/specialAbility/MagicalSign.d.ts +12 -13
  57. package/lib/types/specialAbility/MagicalSign.js +2 -2
  58. package/lib/types/traditionArtifacts/ArcaneOrbEnchantment.d.ts +71 -40
  59. package/lib/types/traditionArtifacts/AttireEnchantment.d.ts +71 -40
  60. package/lib/types/traditionArtifacts/Beutelzauber.d.ts +71 -40
  61. package/lib/types/traditionArtifacts/BowlEnchantment.d.ts +71 -40
  62. package/lib/types/traditionArtifacts/CauldronEnchantment.d.ts +71 -40
  63. package/lib/types/traditionArtifacts/ChronicleEnchantment.d.ts +71 -40
  64. package/lib/types/traditionArtifacts/DaggerRitual.d.ts +71 -40
  65. package/lib/types/traditionArtifacts/FoolsHatEnchantment.d.ts +71 -40
  66. package/lib/types/traditionArtifacts/Haubenzauber.d.ts +71 -40
  67. package/lib/types/traditionArtifacts/Hauerkettenzauber.d.ts +71 -40
  68. package/lib/types/traditionArtifacts/InstrumentEnchantment.d.ts +71 -40
  69. package/lib/types/traditionArtifacts/Keulenzauber.d.ts +71 -40
  70. package/lib/types/traditionArtifacts/Krallenkettenzauber.d.ts +71 -40
  71. package/lib/types/traditionArtifacts/Kristallkugelzauber.d.ts +71 -40
  72. package/lib/types/traditionArtifacts/OrbEnchantment.d.ts +71 -40
  73. package/lib/types/traditionArtifacts/RingEnchantment.d.ts +71 -40
  74. package/lib/types/traditionArtifacts/Schweinetrommelzauber.d.ts +71 -40
  75. package/lib/types/traditionArtifacts/SickleRitual.d.ts +71 -40
  76. package/lib/types/traditionArtifacts/SpellSwordEnchantment.d.ts +71 -40
  77. package/lib/types/traditionArtifacts/StaffEnchantment.d.ts +71 -40
  78. package/lib/types/traditionArtifacts/ToyEnchantment.d.ts +71 -40
  79. package/lib/types/traditionArtifacts/Trinkhornzauber.d.ts +71 -40
  80. package/lib/types/traditionArtifacts/WandEnchantment.d.ts +57 -24
  81. package/lib/types/traditionArtifacts/WeaponEnchantment.d.ts +71 -40
  82. package/package.json +10 -9
package/gen/types.d.ts CHANGED
@@ -272,6 +272,7 @@ export type EnumMap = {
272
272
  CombatAnimalPowerType: CombatAnimalPowerType
273
273
  CombatRelatedSpecialAbilityIdentifier: CombatRelatedSpecialAbilityIdentifier
274
274
  CombatSpecialAbilityType: CombatSpecialAbilityType
275
+ CombatSpecialAbilityTypeUsageType: CombatSpecialAbilityTypeUsageType
275
276
  CombatSpecialAbilityUsageType: CombatSpecialAbilityUsageType
276
277
  CombatTechniqueIdentifier: CombatTechniqueIdentifier
277
278
  CombatTechniquesSelectOptionCategoryCategory: CombatTechniquesSelectOptionCategoryCategory
@@ -359,7 +360,6 @@ export type EnumMap = {
359
360
  MagicalSignCost: MagicalSignCost
360
361
  MagicalTraditionPrerequisiteRestriction: MagicalTraditionPrerequisiteRestriction
361
362
  MagicCommonProfessionConstraint: MagicCommonProfessionConstraint
362
- MapStyle: MapStyle
363
363
  MathOperation: MathOperation<unknown>
364
364
  MaximumIndefiniteCurseDuration: MaximumIndefiniteCurseDuration
365
365
  MaximumIndefiniteDominationRitualDuration: MaximumIndefiniteDominationRitualDuration
@@ -372,8 +372,10 @@ export type EnumMap = {
372
372
  OneTimeAnimistPowerCost: OneTimeAnimistPowerCost
373
373
  OneTimeAnimistPowerDuration: OneTimeAnimistPowerDuration
374
374
  OneTimeCost: OneTimeCost
375
+ OneTimeCostMap: OneTimeCostMap
375
376
  PactGiftPermanentDemonicConsumption: PactGiftPermanentDemonicConsumption
376
377
  Page: Page
378
+ ParameterMapStyle: ParameterMapStyle
377
379
  PatronCultureOperation: PatronCultureOperation
378
380
  Penalty: Penalty
379
381
  PenaltyByAttackReplacement: PenaltyByAttackReplacement
@@ -420,6 +422,7 @@ export type EnumMap = {
420
422
  RestrictedSpellwork: RestrictedSpellwork
421
423
  RestrictedToBlessedTraditionsScope: RestrictedToBlessedTraditionsScope
422
424
  Revision: Revision
425
+ RitualFilter: RitualFilter
423
426
  RulePrerequisiteGroup: RulePrerequisiteGroup
424
427
  SelectOptionCategory: SelectOptionCategory
425
428
  SelectOptionParentIdentifier: SelectOptionParentIdentifier
@@ -430,6 +433,7 @@ export type EnumMap = {
430
433
  SexualCharacteristic: SexualCharacteristic
431
434
  ShieldSize: ShieldSize
432
435
  SingleOneTimeCost: SingleOneTimeCost
436
+ SingleSustainedCost: SingleSustainedCost
433
437
  SkillCheckPenalty: SkillCheckPenalty
434
438
  SkillishIdentifier: SkillishIdentifier
435
439
  SkillSelectOptionCategoryPrerequisite: SkillSelectOptionCategoryPrerequisite
@@ -440,11 +444,13 @@ export type EnumMap = {
440
444
  SlowSkillCastingTimeUnit: SlowSkillCastingTimeUnit
441
445
  SpecificAffectedTargetCategoryIdentifier: SpecificAffectedTargetCategoryIdentifier
442
446
  SpecificFromSkillSelectOptionCategoryCategoryOperation: SpecificFromSkillSelectOptionCategoryCategoryOperation
447
+ SpellFilter: SpellFilter
443
448
  SpellworkIdentifier: SpellworkIdentifier
444
449
  SpellworkPrerequisiteGroup: SpellworkPrerequisiteGroup
445
450
  SpellworkTraditions: SpellworkTraditions
446
451
  SustainedAnimistPowerCost: SustainedAnimistPowerCost
447
452
  SustainedCost: SustainedCost
453
+ SustainedCostMap: SustainedCostMap
448
454
  TalismanActivationDurationExpressionValue: TalismanActivationDurationExpressionValue
449
455
  TalismanDamageOption: TalismanDamageOption
450
456
  TalismanType: TalismanType
@@ -525,7 +531,7 @@ export type TypeAliasMap = {
525
531
  BaseValues: BaseValues
526
532
  BindingCostDerivedFromSelection: BindingCostDerivedFromSelection
527
533
  BindingCostMap: BindingCostMap
528
- BindingCostMapOption: BindingCostMapOption
534
+ BindingCostMapOptionValue: BindingCostMapOptionValue
529
535
  BindingCostPerLevel: BindingCostPerLevel
530
536
  BlessedTraditionConstraint: BlessedTraditionConstraint
531
537
  BlessedTraditionPrerequisite: BlessedTraditionPrerequisite
@@ -542,6 +548,7 @@ export type TypeAliasMap = {
542
548
  Cause: Cause
543
549
  CheckResultBasedModifier: CheckResultBasedModifier
544
550
  ChildNode: ChildNode
551
+ ChurchBlessedTradition: ChurchBlessedTradition
545
552
  CloseCombatTechniqueSpecialRules: CloseCombatTechniqueSpecialRules
546
553
  CombatAnimalPower: CombatAnimalPower
547
554
  CombatTechniqueAdjustment: CombatTechniqueAdjustment
@@ -569,6 +576,7 @@ export type TypeAliasMap = {
569
576
  CursePerformanceParameters: CursePerformanceParameters
570
577
  CursesOptions: CursesOptions
571
578
  CustomBannzeichenSuboption: CustomBannzeichenSuboption
579
+ CustomDurationUnit: CustomDurationUnit
572
580
  CustomMagicalRuneSuboption: CustomMagicalRuneSuboption
573
581
  DaggerRitualArcaneEnergyCost: DaggerRitualArcaneEnergyCost
574
582
  DefaultPrimaryAttributeDamageThreshold: DefaultPrimaryAttributeDamageThreshold
@@ -735,26 +743,34 @@ export type TypeAliasMap = {
735
743
  MinimumCollectorsValue: MinimumCollectorsValue
736
744
  ModifiableCastingTime: ModifiableCastingTime
737
745
  ModifiableOneTimeCost: ModifiableOneTimeCost
746
+ ModifiableOneTimeCostMap: ModifiableOneTimeCostMap
747
+ ModifiableOneTimeCostMapOptionValue: ModifiableOneTimeCostMapOptionValue
738
748
  ModifiableRange: ModifiableRange
739
749
  ModifiableSustainedCost: ModifiableSustainedCost
750
+ ModifiableSustainedCostMap: ModifiableSustainedCostMap
751
+ ModifiableSustainedCostMapOptionValue: ModifiableSustainedCostMapOptionValue
740
752
  MultipleOneTimeCosts: MultipleOneTimeCosts
741
753
  MusicDuration: MusicDuration
742
754
  NonModifiableOneTimeCost: NonModifiableOneTimeCost
755
+ NonModifiableOneTimeCostMap: NonModifiableOneTimeCostMap
756
+ NonModifiableOneTimeCostMapOptionValue: NonModifiableOneTimeCostMapOptionValue
743
757
  NonModifiableOneTimeCostPerCountable: NonModifiableOneTimeCostPerCountable
744
758
  NonModifiableSustainedCost: NonModifiableSustainedCost
759
+ NonModifiableSustainedCostMap: NonModifiableSustainedCostMap
760
+ NonModifiableSustainedCostMapOptionValue: NonModifiableSustainedCostMapOptionValue
745
761
  NonModifiableSustainedCostPerCountable: NonModifiableSustainedCostPerCountable
746
762
  NoPoisonCost: NoPoisonCost
747
763
  OldParameter: OldParameter
748
764
  OldParameterBySpeed: OldParameterBySpeed
749
765
  OneOfAdvancedSpecialAbilityOptions: OneOfAdvancedSpecialAbilityOptions<unknown>
750
766
  OneTimeAnimistPowerPerformanceParameters: OneTimeAnimistPowerPerformanceParameters
751
- OneTimeCostMap: OneTimeCostMap
752
- OneTimeCostMapOption: OneTimeCostMapOption
753
767
  OneTimePerformanceParameters: OneTimePerformanceParameters<unknown>
754
768
  OptionPrerequisite: OptionPrerequisite
755
769
  PactGiftPermanentDemonicConsumptionPerLevel: PactGiftPermanentDemonicConsumptionPerLevel
756
770
  PactPrerequisite: PactPrerequisite
757
771
  PageRange: PageRange
772
+ ParameterMap: ParameterMap<unknown>
773
+ ParameterMapOption: ParameterMapOption<unknown>
758
774
  ParryModifier: ParryModifier
759
775
  PatronCulture: PatronCulture
760
776
  PenaltyByActivation: PenaltyByActivation
@@ -891,12 +907,11 @@ export type TypeAliasMap = {
891
907
  SpellworkAdjustmentWithBase: SpellworkAdjustmentWithBase
892
908
  SpellworkChange: SpellworkChange
893
909
  SpellworkPrerequisites: SpellworkPrerequisites
910
+ StandaloneCostMap: StandaloneCostMap
894
911
  StatePrerequisite: StatePrerequisite
895
912
  StructurePoints: StructurePoints
896
913
  StructurePointsComponent: StructurePointsComponent
897
914
  SustainedAnimistPowerPerformanceParameters: SustainedAnimistPowerPerformanceParameters
898
- SustainedCostMap: SustainedCostMap
899
- SustainedCostMapOption: SustainedCostMapOption
900
915
  SustainedPerformanceParameters: SustainedPerformanceParameters<unknown>
901
916
  TalismanActivation: TalismanActivation
902
917
  TalismanActivationCost: TalismanActivationCost
@@ -914,8 +929,8 @@ export type TypeAliasMap = {
914
929
  VolumeByLevelItem: VolumeByLevelItem
915
930
  VolumeDerivedFromSelection: VolumeDerivedFromSelection
916
931
  VolumeMap: VolumeMap
917
- VolumeMapOption: VolumeMapOption
918
932
  VolumeMapOptionAssociatedOption: VolumeMapOptionAssociatedOption
933
+ VolumeMapOptionValue: VolumeMapOptionValue
919
934
  VolumePerLevel: VolumePerLevel
920
935
  Weight: Weight
921
936
  WeightDice: WeightDice
@@ -2364,6 +2379,7 @@ export interface Locale {
2364
2379
  "Aspect": string
2365
2380
  "As chosen": string
2366
2381
  "Passive": string
2382
+ "Active": string
2367
2383
  "Basic Maneuver": string
2368
2384
  "Special Maneuver": string
2369
2385
  "Volume": string
@@ -2376,6 +2392,11 @@ export interface Locale {
2376
2392
  "corresponding liturgical style special ability": string
2377
2393
  "corresponding magic style special ability": string
2378
2394
  "corresponding skill style special ability": string
2395
+ "No Blessings": string
2396
+ "Restricted Blessings": string
2397
+ "Strongly Restricted Blessings": string
2398
+ "{$nameOfBlessedOnes} cannot use blessings.": string & { __params: { "nameOfBlessedOnes": StringableTranslationParameter } }
2399
+ "{$nameOfBlessedOnes} cannot use {$blessings :list type=disjunction}.": string & { __params: { "nameOfBlessedOnes": StringableTranslationParameter; "blessings": StringableTranslationParameter } }
2379
2400
  "Favored Skills": string
2380
2401
  "The primary attribute of this Tradition is {$attr}.": string & { __params: { "attr": StringableTranslationParameter } }
2381
2402
  "This primary attribute of this Tradition is {$attr}; however, {$casters} use only half of this stat (rounded up) to calculate their base AE pool or purchase AE.": string & { __params: { "attr": StringableTranslationParameter; "casters": StringableTranslationParameter } }
@@ -6768,53 +6789,57 @@ export interface IndefiniteOneTimeCostTranslation {
6768
6789
 
6769
6790
  export type MultipleOneTimeCosts = SingleOneTimeCost[]
6770
6791
 
6792
+ export type OneTimeCostMap =
6793
+ | {
6794
+ kind: "Modifiable"
6795
+ Modifiable: ModifiableOneTimeCostMap
6796
+ }
6797
+ | {
6798
+ kind: "NonModifiable"
6799
+ NonModifiable: NonModifiableOneTimeCostMap
6800
+ }
6801
+
6802
+ export interface ModifiableOneTimeCostMap {
6803
+ /**
6804
+ * The cost map.
6805
+ */
6806
+ map: ParameterMap<ModifiableOneTimeCostMapOptionValue>
6807
+ }
6808
+
6771
6809
  /**
6772
- * A content that is `2/4/8/16 AE for an item the size of a cup/chest/door/castle gate` may be respresented as the following map:
6773
- *
6774
- * ```yaml
6775
- * options:
6776
- * - value: 2
6777
- * label: "cup"
6778
- * - value: 4
6779
- * label: "chest"
6780
- * - value: 8
6781
- * label: "door"
6782
- * - value: 16
6783
- * label: "castle gate"
6784
- * for_append: "an item the size of a"
6785
- * ```
6810
+ * A content that is `2/4/8/16 AE (activation) + 1/2/4/8 per 5 minutes for an item the size of a cup/chest/door/castle gate` can be represented as a cost map.
6786
6811
  *
6787
- * This will generate the exact same string as seen above – given it is set for a spellwork and thus `AE` is used.
6812
+ * The `an item the size of a` would be the *list prefix* string, while the list of options would contain four options with the activation cost and the name.
6788
6813
  */
6789
- export interface OneTimeCostMap {
6814
+ export interface ParameterMap<Value> {
6790
6815
  /**
6791
- * The possible costs and associated labels.
6816
+ * The possible values and associated labels.
6792
6817
  */
6793
- options: OneTimeCostMapOption[]
6818
+ options: ParameterMapOption<Value>[]
6794
6819
 
6795
6820
  /**
6796
- * The style of the generated string. It may either be displayed in a compressed way (e.g. `1/2/3 AE for a small/medium/large object`) or in a verbose way (e.g. `1 AE for a small object, 2 AE for a medium object, 3 AE for a large object`). The default is `compressed`.
6821
+ * The style of the generated string. It may either be displayed in a compressed way (e.g. `1/2/3 AE for a small/medium/large object`) or in a verbose way (e.g. `1 AE for a small object, 2 AE for a medium object, 3 AE for a large object`).
6797
6822
  */
6798
- style?: MapStyle
6823
+ style: ParameterMapStyle
6799
6824
 
6800
6825
  /**
6801
6826
  * All translations for the entry, identified by IETF language tag (BCP47).
6802
6827
  */
6803
6828
  translations?: {
6804
- [localeId: string]: OneTimeCostMapTranslation
6829
+ [localeId: string]: ParameterMapTranslation
6805
6830
  }
6806
6831
  }
6807
6832
 
6808
- export interface OneTimeCostMapTranslation {
6833
+ export interface ParameterMapTranslation {
6809
6834
  /**
6810
6835
  * Place a string between the `for` and the grouped map option labels.
6811
6836
  */
6812
- list_prepend?: ResponsiveTextOptional
6837
+ listPrefix?: ResponsiveTextOptional
6813
6838
 
6814
6839
  /**
6815
6840
  * Place a string after the grouped map option labels.
6816
6841
  */
6817
- list_append?: ResponsiveTextOptional
6842
+ listSuffix?: ResponsiveTextOptional
6818
6843
 
6819
6844
  /**
6820
6845
  * If the string from the book cannot be generated using the default generation technique, use this string. All options still need to be inserted propertly, since it may be used by in-game tools to provide a selection to players.
@@ -6822,26 +6847,21 @@ export interface OneTimeCostMapTranslation {
6822
6847
  replacement?: ResponsiveTextOptional
6823
6848
  }
6824
6849
 
6825
- export interface OneTimeCostMapOption {
6850
+ export interface ParameterMapOption<Value> {
6826
6851
  /**
6827
- * The full cost value for this option.
6852
+ * The value this option represents. If used for sustained cost, the interval cost is always half of this value.
6828
6853
  */
6829
- value: number
6830
-
6831
- /**
6832
- * The part of the `value` that has to be paid permanently.
6833
- */
6834
- permanent_value?: number
6854
+ value: Value
6835
6855
 
6836
6856
  /**
6837
6857
  * All translations for the entry, identified by IETF language tag (BCP47).
6838
6858
  */
6839
6859
  translations?: {
6840
- [localeId: string]: OneTimeCostMapOptionTranslation
6860
+ [localeId: string]: ParameterMapOptionTranslation
6841
6861
  }
6842
6862
  }
6843
6863
 
6844
- export interface OneTimeCostMapOptionTranslation {
6864
+ export interface ParameterMapOptionTranslation {
6845
6865
  /**
6846
6866
  * The description of the option for cost string generation.
6847
6867
  */
@@ -6850,13 +6870,13 @@ export interface OneTimeCostMapOptionTranslation {
6850
6870
  /**
6851
6871
  * The description of the option if used standalone (e.g. in an in-game tool where you can select how many AE you have to pay). Only used if different from `label`.
6852
6872
  */
6853
- label_standalone?: ResponsiveTextOptional
6873
+ standaloneLabel?: ResponsiveTextOptional
6854
6874
  }
6855
6875
 
6856
6876
  /**
6857
6877
  * The style of the generated string. It may either be displayed in a compressed way (e.g. `1/2/3 AE for a small/medium/large object`) or in a verbose way (e.g. `1 AE for a small object, 2 AE for a medium object, 3 AE for a large object`).
6858
6878
  */
6859
- export type MapStyle =
6879
+ export type ParameterMapStyle =
6860
6880
  | {
6861
6881
  kind: "Compressed"
6862
6882
  }
@@ -6864,6 +6884,37 @@ export type MapStyle =
6864
6884
  kind: "Verbose"
6865
6885
  }
6866
6886
 
6887
+ export interface ModifiableOneTimeCostMapOptionValue {
6888
+ /**
6889
+ * The initial skill modification identifier/level.
6890
+ */
6891
+ initialModificationLevel: SkillModificationLevel_ID
6892
+
6893
+ /**
6894
+ * The part of the cost value that has to be spent permanently.
6895
+ */
6896
+ permanentValue?: number
6897
+ }
6898
+
6899
+ export interface NonModifiableOneTimeCostMap {
6900
+ /**
6901
+ * The cost map.
6902
+ */
6903
+ map: ParameterMap<NonModifiableOneTimeCostMapOptionValue>
6904
+ }
6905
+
6906
+ export interface NonModifiableOneTimeCostMapOptionValue {
6907
+ /**
6908
+ * The full cost value for this option.
6909
+ */
6910
+ value: number
6911
+
6912
+ /**
6913
+ * The part of the cost value that has to be spent permanently.
6914
+ */
6915
+ permanentValue?: number
6916
+ }
6917
+
6867
6918
  export interface Range {
6868
6919
  /**
6869
6920
  * The range value.
@@ -7061,6 +7112,51 @@ export type DurationUnit =
7061
7112
  | {
7062
7113
  kind: "CombatRounds"
7063
7114
  }
7115
+ | {
7116
+ kind: "Custom"
7117
+ Custom: CustomDurationUnit
7118
+ }
7119
+
7120
+ export interface CustomDurationUnit {
7121
+ /**
7122
+ * All translations for the entry, identified by IETF language tag (BCP47).
7123
+ */
7124
+ translations: {
7125
+ [localeId: string]: CustomDurationUnitTranslation
7126
+ }
7127
+ }
7128
+
7129
+ export interface CustomDurationUnitTranslation {
7130
+ /**
7131
+ * The name of the custom duration unit.
7132
+ */
7133
+ name: string
7134
+
7135
+ /**
7136
+ * A translation for a numeric value of the custom duration unit, e.g. ‘3 days’. The translation string can and should make use of the `$value` and `$style` variables. The `$style` variable can be either `interval` or `default`.
7137
+ */
7138
+ fullNumber: string
7139
+
7140
+ /**
7141
+ * A translation for an arbitrary value of the custom duration unit, e.g. ‘3–4 days’ or ‘QL days’. The translation string can and should make use of the `$value` variable.
7142
+ */
7143
+ full: string
7144
+
7145
+ /**
7146
+ * A symbol or shortened label for the custom duration unit for use in small spaces.
7147
+ */
7148
+ symbol: string
7149
+
7150
+ /**
7151
+ * A translation for a numeric value of the custom duration unit for use in small spaces, e.g. ‘3 d.’. The translation string can and should make use of the `$value` and `$style` variables. The `$style` variable can be either `interval` or `default`.
7152
+ */
7153
+ compressedNumber: string
7154
+
7155
+ /**
7156
+ * A translation for an arbitrary value of the custom duration unit for use in small spaces, e.g. ‘3–4 d.’ or ‘QL d.’. The translation string can and should make use of the `$value` variable.
7157
+ */
7158
+ compressed: string
7159
+ }
7064
7160
 
7065
7161
  export interface PermanentDuration {
7066
7162
  /**
@@ -7159,6 +7255,20 @@ export interface ModifiableCastingTime {
7159
7255
  * The initial skill modification identifier/level.
7160
7256
  */
7161
7257
  initial_modification_level: SkillModificationLevel_ID
7258
+
7259
+ /**
7260
+ * All translations for the entry, identified by IETF language tag (BCP47).
7261
+ */
7262
+ translations?: {
7263
+ [localeId: string]: ModifiableCastingTimeTranslation
7264
+ }
7265
+ }
7266
+
7267
+ export interface ModifiableCastingTimeTranslation {
7268
+ /**
7269
+ * A note, appended to the generated string in parenthesis.
7270
+ */
7271
+ note?: ResponsiveTextOptional
7162
7272
  }
7163
7273
 
7164
7274
  /**
@@ -7189,6 +7299,20 @@ export interface FastSkillNonModifiableCastingTime {
7189
7299
  * The casting time value in actions.
7190
7300
  */
7191
7301
  actions: number
7302
+
7303
+ /**
7304
+ * All translations for the entry, identified by IETF language tag (BCP47).
7305
+ */
7306
+ translations?: {
7307
+ [localeId: string]: FastSkillNonModifiableCastingTimeTranslation
7308
+ }
7309
+ }
7310
+
7311
+ export interface FastSkillNonModifiableCastingTimeTranslation {
7312
+ /**
7313
+ * A note, appended to the generated string in parenthesis.
7314
+ */
7315
+ note?: ResponsiveTextOptional
7192
7316
  }
7193
7317
 
7194
7318
  export type FastSustainedPerformanceParameters = SustainedPerformanceParameters<FastCastingTime>
@@ -7201,6 +7325,16 @@ export interface SustainedPerformanceParameters<CastingTime> {
7201
7325
  }
7202
7326
 
7203
7327
  export type SustainedCost =
7328
+ | {
7329
+ kind: "Single"
7330
+ Single: SingleSustainedCost
7331
+ }
7332
+ | {
7333
+ kind: "Map"
7334
+ Map: SustainedCostMap
7335
+ }
7336
+
7337
+ export type SingleSustainedCost =
7204
7338
  | {
7205
7339
  kind: "Modifiable"
7206
7340
  Modifiable: ModifiableSustainedCost
@@ -7209,10 +7343,6 @@ export type SustainedCost =
7209
7343
  kind: "NonModifiable"
7210
7344
  NonModifiable: NonModifiableSustainedCost
7211
7345
  }
7212
- | {
7213
- kind: "Map"
7214
- Map: SustainedCostMap
7215
- }
7216
7346
 
7217
7347
  export interface ModifiableSustainedCost {
7218
7348
  /**
@@ -7269,71 +7399,52 @@ export interface NonModifiableSustainedCostPerCountableTranslation {
7269
7399
  countable: ResponsiveText
7270
7400
  }
7271
7401
 
7272
- /**
7273
- * A content that is `2/4/8/16 AE (activation) + 1/2/4/8 per 5 minutes for an item the size of a cup/chest/door/castle gate` can be represented as a cost map.
7274
- *
7275
- * The `an item the size of a` would be the *list prefix* string, while the list of options would contain four options with the activation cost and the name.
7276
- */
7277
- export interface SustainedCostMap {
7402
+ export type SustainedCostMap =
7403
+ | {
7404
+ kind: "Modifiable"
7405
+ Modifiable: ModifiableSustainedCostMap
7406
+ }
7407
+ | {
7408
+ kind: "NonModifiable"
7409
+ NonModifiable: NonModifiableSustainedCostMap
7410
+ }
7411
+
7412
+ export interface ModifiableSustainedCostMap {
7278
7413
  /**
7279
- * The possible costs and associated labels.
7414
+ * The cost map.
7280
7415
  */
7281
- options: SustainedCostMapOption[]
7416
+ map: ParameterMap<ModifiableSustainedCostMapOptionValue>
7282
7417
 
7283
7418
  /**
7284
7419
  * The sustain interval.
7285
7420
  */
7286
7421
  interval: DurationUnitValue
7287
-
7288
- /**
7289
- * All translations for the entry, identified by IETF language tag (BCP47).
7290
- */
7291
- translations?: {
7292
- [localeId: string]: SustainedCostMapTranslation
7293
- }
7294
7422
  }
7295
7423
 
7296
- export interface SustainedCostMapTranslation {
7297
- /**
7298
- * Place a string between the `for` and the grouped map option labels.
7299
- */
7300
- listPrefix?: ResponsiveTextOptional
7301
-
7424
+ export interface ModifiableSustainedCostMapOptionValue {
7302
7425
  /**
7303
- * Place a string after the grouped map option labels.
7304
- */
7305
- listSuffix?: ResponsiveTextOptional
7306
-
7307
- /**
7308
- * If the string from the book cannot be generated using the default generation technique, use this string. All options still need to be inserted propertly, since it may be used by in-game tools to provide a selection to players.
7426
+ * The initial skill modification identifier/level.
7309
7427
  */
7310
- replacement?: ResponsiveTextOptional
7428
+ initialModificationLevel: SkillModificationLevel_ID
7311
7429
  }
7312
7430
 
7313
- export interface SustainedCostMapOption {
7431
+ export interface NonModifiableSustainedCostMap {
7314
7432
  /**
7315
- * The activation cost value for this option. The interval cost is always half of this value.
7433
+ * The cost map.
7316
7434
  */
7317
- value: number
7435
+ map: ParameterMap<NonModifiableSustainedCostMapOptionValue>
7318
7436
 
7319
7437
  /**
7320
- * All translations for the entry, identified by IETF language tag (BCP47).
7438
+ * The sustain interval.
7321
7439
  */
7322
- translations?: {
7323
- [localeId: string]: SustainedCostMapOptionTranslation
7324
- }
7440
+ interval: DurationUnitValue
7325
7441
  }
7326
7442
 
7327
- export interface SustainedCostMapOptionTranslation {
7328
- /**
7329
- * The description of the option for cost string generation.
7330
- */
7331
- label: ResponsiveTextOptional
7332
-
7443
+ export interface NonModifiableSustainedCostMapOptionValue {
7333
7444
  /**
7334
- * The description of the option if used standalone (e.g. in an in-game tool where you can select how many AE you have to pay). Only used if different from `label`.
7445
+ * The full cost value for this option.
7335
7446
  */
7336
- standaloneLabel?: ResponsiveTextOptional
7447
+ value: number
7337
7448
  }
7338
7449
 
7339
7450
  export interface DurationForSustained {
@@ -7457,11 +7568,6 @@ export interface BlessedTradition {
7457
7568
  */
7458
7569
  primaryBlessing?: Blessing_ID
7459
7570
 
7460
- /**
7461
- * If a tradition restricts the possible blessings, the blessings that are **not** allowed.
7462
- */
7463
- restricted_blessings?: RestrictedBlessings
7464
-
7465
7571
  /**
7466
7572
  * A list of favored combat techniques.
7467
7573
  */
@@ -7685,19 +7791,6 @@ export interface IndefiniteBlessingDurationTranslation {
7685
7791
  description: string
7686
7792
  }
7687
7793
 
7688
- /**
7689
- * If a tradition restricts the possible blessings, the blessings that are **not** allowed.
7690
- */
7691
- export type RestrictedBlessings =
7692
- | {
7693
- kind: "Three"
7694
- Three: [Blessing_ID, Blessing_ID, Blessing_ID]
7695
- }
7696
- | {
7697
- kind: "Six"
7698
- Six: [Blessing_ID, Blessing_ID, Blessing_ID, Blessing_ID, Blessing_ID, Blessing_ID]
7699
- }
7700
-
7701
7794
  export type FavoredCombatTechniques =
7702
7795
  | {
7703
7796
  kind: "All"
@@ -7748,12 +7841,36 @@ export interface FavoredSkillsSelection {
7748
7841
  export type BlessedTraditionType =
7749
7842
  | {
7750
7843
  kind: "Church"
7844
+ Church: ChurchBlessedTradition
7751
7845
  }
7752
7846
  | {
7753
7847
  kind: "Shamanistic"
7754
7848
  Shamanistic: ShamanisticBlessedTradition
7755
7849
  }
7756
7850
 
7851
+ /**
7852
+ * Additional rules for church traditions.
7853
+ */
7854
+ export interface ChurchBlessedTradition {
7855
+ /**
7856
+ * If a tradition restricts the possible blessings, the blessings that are **not** allowed.
7857
+ */
7858
+ restrictedBlessings?: RestrictedBlessings
7859
+ }
7860
+
7861
+ /**
7862
+ * If a tradition restricts the possible blessings, the blessings that are **not** allowed.
7863
+ */
7864
+ export type RestrictedBlessings =
7865
+ | {
7866
+ kind: "Three"
7867
+ Three: [Blessing_ID, Blessing_ID, Blessing_ID]
7868
+ }
7869
+ | {
7870
+ kind: "Six"
7871
+ Six: [Blessing_ID, Blessing_ID, Blessing_ID, Blessing_ID, Blessing_ID, Blessing_ID]
7872
+ }
7873
+
7757
7874
  /**
7758
7875
  * Additional rules for shamanistic traditions.
7759
7876
  */
@@ -8680,6 +8797,20 @@ export interface SlowSkillNonModifiableCastingTime {
8680
8797
  * The unit of the `value`.
8681
8798
  */
8682
8799
  unit: SlowSkillCastingTimeUnit
8800
+
8801
+ /**
8802
+ * All translations for the entry, identified by IETF language tag (BCP47).
8803
+ */
8804
+ translations?: {
8805
+ [localeId: string]: SlowSkillNonModifiableCastingTimeTranslation
8806
+ }
8807
+ }
8808
+
8809
+ export interface SlowSkillNonModifiableCastingTimeTranslation {
8810
+ /**
8811
+ * A note, appended to the generated string in parenthesis.
8812
+ */
8813
+ note?: ResponsiveTextOptional
8683
8814
  }
8684
8815
 
8685
8816
  export type SlowSustainedPerformanceParameters = SustainedPerformanceParameters<SlowCastingTime>
@@ -10769,38 +10900,9 @@ export interface VolumeByLevelItem {
10769
10900
  *
10770
10901
  * This will generate the exact same string as seen above. The associated options are not present in the example, but they link to the options the volume specification is meant for.
10771
10902
  */
10772
- export interface VolumeMap {
10773
- /**
10774
- * The possible costs and associated labels.
10775
- */
10776
- options: VolumeMapOption[]
10903
+ export type VolumeMap = ParameterMap<VolumeMapOptionValue>
10777
10904
 
10778
- /**
10779
- * All translations for the entry, identified by IETF language tag (BCP47).
10780
- */
10781
- translations?: {
10782
- [localeId: string]: VolumeMapTranslation
10783
- }
10784
- }
10785
-
10786
- export interface VolumeMapTranslation {
10787
- /**
10788
- * Place a string between the `for` and the grouped map option labels.
10789
- */
10790
- list_prepend?: ResponsiveTextOptional
10791
-
10792
- /**
10793
- * Place a string after the grouped map option labels.
10794
- */
10795
- list_append?: ResponsiveTextOptional
10796
-
10797
- /**
10798
- * If the string from the book cannot be generated using the default generation technique, use this string. All options still need to be inserted propertly, since it may be used by in-game tools to provide a selection to players.
10799
- */
10800
- replacement?: ResponsiveTextOptional
10801
- }
10802
-
10803
- export interface VolumeMapOption {
10905
+ export interface VolumeMapOptionValue {
10804
10906
  /**
10805
10907
  * The full permanent AE cost value for this option.
10806
10908
  */
@@ -10810,25 +10912,6 @@ export interface VolumeMapOption {
10810
10912
  * Links to the options this volume specification is meant for.
10811
10913
  */
10812
10914
  associated_options: VolumeMapOptionAssociatedOption[]
10813
-
10814
- /**
10815
- * All translations for the entry, identified by IETF language tag (BCP47).
10816
- */
10817
- translations?: {
10818
- [localeId: string]: VolumeMapOptionTranslation
10819
- }
10820
- }
10821
-
10822
- export interface VolumeMapOptionTranslation {
10823
- /**
10824
- * The description of the option for cost string generation.
10825
- */
10826
- label: ResponsiveTextOptional
10827
-
10828
- /**
10829
- * The description of the option if used standalone. Only used if different from `label`.
10830
- */
10831
- label_standalone?: ResponsiveTextOptional
10832
10915
  }
10833
10916
 
10834
10917
  export interface VolumeMapOptionAssociatedOption {
@@ -10902,7 +10985,7 @@ export type ArcaneEnergyCost =
10902
10985
  }
10903
10986
  | {
10904
10987
  kind: "Map"
10905
- Map: OneTimeCostMap
10988
+ Map: StandaloneCostMap
10906
10989
  }
10907
10990
 
10908
10991
  export interface FixedArcaneEnergyCost {
@@ -11103,6 +11186,8 @@ export type ArcaneEnergyCostByLevelStyle =
11103
11186
  kind: "Verbose"
11104
11187
  }
11105
11188
 
11189
+ export type StandaloneCostMap = ParameterMap<NonModifiableOneTimeCostMapOptionValue>
11190
+
11106
11191
  /**
11107
11192
  * The binding cost for an enchantment.
11108
11193
  */
@@ -11165,61 +11250,13 @@ export interface BindingCostPerLevel {
11165
11250
  *
11166
11251
  * This will generate the exact same string as seen above.
11167
11252
  */
11168
- export interface BindingCostMap {
11169
- /**
11170
- * The possible costs and associated labels.
11171
- */
11172
- options: BindingCostMapOption[]
11173
-
11174
- /**
11175
- * All translations for the entry, identified by IETF language tag (BCP47).
11176
- */
11177
- translations?: {
11178
- [localeId: string]: BindingCostMapTranslation
11179
- }
11180
- }
11181
-
11182
- export interface BindingCostMapTranslation {
11183
- /**
11184
- * Place a string between the `for` and the grouped map option labels.
11185
- */
11186
- list_prepend?: ResponsiveTextOptional
11187
-
11188
- /**
11189
- * Place a string after the grouped map option labels.
11190
- */
11191
- list_append?: ResponsiveTextOptional
11253
+ export type BindingCostMap = ParameterMap<BindingCostMapOptionValue>
11192
11254
 
11193
- /**
11194
- * If the string from the book cannot be generated using the default generation technique, use this string. All options still need to be inserted propertly, since it may be used by in-game tools to provide a selection to players.
11195
- */
11196
- replacement?: ResponsiveTextOptional
11197
- }
11198
-
11199
- export interface BindingCostMapOption {
11255
+ export interface BindingCostMapOptionValue {
11200
11256
  /**
11201
11257
  * The full permanent AE cost value for this option.
11202
11258
  */
11203
- permanent_value: number
11204
-
11205
- /**
11206
- * All translations for the entry, identified by IETF language tag (BCP47).
11207
- */
11208
- translations: {
11209
- [localeId: string]: BindingCostMapOptionTranslation
11210
- }
11211
- }
11212
-
11213
- export interface BindingCostMapOptionTranslation {
11214
- /**
11215
- * The description of the option for cost string generation.
11216
- */
11217
- label: ResponsiveTextOptional
11218
-
11219
- /**
11220
- * The description of the option if used standalone. Only used if different from `label`.
11221
- */
11222
- label_standalone?: ResponsiveTextOptional
11259
+ permanentValue: number
11223
11260
  }
11224
11261
 
11225
11262
  export interface BindingCostDerivedFromSelection {
@@ -13325,9 +13362,9 @@ export interface CombatStyleSpecialAbility {
13325
13362
  nameBuilderRules?: ActivatableNameBuilderRules
13326
13363
 
13327
13364
  /**
13328
- * The definition of how the combat special ability can be used in combat.
13365
+ * The definition of how the combat style can be used in combat.
13329
13366
  */
13330
- usage_type: CombatSpecialAbilityUsageType
13367
+ usage_type: CombatSpecialAbilityTypeUsageType
13331
13368
 
13332
13369
  /**
13333
13370
  * The definition of if the combat special ability can be used when armed or when unarmed.
@@ -13423,6 +13460,17 @@ export interface CombatStyleSpecialAbilityTranslation {
13423
13460
  errata?: Errata
13424
13461
  }
13425
13462
 
13463
+ /**
13464
+ * The definition of how the combat special ability style can be used in combat.
13465
+ */
13466
+ export type CombatSpecialAbilityTypeUsageType =
13467
+ | {
13468
+ kind: "Passive"
13469
+ }
13470
+ | {
13471
+ kind: "Active"
13472
+ }
13473
+
13426
13474
  /**
13427
13475
  * The definition of if the combat special ability can be used when armed or when unarmed.
13428
13476
  */
@@ -15604,7 +15652,7 @@ export type MagicalSignCost =
15604
15652
  }
15605
15653
  | {
15606
15654
  kind: "Map"
15607
- Map: OneTimeCostMap
15655
+ Map: StandaloneCostMap
15608
15656
  }
15609
15657
 
15610
15658
  export interface ConstantMagicalSignCost {
@@ -15774,6 +15822,13 @@ export interface MagicStyleSpecialAbilityTranslation {
15774
15822
  */
15775
15823
  name: string
15776
15824
 
15825
+ /**
15826
+ * A part of the name that is appended in parenthesis. This can be used to specify the group of people that typically uses this entry (e.g. the name of the witch circle for a magic style for witches).
15827
+ *
15828
+ * If `name_in_library` is specified, this will be ignored for places where the `name_in_library` is used.
15829
+ */
15830
+ additionalName?: string
15831
+
15777
15832
  /**
15778
15833
  * The full name of the entry as stated in the sources. Only use when `name` needs to be different from full name for text generation purposes.
15779
15834
  */
@@ -18056,11 +18111,6 @@ export interface BannzeichenOptionTranslation {
18056
18111
  * The surrounding parenthesis will/should not be included, they will/should be generated.
18057
18112
  */
18058
18113
  name: string
18059
-
18060
- /**
18061
- * The native name of the Bannzeichen option.
18062
- */
18063
- native_name: string
18064
18114
  }
18065
18115
 
18066
18116
  export interface SingleBannzeichenCost {
@@ -18137,7 +18187,7 @@ export type BannzeichenCost =
18137
18187
  }
18138
18188
  | {
18139
18189
  kind: "Map"
18140
- Map: OneTimeCostMap
18190
+ Map: StandaloneCostMap
18141
18191
  }
18142
18192
  | {
18143
18193
  kind: "DerivedFromOption"
@@ -19483,7 +19533,7 @@ export type GeodeRitualCost =
19483
19533
  }
19484
19534
  | {
19485
19535
  kind: "Map"
19486
- Map: OneTimeCostMap
19536
+ Map: StandaloneCostMap
19487
19537
  }
19488
19538
 
19489
19539
  export interface FixedGeodeRitualCost {
@@ -20578,11 +20628,11 @@ export type SkillsSelectOptionCategoryCategory =
20578
20628
  }
20579
20629
  | {
20580
20630
  kind: "Spells"
20581
- Spells: GenericSkillsSelectOptionCategoryCategory<Spell_ID>
20631
+ Spells: GenericSkillsSelectOptionCategoryCategory<SpellFilter>
20582
20632
  }
20583
20633
  | {
20584
20634
  kind: "Rituals"
20585
- Rituals: GenericSkillsSelectOptionCategoryCategory<Ritual_ID>
20635
+ Rituals: GenericSkillsSelectOptionCategoryCategory<RitualFilter>
20586
20636
  }
20587
20637
  | {
20588
20638
  kind: "LiturgicalChants"
@@ -20747,6 +20797,26 @@ export interface GenericSkillsSelectOptionCategoryCategory<Ref> {
20747
20797
  prerequisites?: SkillSelectOptionCategoryPrerequisite[]
20748
20798
  }
20749
20799
 
20800
+ export type SpellFilter =
20801
+ | {
20802
+ kind: "Single"
20803
+ Single: Spell_ID
20804
+ }
20805
+ | {
20806
+ kind: "Property"
20807
+ Property: Property_ID
20808
+ }
20809
+
20810
+ export type RitualFilter =
20811
+ | {
20812
+ kind: "Single"
20813
+ Single: Ritual_ID
20814
+ }
20815
+ | {
20816
+ kind: "Property"
20817
+ Property: Property_ID
20818
+ }
20819
+
20750
20820
  export type SkillishIdentifier =
20751
20821
  | {
20752
20822
  kind: "Skill"