@optolith/database-schema 0.99.0 → 0.100.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 (36) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/gen/types.d.ts +541 -113
  3. package/lib/main.js +1 -0
  4. package/lib/types/Locale.d.ts +3 -0
  5. package/lib/types/Locale.js +3 -0
  6. package/lib/types/Profession.d.ts +21 -0
  7. package/lib/types/Profession.js +20 -0
  8. package/lib/types/_ActivatableAdvanced.d.ts +28 -0
  9. package/lib/types/_ActivatableAdvanced.js +57 -1
  10. package/lib/types/_ActivatableCombat.d.ts +43 -39
  11. package/lib/types/_ActivatableCombat.js +66 -72
  12. package/lib/types/_Identifier.d.ts +1 -0
  13. package/lib/types/_Identifier.js +2 -0
  14. package/lib/types/_IdentifierGroup.d.ts +1 -0
  15. package/lib/types/_IdentifierGroup.js +2 -1
  16. package/lib/types/equipment/EquipmentPackage.d.ts +1 -0
  17. package/lib/types/equipment/item/ItemComponent.d.ts +127 -0
  18. package/lib/types/equipment/item/ItemComponent.js +313 -0
  19. package/lib/types/index.d.ts +1 -0
  20. package/lib/types/index.js +1 -0
  21. package/lib/types/prerequisites/PrerequisiteGroups.d.ts +61 -5
  22. package/lib/types/prerequisites/PrerequisiteGroups.js +4 -1
  23. package/lib/types/prerequisites/single/RatedMinimumNumberPrerequisite.js +2 -2
  24. package/lib/types/prerequisites/single/RatedMinimumNumberPrerequisiteForProfession.d.ts +150 -0
  25. package/lib/types/prerequisites/single/RatedMinimumNumberPrerequisiteForProfession.js +53 -0
  26. package/lib/types/specialAbility/AdvancedCombatSpecialAbility.d.ts +40 -39
  27. package/lib/types/specialAbility/BrawlingSpecialAbility.d.ts +40 -39
  28. package/lib/types/specialAbility/CombatSpecialAbility.d.ts +40 -39
  29. package/lib/types/specialAbility/CombatStyleSpecialAbility.d.ts +68 -39
  30. package/lib/types/specialAbility/CommandSpecialAbility.d.ts +40 -39
  31. package/lib/types/specialAbility/LiturgicalStyleSpecialAbility.d.ts +28 -0
  32. package/lib/types/specialAbility/MagicStyleSpecialAbility.d.ts +28 -0
  33. package/lib/types/specialAbility/MagicalTradition.d.ts +1 -0
  34. package/lib/types/specialAbility/MagicalTradition.js +5 -1
  35. package/lib/types/specialAbility/SkillStyleSpecialAbility.d.ts +28 -0
  36. package/package.json +1 -1
