@optolith/database-schema 0.52.2 → 0.54.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 (120) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/gen/types.d.ts +265 -203
  3. package/lib/cache/activatableSelectOptions.js +28 -12
  4. package/lib/types/Advantage.d.ts +253 -253
  5. package/lib/types/Blessing.d.ts +10 -0
  6. package/lib/types/Cantrip.d.ts +10 -0
  7. package/lib/types/Ceremony.d.ts +294 -125
  8. package/lib/types/DerivedCharacteristic.d.ts +23 -23
  9. package/lib/types/Disadvantage.d.ts +230 -230
  10. package/lib/types/FamiliarsTrick.d.ts +40 -0
  11. package/lib/types/LiturgicalChant.d.ts +294 -125
  12. package/lib/types/Locale.d.ts +1 -0
  13. package/lib/types/Locale.js +1 -0
  14. package/lib/types/Profession.d.ts +330 -330
  15. package/lib/types/Ritual.d.ts +294 -125
  16. package/lib/types/Spell.d.ts +294 -125
  17. package/lib/types/Talisman.d.ts +10 -0
  18. package/lib/types/_Activatable.d.ts +1 -0
  19. package/lib/types/_Activatable.js +4 -0
  20. package/lib/types/_ActivatableAdventurePointsValue.d.ts +46 -46
  21. package/lib/types/_ActivatableAutomatic.d.ts +23 -23
  22. package/lib/types/_ActivatableCombat.d.ts +5 -1
  23. package/lib/types/_ActivatableCombat.js +13 -1
  24. package/lib/types/_ActivatableNonMundane.d.ts +128 -64
  25. package/lib/types/_ActivatableNonMundane.js +10 -67
  26. package/lib/types/_ActivatableSelectOptionCategory.d.ts +368 -368
  27. package/lib/types/_ActivatableSelectOptionCategory.js +19 -3
  28. package/lib/types/_ActivatableSelectOptions.d.ts +230 -230
  29. package/lib/types/_ActivatableSkill.d.ts +680 -284
  30. package/lib/types/_ActivatableSkillCastingTime.d.ts +30 -0
  31. package/lib/types/_ActivatableSkillCastingTime.js +20 -0
  32. package/lib/types/_ActivatableSkillCost.d.ts +288 -186
  33. package/lib/types/_ActivatableSkillCost.js +109 -110
  34. package/lib/types/_ActivatableSkillDuration.d.ts +70 -0
  35. package/lib/types/_ActivatableSkillDuration.js +44 -0
  36. package/lib/types/_ActivatableSkillParameterMap.d.ts +34 -0
  37. package/lib/types/_ActivatableSkillParameterMap.js +64 -0
  38. package/lib/types/_IdentifierGroup.d.ts +117 -92
  39. package/lib/types/_IdentifierGroup.js +37 -26
  40. package/lib/types/equipment/item/HerbalPreservation.d.ts +20 -0
  41. package/lib/types/magicalActions/AnimistPower.d.ts +50 -0
  42. package/lib/types/magicalActions/Bannzeichen.d.ts +53 -2
  43. package/lib/types/magicalActions/Bannzeichen.js +2 -4
  44. package/lib/types/magicalActions/Curse.d.ts +20 -0
  45. package/lib/types/magicalActions/DominationRitual.d.ts +20 -0
  46. package/lib/types/magicalActions/ElvenMagicalSong.d.ts +10 -0
  47. package/lib/types/magicalActions/GeodeRitual.d.ts +28 -13
  48. package/lib/types/magicalActions/GeodeRitual.js +2 -2
  49. package/lib/types/magicalActions/GoblinRitual.d.ts +20 -0
  50. package/lib/types/magicalActions/JesterTrick.d.ts +30 -0
  51. package/lib/types/magicalActions/MagicalMelody.d.ts +10 -0
  52. package/lib/types/magicalActions/MagicalRune.d.ts +20 -0
  53. package/lib/types/magicalActions/ZibiljaRitual.d.ts +92 -34
  54. package/lib/types/prerequisites/PrerequisiteGroups.d.ts +161 -161
  55. package/lib/types/prerequisites/single/ActivatablePrerequisite.d.ts +23 -23
  56. package/lib/types/prerequisites/single/PropertyPrerequisite.d.ts +16 -0
  57. package/lib/types/prerequisites/single/PropertyPrerequisite.js +16 -0
  58. package/lib/types/specialAbility/AdvancedCombatSpecialAbility.d.ts +230 -230
  59. package/lib/types/specialAbility/AdvancedCombatSpecialAbility.js +2 -2
  60. package/lib/types/specialAbility/AdvancedKarmaSpecialAbility.d.ts +230 -230
  61. package/lib/types/specialAbility/AdvancedMagicalSpecialAbility.d.ts +230 -230
  62. package/lib/types/specialAbility/AdvancedSkillSpecialAbility.d.ts +230 -230
  63. package/lib/types/specialAbility/AncestorGlyph.d.ts +230 -230
  64. package/lib/types/specialAbility/BlessedTradition.d.ts +230 -230
  65. package/lib/types/specialAbility/BrawlingSpecialAbility.d.ts +230 -230
  66. package/lib/types/specialAbility/BrawlingSpecialAbility.js +2 -2
  67. package/lib/types/specialAbility/CeremonialItemSpecialAbility.d.ts +230 -230
  68. package/lib/types/specialAbility/CombatSpecialAbility.d.ts +230 -230
  69. package/lib/types/specialAbility/CombatSpecialAbility.js +2 -2
  70. package/lib/types/specialAbility/CombatStyleSpecialAbility.d.ts +232 -233
  71. package/lib/types/specialAbility/CombatStyleSpecialAbility.js +2 -2
  72. package/lib/types/specialAbility/CommandSpecialAbility.d.ts +230 -230
  73. package/lib/types/specialAbility/CommandSpecialAbility.js +2 -2
  74. package/lib/types/specialAbility/FamiliarSpecialAbility.d.ts +230 -230
  75. package/lib/types/specialAbility/FatePointSexSpecialAbility.d.ts +230 -230
  76. package/lib/types/specialAbility/FatePointSpecialAbility.d.ts +230 -230
  77. package/lib/types/specialAbility/GeneralSpecialAbility.d.ts +230 -230
  78. package/lib/types/specialAbility/KarmaSpecialAbility.d.ts +230 -230
  79. package/lib/types/specialAbility/LiturgicalStyleSpecialAbility.d.ts +230 -230
  80. package/lib/types/specialAbility/LycantropicGift.d.ts +230 -230
  81. package/lib/types/specialAbility/MagicStyleSpecialAbility.d.ts +231 -230
  82. package/lib/types/specialAbility/MagicStyleSpecialAbility.js +2 -1
  83. package/lib/types/specialAbility/MagicalSign.d.ts +12 -13
  84. package/lib/types/specialAbility/MagicalSign.js +2 -2
  85. package/lib/types/specialAbility/MagicalSpecialAbility.d.ts +230 -230
  86. package/lib/types/specialAbility/MagicalTradition.d.ts +230 -230
  87. package/lib/types/specialAbility/PactGift.d.ts +253 -253
  88. package/lib/types/specialAbility/ProtectiveWardingCircleSpecialAbility.d.ts +230 -230
  89. package/lib/types/specialAbility/Sermon.d.ts +230 -230
  90. package/lib/types/specialAbility/SexSpecialAbility.d.ts +230 -230
  91. package/lib/types/specialAbility/SikaryanDrainSpecialAbility.d.ts +230 -230
  92. package/lib/types/specialAbility/SkillStyleSpecialAbility.d.ts +230 -230
  93. package/lib/types/specialAbility/VampiricGift.d.ts +230 -230
  94. package/lib/types/specialAbility/Vision.d.ts +230 -230
  95. package/lib/types/specialAbility/sub/TradeSecret.d.ts +207 -207
  96. package/lib/types/traditionArtifacts/ArcaneOrbEnchantment.d.ts +301 -270
  97. package/lib/types/traditionArtifacts/AttireEnchantment.d.ts +301 -270
  98. package/lib/types/traditionArtifacts/Beutelzauber.d.ts +301 -270
  99. package/lib/types/traditionArtifacts/BowlEnchantment.d.ts +301 -270
  100. package/lib/types/traditionArtifacts/CauldronEnchantment.d.ts +301 -270
  101. package/lib/types/traditionArtifacts/ChronicleEnchantment.d.ts +301 -270
  102. package/lib/types/traditionArtifacts/DaggerRitual.d.ts +301 -270
  103. package/lib/types/traditionArtifacts/FoolsHatEnchantment.d.ts +301 -270
  104. package/lib/types/traditionArtifacts/Haubenzauber.d.ts +301 -270
  105. package/lib/types/traditionArtifacts/Hauerkettenzauber.d.ts +94 -63
  106. package/lib/types/traditionArtifacts/InstrumentEnchantment.d.ts +301 -270
  107. package/lib/types/traditionArtifacts/Keulenzauber.d.ts +94 -63
  108. package/lib/types/traditionArtifacts/Krallenkettenzauber.d.ts +301 -270
  109. package/lib/types/traditionArtifacts/Kristallkugelzauber.d.ts +301 -270
  110. package/lib/types/traditionArtifacts/OrbEnchantment.d.ts +301 -270
  111. package/lib/types/traditionArtifacts/RingEnchantment.d.ts +301 -270
  112. package/lib/types/traditionArtifacts/Schweinetrommelzauber.d.ts +94 -63
  113. package/lib/types/traditionArtifacts/SickleRitual.d.ts +301 -270
  114. package/lib/types/traditionArtifacts/SpellSwordEnchantment.d.ts +301 -270
  115. package/lib/types/traditionArtifacts/StaffEnchantment.d.ts +301 -270
  116. package/lib/types/traditionArtifacts/ToyEnchantment.d.ts +301 -270
  117. package/lib/types/traditionArtifacts/Trinkhornzauber.d.ts +301 -270
  118. package/lib/types/traditionArtifacts/WandEnchantment.d.ts +287 -254
  119. package/lib/types/traditionArtifacts/WeaponEnchantment.d.ts +301 -270
  120. package/package.json +9 -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
