optolith-database-schema 0.25.0 → 0.26.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/gen/types.d.ts +390 -300
  3. package/lib/main.d.ts +7 -0
  4. package/lib/types/Advantage.d.ts +11 -0
  5. package/lib/types/CombatTechnique.d.ts +79 -55
  6. package/lib/types/CombatTechnique.js +25 -7
  7. package/lib/types/Disadvantage.d.ts +11 -0
  8. package/lib/types/HomunculusType.d.ts +6 -0
  9. package/lib/types/HomunculusType.js +15 -0
  10. package/lib/types/Profession.d.ts +25 -0
  11. package/lib/types/Profession.js +18 -2
  12. package/lib/types/_ActivatableAdventurePointsValue.d.ts +1 -0
  13. package/lib/types/_ActivatableAdventurePointsValue.js +4 -0
  14. package/lib/types/_ActivatableNonMundane.d.ts +10 -2
  15. package/lib/types/_ActivatableNonMundane.js +11 -1
  16. package/lib/types/_ActivatableSelectOptionCategory.d.ts +699 -0
  17. package/lib/types/_ActivatableSelectOptionCategory.js +73 -0
  18. package/lib/types/_ActivatableSelectOptions.d.ts +10 -0
  19. package/lib/types/equipment/item/BandageOrRemedy.js +10 -0
  20. package/lib/types/equipment/item/CeremonialItem.js +10 -0
  21. package/lib/types/equipment/item/Clothes.js +10 -0
  22. package/lib/types/equipment/item/Container.js +10 -0
  23. package/lib/types/equipment/item/EquipmentOfBlessedOnes.js +10 -0
  24. package/lib/types/equipment/item/IlluminationLightSource.js +10 -0
  25. package/lib/types/equipment/item/IlluminationRefillOrSupply.js +10 -0
  26. package/lib/types/equipment/item/Liebesspielzeug.js +10 -0
  27. package/lib/types/equipment/item/LuxuryGood.js +10 -0
  28. package/lib/types/equipment/item/MagicalArtifact.js +10 -0
  29. package/lib/types/equipment/item/MusicalInstrument.js +10 -0
  30. package/lib/types/equipment/item/TravelGearOrTool.js +10 -0
  31. package/lib/types/equipment/item/Weapon.d.ts +45 -45
  32. package/lib/types/equipment/item/Weapon.js +7 -5
  33. package/lib/types/equipment/item/WeaponAccessory.js +10 -0
  34. package/lib/types/equipment/item/_Item.js +13 -1
  35. package/lib/types/equipment/item/_Weapon.d.ts +13 -4
  36. package/lib/types/equipment/item/_Weapon.js +32 -4
  37. package/lib/types/specialAbility/AdvancedCombatSpecialAbility.d.ts +11 -0
  38. package/lib/types/specialAbility/AdvancedKarmaSpecialAbility.d.ts +11 -0
  39. package/lib/types/specialAbility/AdvancedMagicalSpecialAbility.d.ts +11 -0
  40. package/lib/types/specialAbility/AdvancedSkillSpecialAbility.d.ts +11 -0
  41. package/lib/types/specialAbility/AncestorGlyph.d.ts +11 -0
  42. package/lib/types/specialAbility/BlessedTradition.d.ts +11 -0
  43. package/lib/types/specialAbility/BrawlingSpecialAbility.d.ts +11 -0
  44. package/lib/types/specialAbility/CeremonialItemSpecialAbility.d.ts +11 -0
  45. package/lib/types/specialAbility/CombatSpecialAbility.d.ts +11 -0
  46. package/lib/types/specialAbility/CombatStyleSpecialAbility.d.ts +11 -0
  47. package/lib/types/specialAbility/CommandSpecialAbility.d.ts +11 -0
  48. package/lib/types/specialAbility/FamiliarSpecialAbility.d.ts +11 -0
  49. package/lib/types/specialAbility/FatePointSexSpecialAbility.d.ts +11 -0
  50. package/lib/types/specialAbility/FatePointSpecialAbility.d.ts +11 -0
  51. package/lib/types/specialAbility/GeneralSpecialAbility.d.ts +11 -0
  52. package/lib/types/specialAbility/KarmaSpecialAbility.d.ts +11 -0
  53. package/lib/types/specialAbility/LiturgicalStyleSpecialAbility.d.ts +11 -0
  54. package/lib/types/specialAbility/LycantropicGift.d.ts +11 -0
  55. package/lib/types/specialAbility/MagicStyleSpecialAbility.d.ts +11 -0
  56. package/lib/types/specialAbility/MagicalSpecialAbility.d.ts +11 -0
  57. package/lib/types/specialAbility/MagicalTradition.d.ts +11 -0
  58. package/lib/types/specialAbility/PactGift.d.ts +11 -0
  59. package/lib/types/specialAbility/ProtectiveWardingCircleSpecialAbility.d.ts +11 -0
  60. package/lib/types/specialAbility/Sermon.d.ts +11 -0
  61. package/lib/types/specialAbility/SexSpecialAbility.d.ts +11 -0
  62. package/lib/types/specialAbility/SikaryanDrainSpecialAbility.d.ts +11 -0
  63. package/lib/types/specialAbility/SkillStyleSpecialAbility.d.ts +11 -0
  64. package/lib/types/specialAbility/VampiricGift.d.ts +11 -0
  65. package/lib/types/specialAbility/Vision.d.ts +11 -0
  66. package/lib/types/specialAbility/sub/TradeSecret.d.ts +880 -161
  67. package/lib/types/specialAbility/sub/TradeSecret.js +9 -5
  68. package/lib/types/traditionArtifacts/ArcaneOrbEnchantment.d.ts +16 -1
  69. package/lib/types/traditionArtifacts/AttireEnchantment.d.ts +16 -1
  70. package/lib/types/traditionArtifacts/Beutelzauber.d.ts +16 -1
  71. package/lib/types/traditionArtifacts/BowlEnchantment.d.ts +16 -1
  72. package/lib/types/traditionArtifacts/CauldronEnchantment.d.ts +16 -1
  73. package/lib/types/traditionArtifacts/ChronicleEnchantment.d.ts +16 -1
  74. package/lib/types/traditionArtifacts/DaggerRitual.d.ts +16 -1
  75. package/lib/types/traditionArtifacts/FoolsHatEnchantment.d.ts +16 -1
  76. package/lib/types/traditionArtifacts/Haubenzauber.d.ts +16 -1
  77. package/lib/types/traditionArtifacts/InstrumentEnchantment.d.ts +16 -1
  78. package/lib/types/traditionArtifacts/Krallenkettenzauber.d.ts +16 -1
  79. package/lib/types/traditionArtifacts/Kristallkugelzauber.d.ts +16 -1
  80. package/lib/types/traditionArtifacts/OrbEnchantment.d.ts +16 -1
  81. package/lib/types/traditionArtifacts/RingEnchantment.d.ts +16 -1
  82. package/lib/types/traditionArtifacts/SickleRitual.d.ts +16 -1
  83. package/lib/types/traditionArtifacts/SpellSwordEnchantment.d.ts +16 -1
  84. package/lib/types/traditionArtifacts/StaffEnchantment.d.ts +16 -1
  85. package/lib/types/traditionArtifacts/ToyEnchantment.d.ts +16 -1
  86. package/lib/types/traditionArtifacts/Trinkhornzauber.d.ts +16 -1
  87. package/lib/types/traditionArtifacts/WandEnchantment.d.ts +16 -1
  88. package/lib/types/traditionArtifacts/WeaponEnchantment.d.ts +16 -1
  89. package/package.json +2 -2
