optolith-database-schema 0.26.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 (67) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/gen/types.d.ts +358 -294
  3. package/lib/types/Advantage.d.ts +11 -0
  4. package/lib/types/Disadvantage.d.ts +11 -0
  5. package/lib/types/HomunculusType.d.ts +6 -0
  6. package/lib/types/HomunculusType.js +15 -0
  7. package/lib/types/Profession.js +2 -2
  8. package/lib/types/_ActivatableAdventurePointsValue.d.ts +1 -0
  9. package/lib/types/_ActivatableAdventurePointsValue.js +4 -0
  10. package/lib/types/_ActivatableNonMundane.d.ts +10 -2
  11. package/lib/types/_ActivatableNonMundane.js +11 -1
  12. package/lib/types/_ActivatableSelectOptionCategory.d.ts +699 -0
  13. package/lib/types/_ActivatableSelectOptionCategory.js +73 -0
  14. package/lib/types/_ActivatableSelectOptions.d.ts +10 -0
  15. package/lib/types/specialAbility/AdvancedCombatSpecialAbility.d.ts +11 -0
  16. package/lib/types/specialAbility/AdvancedKarmaSpecialAbility.d.ts +11 -0
  17. package/lib/types/specialAbility/AdvancedMagicalSpecialAbility.d.ts +11 -0
  18. package/lib/types/specialAbility/AdvancedSkillSpecialAbility.d.ts +11 -0
  19. package/lib/types/specialAbility/AncestorGlyph.d.ts +11 -0
  20. package/lib/types/specialAbility/BlessedTradition.d.ts +11 -0
  21. package/lib/types/specialAbility/BrawlingSpecialAbility.d.ts +11 -0
  22. package/lib/types/specialAbility/CeremonialItemSpecialAbility.d.ts +11 -0
  23. package/lib/types/specialAbility/CombatSpecialAbility.d.ts +11 -0
  24. package/lib/types/specialAbility/CombatStyleSpecialAbility.d.ts +11 -0
  25. package/lib/types/specialAbility/CommandSpecialAbility.d.ts +11 -0
  26. package/lib/types/specialAbility/FamiliarSpecialAbility.d.ts +11 -0
  27. package/lib/types/specialAbility/FatePointSexSpecialAbility.d.ts +11 -0
  28. package/lib/types/specialAbility/FatePointSpecialAbility.d.ts +11 -0
  29. package/lib/types/specialAbility/GeneralSpecialAbility.d.ts +11 -0
  30. package/lib/types/specialAbility/KarmaSpecialAbility.d.ts +11 -0
  31. package/lib/types/specialAbility/LiturgicalStyleSpecialAbility.d.ts +11 -0
  32. package/lib/types/specialAbility/LycantropicGift.d.ts +11 -0
  33. package/lib/types/specialAbility/MagicStyleSpecialAbility.d.ts +11 -0
  34. package/lib/types/specialAbility/MagicalSpecialAbility.d.ts +11 -0
  35. package/lib/types/specialAbility/MagicalTradition.d.ts +11 -0
  36. package/lib/types/specialAbility/PactGift.d.ts +11 -0
  37. package/lib/types/specialAbility/ProtectiveWardingCircleSpecialAbility.d.ts +11 -0
  38. package/lib/types/specialAbility/Sermon.d.ts +11 -0
  39. package/lib/types/specialAbility/SexSpecialAbility.d.ts +11 -0
  40. package/lib/types/specialAbility/SikaryanDrainSpecialAbility.d.ts +11 -0
  41. package/lib/types/specialAbility/SkillStyleSpecialAbility.d.ts +11 -0
  42. package/lib/types/specialAbility/VampiricGift.d.ts +11 -0
  43. package/lib/types/specialAbility/Vision.d.ts +11 -0
  44. package/lib/types/specialAbility/sub/TradeSecret.d.ts +880 -161
  45. package/lib/types/specialAbility/sub/TradeSecret.js +9 -5
  46. package/lib/types/traditionArtifacts/ArcaneOrbEnchantment.d.ts +16 -1
  47. package/lib/types/traditionArtifacts/AttireEnchantment.d.ts +16 -1
  48. package/lib/types/traditionArtifacts/Beutelzauber.d.ts +16 -1
  49. package/lib/types/traditionArtifacts/BowlEnchantment.d.ts +16 -1
  50. package/lib/types/traditionArtifacts/CauldronEnchantment.d.ts +16 -1
  51. package/lib/types/traditionArtifacts/ChronicleEnchantment.d.ts +16 -1
  52. package/lib/types/traditionArtifacts/DaggerRitual.d.ts +16 -1
  53. package/lib/types/traditionArtifacts/FoolsHatEnchantment.d.ts +16 -1
  54. package/lib/types/traditionArtifacts/Haubenzauber.d.ts +16 -1
  55. package/lib/types/traditionArtifacts/InstrumentEnchantment.d.ts +16 -1
  56. package/lib/types/traditionArtifacts/Krallenkettenzauber.d.ts +16 -1
  57. package/lib/types/traditionArtifacts/Kristallkugelzauber.d.ts +16 -1
  58. package/lib/types/traditionArtifacts/OrbEnchantment.d.ts +16 -1
  59. package/lib/types/traditionArtifacts/RingEnchantment.d.ts +16 -1
  60. package/lib/types/traditionArtifacts/SickleRitual.d.ts +16 -1
  61. package/lib/types/traditionArtifacts/SpellSwordEnchantment.d.ts +16 -1
  62. package/lib/types/traditionArtifacts/StaffEnchantment.d.ts +16 -1
  63. package/lib/types/traditionArtifacts/ToyEnchantment.d.ts +16 -1
  64. package/lib/types/traditionArtifacts/Trinkhornzauber.d.ts +16 -1
  65. package/lib/types/traditionArtifacts/WandEnchantment.d.ts +16 -1
  66. package/lib/types/traditionArtifacts/WeaponEnchantment.d.ts +16 -1
  67. package/package.json +1 -1
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
@@ -5800,6 +5803,11 @@ export interface AdventurePointsDerivedFromSelection {
5800
5803
  }