@@ -569,6 +575,7 @@ export type TypeAliasMap = {
569
575
  CursePerformanceParameters: CursePerformanceParameters
570
576
  CursesOptions: CursesOptions
571
577
  CustomBannzeichenSuboption: CustomBannzeichenSuboption
578
+ CustomDurationUnit: CustomDurationUnit
572
579
  CustomMagicalRuneSuboption: CustomMagicalRuneSuboption
573
580
  DaggerRitualArcaneEnergyCost: DaggerRitualArcaneEnergyCost
574
581
  DefaultPrimaryAttributeDamageThreshold: DefaultPrimaryAttributeDamageThreshold
@@ -735,26 +742,34 @@ export type TypeAliasMap = {
735
742
  MinimumCollectorsValue: MinimumCollectorsValue
736
743
  ModifiableCastingTime: ModifiableCastingTime
737
744
  ModifiableOneTimeCost: ModifiableOneTimeCost
745
+ ModifiableOneTimeCostMap: ModifiableOneTimeCostMap
746
+ ModifiableOneTimeCostMapOptionValue: ModifiableOneTimeCostMapOptionValue
738
747
  ModifiableRange: ModifiableRange
739
748
  ModifiableSustainedCost: ModifiableSustainedCost
749
+ ModifiableSustainedCostMap: ModifiableSustainedCostMap
750
+ ModifiableSustainedCostMapOptionValue: ModifiableSustainedCostMapOptionValue
740
751
  MultipleOneTimeCosts: MultipleOneTimeCosts
741
752
  MusicDuration: MusicDuration
742
753
  NonModifiableOneTimeCost: NonModifiableOneTimeCost
754
+ NonModifiableOneTimeCostMap: NonModifiableOneTimeCostMap
755
+ NonModifiableOneTimeCostMapOptionValue: NonModifiableOneTimeCostMapOptionValue
743
756
  NonModifiableOneTimeCostPerCountable: NonModifiableOneTimeCostPerCountable
744
757
  NonModifiableSustainedCost: NonModifiableSustainedCost
758
+ NonModifiableSustainedCostMap: NonModifiableSustainedCostMap
759
+ NonModifiableSustainedCostMapOptionValue: NonModifiableSustainedCostMapOptionValue
745
760
  NonModifiableSustainedCostPerCountable: NonModifiableSustainedCostPerCountable
746
761
  NoPoisonCost: NoPoisonCost
747
762
  OldParameter: OldParameter
748
763
  OldParameterBySpeed: OldParameterBySpeed
749
764
  OneOfAdvancedSpecialAbilityOptions: OneOfAdvancedSpecialAbilityOptions<unknown>
750
765
  OneTimeAnimistPowerPerformanceParameters: OneTimeAnimistPowerPerformanceParameters
751
- OneTimeCostMap: OneTimeCostMap
752
- OneTimeCostMapOption: OneTimeCostMapOption
753
766
  OneTimePerformanceParameters: OneTimePerformanceParameters<unknown>
754
767
  OptionPrerequisite: OptionPrerequisite
755
768
  PactGiftPermanentDemonicConsumptionPerLevel: PactGiftPermanentDemonicConsumptionPerLevel
756
769
  PactPrerequisite: PactPrerequisite
757
770
  PageRange: PageRange
771
+ ParameterMap: ParameterMap<unknown>
772
+ ParameterMapOption: ParameterMapOption<unknown>
758
773
  ParryModifier: ParryModifier
759
774
  PatronCulture: PatronCulture
760
775
  PenaltyByActivation: PenaltyByActivation
@@ -891,12 +906,11 @@ export type TypeAliasMap = {
891
906
  SpellworkAdjustmentWithBase: SpellworkAdjustmentWithBase
892
907
  SpellworkChange: SpellworkChange
893
908
  SpellworkPrerequisites: SpellworkPrerequisites
909
+ StandaloneCostMap: StandaloneCostMap
894
910
  StatePrerequisite: StatePrerequisite
895
911
  StructurePoints: StructurePoints
896
912
  StructurePointsComponent: StructurePointsComponent
897
913
  SustainedAnimistPowerPerformanceParameters: SustainedAnimistPowerPerformanceParameters
898
- SustainedCostMap: SustainedCostMap
899
- SustainedCostMapOption: SustainedCostMapOption
900
914
  SustainedPerformanceParameters: SustainedPerformanceParameters<unknown>
901
915
  TalismanActivation: TalismanActivation
902
916
  TalismanActivationCost: TalismanActivationCost
@@ -914,8 +928,8 @@ export type TypeAliasMap = {
914
928
  VolumeByLevelItem: VolumeByLevelItem
915
929
  VolumeDerivedFromSelection: VolumeDerivedFromSelection
916
930
  VolumeMap: VolumeMap
917
- VolumeMapOption: VolumeMapOption
918
931
  VolumeMapOptionAssociatedOption: VolumeMapOptionAssociatedOption
932
+ VolumeMapOptionValue: VolumeMapOptionValue
919
933
  VolumePerLevel: VolumePerLevel
920
934
  Weight: Weight
921
935
  WeightDice: WeightDice
@@ -2364,6 +2378,7 @@ export interface Locale {
2364
2378
  "Aspect": string
2365
2379
  "As chosen": string
2366
2380
  "Passive": string
2381
+ "Active": string
2367
2382
  "Basic Maneuver": string
2368
2383
  "Special Maneuver": string
2369
2384
  "Volume": string
@@ -6768,53 +6783,57 @@ export interface IndefiniteOneTimeCostTranslation {
6768
6783
 
6769
6784
  export type MultipleOneTimeCosts = SingleOneTimeCost[]
6770
6785
 
6786
+ export type OneTimeCostMap =
6787
+ | {
6788
+ kind: "Modifiable"
6789
+ Modifiable: ModifiableOneTimeCostMap
6790
+ }
6791
+ | {
6792
+ kind: "NonModifiable"
6793
+ NonModifiable: NonModifiableOneTimeCostMap
6794
+ }
6795
+
6796
+ export interface ModifiableOneTimeCostMap {
6797
+ /**
6798
+ * The cost map.
6799
+ */
6800
+ map: ParameterMap<ModifiableOneTimeCostMapOptionValue>
6801
+ }
6802
+
6771
6803
  /**
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
- * ```
6804
+ * 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
6805
  *
6787
- * This will generate the exact same string as seen above – given it is set for a spellwork and thus `AE` is used.
6806
+ * 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
6807
  */
6789
- export interface OneTimeCostMap {
6808
+ export interface ParameterMap<Value> {
6790
6809
  /**
6791
- * The possible costs and associated labels.
6810
+ * The possible values and associated labels.
6792
6811
  */
6793
- options: OneTimeCostMapOption[]
6812
+ options: ParameterMapOption<Value>[]
6794
6813
 
6795
6814
  /**
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`.
6815
+ * 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
6816
  */
6798
- style?: MapStyle
6817
+ style: ParameterMapStyle
6799
6818
 
6800
6819
  /**
6801
6820
  * All translations for the entry, identified by IETF language tag (BCP47).
6802
6821
  */
6803
6822
  translations?: {
6804
- [localeId: string]: OneTimeCostMapTranslation
6823
+ [localeId: string]: ParameterMapTranslation
6805
6824
  }
6806
6825
  }
6807
6826
 
6808
- export interface OneTimeCostMapTranslation {
6827
+ export interface ParameterMapTranslation {
6809
6828
  /**
6810
6829
  * Place a string between the `for` and the grouped map option labels.
6811
6830
  */
6812
- list_prepend?: ResponsiveTextOptional
6831
+ listPrefix?: ResponsiveTextOptional
6813
6832
 
6814
6833
  /**
6815
6834
  * Place a string after the grouped map option labels.
6816
6835
  */
6817
- list_append?: ResponsiveTextOptional
6836
+ listSuffix?: ResponsiveTextOptional
6818
6837
 
6819
6838
  /**
6820
6839
  * 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 +6841,21 @@ export interface OneTimeCostMapTranslation {
6822
6841
  replacement?: ResponsiveTextOptional
6823
6842
  }
6824
6843
 
6825
- export interface OneTimeCostMapOption {
6826
- /**
6827
- * The full cost value for this option.
6828
- */
6829
- value: number
6830
-
6844
+ export interface ParameterMapOption<Value> {
6831
6845
  /**
6832
- * The part of the `value` that has to be paid permanently.
6846
+ * The value this option represents. If used for sustained cost, the interval cost is always half of this value.
6833
6847
  */
6834
- permanent_value?: number
6848
+ value: Value
6835
6849
 
6836
6850
  /**
6837
6851
  * All translations for the entry, identified by IETF language tag (BCP47).
6838
6852
  */
6839
6853
  translations?: {
6840
- [localeId: string]: OneTimeCostMapOptionTranslation
6854
+ [localeId: string]: ParameterMapOptionTranslation
6841
6855
  }
6842
6856
  }
6843
6857
 
6844
- export interface OneTimeCostMapOptionTranslation {
6858
+ export interface ParameterMapOptionTranslation {
6845
6859
  /**
6846
6860
  * The description of the option for cost string generation.
6847
6861
  */
@@ -6850,13 +6864,13 @@ export interface OneTimeCostMapOptionTranslation {
6850
6864
  /**
6851
6865
  * 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
6866
  */
6853
- label_standalone?: ResponsiveTextOptional
6867
+ standaloneLabel?: ResponsiveTextOptional
6854
6868
  }
6855
6869
 
6856
6870
  /**
6857
6871
  * 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
6872
  */
6859
- export type MapStyle =
6873
+ export type ParameterMapStyle =
6860
6874
  | {
6861
6875
  kind: "Compressed"
6862
6876
  }
@@ -6864,6 +6878,37 @@ export type MapStyle =
6864
6878
  kind: "Verbose"
6865
6879
  }
6866
6880
 
6881
+ export interface ModifiableOneTimeCostMapOptionValue {
6882
+ /**
6883
+ * The initial skill modification identifier/level.
6884
+ */
6885
+ initialModificationLevel: SkillModificationLevel_ID
6886
+
6887
+ /**
6888
+ * The part of the cost value that has to be spent permanently.
6889
+ */
6890
+ permanentValue?: number
6891
+ }
6892
+
6893
+ export interface NonModifiableOneTimeCostMap {
6894
+ /**
6895
+ * The cost map.
6896
+ */
6897
+ map: ParameterMap<NonModifiableOneTimeCostMapOptionValue>
6898
+ }
6899
+
6900
+ export interface NonModifiableOneTimeCostMapOptionValue {
6901
+ /**
6902
+ * The full cost value for this option.
6903
+ */
6904
+ value: number
6905
+
6906
+ /**
6907
+ * The part of the cost value that has to be spent permanently.
6908
+ */
6909
+ permanentValue?: number
6910
+ }
6911
+
6867
6912
  export interface Range {
6868
6913
  /**
6869
6914
  * The range value.
@@ -7061,6 +7106,51 @@ export type DurationUnit =
7061
7106
  | {
7062
7107
  kind: "CombatRounds"
7063
7108
  }
7109
+ | {
7110
+ kind: "Custom"
7111
+ Custom: CustomDurationUnit
7112
+ }
7113
+
7114
+ export interface CustomDurationUnit {
7115
+ /**
7116
+ * All translations for the entry, identified by IETF language tag (BCP47).
7117
+ */
7118
+ translations: {
7119
+ [localeId: string]: CustomDurationUnitTranslation
7120
+ }
7121
+ }
7122
+
7123
+ export interface CustomDurationUnitTranslation {
7124
+ /**
7125
+ * The name of the custom duration unit.
7126
+ */
7127
+ name: string
7128
+
7129
+ /**
7130
+ * 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`.
7131
+ */
7132
+ fullNumber: string
7133
+
7134
+ /**
7135
+ * 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.
7136
+ */
7137
+ full: string
7138
+
7139
+ /**
7140
+ * A symbol or shortened label for the custom duration unit for use in small spaces.
7141
+ */
7142
+ symbol: string
7143
+
7144
+ /**
7145
+ * 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`.
7146
+ */
7147
+ compressedNumber: string
7148
+
7149
+ /**
7150
+ * 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.
7151
+ */
7152
+ compressed: string
7153
+ }
7064
7154
 
7065
7155
  export interface PermanentDuration {
7066
7156
  /**
@@ -7159,6 +7249,20 @@ export interface ModifiableCastingTime {
7159
7249
  * The initial skill modification identifier/level.
7160
7250
  */
7161
7251
  initial_modification_level: SkillModificationLevel_ID
7252
+
7253
+ /**
7254
+ * All translations for the entry, identified by IETF language tag (BCP47).
7255
+ */
7256
+ translations?: {
7257
+ [localeId: string]: ModifiableCastingTimeTranslation
7258
+ }
7259
+ }
7260
+
7261
+ export interface ModifiableCastingTimeTranslation {
7262
+ /**
7263
+ * A note, appended to the generated string in parenthesis.
7264
+ */
7265
+ note?: ResponsiveTextOptional
7162
7266
  }
7163
7267
 
7164
7268
  /**
@@ -7189,6 +7293,20 @@ export interface FastSkillNonModifiableCastingTime {
7189
7293
  * The casting time value in actions.
7190
7294
  */
7191
7295
  actions: number
7296
+
7297
+ /**
7298
+ * All translations for the entry, identified by IETF language tag (BCP47).
7299
+ */
7300
+ translations?: {
7301
+ [localeId: string]: FastSkillNonModifiableCastingTimeTranslation
7302
+ }
7303
+ }
7304
+
7305
+ export interface FastSkillNonModifiableCastingTimeTranslation {
7306
+ /**
7307
+ * A note, appended to the generated string in parenthesis.
7308
+ */
7309
+ note?: ResponsiveTextOptional
7192
7310
  }
7193
7311
 
7194
7312
  export type FastSustainedPerformanceParameters = SustainedPerformanceParameters<FastCastingTime>
@@ -7201,6 +7319,16 @@ export interface SustainedPerformanceParameters<CastingTime> {
7201
7319
  }
7202
7320
 
7203
7321
  export type SustainedCost =
7322
+ | {
7323
+ kind: "Single"
7324
+ Single: SingleSustainedCost
7325
+ }
7326
+ | {
7327
+ kind: "Map"
7328
+ Map: SustainedCostMap
7329
+ }
7330
+
7331
+ export type SingleSustainedCost =
7204
7332
  | {
7205
7333
  kind: "Modifiable"
7206
7334
  Modifiable: ModifiableSustainedCost
@@ -7209,10 +7337,6 @@ export type SustainedCost =
7209
7337
  kind: "NonModifiable"
7210
7338
  NonModifiable: NonModifiableSustainedCost
7211
7339
  }
7212
- | {
7213
- kind: "Map"
7214
- Map: SustainedCostMap
7215
- }
7216
7340
 
7217
7341
  export interface ModifiableSustainedCost {
7218
7342
  /**
@@ -7269,71 +7393,52 @@ export interface NonModifiableSustainedCostPerCountableTranslation {
7269
7393
  countable: ResponsiveText
7270
7394
  }
7271
7395
 
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 {
7396
+ export type SustainedCostMap =
7397
+ | {
7398
+ kind: "Modifiable"
7399
+ Modifiable: ModifiableSustainedCostMap
7400
+ }
7401
+ | {
7402
+ kind: "NonModifiable"
7403
+ NonModifiable: NonModifiableSustainedCostMap
7404
+ }
7405
+
7406
+ export interface ModifiableSustainedCostMap {
7278
7407
  /**
7279
- * The possible costs and associated labels.
7408
+ * The cost map.
7280
7409
  */
7281
- options: SustainedCostMapOption[]
7410
+ map: ParameterMap<ModifiableSustainedCostMapOptionValue>
7282
7411
 
7283
7412
  /**
7284
7413
  * The sustain interval.
7285
7414
  */
7286
7415
  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
7416
  }
7295
7417
 
7296
- export interface SustainedCostMapTranslation {
7297
- /**
7298
- * Place a string between the `for` and the grouped map option labels.
7299
- */
7300
- listPrefix?: ResponsiveTextOptional
7301
-
7302
- /**
7303
- * Place a string after the grouped map option labels.
7304
- */
7305
- listSuffix?: ResponsiveTextOptional
7306
-
7418
+ export interface ModifiableSustainedCostMapOptionValue {
7307
7419
  /**
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.
7420
+ * The initial skill modification identifier/level.
7309
7421
  */
7310
- replacement?: ResponsiveTextOptional
7422
+ initialModificationLevel: SkillModificationLevel_ID
7311
7423
  }
7312
7424
 
7313
- export interface SustainedCostMapOption {
7425
+ export interface NonModifiableSustainedCostMap {
7314
7426
  /**
7315
- * The activation cost value for this option. The interval cost is always half of this value.
7427
+ * The cost map.
7316
7428
  */
7317
- value: number
7429
+ map: ParameterMap<NonModifiableSustainedCostMapOptionValue>
7318
7430
 
7319
7431
  /**
7320
- * All translations for the entry, identified by IETF language tag (BCP47).
7432
+ * The sustain interval.
7321
7433
  */
7322
- translations?: {
7323
- [localeId: string]: SustainedCostMapOptionTranslation
7324
- }
7434
+ interval: DurationUnitValue
7325
7435
  }
7326
7436
 
7327
- export interface SustainedCostMapOptionTranslation {
7437
+ export interface NonModifiableSustainedCostMapOptionValue {
7328
7438
  /**
7329
- * The description of the option for cost string generation.
7330
- */
7331
- label: ResponsiveTextOptional
7332
-
7333
- /**
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`.
7439
+ * The full cost value for this option.
7335
7440
  */
7336
- standaloneLabel?: ResponsiveTextOptional
7441
+ value: number
7337
7442
  }
7338
7443
 
7339
7444
  export interface DurationForSustained {
@@ -8680,6 +8785,20 @@ export interface SlowSkillNonModifiableCastingTime {
8680
8785
  * The unit of the `value`.
8681
8786
  */
8682
8787
  unit: SlowSkillCastingTimeUnit
8788
+
8789
+ /**
8790
+ * All translations for the entry, identified by IETF language tag (BCP47).
8791
+ */
8792
+ translations?: {
8793
+ [localeId: string]: SlowSkillNonModifiableCastingTimeTranslation
8794
+ }
8795
+ }
8796
+
8797
+ export interface SlowSkillNonModifiableCastingTimeTranslation {
8798
+ /**
8799
+ * A note, appended to the generated string in parenthesis.
8800
+ */
8801
+ note?: ResponsiveTextOptional
8683
8802
  }
8684
8803
 
8685
8804
  export type SlowSustainedPerformanceParameters = SustainedPerformanceParameters<SlowCastingTime>
@@ -10769,38 +10888,9 @@ export interface VolumeByLevelItem {
10769
10888
  *
10770
10889
  * 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
10890
  */
10772
- export interface VolumeMap {
10773
- /**
10774
- * The possible costs and associated labels.
10775
- */
10776
- options: VolumeMapOption[]
10891
+ export type VolumeMap = ParameterMap<VolumeMapOptionValue>
10777
10892
 
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 {
10893
+ export interface VolumeMapOptionValue {
10804
10894
  /**
10805
10895
  * The full permanent AE cost value for this option.
10806
10896
  */
@@ -10810,25 +10900,6 @@ export interface VolumeMapOption {
10810
10900
  * Links to the options this volume specification is meant for.
10811
10901
  */
10812
10902
  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
10903
  }
10833
10904
 
10834
10905
  export interface VolumeMapOptionAssociatedOption {
@@ -10902,7 +10973,7 @@ export type ArcaneEnergyCost =
10902
10973
  }
10903
10974
  | {
10904
10975
  kind: "Map"
10905
- Map: OneTimeCostMap
10976
+ Map: StandaloneCostMap
10906
10977
  }
10907
10978
 
10908
10979
  export interface FixedArcaneEnergyCost {
@@ -11103,6 +11174,8 @@ export type ArcaneEnergyCostByLevelStyle =
11103
11174
  kind: "Verbose"
11104
11175
  }
11105
11176
 
11177
+ export type StandaloneCostMap = ParameterMap<NonModifiableOneTimeCostMapOptionValue>
11178
+
11106
11179
  /**
11107
11180
  * The binding cost for an enchantment.
11108
11181
  */
@@ -11165,61 +11238,13 @@ export interface BindingCostPerLevel {
11165
11238
  *
11166
11239
  * This will generate the exact same string as seen above.
11167
11240
  */
11168
- export interface BindingCostMap {
11169
- /**
11170
- * The possible costs and associated labels.
11171
- */
11172
- options: BindingCostMapOption[]
11241
+ export type BindingCostMap = ParameterMap<BindingCostMapOptionValue>
11173
11242
 
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
11192
-
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 {
11243
+ export interface BindingCostMapOptionValue {
11200
11244
  /**
11201
11245
  * The full permanent AE cost value for this option.
11202
11246
  */
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
11247
+ permanentValue: number
11223
11248
  }
11224
11249
 
11225
11250
  export interface BindingCostDerivedFromSelection {
@@ -13325,9 +13350,9 @@ export interface CombatStyleSpecialAbility {
13325
13350
  nameBuilderRules?: ActivatableNameBuilderRules
13326
13351
 
13327
13352
  /**
13328
- * The definition of how the combat special ability can be used in combat.
13353
+ * The definition of how the combat style can be used in combat.
13329
13354
  */
13330
- usage_type: CombatSpecialAbilityUsageType
13355
+ usage_type: CombatSpecialAbilityTypeUsageType
13331
13356
 
13332
13357
  /**
13333
13358
  * The definition of if the combat special ability can be used when armed or when unarmed.
@@ -13423,6 +13448,17 @@ export interface CombatStyleSpecialAbilityTranslation {
13423
13448
  errata?: Errata
13424
13449
  }
13425
13450
 
13451
+ /**
13452
+ * The definition of how the combat special ability style can be used in combat.
13453
+ */
13454
+ export type CombatSpecialAbilityTypeUsageType =
13455
+ | {
13456
+ kind: "Passive"
13457
+ }
13458
+ | {
13459
+ kind: "Active"
13460
+ }
13461
+
13426
13462
  /**
13427
13463
  * The definition of if the combat special ability can be used when armed or when unarmed.
13428
13464
  */
@@ -15604,7 +15640,7 @@ export type MagicalSignCost =
15604
15640
  }
15605
15641
  | {
15606
15642
  kind: "Map"
15607
- Map: OneTimeCostMap
15643
+ Map: StandaloneCostMap
15608
15644
  }
15609
15645
 
15610
15646
  export interface ConstantMagicalSignCost {
@@ -15774,6 +15810,13 @@ export interface MagicStyleSpecialAbilityTranslation {
15774
15810
  */
15775
15811
  name: string
15776
15812
 
15813
+ /**
15814
+ * 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).
15815
+ *
15816
+ * If `name_in_library` is specified, this will be ignored for places where the `name_in_library` is used.
15817
+ */
15818
+ additionalName?: string
15819
+
15777
15820
  /**
15778
15821
  * 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
15822
  */
@@ -18056,11 +18099,6 @@ export interface BannzeichenOptionTranslation {
18056
18099
  * The surrounding parenthesis will/should not be included, they will/should be generated.
18057
18100
  */
18058
18101
  name: string
18059
-
18060
- /**
18061
- * The native name of the Bannzeichen option.
18062
- */
18063
- native_name: string
18064
18102
  }
18065
18103
 
18066
18104
  export interface SingleBannzeichenCost {
@@ -18135,6 +18173,10 @@ export type BannzeichenCost =
18135
18173
  kind: "Disjunction"
18136
18174
  Disjunction: BannzeichenCostDisjunction
18137
18175
  }
18176
+ | {
18177
+ kind: "Map"
18178
+ Map: StandaloneCostMap
18179
+ }
18138
18180
  | {
18139
18181
  kind: "DerivedFromOption"
18140
18182
  }
@@ -19479,7 +19521,7 @@ export type GeodeRitualCost =
19479
19521
  }
19480
19522
  | {
19481
19523
  kind: "Map"
19482
- Map: OneTimeCostMap
19524
+ Map: StandaloneCostMap
19483
19525
  }
19484
19526
 
19485
19527
  export interface FixedGeodeRitualCost {
@@ -20574,11 +20616,11 @@ export type SkillsSelectOptionCategoryCategory =
20574
20616
  }
20575
20617
  | {
20576
20618
  kind: "Spells"
20577
- Spells: GenericSkillsSelectOptionCategoryCategory<Spell_ID>
20619
+ Spells: GenericSkillsSelectOptionCategoryCategory<SpellFilter>
20578
20620
  }
20579
20621
  | {
20580
20622
  kind: "Rituals"
20581
- Rituals: GenericSkillsSelectOptionCategoryCategory<Ritual_ID>
20623
+ Rituals: GenericSkillsSelectOptionCategoryCategory<RitualFilter>
20582
20624
  }
20583
20625
  | {
20584
20626
  kind: "LiturgicalChants"
@@ -20743,6 +20785,26 @@ export interface GenericSkillsSelectOptionCategoryCategory<Ref> {
20743
20785
  prerequisites?: SkillSelectOptionCategoryPrerequisite[]
20744
20786
  }
20745
20787
 
20788
+ export type SpellFilter =
20789
+ | {
20790
+ kind: "Single"
20791
+ Single: Spell_ID
20792
+ }
20793
+ | {
20794
+ kind: "Property"
20795
+ Property: Property_ID
20796
+ }
20797
+
20798
+ export type RitualFilter =
20799
+ | {
20800
+ kind: "Single"
20801
+ Single: Ritual_ID
20802
+ }
20803
+ | {
20804
+ kind: "Property"
20805
+ Property: Property_ID
20806
+ }
20807
+
20746
20808
  export type SkillishIdentifier =
20747
20809
  | {
20748
20810
  kind: "Skill"