package/gen/types.d.ts CHANGED
@@ -95,6 +95,8 @@ export type EntityMap = {
95
95
  Influence: Influence
96
96
  InstrumentEnchantment: InstrumentEnchantment
97
97
  Item: Item
98
+ ItemComponent: ItemComponent
99
+ ItemComponentOption: ItemComponentOption
98
100
  JesterTrick: JesterTrick
99
101
  Jewelry: Jewelry
100
102
  KarmaSpecialAbility: KarmaSpecialAbility
@@ -204,6 +206,7 @@ export type ChildEntityMap = {
204
206
  BotanicRegion: [BotanicRegion, "parent", BotanicRegion["parent"]]
205
207
  Enhancement: [Enhancement, "parent", Enhancement["parent"]]
206
208
  GeneralSelectOption: [GeneralSelectOption, "parent", GeneralSelectOption["parent"]]
209
+ ItemComponentOption: [ItemComponentOption, "parent", ItemComponentOption["parent"]]
207
210
  LanguageSpecialization: [LanguageSpecialization, "parent", LanguageSpecialization["parent"]]
208
211
  LessonPackage: [LessonPackage, "curriculum", LessonPackage["curriculum"]]
209
212
  MagicalRuneOption: [MagicalRuneOption, "parent", MagicalRuneOption["parent"]]
@@ -227,6 +230,7 @@ export type EnumMap = {
227
230
  ActivatableSkillEffect: ActivatableSkillEffect
228
231
  AdvancedSkillStyleSpecialAbilityIdentifier: AdvancedSkillStyleSpecialAbilityIdentifier
229
232
  AdvancedSpecialAbility: AdvancedSpecialAbility<unknown>
233
+ AdvancedSpecialAbilityByOptionMappingRule: AdvancedSpecialAbilityByOptionMappingRule<unknown>
230
234
  AdvancedSpecialAbilityRestrictedOptionIdentifier: AdvancedSpecialAbilityRestrictedOptionIdentifier
231
235
  AdvantageDisadvantagePrerequisiteGroup: AdvantageDisadvantagePrerequisiteGroup
232
236
  AdvantageDisadvantageSubtype: AdvantageDisadvantageSubtype
@@ -243,11 +247,11 @@ export type EnumMap = {
243
247
  AnimistPowerImprovementCost: AnimistPowerImprovementCost
244
248
  AnimistPowerPerformanceParameters: AnimistPowerPerformanceParameters
245
249
  AnimistPowerPrerequisiteGroup: AnimistPowerPrerequisiteGroup
246
- ApplicableAllCombatTechniquesRestriction: ApplicableAllCombatTechniquesRestriction
247
- ApplicableCloseCombatTechniquesRestriction: ApplicableCloseCombatTechniquesRestriction
250
+ ApplicableAmmunitionCategory: ApplicableAmmunitionCategory
251
+ ApplicableArmorCategory: ApplicableArmorCategory
248
252
  ApplicableCombatTechniques: ApplicableCombatTechniques
249
- ApplicableRangedCombatTechniquesRestriction: ApplicableRangedCombatTechniquesRestriction
250
- ApplicableSpecificCombatTechniquesRestriction: ApplicableSpecificCombatTechniquesRestriction
253
+ ApplicableItems: ApplicableItems
254
+ ApplicableMeleeWeaponCategory: ApplicableMeleeWeaponCategory
251
255
  ApplicationCategory: ApplicationCategory
252
256
  ArcaneEnergyCost: ArcaneEnergyCost
253
257
  ArcaneEnergyCostByLevelStyle: ArcaneEnergyCostByLevelStyle
@@ -357,6 +361,7 @@ export type EnumMap = {
357
361
  IndefiniteArcaneEnergyCostModifierArithmetic: IndefiniteArcaneEnergyCostModifierArithmetic
358
362
  InfluencePrerequisiteGroup: InfluencePrerequisiteGroup
359
363
  IntoxicantAddictionWithdrawalPreventionInterval: IntoxicantAddictionWithdrawalPreventionInterval
364
+ ItemComponentCost: ItemComponentCost
360
365
  JesterTrickDuration: JesterTrickDuration
361
366
  JesterTrickRange: JesterTrickRange
362
367
  KnownItemAge: KnownItemAge
@@ -383,6 +388,7 @@ export type EnumMap = {
383
388
  MathOperation: MathOperation<unknown>
384
389
  MaximumIndefiniteCurseDuration: MaximumIndefiniteCurseDuration
385
390
  MaximumIndefiniteDominationRitualDuration: MaximumIndefiniteDominationRitualDuration
391
+ MeleeWeaponClass: MeleeWeaponClass
386
392
  MundaneBookType: MundaneBookType
387
393
  MundaneCommonProfessionConstraint: MundaneCommonProfessionConstraint
388
394
  MundaneProfessionGroup: MundaneProfessionGroup
@@ -433,7 +439,9 @@ export type EnumMap = {
433
439
  Rarity: Rarity
434
440
  RatedIdentifier: RatedIdentifier
435
441
  RatedMinimumNumberPrerequisiteCombatTechniquesTargetGroup: RatedMinimumNumberPrerequisiteCombatTechniquesTargetGroup
442
+ RatedMinimumNumberPrerequisiteSpellworksTargetForProfession: RatedMinimumNumberPrerequisiteSpellworksTargetForProfession
436
443
  RatedMinimumNumberPrerequisiteTarget: RatedMinimumNumberPrerequisiteTarget
444
+ RatedMinimumNumberPrerequisiteTargetForProfession: RatedMinimumNumberPrerequisiteTargetForProfession
437
445
  RecipeComplexity: RecipeComplexity
438
446
  ReferenceListNodeImprovementCostSourceTarget: ReferenceListNodeImprovementCostSourceTarget
439
447
  ReferenceListNodeSource: ReferenceListNodeSource
@@ -503,6 +511,8 @@ export type TypeAliasMap = {
503
511
  ActivatableSkillEffectForEachTwoQualityLevels: ActivatableSkillEffectForEachTwoQualityLevels
504
512
  ActivatableSkillPlainEffect: ActivatableSkillPlainEffect
505
513
  ActivationAndHalfIntervalArcaneEnergyCost: ActivationAndHalfIntervalArcaneEnergyCost
514
+ AdvancedSpecialAbilityByOption: AdvancedSpecialAbilityByOption<unknown>
515
+ AdvancedSpecialAbilityByOptionMapping: AdvancedSpecialAbilityByOptionMapping<unknown>
506
516
  AdvancedSpecialAbilityDerivedFromExternalOption: AdvancedSpecialAbilityDerivedFromExternalOption<unknown>
507
517
  AdvancedSpecialAbilityDerivedFromExternalOptionMapping: AdvancedSpecialAbilityDerivedFromExternalOptionMapping<unknown>
508
518
  AdvantageAnimalPower: AdvantageAnimalPower
@@ -536,9 +546,15 @@ export type TypeAliasMap = {
536
546
  AnimistPowerPrerequisite: AnimistPowerPrerequisite
537
547
  AnimistPowerPrerequisites: AnimistPowerPrerequisites
538
548
  AnySpecialAbilityOfGroupPrerequisite: AnySpecialAbilityOfGroupPrerequisite
539
- ApplicableCombatTechniquesLevelRestriction: ApplicableCombatTechniquesLevelRestriction
549
+ ApplicableAllCombatTechniquesRestrictions: ApplicableAllCombatTechniquesRestrictions
550
+ ApplicableAmmunition: ApplicableAmmunition
551
+ ApplicableArmor: ApplicableArmor
552
+ ApplicableCloseCombatTechniquesRestrictions: ApplicableCloseCombatTechniquesRestrictions
540
553
  ApplicableCombatTechniquesNegativeCombatTechniquesRestriction: ApplicableCombatTechniquesNegativeCombatTechniquesRestriction<unknown>
541
- ApplicableCombatTechniquesRaceRestriction: ApplicableCombatTechniquesRaceRestriction
554
+ ApplicableMeleeWeapons: ApplicableMeleeWeapons
555
+ ApplicableRangedCombatTechniquesRestrictions: ApplicableRangedCombatTechniquesRestrictions
556
+ ApplicableRangedWeapons: ApplicableRangedWeapons
557
+ ApplicableSpecificCombatTechniquesRestrictions: ApplicableSpecificCombatTechniquesRestrictions
542
558
  Applications: Applications
543
559
  ArcaneBardTraditionReference: ArcaneBardTraditionReference
544
560
  ArcaneDancerTraditionReference: ArcaneDancerTraditionReference
@@ -750,6 +766,9 @@ export type TypeAliasMap = {
750
766
  IntoxicantAddictionWithdrawalPrevention: IntoxicantAddictionWithdrawalPrevention
751
767
  IntoxicantLegality: IntoxicantLegality
752
768
  InvaluableCost: InvaluableCost
769
+ ItemComponentBaseItemModifications: ItemComponentBaseItemModifications
770
+ ItemComponentCostByCombatTechnique: ItemComponentCostByCombatTechnique
771
+ ItemComponentRules: ItemComponentRules
753
772
  JesterTrickCastingTime: JesterTrickCastingTime
754
773
  JesterTrickCost: JesterTrickCost
755
774
  JesterTrickPerformanceParameters: JesterTrickPerformanceParameters
@@ -769,6 +788,7 @@ export type TypeAliasMap = {
769
788
  LiturgyPrerequisites: LiturgyPrerequisites
770
789
  LiturgyTraditionWithAspects: LiturgyTraditionWithAspects
771
790
  LocaleMeasurementAdjustments: LocaleMeasurementAdjustments
791
+ LockAdventurePointsOption: LockAdventurePointsOption
772
792
  MagicalDancePerformanceParameters: MagicalDancePerformanceParameters
773
793
  MagicalMelodyPerformanceParameters: MagicalMelodyPerformanceParameters
774
794
  MagicalProfessionGroup: MagicalProfessionGroup
@@ -882,6 +902,7 @@ export type TypeAliasMap = {
882
902
  RangedWeapon: RangedWeapon
883
903
  RatedMinimumNumberPrerequisite: RatedMinimumNumberPrerequisite
884
904
  RatedMinimumNumberPrerequisiteCombatTechniquesTarget: RatedMinimumNumberPrerequisiteCombatTechniquesTarget
905
+ RatedMinimumNumberPrerequisiteForProfession: RatedMinimumNumberPrerequisiteForProfession
885
906
  RatedMinimumNumberPrerequisiteLiturgiesTarget: RatedMinimumNumberPrerequisiteLiturgiesTarget
886
907
  RatedMinimumNumberPrerequisiteSkillsTarget: RatedMinimumNumberPrerequisiteSkillsTarget
887
908
  RatedMinimumNumberPrerequisiteSpellworksTarget: RatedMinimumNumberPrerequisiteSpellworksTarget
@@ -2509,6 +2530,9 @@ export interface Locale {
2509
2530
  ".input {$count :number} {{{$count} more by primary patron}}": string & { __params: { "count": number } }
2510
2531
  "Patron": string
2511
2532
  ".input {$count :number} {{Here you can select {$count} fitting special abilities.}}": string & { __params: { "count": number } }
2533
+ ".input {$count :number} {{{$previousList} as well as {$count} advanced special abilities}}": string & { __params: { "count": number; "previousList": string } }
2534
+ ".input {$count :number} {{{$previousList} as well as {$count} advanced special abilities depending on {$option}}}": string & { __params: { "count": number; "previousList": string; "option": string } }
2535
+ ".input {$count :number} {{{$count} of the following list}}": string & { __params: { "count": number } }
2512
2536
  "corresponding combat style special ability": string
2513
2537
  "corresponding liturgical style special ability": string
2514
2538
  "corresponding magic style special ability": string
@@ -8757,6 +8781,11 @@ export interface MagicalTradition {
8757
8781
  */
8758
8782
  use_arcane_spellworks_from_tradition?: MagicalTradition_ID
8759
8783
 
8784
+ /**
8785
+ * If arcane spellworks with a specific property count as arcane spellworks of this tradition, this is the property’s reference.
8786
+ */
8787
+ use_arcane_spellworks_from_property?: Property_ID
8788
+
8760
8789
  /**
8761
8790
  * The influences for the tradition. Influences are enabled by Focus Rules.
8762
8791
  */
@@ -9802,7 +9831,7 @@ export type ProfessionPrerequisiteGroup =
9802
9831
  }
9803
9832
  | {
9804
9833
  kind: "RatedMinimumNumber"
9805
- RatedMinimumNumber: RatedMinimumNumberPrerequisite
9834
+ RatedMinimumNumber: RatedMinimumNumberPrerequisiteForProfession
9806
9835
  }
9807
9836
  | {
9808
9837
  kind: "Energy"
@@ -12406,29 +12435,16 @@ export type ApplicableCombatTechniques =
12406
12435
  }
12407
12436
 
12408
12437
  export interface AllApplicableCombatTechniques {
12409
- restriction?: ApplicableAllCombatTechniquesRestriction
12438
+ restrictions?: ApplicableAllCombatTechniquesRestrictions
12410
12439
  }
12411
12440
 
12412
- export type ApplicableAllCombatTechniquesRestriction =
12413
- | {
12414
- kind: "Improvised"
12415
- }
12416
- | {
12417
- kind: "PointedBlade"
12418
- }
12419
- | {
12420
- kind: "Mount"
12421
- }
12422
- | {
12423
- kind: "Race"
12424
- Race: ApplicableCombatTechniquesRaceRestriction
12425
- }
12426
- | {
12427
- kind: "ExcludeCombatTechniques"
12428
- ExcludeCombatTechniques: ApplicableCombatTechniquesNegativeCombatTechniquesRestriction<CombatTechniqueIdentifier>
12429
- }
12430
-
12431
- export type ApplicableCombatTechniquesRaceRestriction = Race_ID
12441
+ export interface ApplicableAllCombatTechniquesRestrictions {
12442
+ isImprovised?: boolean
12443
+ hasPointedBlade?: boolean
12444
+ whileMounted?: boolean
12445
+ race?: Race_ID
12446
+ excludeCombatTechniques?: ApplicableCombatTechniquesNegativeCombatTechniquesRestriction<CombatTechniqueIdentifier>
12447
+ }
12432
12448
 
12433
12449
  export interface ApplicableCombatTechniquesNegativeCombatTechniquesRestriction<Ref> {
12434
12450
  /**
@@ -12438,62 +12454,50 @@ export interface ApplicableCombatTechniquesNegativeCombatTechniquesRestriction<R
12438
12454
  }
12439
12455
 
12440
12456
  export interface AllApplicableCloseCombatTechniques {
12441
- restriction?: ApplicableCloseCombatTechniquesRestriction
12457
+ restrictions?: ApplicableCloseCombatTechniquesRestrictions
12442
12458
  }
12443
12459
 
12444
- export type ApplicableCloseCombatTechniquesRestriction =
12445
- | {
12446
- kind: "Improvised"
12447
- }
12448
- | {
12449
- kind: "PointedBlade"
12450
- }
12451
- | {
12452
- kind: "Mount"
12453
- }
12454
- | {
12455
- kind: "HasParry"
12456
- }
12457
- | {
12458
- kind: "OneHanded"
12459
- }
12460
- | {
12461
- kind: "TwoHanded"
12462
- }
12463
- | {
12464
- kind: "ParryingWeapon"
12465
- }
12466
- | {
12467
- kind: "Race"
12468
- Race: ApplicableCombatTechniquesRaceRestriction
12469
- }
12460
+ export interface ApplicableCloseCombatTechniquesRestrictions {
12461
+ isImprovised?: boolean
12462
+
12463
+ hasPointedBlade?: boolean
12464
+
12465
+ whileMounted?: boolean
12466
+
12467
+ hasParry?: boolean
12468
+
12469
+ isOneHanded?: boolean
12470
+
12471
+ isTwoHanded?: boolean
12472
+
12473
+ isParryingWeapon?: boolean
12474
+
12475
+ race?: Race_ID
12476
+
12477
+ /**
12478
+ * Only a class of melee weapon is allowed
12479
+ */
12480
+ weaponClass?: MeleeWeaponClass
12481
+
12482
+ excludeCombatTechniques?: ApplicableCombatTechniquesNegativeCombatTechniquesRestriction<CloseCombatTechnique_ID>
12483
+ }
12484
+
12485
+ export type MeleeWeaponClass =
12470
12486
  | {
12471
- kind: "ExcludeCombatTechniques"
12472
- ExcludeCombatTechniques: ApplicableCombatTechniquesNegativeCombatTechniquesRestriction<CloseCombatTechnique_ID>
12487
+ kind: "Axe"
12473
12488
  }
12474
12489
 
12475
12490
  export interface AllApplicableRangedCombatTechniques {
12476
- restriction?: ApplicableRangedCombatTechniquesRestriction
12491
+ restrictions?: ApplicableRangedCombatTechniquesRestrictions
12477
12492
  }
12478
12493
 
12479
- export type ApplicableRangedCombatTechniquesRestriction =
12480
- | {
12481
- kind: "Improvised"
12482
- }
12483
- | {
12484
- kind: "PointedBlade"
12485
- }
12486
- | {
12487
- kind: "Mount"
12488
- }
12489
- | {
12490
- kind: "Race"
12491
- Race: ApplicableCombatTechniquesRaceRestriction
12492
- }
12493
- | {
12494
- kind: "ExcludeCombatTechniques"
12495
- ExcludeCombatTechniques: ApplicableCombatTechniquesNegativeCombatTechniquesRestriction<RangedCombatTechnique_ID>
12496
- }
12494
+ export interface ApplicableRangedCombatTechniquesRestrictions {
12495
+ isImprovised?: boolean
12496
+ hasPointedBlade?: boolean
12497
+ whileMounted?: boolean
12498
+ race?: Race_ID
12499
+ excludeCombatTechniques?: ApplicableCombatTechniquesNegativeCombatTechniquesRestriction<RangedCombatTechnique_ID>
12500
+ }
12497
12501
 
12498
12502
  export interface SpecificApplicableCombatTechniques {
12499
12503
  list: SpecificApplicableCombatTechnique[]
@@ -12502,7 +12506,7 @@ export interface SpecificApplicableCombatTechniques {
12502
12506
  export interface SpecificApplicableCombatTechnique {
12503
12507
  id: CombatTechniqueIdentifier
12504
12508
 
12505
- restriction?: ApplicableSpecificCombatTechniquesRestriction
12509
+ restrictions?: ApplicableSpecificCombatTechniquesRestrictions
12506
12510
 
12507
12511
  /**
12508
12512
  * All translations for the entry, identified by IETF language tag (BCP47).
@@ -12519,38 +12523,26 @@ export interface SpecificApplicableCombatTechnique {
12519
12523
 
12520
12524
  export interface SpecificApplicableCombatTechniqueTranslation {
12521
12525
  /**
12522
- * The additional restriction of the combat technique.
12526
+ * The additional restriction(s) of the combat technique.
12523
12527
  */
12524
- restriction: string
12528
+ restrictions: string
12525
12529
  }
12526
12530
 
12527
- export type ApplicableSpecificCombatTechniquesRestriction =
12528
- | {
12529
- kind: "Improvised"
12530
- }
12531
- | {
12532
- kind: "PointedBlade"
12533
- }
12534
- | {
12535
- kind: "Mount"
12536
- }
12537
- | {
12538
- kind: "Race"
12539
- Race: ApplicableCombatTechniquesRaceRestriction
12540
- }
12541
- | {
12542
- kind: "Level"
12543
- Level: ApplicableCombatTechniquesLevelRestriction
12544
- }
12545
- | {
12546
- kind: "OneBluntSide"
12547
- }
12531
+ export interface ApplicableSpecificCombatTechniquesRestrictions {
12532
+ isImprovised?: boolean
12533
+
12534
+ hasPointedBlade?: boolean
12535
+
12536
+ whileMounted?: boolean
12537
+
12538
+ race?: Race_ID
12548
12539
 
12549
- export interface ApplicableCombatTechniquesLevelRestriction {
12550
12540
  /**
12551
12541
  * The combat special ability is only applicable on a certain level.
12552
12542
  */
12553
- level: number
12543
+ level?: number
12544
+
12545
+ hasOneBluntSide?: boolean
12554
12546
  }
12555
12547
 
12556
12548
  export interface Weapon {
@@ -14224,6 +14216,10 @@ export type AdvancedSpecialAbility<Identifier> =
14224
14216
  kind: "DeriveFromExternalOption"
14225
14217
  DeriveFromExternalOption: AdvancedSpecialAbilityDerivedFromExternalOption<Identifier>
14226
14218
  }
14219
+ | {
14220
+ kind: "ByOption"
14221
+ ByOption: AdvancedSpecialAbilityByOption<Identifier>
14222
+ }
14227
14223
  | {
14228
14224
  kind: "Any"
14229
14225
  }
@@ -14576,6 +14572,60 @@ export interface AttributeAnimalPower {
14576
14572
  value: number
14577
14573
  }
14578
14574
 
14575
+ export interface AdvancedSpecialAbilityByOption<Identifier> {
14576
+ /**
14577
+ * Map options from the external entry to allowed advanced special abilities.
14578
+ */
14579
+ map: AdvancedSpecialAbilityByOptionMapping<Identifier>[]
14580
+
14581
+ /**
14582
+ * One of the options counts all fallback options and should be sorted last in the list.
14583
+ */
14584
+ fallbackOption?: GeneralSelectOption_ID
14585
+
14586
+ /**
14587
+ * All translations for the entry, identified by IETF language tag (BCP47).
14588
+ */
14589
+ translations?: {
14590
+ [localeId: string]: AdvancedSpecialAbilityByOptionTranslation
14591
+ }
14592
+ }
14593
+
14594
+ export interface AdvancedSpecialAbilityByOptionTranslation {
14595
+ /**
14596
+ * How to label all options before listing each option with its advanced special ability/-ies.
14597
+ */
14598
+ label: string
14599
+ }
14600
+
14601
+ /**
14602
+ * Mapping from an option of this entry to an allowed advanced special ability.
14603
+ */
14604
+ export interface AdvancedSpecialAbilityByOptionMapping<Identifier> {
14605
+ /**
14606
+ * The select option’s identifier.
14607
+ */
14608
+ option: Patron_ID
14609
+
14610
+ /**
14611
+ * The advanced special ability’s identifier.
14612
+ */
14613
+ associatedAdvanced: AdvancedSpecialAbilityByOptionMappingRule<Identifier>
14614
+ }
14615
+
14616
+ /**
14617
+ * A reference to an advanced special ability.
14618
+ */
14619
+ export type AdvancedSpecialAbilityByOptionMappingRule<Identifier> =
14620
+ | {
14621
+ kind: "General"
14622
+ General: Identifier
14623
+ }
14624
+ | {
14625
+ kind: "OneOf"
14626
+ OneOf: OneOfAdvancedSpecialAbilityOptions<Identifier>
14627
+ }
14628
+
14579
14629
  export interface CommandSpecialAbility {
14580
14630
  /**
14581
14631
  * Number of available levels.
@@ -22197,7 +22247,7 @@ export interface CommonName {
22197
22247
  note?: string
22198
22248
  }
22199
22249
 
22200
- export interface RatedMinimumNumberPrerequisite {
22250
+ export interface RatedMinimumNumberPrerequisiteForProfession {
22201
22251
  /**
22202
22252
  * The minimum number of skills that need to be on the defined minimum skill rating.
22203
22253
  */
@@ -22211,12 +22261,12 @@ export interface RatedMinimumNumberPrerequisite {
22211
22261
  /**
22212
22262
  * The targets that contribute to satisfying the prerequisite.
22213
22263
  */
22214
- targets: RatedMinimumNumberPrerequisiteTarget
22264
+ targets: RatedMinimumNumberPrerequisiteTargetForProfession
22215
22265
 
22216
22266
  display_option?: DisplayOption
22217
22267
  }
22218
22268
 
22219
- export type RatedMinimumNumberPrerequisiteTarget =
22269
+ export type RatedMinimumNumberPrerequisiteTargetForProfession =
22220
22270
  | {
22221
22271
  kind: "Skills"
22222
22272
  Skills: RatedMinimumNumberPrerequisiteSkillsTarget
@@ -22227,7 +22277,7 @@ export type RatedMinimumNumberPrerequisiteTarget =
22227
22277
  }
22228
22278
  | {
22229
22279
  kind: "Spellworks"
22230
- Spellworks: RatedMinimumNumberPrerequisiteSpellworksTarget
22280
+ Spellworks: RatedMinimumNumberPrerequisiteSpellworksTargetForProfession
22231
22281
  }
22232
22282
  | {
22233
22283
  kind: "Liturgies"
@@ -22259,16 +22309,19 @@ export type RatedMinimumNumberPrerequisiteCombatTechniquesTargetGroup =
22259
22309
  kind: "Ranged"
22260
22310
  }
22261
22311
 
22262
- export interface RatedMinimumNumberPrerequisiteSpellworksTarget {
22263
- /**
22264
- * The skills that are taken into account for satisfying the prerequisite.
22265
- */
22266
- property: Property_ID
22267
- }
22312
+ export type RatedMinimumNumberPrerequisiteSpellworksTargetForProfession =
22313
+ | {
22314
+ kind: "Specific"
22315
+ Specific: Property_ID
22316
+ }
22317
+ | {
22318
+ kind: "SelectOptions"
22319
+ SelectOptions: SpecialAbilityIdentifier
22320
+ }
22268
22321
 
22269
22322
  export interface RatedMinimumNumberPrerequisiteLiturgiesTarget {
22270
22323
  /**
22271
- * The skills that are taken into account for satisfying the prerequisite.
22324
+ * The aspect of which the liturgical chants are taken into account for satisfying the prerequisite.
22272
22325
  */
22273
22326
  aspect: Aspect_ID
22274
22327
  }
@@ -22302,6 +22355,22 @@ export interface ProfessionPackageOptions {
22302
22355
  spellworks?: SpellworksOptions
22303
22356
  spellworksForChosenProperty?: SpellworksForChosenProperty
22304
22357
  liturgies?: LiturgiesOptions
22358
+ lockAdventurePoints?: LockAdventurePointsOption
22359
+ }
22360
+
22361
+ /**
22362
+ * Keep AP for use after character creation to buy or improve entries.
22363
+ */
22364
+ export interface LockAdventurePointsOption {
22365
+ /**
22366
+ * The AP value that is going to be locked for later use.
22367
+ */
22368
+ apValue: number
22369
+
22370
+ /**
22371
+ * The entries the AP can be used for.
22372
+ */
22373
+ entries: SpellworkIdentifier[]
22305
22374
  }
22306
22375
 
22307
22376
  export interface InfluenceEffect {
@@ -23101,6 +23170,50 @@ export type SpecialAbilityGroup =
23101
23170
  kind: "WeaponEnchantment"
23102
23171
  }
23103
23172
 
23173
+ export interface RatedMinimumNumberPrerequisite {
23174
+ /**
23175
+ * The minimum number of skills that need to be on the defined minimum skill rating.
23176
+ */
23177
+ number: number
23178
+
23179
+ /**
23180
+ * The minimum skill rating the defined minimum number of skills need to be on.
23181
+ */
23182
+ value: number
23183
+
23184
+ /**
23185
+ * The targets that contribute to satisfying the prerequisite.
23186
+ */
23187
+ targets: RatedMinimumNumberPrerequisiteTarget
23188
+
23189
+ display_option?: DisplayOption
23190
+ }
23191
+
23192
+ export type RatedMinimumNumberPrerequisiteTarget =
23193
+ | {
23194
+ kind: "Skills"
23195
+ Skills: RatedMinimumNumberPrerequisiteSkillsTarget
23196
+ }
23197
+ | {
23198
+ kind: "CombatTechniques"
23199
+ CombatTechniques: RatedMinimumNumberPrerequisiteCombatTechniquesTarget
23200
+ }
23201
+ | {
23202
+ kind: "Spellworks"
23203
+ Spellworks: RatedMinimumNumberPrerequisiteSpellworksTarget
23204
+ }
23205
+ | {
23206
+ kind: "Liturgies"
23207
+ Liturgies: RatedMinimumNumberPrerequisiteLiturgiesTarget
23208
+ }
23209
+
23210
+ export interface RatedMinimumNumberPrerequisiteSpellworksTarget {
23211
+ /**
23212
+ * The property of which the spells are taken into account for satisfying the prerequisite.
23213
+ */
23214
+ property: Property_ID
23215
+ }
23216
+
23104
23217
  export interface RatedSumPrerequisite {
23105
23218
  /**
23106
23219
  * The minimum required sum of the targets’ ratings.
@@ -25728,6 +25841,10 @@ export type EquipmentIdentifier =
25728
25841
  kind: "IlluminationRefillOrSupply"
25729
25842
  IlluminationRefillOrSupply: IlluminationRefillOrSupply_ID
25730
25843
  }
25844
+ | {
25845
+ kind: "ItemComponent"
25846
+ ItemComponent: ItemComponent_ID
25847
+ }
25731
25848
  | {
25732
25849
  kind: "Jewelry"
25733
25850
  Jewelry: Jewelry_ID
@@ -26026,6 +26143,317 @@ export interface IlluminationRefillOrSupplyTranslation {
26026
26143
  errata?: Errata
26027
26144
  }
26028
26145
 
26146
+ export interface ItemComponent {
26147
+ /**
26148
+ * The cost in silverthalers.
26149
+ */
26150
+ cost: ItemComponentCost
26151
+
26152
+ /**
26153
+ * The items the component can be applied to.
26154
+ */
26155
+ applicableItems: ApplicableItems
26156
+
26157
+ /**
26158
+ * Other components this component is not compatible with.
26159
+ */
26160
+ incompatibleWith?: ItemComponent_ID[]
26161
+
26162
+ /**
26163
+ * Special rules for the item component.
26164
+ */
26165
+ rules?: ItemComponentRules
26166
+
26167
+ /**
26168
+ * References to where in which publications this entry has been defined. Entries may also be added or removed in later printings.
26169
+ */
26170
+ src: PublicationRefs
26171
+
26172
+ /**
26173
+ * All translations for the entry, identified by IETF language tag (BCP47).
26174
+ */
26175
+ translations: {
26176
+ [localeId: string]: ItemComponentTranslation
26177
+ }
26178
+ }
26179
+
26180
+ /**
26181
+ * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
26182
+ */
26183
+ export type ItemComponent_ID = string
26184
+
26185
+ export interface ItemComponentTranslation {
26186
+ /**
26187
+ * The item’s name.
26188
+ */
26189
+ name: string
26190
+
26191
+ /**
26192
+ * Special rules text.
26193
+ */
26194
+ rules?: string
26195
+
26196
+ /**
26197
+ * The items the component can be applied to. Used if the generated text is not sufficient.
26198
+ */
26199
+ applicableItems?: string
26200
+
26201
+ errata?: Errata
26202
+ }
26203
+
26204
+ export interface ItemComponentOption {
26205
+ /**
26206
+ * The item component this option belongs to.
26207
+ */
26208
+ parent: ItemComponent_ID
26209
+
26210
+ /**
26211
+ * The cost in silverthalers.
26212
+ */
26213
+ cost: number
26214
+
26215
+ /**
26216
+ * All translations for the entry, identified by IETF language tag (BCP47).
26217
+ */
26218
+ translations: {
26219
+ [localeId: string]: ItemComponentOptionTranslation
26220
+ }
26221
+ }
26222
+
26223
+ /**
26224
+ * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
26225
+ */
26226
+ export type ItemComponentOption_ID = string
26227
+
26228
+ export interface ItemComponentOptionTranslation {
26229
+ /**
26230
+ * The label for the option.
26231
+ */
26232
+ label: string
26233
+ }
26234
+
26235
+ /**
26236
+ * The cost in silverthalers.
26237
+ */
26238
+ export type ItemComponentCost =
26239
+ | {
26240
+ kind: "Fixed"
26241
+ Fixed: FixedCost
26242
+ }
26243
+ | {
26244
+ kind: "ByCombatTechnique"
26245
+ ByCombatTechnique: ItemComponentCostByCombatTechnique
26246
+ }
26247
+ | {
26248
+ kind: "Factor"
26249
+ Factor: number
26250
+ }
26251
+ | {
26252
+ kind: "DerivedFromOption"
26253
+ }
26254
+
26255
+ export interface ItemComponentCostByCombatTechnique {
26256
+ /**
26257
+ * The cost in silverthalers for close combat techniques.
26258
+ */
26259
+ close?: {
26260
+ [closeCombatTechniqueId: string]: ItemComponentCostByCloseCombatTechnique
26261
+ }
26262
+
26263
+ /**
26264
+ * The cost in silverthalers for ranged combat techniques.
26265
+ */
26266
+ ranged?: {
26267
+ [rangedCombatTechniqueId: string]: ItemComponentCostByRangedCombatTechnique
26268
+ }
26269
+ }
26270
+
26271
+ export interface ItemComponentCostByCloseCombatTechnique {
26272
+ /**
26273
+ * The cost in silverthalers for the close combat technique.
26274
+ */
26275
+ value: number
26276
+
26277
+ /**
26278
+ * All translations for the entry, identified by IETF language tag (BCP47).
26279
+ */
26280
+ translations?: {
26281
+ [localeId: string]: ItemComponentCostByCloseCombatTechniqueTranslation
26282
+ }
26283
+ }
26284
+
26285
+ export interface ItemComponentCostByRangedCombatTechnique {
26286
+ /**
26287
+ * The cost in silverthalers for the ranged combat technique.
26288
+ */
26289
+ value: number
26290
+
26291
+ /**
26292
+ * All translations for the entry, identified by IETF language tag (BCP47).
26293
+ */
26294
+ translations?: {
26295
+ [localeId: string]: ItemComponentCostByRangedCombatTechniqueTranslation
26296
+ }
26297
+ }
26298
+
26299
+ /**
26300
+ * The items the component can be applied to.
26301
+ */
26302
+ export type ApplicableItems =
26303
+ | {
26304
+ kind: "MeleeWeapon"
26305
+ MeleeWeapon: ApplicableMeleeWeapons
26306
+ }
26307
+ | {
26308
+ kind: "RangedWeapon"
26309
+ RangedWeapon: ApplicableRangedWeapons
26310
+ }
26311
+ | {
26312
+ kind: "Ammunition"
26313
+ Ammunition: ApplicableAmmunition
26314
+ }
26315
+ | {
26316
+ kind: "Armor"
26317
+ Armor: ApplicableArmor
26318
+ }
26319
+
26320
+ export interface ApplicableMeleeWeapons {
26321
+ /**
26322
+ * Specific weapons this component can be applied to.
26323
+ */
26324
+ weapons?: Weapon_ID[]
26325
+
26326
+ /**
26327
+ * Weapons of combat techniques this component can be applied to.
26328
+ */
26329
+ combatTechniques?: CloseCombatTechnique_ID[]
26330
+
26331
+ /**
26332
+ * The category of weapons this component can be applied to.
26333
+ */
26334
+ category?: ApplicableMeleeWeaponCategory
26335
+ }
26336
+
26337
+ export type ApplicableMeleeWeaponCategory =
26338
+ | {
26339
+ kind: "HasMetalSurface"
26340
+ }
26341
+ | {
26342
+ kind: "HasMetalBladeOrTip"
26343
+ }
26344
+
26345
+ export interface ApplicableRangedWeapons {
26346
+ /**
26347
+ * Specific weapons this component can be applied to.
26348
+ */
26349
+ weapons?: Weapon_ID[]
26350
+
26351
+ /**
26352
+ * Weapons of combat techniques this component can be applied to.
26353
+ */
26354
+ combatTechniques?: RangedCombatTechnique_ID[]
26355
+
26356
+ /**
26357
+ * The minimum reload time a crossbow must have for it to be compatible with this component.
26358
+ */
26359
+ minimumReloadTime?: number
26360
+
26361
+ /**
26362
+ * Whether the crossbow must use bullets to be compatible with this component.
26363
+ */
26364
+ usesBullets?: boolean
26365
+ }
26366
+
26367
+ export interface ApplicableAmmunition {
26368
+ /**
26369
+ * Specific ammunition this component can be applied to.
26370
+ */
26371
+ ammunition?: Ammunition_ID[]
26372
+
26373
+ /**
26374
+ * Whether the list of ammunition is inverted, i.e. whether the component can be applied to all ammunition – or those of the specified category – except for the listed ammunition.
26375
+ */
26376
+ invertAmmunition?: boolean
26377
+
26378
+ /**
26379
+ * The category of weapons this component can be applied to.
26380
+ */
26381
+ category?: ApplicableAmmunitionCategory
26382
+ }
26383
+
26384
+ export type ApplicableAmmunitionCategory =
26385
+ | {
26386
+ kind: "ArrowOrBolt"
26387
+ }
26388
+
26389
+ export interface ApplicableArmor {
26390
+ /**
26391
+ * Specific armor this component can be applied to.
26392
+ */
26393
+ armor?: Armor_ID[]
26394
+
26395
+ /**
26396
+ * The category of weapons this component can be applied to.
26397
+ */
26398
+ category?: ApplicableArmorCategory
26399
+ }
26400
+
26401
+ export type ApplicableArmorCategory =
26402
+ | {
26403
+ kind: "Metal"
26404
+ }
26405
+
26406
+ export interface ItemComponentRules {
26407
+ baseItemModifications?: ItemComponentBaseItemModifications
26408
+ }
26409
+
26410
+ export interface ItemComponentBaseItemModifications {
26411
+ /**
26412
+ * The damage points added to the damage points of the base item. Negative values lower the damage points.
26413
+ */
26414
+ damagePoints?: number
26415
+
26416
+ /**
26417
+ * The attack modifier added to the attack modifier of the base item. Negative values lower the attack modifier.
26418
+ */
26419
+ attackModifier?: number
26420
+
26421
+ /**
26422
+ * The parry modifier added to the parry modifier of the base item. Negative values lower the parry modifier.
26423
+ */
26424
+ parryModifier?: number
26425
+
26426
+ /**
26427
+ * The protection added to the protection of the base item. Negative values lower the protection.
26428
+ */
26429
+ protection?: number
26430
+
26431
+ /**
26432
+ * The encumbrance added to the encumbrance of the base item. Negative values lower the encumbrance.
26433
+ */
26434
+ encumbrance?: number
26435
+
26436
+ /**
26437
+ * The range added to the range of the base item. Negative values lower the range.
26438
+ */
26439
+ range?: number
26440
+
26441
+ /**
26442
+ * The reload time added to the reload time of the base item. Negative values lower the reload time.
26443
+ */
26444
+ reloadTime?: number
26445
+
26446
+ /**
26447
+ * The weight added to the weight of the base item. Negative values lower the weight.
26448
+ */
26449
+ weight?: number
26450
+
26451
+ /**
26452
+ * The breaking point rating added to the breaking point rating of the base item. Negative values lower the breaking point rating.
26453
+ */
26454
+ breakingPointRating?: number
26455
+ }
26456
+
26029
26457
  export interface Jewelry {
26030
26458
  /**
26031
26459
  * The cost in silverthalers.