5801
5804
 
5802
5805
  export interface AdventurePointsDerivedFromSelectionTranslation {
5806
+ /**
5807
+ * Place a string between the `for` and the grouped option names.
5808
+ */
5809
+ listPrepend?: string
5810
+
5803
5811
  /**
5804
5812
  * A replacement for the generated text if it would not match the original one.
5805
5813
  */
@@ -6863,6 +6871,13 @@ export interface TradeSecret {
6863
6871
  */
6864
6872
  select_options?: TradeSecretSelectOptions
6865
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
+
6866
6881
  /**
6867
6882
  * The trade secret’s adventure point value
6868
6883
  */
@@ -6899,6 +6914,11 @@ export interface TradeSecretTranslation {
6899
6914
  */
6900
6915
  name: string
6901
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
+
6902
6922
  /**
6903
6923
  * The description of the trade secret.
6904
6924
  */
@@ -6914,99 +6934,375 @@ export interface TradeSecretTranslation {
6914
6934
  */
6915
6935
  export interface TradeSecretSelectOptions {
6916
6936
  /**
6917
- * 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.
6918
6938
  */
6919
- explicit?: ExplicitSelectOption[]
6939
+ derived?: TradeSecretSelectOptionCategory
6920
6940
  }
6921
6941
 
6922
- export type ExplicitSelectOption =
6942
+ export type TradeSecretSelectOptionCategory =
6923
6943
  | {
6924
- kind: "General"
6925
- General: GeneralSelectOption_ID
6944
+ kind: "Blessings"
6926
6945
  }
6927
6946
  | {
6928
- kind: "Skill"
6929
- Skill: ExplicitSkillSelectOption
6947
+ kind: "Cantrips"
6930
6948
  }
6931
6949
  | {
6932
- kind: "CombatTechnique"
6933
- 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
6934
7015
  }
6935
7016
 
6936
- export interface ExplicitSkillSelectOption {
7017
+ export interface SkillsSelectOptionCategory {
6937
7018
  /**
6938
- * The skill’s identifier.
7019
+ * A list of skill categories.
6939
7020
  */
6940
- id: Skill_ID
7021
+ categories: SkillsSelectOptionCategoryCategory[]
6941
7022
 
6942
7023
  /**
6943
- * Prerequisites for the select option.
7024
+ * Generate AP values for each entry.
6944
7025
  */
6945
- prerequisites?: GeneralPrerequisites
7026
+ ap_value?: SelectOptionsAdventurePointsValue<SkillishIdentifier>
7027
+ }
6946
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 {
6947
7052
  /**
6948
- * 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.
6949
7054
  */
6950
- binding_cost?: number
7055
+ groups?: SkillGroup_ID[]
6951
7056
 
6952
7057
  /**
6953
- * Specific AP cost for the select option.
7058
+ * Only include or exclude specific skills.
6954
7059
  */
6955
- ap_value?: number
7060
+ specific?: SpecificFromSkillSelectOptionCategoryCategory<Skill_ID>
6956
7061
 
6957
7062
  /**
6958
- * 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.
6959
7064
  */
6960
- 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
6961
7108
 
6962
7109
  /**
6963
7110
  * All translations for the entry, identified by IETF language tag (BCP47).
6964
7111
  */
6965
7112
  translations?: {
6966
- [localeId: string]: ExplicitSkillSelectOptionTranslation
7113
+ [localeId: string]: SkillApplicationOrUseTranslation
6967
7114
  }
6968
7115
  }
6969
7116
 
6970
- export interface ExplicitSkillSelectOptionTranslation {
6971
- 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
6972
7122
  }
6973
7123
 
6974
- 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 {
6975
7135
  /**
6976
- * The combat technique’s identifier.
7136
+ * The entry requires itself on a certain Skill Rating.
6977
7137
  */
6978
- id: CombatTechniqueIdentifier
7138
+ value: number
7139
+ }
6979
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 {
6980
7158
  /**
6981
- * Prerequisites for the select option.
7159
+ * This number is multiplied with the improvement cost of the entry (A = 1 to D = 4).
6982
7160
  */
6983
- prerequisites?: GeneralPrerequisites
7161
+ multiplier?: number
6984
7162
 
6985
7163
  /**
6986
- * 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.
6987
7165
  */
6988
- binding_cost?: number
7166
+ offset?: number
7167
+ }
6989
7168
 
7169
+ export interface SelectOptionsFixedAdventurePointsValue<Identifier> {
6990
7170
  /**
6991
- * Specific AP cost for the select option.
7171
+ * A mapping of skill identifiers to their specific AP values.
6992
7172
  */
6993
- ap_value?: number
7173
+ map: SelectOptionsFixedAdventurePointsValueMapping<Identifier>[]
6994
7174
 
6995
7175
  /**
6996
- * 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`.
6997
7177
  */
6998
- src?: PublicationRefs
7178
+ default: number
7179
+ }
6999
7180
 
7181
+ export interface SelectOptionsFixedAdventurePointsValueMapping<Identifier> {
7000
7182
  /**
7001
- * All translations for the entry, identified by IETF language tag (BCP47).
7183
+ * The entry’s identifier.
7002
7184
  */
7003
- translations?: {
7004
- [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
7221
+ }
7222
+ | {
7223
+ kind: "Ceremony"
7224
+ Ceremony: Ceremony_ID
7005
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>
7006
7244
  }
7007
7245
 
7008
- export interface ExplicitCombatTechniqueSelectOptionTranslation {
7009
- 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
7010
7306
  }
7011
7307
 
7012
7308
  export type TradeSecretAdventurePointsValue =
@@ -9230,7 +9526,7 @@ export interface BindingCostMapOption {
9230
9526
  /**
9231
9527
  * All translations for the entry, identified by IETF language tag (BCP47).
9232
9528
  */
9233
- translations?: {
9529
+ translations: {
9234
9530
  [localeId: string]: BindingCostMapOptionTranslation
9235
9531
  }
9236
9532
  }
@@ -9251,7 +9547,26 @@ export interface BindingCostDerivedFromSelection {
9251
9547
  /**
9252
9548
  * The binding cost for the selection if it does not define a specific one.
9253
9549
  */
9254
- 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
9255
9570
  }
9256
9571
 
9257
9572
  /**
@@ -15398,7 +15713,7 @@ export interface MagicalSkillRating {
15398
15713
  /**
15399
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.
15400
15715
  *
15401
- * **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.
15402
15717
  */
15403
15718
  rating_modifier: number
15404
15719
  }
@@ -17149,7 +17464,7 @@ export interface LiturgicalChantRating {
17149
17464
  /**
17150
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.
17151
17466
  *
17152
- * **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.
17153
17468
  */
17154
17469
  rating_modifier: number
17155
17470
  }
@@ -17965,257 +18280,6 @@ export type AdvantageDisadvantagePrerequisiteGroup =
17965
18280
  SexualCharacteristic: SexualCharacteristicPrerequisite
17966
18281
  }
17967
18282
 
17968
- export interface SkillsSelectOptionCategory {
17969
- /**
17970
- * A list of skill categories.
17971
- */
17972
- categories: SkillsSelectOptionCategoryCategory[]
17973
-
17974
- /**
17975
- * Generate AP values for each entry.
17976
- */
17977
- ap_value?: SelectOptionsAdventurePointsValue<SkillishIdentifier>
17978
- }
17979
-
17980
- export type SkillsSelectOptionCategoryCategory =
17981
- | {
17982
- kind: "Skills"
17983
- Skills: SkillSelectOptionCategoryCategory
17984
- }
17985
- | {
17986
- kind: "Spells"
17987
- Spells: GenericSkillsSelectOptionCategoryCategory<Spell_ID>
17988
- }
17989
- | {
17990
- kind: "Rituals"
17991
- Rituals: GenericSkillsSelectOptionCategoryCategory<Ritual_ID>
17992
- }
17993
- | {
17994
- kind: "LiturgicalChants"
17995
- LiturgicalChants: GenericSkillsSelectOptionCategoryCategory<LiturgicalChant_ID>
17996
- }
17997
- | {
17998
- kind: "Ceremonies"
17999
- Ceremonies: GenericSkillsSelectOptionCategoryCategory<Ceremony_ID>
18000
- }
18001
-
18002
- export interface SkillSelectOptionCategoryCategory {
18003
- /**
18004
- * Only include entries of the specified groups.
18005
- */
18006
- groups?: SkillGroup_ID[]
18007
-
18008
- /**
18009
- * Only include or exclude specific skills.
18010
- */
18011
- specific?: SpecificFromSkillSelectOptionCategoryCategory<Skill_ID>
18012
-
18013
- /**
18014
- * 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.
18015
- */
18016
- skill_applications?: SkillApplicationOrUse[]
18017
-
18018
- /**
18019
- * 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.
18020
- */
18021
- skill_uses?: SkillApplicationOrUse[]
18022
-
18023
- /**
18024
- * Generate prerequisites for each entry of the category.
18025
- */
18026
- prerequisites?: SkillSelectOptionCategoryPrerequisite[]
18027
-
18028
- /**
18029
- * Generate AP values for each entry.
18030
- */
18031
- ap_value?: SelectOptionsAdventurePointsValue<Skill_ID>
18032
- }
18033
-
18034
- export interface SpecificFromSkillSelectOptionCategoryCategory<Ref> {
18035
- operation: SpecificFromSkillSelectOptionCategoryCategoryOperation
18036
-
18037
- /**
18038
- * The list of specific entries.
18039
- */
18040
- list: Ref[]
18041
- }
18042
-
18043
- /**
18044
- * Only include (`Intersection`) or exclude (`Difference`) specific entries.
18045
- */
18046
- export type SpecificFromSkillSelectOptionCategoryCategoryOperation =
18047
- | {
18048
- kind: "Intersection"
18049
- }
18050
- | {
18051
- kind: "Difference"
18052
- }
18053
-
18054
- export interface SkillApplicationOrUse {
18055
- /**
18056
- * The application’s or use’s identifier. An entry-unique, increasing integer.
18057
- */
18058
- id: number
18059
-
18060
- /**
18061
- * All translations for the entry, identified by IETF language tag (BCP47).
18062
- */
18063
- translations?: {
18064
- [localeId: string]: SkillApplicationOrUseTranslation
18065
- }
18066
- }
18067
-
18068
- export interface SkillApplicationOrUseTranslation {
18069
- /**
18070
- * The name of the application or use if different from the activatable entry’s name.
18071
- */
18072
- name: string
18073
- }
18074
-
18075
- export type SkillSelectOptionCategoryPrerequisite =
18076
- | {
18077
- kind: "Self"
18078
- Self: SelfPrerequisite
18079
- }
18080
- | {
18081
- kind: "SelectOption"
18082
- SelectOption: OptionPrerequisite
18083
- }
18084
-
18085
- export interface SelfPrerequisite {
18086
- /**
18087
- * The entry requires itself on a certain Skill Rating.
18088
- */
18089
- value: number
18090
- }
18091
-
18092
- /**
18093
- * Generate AP values for each entry.
18094
- */
18095
- export type SelectOptionsAdventurePointsValue<Identifier> =
18096
- | {
18097
- kind: "DerivedFromImprovementCost"
18098
- DerivedFromImprovementCost: SelectOptionsDeriveAdventurePointsValueFromImprovementCost
18099
- }
18100
- | {
18101
- kind: "Fixed"
18102
- Fixed: SelectOptionsFixedAdventurePointsValue<Identifier>
18103
- }
18104
-
18105
- /**
18106
- * 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`.
18107
- */
18108
- export interface SelectOptionsDeriveAdventurePointsValueFromImprovementCost {
18109
- /**
18110
- * This number is multiplied with the improvement cost of the entry (A = 1 to D = 4).
18111
- */
18112
- multiplier?: number
18113
-
18114
- /**
18115
- * This number is added to the multiplied improvement cost of the entry.
18116
- */
18117
- offset?: number
18118
- }
18119
-
18120
- export interface SelectOptionsFixedAdventurePointsValue<Identifier> {
18121
- /**
18122
- * A mapping of skill identifiers to their specific AP values.
18123
- */
18124
- map: SelectOptionsFixedAdventurePointsValueMapping<Identifier>[]
18125
-
18126
- /**
18127
- * The default value of an entry. Used as a fallback if no value is found in `list`.
18128
- */
18129
- default: number
18130
- }
18131
-
18132
- export interface SelectOptionsFixedAdventurePointsValueMapping<Identifier> {
18133
- /**
18134
- * The entry’s identifier.
18135
- */
18136
- id: Identifier
18137
-
18138
- /**
18139
- * The AP value for the specified entry.
18140
- */
18141
- ap_value: number
18142
- }
18143
-
18144
- export interface GenericSkillsSelectOptionCategoryCategory<Ref> {
18145
- /**
18146
- * Only include (`Intersection`) or exclude (`Difference`) specific entries.
18147
- */
18148
- specific?: SpecificFromSkillSelectOptionCategoryCategory<Ref>
18149
-
18150
- /**
18151
- * Generate prerequisites for each entry of the category.
18152
- */
18153
- prerequisites?: SkillSelectOptionCategoryPrerequisite[]
18154
- }
18155
-
18156
- export type SkillishIdentifier =
18157
- | {
18158
- kind: "Skill"
18159
- Skill: Skill_ID
18160
- }
18161
- | {
18162
- kind: "Spell"
18163
- Spell: Spell_ID
18164
- }
18165
- | {
18166
- kind: "Ritual"
18167
- Ritual: Ritual_ID
18168
- }
18169
- | {
18170
- kind: "LiturgicalChant"
18171
- LiturgicalChant: LiturgicalChant_ID
18172
- }
18173
- | {
18174
- kind: "Ceremony"
18175
- Ceremony: Ceremony_ID
18176
- }
18177
-
18178
- export interface CombatTechniquesSelectOptionCategory {
18179
- /**
18180
- * A list of combat technique categories.
18181
- */
18182
- categories: CombatTechniquesSelectOptionCategoryCategory[]
18183
-
18184
- /**
18185
- * Generate AP values for each entry.
18186
- */
18187
- ap_value?: SelectOptionsAdventurePointsValue<CombatTechniqueIdentifier>
18188
- }
18189
-
18190
- export type CombatTechniquesSelectOptionCategoryCategory =
18191
- | {
18192
- kind: "CloseCombatTechniques"
18193
- CloseCombatTechniques: GenericSkillsSelectOptionCategoryCategory<CloseCombatTechnique_ID>
18194
- }
18195
- | {
18196
- kind: "RangedCombatTechniques"
18197
- RangedCombatTechniques: GenericSkillsSelectOptionCategoryCategory<RangedCombatTechnique_ID>
18198
- }
18199
-
18200
- export interface TargetCategoriesSelectOptionCategory {
18201
- /**
18202
- * A list of target categories.
18203
- */
18204
- list: SpecificTargetCategory[]
18205
- }
18206
-
18207
- export interface SpecificTargetCategory {
18208
- /**
18209
- * The target category’s identifier.
18210
- */
18211
- id: TargetCategory_ID
18212
-
18213
- /**
18214
- * The volume for this specific selection.
18215
- */
18216
- volume?: number
18217
- }
18218
-
18219
18283
  export interface AlternativeRule {
18220
18284
  /**
18221
18285
  * The player types this alternative rule is suitable for.