package/gen/types.d.ts CHANGED
@@ -377,6 +377,9 @@ export type SelectOptionCategory =
377
377
  | {
378
378
  kind: "RacesAndCultures"
379
379
  }
380
+ | {
381
+ kind: "HomunculusTypes"
382
+ }
380
383
  | {
381
384
  kind: "BlessedTraditions"
382
385
  BlessedTraditions: BlessedTraditionsSelectOptionCategory
@@ -4131,17 +4134,31 @@ export interface CloseCombatTechniqueSpecialRules {
4131
4134
  /**
4132
4135
  * Is parrying possible with this combat technique?
4133
4136
  */
4134
- can_parry: boolean
4137
+ can_parry: WeaponCombatTechniqueValueRule
4135
4138
 
4136
- has_damage_threshold: boolean
4139
+ has_damage_threshold: WeaponCombatTechniqueValueRule
4137
4140
 
4138
- has_reach: boolean
4141
+ has_reach: WeaponCombatTechniqueValueRule
4139
4142
 
4140
- has_length: boolean
4143
+ has_length: WeaponCombatTechniqueValueRule
4141
4144
 
4142
- has_shield_size: boolean
4145
+ has_shield_size: WeaponCombatTechniqueValueRule
4143
4146
  }
4144
4147
 
4148
+ /**
4149
+ * Defines if the weapon must/can/must not define a value for this parameter.
4150
+ */
4151
+ export type WeaponCombatTechniqueValueRule =
4152
+ | {
4153
+ kind: "Required"
4154
+ }
4155
+ | {
4156
+ kind: "Optional"
4157
+ }
4158
+ | {
4159
+ kind: "Prohibited"
4160
+ }
4161
+
4145
4162
  export interface RangedCombatTechnique {
4146
4163
  /**
4147
4164
  * Special rules for the combat technique that apply to all weapons in this category.
@@ -4199,7 +4216,7 @@ export interface RangedCombatTechniqueTranslation {
4199
4216
  * Special rules for the combat technique that apply to all weapons in this category.
4200
4217
  */
4201
4218
  export interface RangedCombatTechniqueSpecialRules {
4202
- has_ammunition: boolean
4219
+ has_ammunition: WeaponCombatTechniqueValueRule
4203
4220
  }
4204
4221
 
4205
4222
  export interface Property {
@@ -5786,6 +5803,11 @@ export interface AdventurePointsDerivedFromSelection {
5786
5803
  }
5787
5804
 
5788
5805
  export interface AdventurePointsDerivedFromSelectionTranslation {
5806
+ /**
5807
+ * Place a string between the `for` and the grouped option names.
5808
+ */
5809
+ listPrepend?: string
5810
+
5789
5811
  /**
5790
5812
  * A replacement for the generated text if it would not match the original one.
5791
5813
  */
@@ -6849,6 +6871,13 @@ export interface TradeSecret {
6849
6871
  */
6850
6872
  select_options?: TradeSecretSelectOptions
6851
6873
 
6874
+ /**
6875
+ * Explicit definitions for possible options for the activatable entry.
6876
+ *
6877
+ * Note that this is only a full definition of options for simple logic that can be made explicit using the more detailed configuration for both derived categories and explicit options. There are quite a few entries whose option logic cannot be fully represented here, so that it needs to be implemented manually.
6878
+ */
6879
+ explicit_select_options: GeneralSelectOption_ID[]
6880
+
6852
6881
  /**
6853
6882
  * The trade secret’s adventure point value
6854
6883
  */
@@ -6885,6 +6914,11 @@ export interface TradeSecretTranslation {
6885
6914
  */
6886
6915
  name: string
6887
6916
 
6917
+ /**
6918
+ * 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.
6919
+ */
6920
+ name_in_library?: string
6921
+
6888
6922
  /**
6889
6923
  * The description of the trade secret.
6890
6924
  */
@@ -6900,99 +6934,375 @@ export interface TradeSecretTranslation {
6900
6934
  */
6901
6935
  export interface TradeSecretSelectOptions {
6902
6936
  /**
6903
- * A list of explicit select options. If the identifier has a specific type, its entry is the base of this select option, where values defined here override values from the base. Define the `src` property if the options are not derived from the rules text of the advantage/disadvantage/special ability but instead are listed in a separate block and/or on a separate page.
6937
+ * An entry category with optional further configuration. All available entries from the specified categories will be included as separate select options. You can also specify a set of groups that should only be included. Groups not mentioned will be excluded then.
6904
6938
  */
6905
- explicit?: ExplicitSelectOption[]
6939
+ derived?: TradeSecretSelectOptionCategory
6906
6940
  }
6907
6941
 
6908
- export type ExplicitSelectOption =
6942
+ export type TradeSecretSelectOptionCategory =
6909
6943
  | {
6910
- kind: "General"
6911
- General: GeneralSelectOption_ID
6944
+ kind: "Blessings"
6912
6945
  }
6913
6946
  | {
6914
- kind: "Skill"
6915
- Skill: ExplicitSkillSelectOption
6947
+ kind: "Cantrips"
6916
6948
  }
6917
6949
  | {
6918
- kind: "CombatTechnique"
6919
- CombatTechnique: ExplicitCombatTechniqueSelectOption
6950
+ kind: "Scripts"
6951
+ }
6952
+ | {
6953
+ kind: "AnimalShapes"
6954
+ }
6955
+ | {
6956
+ kind: "ArcaneBardTraditions"
6957
+ }
6958
+ | {
6959
+ kind: "ArcaneDancerTraditions"
6960
+ }
6961
+ | {
6962
+ kind: "SexPractices"
6963
+ }
6964
+ | {
6965
+ kind: "Races"
6966
+ }
6967
+ | {
6968
+ kind: "Cultures"
6969
+ }
6970
+ | {
6971
+ kind: "RacesAndCultures"
6972
+ }
6973
+ | {
6974
+ kind: "HomunculusTypes"
6975
+ }
6976
+ | {
6977
+ kind: "BlessedTraditions"
6978
+ BlessedTraditions: BlessedTraditionsSelectOptionCategory
6979
+ }
6980
+ | {
6981
+ kind: "Elements"
6982
+ Elements: ElementsSelectOptionCategory
6983
+ }
6984
+ | {
6985
+ kind: "Properties"
6986
+ Properties: PropertiesSelectOptionCategory
6987
+ }
6988
+ | {
6989
+ kind: "Aspects"
6990
+ Aspects: AspectSelectOptionCategory
6991
+ }
6992
+ | {
6993
+ kind: "Diseases"
6994
+ Diseases: DiseasesPoisonsSelectOptionCategory
6995
+ }
6996
+ | {
6997
+ kind: "Poisons"
6998
+ Poisons: DiseasesPoisonsSelectOptionCategory
6999
+ }
7000
+ | {
7001
+ kind: "Languages"
7002
+ Languages: LanguagesSelectOptionCategory
7003
+ }
7004
+ | {
7005
+ kind: "Skills"
7006
+ Skills: SkillsSelectOptionCategory
7007
+ }
7008
+ | {
7009
+ kind: "CombatTechniques"
7010
+ CombatTechniques: CombatTechniquesSelectOptionCategory
7011
+ }
7012
+ | {
7013
+ kind: "TargetCategories"
7014
+ TargetCategories: TargetCategoriesSelectOptionCategory
6920
7015
  }
6921
7016
 
6922
- export interface ExplicitSkillSelectOption {
7017
+ export interface SkillsSelectOptionCategory {
6923
7018
  /**
6924
- * The skill’s identifier.
7019
+ * A list of skill categories.
6925
7020
  */
6926
- id: Skill_ID
7021
+ categories: SkillsSelectOptionCategoryCategory[]
6927
7022
 
6928
7023
  /**
6929
- * Prerequisites for the select option.
7024
+ * Generate AP values for each entry.
6930
7025
  */
6931
- prerequisites?: GeneralPrerequisites
7026
+ ap_value?: SelectOptionsAdventurePointsValue<SkillishIdentifier>
7027
+ }
6932
7028
 
7029
+ export type SkillsSelectOptionCategoryCategory =
7030
+ | {
7031
+ kind: "Skills"
7032
+ Skills: SkillSelectOptionCategoryCategory
7033
+ }
7034
+ | {
7035
+ kind: "Spells"
7036
+ Spells: GenericSkillsSelectOptionCategoryCategory<Spell_ID>
7037
+ }
7038
+ | {
7039
+ kind: "Rituals"
7040
+ Rituals: GenericSkillsSelectOptionCategoryCategory<Ritual_ID>
7041
+ }
7042
+ | {
7043
+ kind: "LiturgicalChants"
7044
+ LiturgicalChants: GenericSkillsSelectOptionCategoryCategory<LiturgicalChant_ID>
7045
+ }
7046
+ | {
7047
+ kind: "Ceremonies"
7048
+ Ceremonies: GenericSkillsSelectOptionCategoryCategory<Ceremony_ID>
7049
+ }
7050
+
7051
+ export interface SkillSelectOptionCategoryCategory {
6933
7052
  /**
6934
- * Specific binding cost for the select option. Only has an effect if the associated entry supports binding costs.
7053
+ * Only include entries of the specified groups.
6935
7054
  */
6936
- binding_cost?: number
7055
+ groups?: SkillGroup_ID[]
6937
7056
 
6938
7057
  /**
6939
- * Specific AP cost for the select option.
7058
+ * Only include or exclude specific skills.
6940
7059
  */
6941
- ap_value?: number
7060
+ specific?: SpecificFromSkillSelectOptionCategoryCategory<Skill_ID>
6942
7061
 
6943
7062
  /**
6944
- * All translations for the entry, identified by IETF language tag (BCP47).
7063
+ * Registers new applications, which get enabled once this entry is activated with its respective select option. It specifies an entry-unique identifier, the skill it belongs to is derived from the select option automatically. A translation can be left out if its name equals the name of the origin entry.
6945
7064
  */
6946
- src?: PublicationRefs
7065
+ skill_applications?: SkillApplicationOrUse[]
7066
+
7067
+ /**
7068
+ * Registers uses, which get enabled once this entry is activated with its respective select option. It specifies an entry-unique identifier, the skill it belongs to is derived from the select option automatically. A translation can be left out if its name equals the name of the origin entry.
7069
+ */
7070
+ skill_uses?: SkillApplicationOrUse[]
7071
+
7072
+ /**
7073
+ * Generate prerequisites for each entry of the category.
7074
+ */
7075
+ prerequisites?: SkillSelectOptionCategoryPrerequisite[]
7076
+
7077
+ /**
7078
+ * Generate AP values for each entry.
7079
+ */
7080
+ ap_value?: SelectOptionsAdventurePointsValue<Skill_ID>
7081
+ }
7082
+
7083
+ export interface SpecificFromSkillSelectOptionCategoryCategory<Ref> {
7084
+ operation: SpecificFromSkillSelectOptionCategoryCategoryOperation
7085
+
7086
+ /**
7087
+ * The list of specific entries.
7088
+ */
7089
+ list: Ref[]
7090
+ }
7091
+
7092
+ /**
7093
+ * Only include (`Intersection`) or exclude (`Difference`) specific entries.
7094
+ */
7095
+ export type SpecificFromSkillSelectOptionCategoryCategoryOperation =
7096
+ | {
7097
+ kind: "Intersection"
7098
+ }
7099
+ | {
7100
+ kind: "Difference"
7101
+ }
7102
+
7103
+ export interface SkillApplicationOrUse {
7104
+ /**
7105
+ * The application’s or use’s identifier. An entry-unique, increasing integer.
7106
+ */
7107
+ id: number
6947
7108
 
6948
7109
  /**
6949
7110
  * All translations for the entry, identified by IETF language tag (BCP47).
6950
7111
  */
6951
7112
  translations?: {
6952
- [localeId: string]: ExplicitSkillSelectOptionTranslation
7113
+ [localeId: string]: SkillApplicationOrUseTranslation
6953
7114
  }
6954
7115
  }
6955
7116
 
6956
- export interface ExplicitSkillSelectOptionTranslation {
6957
- errata?: Errata
7117
+ export interface SkillApplicationOrUseTranslation {
7118
+ /**
7119
+ * The name of the application or use if different from the activatable entry’s name.
7120
+ */
7121
+ name: string
6958
7122
  }
6959
7123
 
6960
- export interface ExplicitCombatTechniqueSelectOption {
7124
+ export type SkillSelectOptionCategoryPrerequisite =
7125
+ | {
7126
+ kind: "Self"
7127
+ Self: SelfPrerequisite
7128
+ }
7129
+ | {
7130
+ kind: "SelectOption"
7131
+ SelectOption: OptionPrerequisite
7132
+ }
7133
+
7134
+ export interface SelfPrerequisite {
6961
7135
  /**
6962
- * The combat technique’s identifier.
7136
+ * The entry requires itself on a certain Skill Rating.
6963
7137
  */
6964
- id: CombatTechniqueIdentifier
7138
+ value: number
7139
+ }
6965
7140
 
7141
+ /**
7142
+ * Generate AP values for each entry.
7143
+ */
7144
+ export type SelectOptionsAdventurePointsValue<Identifier> =
7145
+ | {
7146
+ kind: "DerivedFromImprovementCost"
7147
+ DerivedFromImprovementCost: SelectOptionsDeriveAdventurePointsValueFromImprovementCost
7148
+ }
7149
+ | {
7150
+ kind: "Fixed"
7151
+ Fixed: SelectOptionsFixedAdventurePointsValue<Identifier>
7152
+ }
7153
+
7154
+ /**
7155
+ * Derive the cost from the improvement cost of each entry. The AP value is calculated by multiplying the improvement cost with `multiplier` and then adding `offset`.
7156
+ */
7157
+ export interface SelectOptionsDeriveAdventurePointsValueFromImprovementCost {
6966
7158
  /**
6967
- * Prerequisites for the select option.
7159
+ * This number is multiplied with the improvement cost of the entry (A = 1 to D = 4).
6968
7160
  */
6969
- prerequisites?: GeneralPrerequisites
7161
+ multiplier?: number
6970
7162
 
6971
7163
  /**
6972
- * Specific binding cost for the select option. Only has an effect if the associated entry supports binding costs.
7164
+ * This number is added to the multiplied improvement cost of the entry.
6973
7165
  */
6974
- binding_cost?: number
7166
+ offset?: number
7167
+ }
6975
7168
 
7169
+ export interface SelectOptionsFixedAdventurePointsValue<Identifier> {
6976
7170
  /**
6977
- * Specific AP cost for the select option.
7171
+ * A mapping of skill identifiers to their specific AP values.
6978
7172
  */
6979
- ap_value?: number
7173
+ map: SelectOptionsFixedAdventurePointsValueMapping<Identifier>[]
6980
7174
 
6981
7175
  /**
6982
- * All translations for the entry, identified by IETF language tag (BCP47).
7176
+ * The default value of an entry. Used as a fallback if no value is found in `list`.
6983
7177
  */
6984
- src?: PublicationRefs
7178
+ default: number
7179
+ }
6985
7180
 
7181
+ export interface SelectOptionsFixedAdventurePointsValueMapping<Identifier> {
6986
7182
  /**
6987
- * All translations for the entry, identified by IETF language tag (BCP47).
7183
+ * The entry’s identifier.
6988
7184
  */
6989
- translations?: {
6990
- [localeId: string]: ExplicitCombatTechniqueSelectOptionTranslation
7185
+ id: Identifier
7186
+
7187
+ /**
7188
+ * The AP value for the specified entry.
7189
+ */
7190
+ ap_value: number
7191
+ }
7192
+
7193
+ export interface GenericSkillsSelectOptionCategoryCategory<Ref> {
7194
+ /**
7195
+ * Only include (`Intersection`) or exclude (`Difference`) specific entries.
7196
+ */
7197
+ specific?: SpecificFromSkillSelectOptionCategoryCategory<Ref>
7198
+
7199
+ /**
7200
+ * Generate prerequisites for each entry of the category.
7201
+ */
7202
+ prerequisites?: SkillSelectOptionCategoryPrerequisite[]
7203
+ }
7204
+
7205
+ export type SkillishIdentifier =
7206
+ | {
7207
+ kind: "Skill"
7208
+ Skill: Skill_ID
7209
+ }
7210
+ | {
7211
+ kind: "Spell"
7212
+ Spell: Spell_ID
7213
+ }
7214
+ | {
7215
+ kind: "Ritual"
7216
+ Ritual: Ritual_ID
7217
+ }
7218
+ | {
7219
+ kind: "LiturgicalChant"
7220
+ LiturgicalChant: LiturgicalChant_ID
6991
7221
  }
7222
+ | {
7223
+ kind: "Ceremony"
7224
+ Ceremony: Ceremony_ID
7225
+ }
7226
+
7227
+ export interface CombatTechniquesSelectOptionCategory {
7228
+ /**
7229
+ * A list of combat technique categories.
7230
+ */
7231
+ categories: CombatTechniquesSelectOptionCategoryCategory[]
7232
+
7233
+ /**
7234
+ * Generate binding cost values for each entry.
7235
+ *
7236
+ * *Note: This only works if the entry it is defined on supports binding costs, i.e. is a tradition artifact enchantment.*
7237
+ */
7238
+ bindingCost?: SelectOptionsBindingCostValue<CombatTechniqueIdentifier>
7239
+
7240
+ /**
7241
+ * Generate AP values for each entry.
7242
+ */
7243
+ ap_value?: SelectOptionsAdventurePointsValue<CombatTechniqueIdentifier>
6992
7244
  }
6993
7245
 
6994
- export interface ExplicitCombatTechniqueSelectOptionTranslation {
6995
- errata?: Errata
7246
+ export type CombatTechniquesSelectOptionCategoryCategory =
7247
+ | {
7248
+ kind: "CloseCombatTechniques"
7249
+ CloseCombatTechniques: GenericSkillsSelectOptionCategoryCategory<CloseCombatTechnique_ID>
7250
+ }
7251
+ | {
7252
+ kind: "RangedCombatTechniques"
7253
+ RangedCombatTechniques: GenericSkillsSelectOptionCategoryCategory<RangedCombatTechnique_ID>
7254
+ }
7255
+
7256
+ /**
7257
+ * Generate binding cost for each entry.
7258
+ */
7259
+ export type SelectOptionsBindingCostValue<Identifier> =
7260
+ | {
7261
+ kind: "Fixed"
7262
+ Fixed: SelectOptionsFixedBindingCostValue<Identifier>
7263
+ }
7264
+
7265
+ export interface SelectOptionsFixedBindingCostValue<Identifier> {
7266
+ /**
7267
+ * A mapping of skill identifiers to their specific binding cost values.
7268
+ */
7269
+ map: SelectOptionsFixedBindingCostValueMapping<Identifier>[]
7270
+
7271
+ /**
7272
+ * The default value of an entry. Used as a fallback if no value is found in `list`.
7273
+ */
7274
+ default: number
7275
+ }
7276
+
7277
+ export interface SelectOptionsFixedBindingCostValueMapping<Identifier> {
7278
+ /**
7279
+ * The entry’s identifier.
7280
+ */
7281
+ id: Identifier
7282
+
7283
+ /**
7284
+ * The binding cost for the specified entry.
7285
+ */
7286
+ bindingCost: number
7287
+ }
7288
+
7289
+ export interface TargetCategoriesSelectOptionCategory {
7290
+ /**
7291
+ * A list of target categories.
7292
+ */
7293
+ list: SpecificTargetCategory[]
7294
+ }
7295
+
7296
+ export interface SpecificTargetCategory {
7297
+ /**
7298
+ * The target category’s identifier.
7299
+ */
7300
+ id: TargetCategory_ID
7301
+
7302
+ /**
7303
+ * The volume for this specific selection.
7304
+ */
7305
+ volume?: number
6996
7306
  }
6997
7307
 
6998
7308
  export type TradeSecretAdventurePointsValue =
@@ -7737,6 +8047,7 @@ export interface ProfessionPackageOptions {
7737
8047
  curses?: CursesOptions
7738
8048
  terrain_knowledge?: TerrainKnowledgeOptions
7739
8049
  skills?: SkillsOptions
8050
+ liturgies?: LiturgiesOptions
7740
8051
  }
7741
8052
 
7742
8053
  /**
@@ -8043,6 +8354,16 @@ export interface SkillsOptions {
8043
8354
  ap_value: number
8044
8355
  }
8045
8356
 
8357
+ /**
8358
+ * Buy liturgical chants and ceremonies for a specific amount of AP.
8359
+ */
8360
+ export interface LiturgiesOptions {
8361
+ /**
8362
+ * The AP value you can buy liturgical chants and ceremonies for.
8363
+ */
8364
+ ap_value: number
8365
+ }
8366
+
8046
8367
  export type ProfessionSpecialAbility =
8047
8368
  | {
8048
8369
  kind: "Constant"
@@ -9205,7 +9526,7 @@ export interface BindingCostMapOption {
9205
9526
  /**
9206
9527
  * All translations for the entry, identified by IETF language tag (BCP47).
9207
9528
  */
9208
- translations?: {
9529
+ translations: {
9209
9530
  [localeId: string]: BindingCostMapOptionTranslation
9210
9531
  }
9211
9532
  }
@@ -9226,7 +9547,26 @@ export interface BindingCostDerivedFromSelection {
9226
9547
  /**
9227
9548
  * The binding cost for the selection if it does not define a specific one.
9228
9549
  */
9229
- fallback: number
9550
+ fallback: number
9551
+
9552
+ /**
9553
+ * All translations for the entry, identified by IETF language tag (BCP47).
9554
+ */
9555
+ translations?: {
9556
+ [localeId: string]: BindingCostDerivedFromSelectionTranslation
9557
+ }
9558
+ }
9559
+
9560
+ export interface BindingCostDerivedFromSelectionTranslation {
9561
+ /**
9562
+ * Place a string between the `for` and the grouped option names.
9563
+ */
9564
+ listPrepend?: string
9565
+
9566
+ /**
9567
+ * A replacement for the generated text if it would not match the original one.
9568
+ */
9569
+ replacement?: string
9230
9570
  }
9231
9571
 
9232
9572
  /**
@@ -15373,7 +15713,7 @@ export interface MagicalSkillRating {
15373
15713
  /**
15374
15714
  * The rating bonus provided for the (selected) magical skill. If used in a profession variant, it can also be used to lower the bonus of the base profession.
15375
15715
  *
15376
- * **Note:** This is a rating *bonus*, so it will be *added* to the default value of 6.
15716
+ * **Note:** If due to a variant a spell rating is lowered to 0, the spell is considered deactivated. Both setting the value for a spell and deactivating it by setting it to 0 takes into account the additional activation cost for spells.
15377
15717
  */
15378
15718
  rating_modifier: number
15379
15719
  }
@@ -17124,7 +17464,7 @@ export interface LiturgicalChantRating {
17124
17464
  /**
17125
17465
  * The rating bonus provided for the selected liturgical chant. If used in a profession variant, it can also be used to lower the bonus of the base profession.
17126
17466
  *
17127
- * **Note:** This is a rating *bonus*, so it will be *added* to the default value of 6.
17467
+ * **Note:** If due to a variant a liturgical chant rating is lowered to 0, the liturgical chant is considered deactivated. Both setting the value for a liturgical chant and deactivating it by setting it to 0 takes into account the additional activation cost for liturgical chants.
17128
17468
  */
17129
17469
  rating_modifier: number
17130
17470
  }
@@ -17226,6 +17566,7 @@ export interface ProfessionVariantPackageOptions {
17226
17566
  curses?: VariantOptionAction<CursesOptions>
17227
17567
  terrain_knowledge?: VariantOptionAction<TerrainKnowledgeOptions>
17228
17568
  skills?: VariantOptionAction<SkillsOptions>
17569
+ liturgies?: VariantOptionAction<LiturgiesOptions>
17229
17570
  }
17230
17571
 
17231
17572
  export type VariantOptionAction<T> =
@@ -17939,257 +18280,6 @@ export type AdvantageDisadvantagePrerequisiteGroup =
17939
18280
  SexualCharacteristic: SexualCharacteristicPrerequisite
17940
18281
  }
17941
18282
 
17942
- export interface SkillsSelectOptionCategory {
17943
- /**
17944
- * A list of skill categories.
17945
- */
17946
- categories: SkillsSelectOptionCategoryCategory[]
17947
-
17948
- /**
17949
- * Generate AP values for each entry.
17950
- */
17951
- ap_value?: SelectOptionsAdventurePointsValue<SkillishIdentifier>
17952
- }
17953
-
17954
- export type SkillsSelectOptionCategoryCategory =
17955
- | {
17956
- kind: "Skills"
17957
- Skills: SkillSelectOptionCategoryCategory
17958
- }
17959
- | {
17960
- kind: "Spells"
17961
- Spells: GenericSkillsSelectOptionCategoryCategory<Spell_ID>
17962
- }
17963
- | {
17964
- kind: "Rituals"
17965
- Rituals: GenericSkillsSelectOptionCategoryCategory<Ritual_ID>
17966
- }
17967
- | {
17968
- kind: "LiturgicalChants"
17969
- LiturgicalChants: GenericSkillsSelectOptionCategoryCategory<LiturgicalChant_ID>
17970
- }
17971
- | {
17972
- kind: "Ceremonies"
17973
- Ceremonies: GenericSkillsSelectOptionCategoryCategory<Ceremony_ID>
17974
- }
17975
-
17976
- export interface SkillSelectOptionCategoryCategory {
17977
- /**
17978
- * Only include entries of the specified groups.
17979
- */
17980
- groups?: SkillGroup_ID[]
17981
-
17982
- /**
17983
- * Only include or exclude specific skills.
17984
- */
17985
- specific?: SpecificFromSkillSelectOptionCategoryCategory<Skill_ID>
17986
-
17987
- /**
17988
- * Registers new applications, which get enabled once this entry is activated with its respective select option. It specifies an entry-unique identifier, the skill it belongs to is derived from the select option automatically. A translation can be left out if its name equals the name of the origin entry.
17989
- */
17990
- skill_applications?: SkillApplicationOrUse[]
17991
-
17992
- /**
17993
- * Registers uses, which get enabled once this entry is activated with its respective select option. It specifies an entry-unique identifier, the skill it belongs to is derived from the select option automatically. A translation can be left out if its name equals the name of the origin entry.
17994
- */
17995
- skill_uses?: SkillApplicationOrUse[]
17996
-
17997
- /**
17998
- * Generate prerequisites for each entry of the category.
17999
- */
18000
- prerequisites?: SkillSelectOptionCategoryPrerequisite[]
18001
-
18002
- /**
18003
- * Generate AP values for each entry.
18004
- */
18005
- ap_value?: SelectOptionsAdventurePointsValue<Skill_ID>
18006
- }
18007
-
18008
- export interface SpecificFromSkillSelectOptionCategoryCategory<Ref> {
18009
- operation: SpecificFromSkillSelectOptionCategoryCategoryOperation
18010
-
18011
- /**
18012
- * The list of specific entries.
18013
- */
18014
- list: Ref[]
18015
- }
18016
-
18017
- /**
18018
- * Only include (`Intersection`) or exclude (`Difference`) specific entries.
18019
- */
18020
- export type SpecificFromSkillSelectOptionCategoryCategoryOperation =
18021
- | {
18022
- kind: "Intersection"
18023
- }
18024
- | {
18025
- kind: "Difference"
18026
- }
18027
-
18028
- export interface SkillApplicationOrUse {
18029
- /**
18030
- * The application’s or use’s identifier. An entry-unique, increasing integer.
18031
- */
18032
- id: number
18033
-
18034
- /**
18035
- * All translations for the entry, identified by IETF language tag (BCP47).
18036
- */
18037
- translations?: {
18038
- [localeId: string]: SkillApplicationOrUseTranslation
18039
- }
18040
- }
18041
-
18042
- export interface SkillApplicationOrUseTranslation {
18043
- /**
18044
- * The name of the application or use if different from the activatable entry’s name.
18045
- */
18046
- name: string
18047
- }
18048
-
18049
- export type SkillSelectOptionCategoryPrerequisite =
18050
- | {
18051
- kind: "Self"
18052
- Self: SelfPrerequisite
18053
- }
18054
- | {
18055
- kind: "SelectOption"
18056
- SelectOption: OptionPrerequisite
18057
- }
18058
-
18059
- export interface SelfPrerequisite {
18060
- /**
18061
- * The entry requires itself on a certain Skill Rating.
18062
- */
18063
- value: number
18064
- }
18065
-
18066
- /**
18067
- * Generate AP values for each entry.
18068
- */
18069
- export type SelectOptionsAdventurePointsValue<Identifier> =
18070
- | {
18071
- kind: "DerivedFromImprovementCost"
18072
- DerivedFromImprovementCost: SelectOptionsDeriveAdventurePointsValueFromImprovementCost
18073
- }
18074
- | {
18075
- kind: "Fixed"
18076
- Fixed: SelectOptionsFixedAdventurePointsValue<Identifier>
18077
- }
18078
-
18079
- /**
18080
- * Derive the cost from the improvement cost of each entry. The AP value is calculated by multiplying the improvement cost with `multiplier` and then adding `offset`.
18081
- */
18082
- export interface SelectOptionsDeriveAdventurePointsValueFromImprovementCost {
18083
- /**
18084
- * This number is multiplied with the improvement cost of the entry (A = 1 to D = 4).
18085
- */
18086
- multiplier?: number
18087
-
18088
- /**
18089
- * This number is added to the multiplied improvement cost of the entry.
18090
- */
18091
- offset?: number
18092
- }
18093
-
18094
- export interface SelectOptionsFixedAdventurePointsValue<Identifier> {
18095
- /**
18096
- * A mapping of skill identifiers to their specific AP values.
18097
- */
18098
- map: SelectOptionsFixedAdventurePointsValueMapping<Identifier>[]
18099
-
18100
- /**
18101
- * The default value of an entry. Used as a fallback if no value is found in `list`.
18102
- */
18103
- default: number
18104
- }
18105
-
18106
- export interface SelectOptionsFixedAdventurePointsValueMapping<Identifier> {
18107
- /**
18108
- * The entry’s identifier.
18109
- */
18110
- id: Identifier
18111
-
18112
- /**
18113
- * The AP value for the specified entry.
18114
- */
18115
- ap_value: number
18116
- }
18117
-
18118
- export interface GenericSkillsSelectOptionCategoryCategory<Ref> {
18119
- /**
18120
- * Only include (`Intersection`) or exclude (`Difference`) specific entries.
18121
- */
18122
- specific?: SpecificFromSkillSelectOptionCategoryCategory<Ref>
18123
-
18124
- /**
18125
- * Generate prerequisites for each entry of the category.
18126
- */
18127
- prerequisites?: SkillSelectOptionCategoryPrerequisite[]
18128
- }
18129
-
18130
- export type SkillishIdentifier =
18131
- | {
18132
- kind: "Skill"
18133
- Skill: Skill_ID
18134
- }
18135
- | {
18136
- kind: "Spell"
18137
- Spell: Spell_ID
18138
- }
18139
- | {
18140
- kind: "Ritual"
18141
- Ritual: Ritual_ID
18142
- }
18143
- | {
18144
- kind: "LiturgicalChant"
18145
- LiturgicalChant: LiturgicalChant_ID
18146
- }
18147
- | {
18148
- kind: "Ceremony"
18149
- Ceremony: Ceremony_ID
18150
- }
18151
-
18152
- export interface CombatTechniquesSelectOptionCategory {
18153
- /**
18154
- * A list of combat technique categories.
18155
- */
18156
- categories: CombatTechniquesSelectOptionCategoryCategory[]
18157
-
18158
- /**
18159
- * Generate AP values for each entry.
18160
- */
18161
- ap_value?: SelectOptionsAdventurePointsValue<CombatTechniqueIdentifier>
18162
- }
18163
-
18164
- export type CombatTechniquesSelectOptionCategoryCategory =
18165
- | {
18166
- kind: "CloseCombatTechniques"
18167
- CloseCombatTechniques: GenericSkillsSelectOptionCategoryCategory<CloseCombatTechnique_ID>
18168
- }
18169
- | {
18170
- kind: "RangedCombatTechniques"
18171
- RangedCombatTechniques: GenericSkillsSelectOptionCategoryCategory<RangedCombatTechnique_ID>
18172
- }
18173
-
18174
- export interface TargetCategoriesSelectOptionCategory {
18175
- /**
18176
- * A list of target categories.
18177
- */
18178
- list: SpecificTargetCategory[]
18179
- }
18180
-
18181
- export interface SpecificTargetCategory {
18182
- /**
18183
- * The target category’s identifier.
18184
- */
18185
- id: TargetCategory_ID
18186
-
18187
- /**
18188
- * The volume for this specific selection.
18189
- */
18190
- volume?: number
18191
- }
18192
-
18193
18283
  export interface AlternativeRule {
18194
18284
  /**
18195
18285
  * The player types this alternative rule is suitable for.