optolith-database-schema 0.40.0 → 0.41.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 (268) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/README.md +1 -1
  3. package/gen/types.d.ts +1705 -1606
  4. package/lib/types/DerivedCharacteristic.d.ts +23 -14
  5. package/lib/types/DerivedCharacteristic.js +58 -21
  6. package/lib/types/Disease.d.ts +2 -0
  7. package/lib/types/Disease.js +8 -0
  8. package/lib/types/Profession.d.ts +31 -14
  9. package/lib/types/Profession.js +12 -2
  10. package/lib/types/Race.d.ts +22 -15
  11. package/lib/types/Race.js +26 -20
  12. package/lib/types/Talisman.d.ts +32 -6
  13. package/lib/types/Talisman.js +51 -11
  14. package/lib/types/_Identifier.d.ts +1 -0
  15. package/lib/types/_Identifier.js +2 -0
  16. package/lib/types/_IdentifierGroup.d.ts +58 -0
  17. package/lib/types/_IdentifierGroup.js +15 -1
  18. package/lib/types/equipment/item/BandageOrRemedy.d.ts +5 -2
  19. package/lib/types/equipment/item/CeremonialItem.d.ts +6 -3
  20. package/lib/types/equipment/item/CeremonialItem.js +1 -1
  21. package/lib/types/equipment/item/Clothes.d.ts +5 -2
  22. package/lib/types/equipment/item/Container.d.ts +5 -2
  23. package/lib/types/equipment/item/Elixir.d.ts +16 -1
  24. package/lib/types/equipment/item/Elixir.js +35 -5
  25. package/lib/types/equipment/item/EquipmentOfBlessedOnes.d.ts +5 -2
  26. package/lib/types/equipment/item/IlluminationLightSource.d.ts +5 -2
  27. package/lib/types/equipment/item/IlluminationRefillOrSupply.d.ts +5 -2
  28. package/lib/types/equipment/item/Liebesspielzeug.d.ts +5 -2
  29. package/lib/types/equipment/item/LuxuryGood.d.ts +5 -2
  30. package/lib/types/equipment/item/MagicalArtifact.d.ts +5 -2
  31. package/lib/types/equipment/item/MusicalInstrument.d.ts +5 -2
  32. package/lib/types/equipment/item/OrienteeringAid.d.ts +5 -2
  33. package/lib/types/equipment/item/Poison.d.ts +64 -91
  34. package/lib/types/equipment/item/Poison.js +5 -34
  35. package/lib/types/equipment/item/RopeOrChain.d.ts +5 -2
  36. package/lib/types/equipment/item/Stationery.d.ts +5 -2
  37. package/lib/types/equipment/item/ThievesTool.d.ts +5 -2
  38. package/lib/types/equipment/item/TravelGearOrTool.d.ts +5 -2
  39. package/lib/types/equipment/item/Weapon.d.ts +10 -4
  40. package/lib/types/equipment/item/WeaponAccessory.d.ts +5 -2
  41. package/lib/types/equipment/item/_Herbary.d.ts +31 -0
  42. package/lib/types/equipment/item/_Herbary.js +9 -0
  43. package/lib/types/equipment/item/_Item.d.ts +10 -4
  44. package/lib/types/equipment/item/_MeleeWeapon.d.ts +2 -2
  45. package/lib/types/equipment/item/_MeleeWeapon.js +1 -1
  46. package/lib/types/equipment/item/_RangedWeapon.d.ts +8 -2
  47. package/lib/types/equipment/item/_RangedWeapon.js +2 -2
  48. package/lib/types/equipment/item/sub/Reach.d.ts +1 -0
  49. package/lib/types/equipment/item/sub/Reach.js +7 -0
  50. package/lib/types/magicalActions/MagicalMelody.d.ts +15 -0
  51. package/lib/types/magicalActions/MagicalMelody.js +5 -0
  52. package/lib/types/prerequisites/PrerequisiteGroups.d.ts +132 -0
  53. package/lib/types/prerequisites/PrerequisiteGroups.js +1 -0
  54. package/package.json +7 -7
  55. package/schema/Advantage.schema.json +0 -108
  56. package/schema/AnimalDisease.schema.json +0 -74
  57. package/schema/AnimalType.schema.json +0 -47
  58. package/schema/ArcaneBardTradition.schema.json +0 -11
  59. package/schema/ArcaneDancerTradition.schema.json +0 -11
  60. package/schema/Aspect.schema.json +0 -51
  61. package/schema/Attribute.schema.json +0 -57
  62. package/schema/Blessing.schema.json +0 -265
  63. package/schema/Cantrip.schema.json +0 -443
  64. package/schema/Ceremony.schema.json +0 -122
  65. package/schema/CombatTechnique_Close.schema.json +0 -116
  66. package/schema/CombatTechnique_Ranged.schema.json +0 -99
  67. package/schema/Condition.schema.json +0 -68
  68. package/schema/Continent.schema.json +0 -49
  69. package/schema/Culture.schema.json +0 -781
  70. package/schema/DerivedCharacteristic.schema.json +0 -90
  71. package/schema/Disadvantage.schema.json +0 -97
  72. package/schema/Disease.schema.json +0 -58
  73. package/schema/Element.schema.json +0 -48
  74. package/schema/ExperienceLevel.schema.json +0 -84
  75. package/schema/EyeColor.schema.json +0 -47
  76. package/schema/FamiliarsTrick.schema.json +0 -576
  77. package/schema/HairColor.schema.json +0 -47
  78. package/schema/Kirchenpraegung.schema.json +0 -11
  79. package/schema/Lessons_Curriculum.schema.json +0 -499
  80. package/schema/Lessons_Guideline.schema.json +0 -53
  81. package/schema/LiturgicalChant.schema.json +0 -122
  82. package/schema/Locale.schema.json +0 -38
  83. package/schema/MetaCondition.schema.json +0 -69
  84. package/schema/PactCategory.schema.json +0 -150
  85. package/schema/Patron.schema.json +0 -352
  86. package/schema/PatronCategory.schema.json +0 -57
  87. package/schema/PersonalityTrait.schema.json +0 -100
  88. package/schema/Profession.schema.json +0 -1424
  89. package/schema/Property.schema.json +0 -51
  90. package/schema/Race.schema.json +0 -534
  91. package/schema/Region.schema.json +0 -47
  92. package/schema/Ritual.schema.json +0 -120
  93. package/schema/Service.schema.json +0 -79
  94. package/schema/SexPractice.schema.json +0 -70
  95. package/schema/Skill.schema.json +0 -223
  96. package/schema/SkillGroup.schema.json +0 -57
  97. package/schema/SkillModificationLevel.schema.json +0 -153
  98. package/schema/SocialStatus.schema.json +0 -47
  99. package/schema/Spell.schema.json +0 -119
  100. package/schema/State.schema.json +0 -59
  101. package/schema/Talisman.schema.json +0 -120
  102. package/schema/TargetCategory.schema.json +0 -65
  103. package/schema/UI.schema.json +0 -4441
  104. package/schema/_Activatable.schema.json +0 -2755
  105. package/schema/_ActivatableSelectOptionCategory.schema.json +0 -1313
  106. package/schema/_ActivatableSkill.schema.json +0 -188
  107. package/schema/_ActivatableSkillCastingTime.schema.json +0 -181
  108. package/schema/_ActivatableSkillCheckResultBased.schema.json +0 -65
  109. package/schema/_ActivatableSkillCost.schema.json +0 -513
  110. package/schema/_ActivatableSkillDuration.schema.json +0 -353
  111. package/schema/_ActivatableSkillEffect.schema.json +0 -122
  112. package/schema/_ActivatableSkillRange.schema.json +0 -264
  113. package/schema/_ActivatableSkillTargetCategory.schema.json +0 -145
  114. package/schema/_AlternativeNames.schema.json +0 -23
  115. package/schema/_ArcaneTradition.schema.json +0 -51
  116. package/schema/_Blessed.schema.json +0 -64
  117. package/schema/_Dice.schema.json +0 -40
  118. package/schema/_DiseasePoison.schema.json +0 -152
  119. package/schema/_Enhancements.schema.json +0 -85
  120. package/schema/_I18n.schema.json +0 -55
  121. package/schema/_Identifier.schema.json +0 -2577
  122. package/schema/_IdentifierGroup.schema.json +0 -753
  123. package/schema/_ImprovementCost.schema.json +0 -23
  124. package/schema/_Influence.schema.json +0 -84
  125. package/schema/_NonEmptyString.schema.json +0 -14
  126. package/schema/_Prerequisite.schema.json +0 -1518
  127. package/schema/_ResponsiveText.schema.json +0 -66
  128. package/schema/_Sex.schema.json +0 -18
  129. package/schema/_SimpleReferences.schema.json +0 -522
  130. package/schema/_SkillCheck.schema.json +0 -38
  131. package/schema/_Spellwork.schema.json +0 -54
  132. package/schema/equipment/EquipmentPackage.schema.json +0 -79
  133. package/schema/equipment/item/Ammunition.schema.json +0 -56
  134. package/schema/equipment/item/Animal.schema.json +0 -36
  135. package/schema/equipment/item/AnimalCare.schema.json +0 -124
  136. package/schema/equipment/item/Armor.schema.json +0 -309
  137. package/schema/equipment/item/BandageOrRemedy.schema.json +0 -53
  138. package/schema/equipment/item/Book.schema.json +0 -89
  139. package/schema/equipment/item/CeremonialItem.schema.json +0 -59
  140. package/schema/equipment/item/Clothes.schema.json +0 -10
  141. package/schema/equipment/item/Container.schema.json +0 -10
  142. package/schema/equipment/item/Elixir.schema.json +0 -103
  143. package/schema/equipment/item/EquipmentOfBlessedOnes.schema.json +0 -49
  144. package/schema/equipment/item/GemOrPreciousStone.schema.json +0 -69
  145. package/schema/equipment/item/IlluminationLightSource.schema.json +0 -120
  146. package/schema/equipment/item/IlluminationRefillsOrSupplies.schema.json +0 -10
  147. package/schema/equipment/item/Jewelry.schema.json +0 -113
  148. package/schema/equipment/item/Liebesspielzeug.schema.json +0 -10
  149. package/schema/equipment/item/LuxuryGood.schema.json +0 -53
  150. package/schema/equipment/item/MagicalArtifact.schema.json +0 -64
  151. package/schema/equipment/item/MusicalInstrument.schema.json +0 -49
  152. package/schema/equipment/item/OrienteeringAid.schema.json +0 -10
  153. package/schema/equipment/item/Poison.schema.json +0 -835
  154. package/schema/equipment/item/RopeOrChain.schema.json +0 -10
  155. package/schema/equipment/item/Stationary.schema.json +0 -10
  156. package/schema/equipment/item/ThievesTool.schema.json +0 -10
  157. package/schema/equipment/item/ToolOfTheTrade.schema.json +0 -93
  158. package/schema/equipment/item/TravelGearOrTool.schema.json +0 -10
  159. package/schema/equipment/item/Vehicle.schema.json +0 -36
  160. package/schema/equipment/item/Weapon.schema.json +0 -285
  161. package/schema/equipment/item/WeaponAccessory.schema.json +0 -10
  162. package/schema/equipment/item/_Herbary.schema.json +0 -62
  163. package/schema/equipment/item/_Item.schema.json +0 -384
  164. package/schema/equipment/item/_MeleeWeapon.schema.json +0 -164
  165. package/schema/equipment/item/_RangedWeapon.schema.json +0 -185
  166. package/schema/equipment/item/_Weapon.schema.json +0 -99
  167. package/schema/equipment/item/sub/ArmorType.schema.json +0 -52
  168. package/schema/equipment/item/sub/Reach.schema.json +0 -47
  169. package/schema/magicalActions/AnimistPower.schema.json +0 -488
  170. package/schema/magicalActions/AnimistPower_Tribe.schema.json +0 -47
  171. package/schema/magicalActions/Curse.schema.json +0 -332
  172. package/schema/magicalActions/DominationRitual.schema.json +0 -275
  173. package/schema/magicalActions/ElvenMagicalSong.schema.json +0 -196
  174. package/schema/magicalActions/GeodeRitual.schema.json +0 -327
  175. package/schema/magicalActions/JesterTrick.schema.json +0 -311
  176. package/schema/magicalActions/MagicalDance.schema.json +0 -198
  177. package/schema/magicalActions/MagicalMelody.schema.json +0 -193
  178. package/schema/magicalActions/MagicalRune.schema.json +0 -578
  179. package/schema/magicalActions/ZibiljaRitual.schema.json +0 -165
  180. package/schema/magicalActions/_MusicTradition.schema.json +0 -82
  181. package/schema/magicalActions/_SkillReference.schema.json +0 -20
  182. package/schema/prerequisites/ConditionalPrerequisites.schema.json +0 -15
  183. package/schema/prerequisites/DisplayOption.schema.json +0 -70
  184. package/schema/prerequisites/PrerequisiteGroups.schema.json +0 -1029
  185. package/schema/prerequisites/single/ActivatablePrerequisite.schema.json +0 -45
  186. package/schema/prerequisites/single/AncestorBloodPrerequisite.schema.json +0 -14
  187. package/schema/prerequisites/single/AnimistPowerPrerequisite.schema.json +0 -36
  188. package/schema/prerequisites/single/CulturePrerequisite.schema.json +0 -24
  189. package/schema/prerequisites/single/EnhancementPrerequisite.schema.json +0 -61
  190. package/schema/prerequisites/single/InfluencePrerequisite.schema.json +0 -28
  191. package/schema/prerequisites/single/PactPrerequisite.schema.json +0 -36
  192. package/schema/prerequisites/single/PrimaryAttributePrerequisite.schema.json +0 -39
  193. package/schema/prerequisites/single/PublicationPrerequisite.schema.json +0 -22
  194. package/schema/prerequisites/single/RacePrerequisite.schema.json +0 -28
  195. package/schema/prerequisites/single/RatedMinimumNumberPrerequisite.schema.json +0 -172
  196. package/schema/prerequisites/single/RatedPrerequisite.schema.json +0 -29
  197. package/schema/prerequisites/single/RatedSumPrerequisite.schema.json +0 -33
  198. package/schema/prerequisites/single/RulePrerequisite.schema.json +0 -22
  199. package/schema/prerequisites/single/SexPrerequisite.schema.json +0 -23
  200. package/schema/prerequisites/single/SexualCharacteristicPrerequisite.schema.json +0 -30
  201. package/schema/prerequisites/single/SocialStatusPrerequisite.schema.json +0 -24
  202. package/schema/prerequisites/single/StatePrerequisite.schema.json +0 -23
  203. package/schema/prerequisites/single/TextPrerequisite.schema.json +0 -64
  204. package/schema/prerequisites/single/TraditionPrerequisite.schema.json +0 -58
  205. package/schema/rule/CoreRule.schema.json +0 -1403
  206. package/schema/rule/FocusRule.schema.json +0 -76
  207. package/schema/rule/FocusRule_Subject.schema.json +0 -48
  208. package/schema/rule/OptionalRule.schema.json +0 -64
  209. package/schema/source/Publication.schema.json +0 -103
  210. package/schema/source/_Erratum.schema.json +0 -36
  211. package/schema/source/_PublicationRef.schema.json +0 -285
  212. package/schema/specialAbility/AdvancedCombatSpecialAbility.schema.json +0 -102
  213. package/schema/specialAbility/AdvancedKarmaSpecialAbility.schema.json +0 -80
  214. package/schema/specialAbility/AdvancedMagicalSpecialAbility.schema.json +0 -80
  215. package/schema/specialAbility/AdvancedSkillSpecialAbility.schema.json +0 -80
  216. package/schema/specialAbility/AncestorGlyph.schema.json +0 -80
  217. package/schema/specialAbility/BlessedTradition.schema.json +0 -354
  218. package/schema/specialAbility/BrawlingSpecialAbility.schema.json +0 -82
  219. package/schema/specialAbility/CeremonialItemSpecialAbility.schema.json +0 -87
  220. package/schema/specialAbility/CombatSpecialAbility.schema.json +0 -98
  221. package/schema/specialAbility/CombatStyleSpecialAbility.schema.json +0 -273
  222. package/schema/specialAbility/CommandSpecialAbility.schema.json +0 -82
  223. package/schema/specialAbility/FamiliarSpecialAbility.schema.json +0 -74
  224. package/schema/specialAbility/FatePointSexSpecialAbility.schema.json +0 -74
  225. package/schema/specialAbility/FatePointSpecialAbility.schema.json +0 -84
  226. package/schema/specialAbility/GeneralSpecialAbility.schema.json +0 -88
  227. package/schema/specialAbility/KarmaSpecialAbility.schema.json +0 -78
  228. package/schema/specialAbility/LiturgicalStyleSpecialAbility.schema.json +0 -260
  229. package/schema/specialAbility/LycantropicGift.schema.json +0 -74
  230. package/schema/specialAbility/MagicStyleSpecialAbility.schema.json +0 -260
  231. package/schema/specialAbility/MagicalSign.schema.json +0 -72
  232. package/schema/specialAbility/MagicalSpecialAbility.schema.json +0 -88
  233. package/schema/specialAbility/MagicalTradition.schema.json +0 -163
  234. package/schema/specialAbility/PactGift.schema.json +0 -254
  235. package/schema/specialAbility/ProtectiveWardingCircleSpecialAbility.schema.json +0 -86
  236. package/schema/specialAbility/Sermon.schema.json +0 -74
  237. package/schema/specialAbility/SexSpecialAbility.schema.json +0 -80
  238. package/schema/specialAbility/SikaryanDrainSpecialAbility.schema.json +0 -78
  239. package/schema/specialAbility/SkillStyleSpecialAbility.schema.json +0 -254
  240. package/schema/specialAbility/VampiricGift.schema.json +0 -78
  241. package/schema/specialAbility/Vision.schema.json +0 -74
  242. package/schema/specialAbility/_Tradition.schema.json +0 -23
  243. package/schema/specialAbility/sub/Language.schema.json +0 -222
  244. package/schema/specialAbility/sub/Script.schema.json +0 -90
  245. package/schema/specialAbility/sub/TradeSecret.schema.json +0 -72
  246. package/schema/specialAbility/sub/_LanguageScript.schema.json +0 -24
  247. package/schema/traditionArtifacts/ArcaneOrbEnchantment.schema.json +0 -95
  248. package/schema/traditionArtifacts/AttireEnchantment.schema.json +0 -95
  249. package/schema/traditionArtifacts/BowlEnchantment.schema.json +0 -95
  250. package/schema/traditionArtifacts/CauldronEnchantment.schema.json +0 -115
  251. package/schema/traditionArtifacts/ChronicleEnchantment.schema.json +0 -95
  252. package/schema/traditionArtifacts/DaggerRitual.schema.json +0 -176
  253. package/schema/traditionArtifacts/FoolsHatEnchantment.schema.json +0 -95
  254. package/schema/traditionArtifacts/InstrumentEnchantment.schema.json +0 -95
  255. package/schema/traditionArtifacts/Krallenkettenzauber.schema.json +0 -95
  256. package/schema/traditionArtifacts/OrbEnchantment.schema.json +0 -95
  257. package/schema/traditionArtifacts/RingEnchantment.schema.json +0 -95
  258. package/schema/traditionArtifacts/SickleRitual.schema.json +0 -95
  259. package/schema/traditionArtifacts/SpellSwordEnchantment.schema.json +0 -99
  260. package/schema/traditionArtifacts/StaffEnchantment.schema.json +0 -103
  261. package/schema/traditionArtifacts/ToyEnchantment.schema.json +0 -95
  262. package/schema/traditionArtifacts/Trinkhornzauber.schema.json +0 -95
  263. package/schema/traditionArtifacts/WandEnchantment.schema.json +0 -87
  264. package/schema/traditionArtifacts/WeaponEnchantment.schema.json +0 -95
  265. package/schema/traditionArtifacts/sub/AnimalShape.schema.json +0 -85
  266. package/schema/traditionArtifacts/sub/AnimalShapePath.schema.json +0 -47
  267. package/schema/traditionArtifacts/sub/AnimalShapeSize.schema.json +0 -59
  268. package/schema/traditionArtifacts/sub/Brew.schema.json +0 -47
package/gen/types.d.ts CHANGED
@@ -207,6 +207,7 @@ export type EnumMap = {
207
207
  AdventurePointsDependingOnActiveInstances: AdventurePointsDependingOnActiveInstances
208
208
  AdventurePointsDependingOnActiveInstancesExpressionValue: AdventurePointsDependingOnActiveInstancesExpressionValue
209
209
  AdventurePointsValue: AdventurePointsValue
210
+ AmmunitionishIdentifier: AmmunitionishIdentifier
210
211
  AnimalCareType: AnimalCareType
211
212
  AnimalFeedCost: AnimalFeedCost
212
213
  AnimalPowerLevel1: AnimalPowerLevel1
@@ -275,7 +276,7 @@ export type EnumMap = {
275
276
  DerivedCharacteristicModifierPrerequisiteGroup: DerivedCharacteristicModifierPrerequisiteGroup
276
277
  DerivedCharacteristicPrerequisiteGroup: DerivedCharacteristicPrerequisiteGroup
277
278
  DerivedCharacteristicPrimaryAttributeValue: DerivedCharacteristicPrimaryAttributeValue
278
- DerivedCharacteristicRaceBaseValue: DerivedCharacteristicRaceBaseValue
279
+ DerivedCharacteristicType: DerivedCharacteristicType
279
280
  DisplayOption: DisplayOption
280
281
  DominationRitualDuration: DominationRitualDuration
281
282
  DurationForOneTime: DurationForOneTime
@@ -283,6 +284,7 @@ export type EnumMap = {
283
284
  EffectType: EffectType
284
285
  ElectiveSpellworkRestriction: ElectiveSpellworkRestriction
285
286
  ElectiveSpellworks: ElectiveSpellworks
287
+ ElixirEffect: ElixirEffect
286
288
  EnchantmentCost: EnchantmentCost
287
289
  EncumbranceInfluence: EncumbranceInfluence
288
290
  EnhancementPrerequisiteGroup: EnhancementPrerequisiteGroup
@@ -361,6 +363,7 @@ export type EnumMap = {
361
363
  ProfessionMagicalSkillIdentifier: ProfessionMagicalSkillIdentifier
362
364
  ProfessionPrerequisiteGroup: ProfessionPrerequisiteGroup
363
365
  ProfessionSpecialAbility: ProfessionSpecialAbility
366
+ ProfessionSpecialAbilityIdentifier: ProfessionSpecialAbilityIdentifier
364
367
  PropertyDeclaration: PropertyDeclaration
365
368
  PublicationCategory: PublicationCategory
366
369
  PublicationPrerequisiteGroup: PublicationPrerequisiteGroup
@@ -372,6 +375,7 @@ export type EnumMap = {
372
375
  RatedIdentifier: RatedIdentifier
373
376
  RatedMinimumNumberPrerequisiteCombatTechniquesTargetGroup: RatedMinimumNumberPrerequisiteCombatTechniquesTargetGroup
374
377
  RatedMinimumNumberPrerequisiteTarget: RatedMinimumNumberPrerequisiteTarget
378
+ RecipeComplexity: RecipeComplexity
375
379
  ReferenceListNodeImprovementCostSourceTarget: ReferenceListNodeImprovementCostSourceTarget
376
380
  ReferenceListNodeSource: ReferenceListNodeSource
377
381
  RequirableSelectOptionIdentifier: RequirableSelectOptionIdentifier
@@ -398,7 +402,6 @@ export type EnumMap = {
398
402
  SkillWithEnhancementsIdentifier: SkillWithEnhancementsIdentifier
399
403
  SlowPerformanceParameters: SlowPerformanceParameters
400
404
  SlowSkillCastingTimeUnit: SlowSkillCastingTimeUnit
401
- SpecialAbilityIdentifier: SpecialAbilityIdentifier
402
405
  SpecificAffectedTargetCategoryIdentifier: SpecificAffectedTargetCategoryIdentifier
403
406
  SpecificFromSkillSelectOptionCategoryCategoryOperation: SpecificFromSkillSelectOptionCategoryCategoryOperation
404
407
  SpellworkIdentifier: SpellworkIdentifier
@@ -406,6 +409,7 @@ export type EnumMap = {
406
409
  SpellworkTraditions: SpellworkTraditions
407
410
  SustainedAnimistPowerCost: SustainedAnimistPowerCost
408
411
  SustainedCost: SustainedCost
412
+ TalismanActivationDurationExpressionValue: TalismanActivationDurationExpressionValue
409
413
  TalismanDamageOption: TalismanDamageOption
410
414
  TalismanType: TalismanType
411
415
  TextVerificationRule: TextVerificationRule
@@ -517,7 +521,6 @@ export type TypeAliasMap = {
517
521
  ConstantDemonicPoisonLevel: ConstantDemonicPoisonLevel
518
522
  ConstantIntoxicantAddictionInterval: ConstantIntoxicantAddictionInterval
519
523
  ConstantMagicalSignCost: ConstantMagicalSignCost
520
- ConstantPoisonTime: ConstantPoisonTime
521
524
  ConstantProfessionSpecialAbility: ConstantProfessionSpecialAbility
522
525
  CostRange: CostRange
523
526
  CulturalPackageItem: CulturalPackageItem
@@ -542,7 +545,6 @@ export type TypeAliasMap = {
542
545
  DerivedCharacteristicPurchase: DerivedCharacteristicPurchase
543
546
  Dice: Dice
544
547
  DiceBasedIntoxicantAddictionInterval: DiceBasedIntoxicantAddictionInterval
545
- DiceBasedPoisonTime: DiceBasedPoisonTime
546
548
  DieType: DieType
547
549
  DiseasesPoisonsSelectOptionCategory: DiseasesPoisonsSelectOptionCategory
548
550
  DominationRitualCost: DominationRitualCost
@@ -551,10 +553,13 @@ export type TypeAliasMap = {
551
553
  DurationUnitValue: DurationUnitValue
552
554
  ElectiveSpellwork: ElectiveSpellwork
553
555
  ElementsSelectOptionCategory: ElementsSelectOptionCategory
556
+ ElixirEffectForEachQualityLevel: ElixirEffectForEachQualityLevel
557
+ ElixirPlainEffect: ElixirPlainEffect
554
558
  ElvenMagicalSongCost: ElvenMagicalSongCost
555
559
  ElvenMagicalSongPerformanceParameters: ElvenMagicalSongPerformanceParameters
556
560
  ElvenMagicalSongPermanentCost: ElvenMagicalSongPermanentCost
557
561
  Encumbrance: Encumbrance
562
+ EnergyType: EnergyType
558
563
  EnhancementPrerequisite: EnhancementPrerequisite
559
564
  EnhancementPrerequisites: EnhancementPrerequisites
560
565
  EquipmentPackageItem: EquipmentPackageItem
@@ -828,7 +833,10 @@ export type TypeAliasMap = {
828
833
  SustainedCostMap: SustainedCostMap
829
834
  SustainedCostMapOption: SustainedCostMapOption
830
835
  SustainedPerformanceParameters: SustainedPerformanceParameters<unknown>
831
- TalismanActivationTranslation: TalismanActivationTranslation
836
+ TalismanActivation: TalismanActivation
837
+ TalismanActivationCost: TalismanActivationCost
838
+ TalismanActivationDuration: TalismanActivationDuration
839
+ TalismanActivationDurationExpression: TalismanActivationDurationExpression
832
840
  TalismanDamage: TalismanDamage
833
841
  TalismanMeleeWeapon: TalismanMeleeWeapon
834
842
  TalismanRangedWeapon: TalismanRangedWeapon
@@ -4359,11 +4367,6 @@ export interface Race {
4359
4367
  */
4360
4368
  base_values: BaseValues
4361
4369
 
4362
- /**
4363
- * Describes how to raise or lower maximum attribute values during character creation.
4364
- */
4365
- attribute_adjustments: AttributeAdjustments
4366
-
4367
4370
  /**
4368
4371
  * A list of automatically applied advantages. This does only work for advantages with no further configuration such as level or special selection.
4369
4372
  */
@@ -4460,377 +4463,512 @@ export interface RaceTranslation {
4460
4463
  errata?: Errata
4461
4464
  }
4462
4465
 
4463
- export interface BaseValues {
4466
+ export type BaseValues = {
4467
+ [derivedCharacteristicId: string]: RaceBaseValue
4468
+ }
4469
+
4470
+ /**
4471
+ * The base value for a derived characteristic that is granted by the race.
4472
+ */
4473
+ export interface RaceBaseValue {
4464
4474
  /**
4465
- * The race’s life point base value.
4475
+ * The base value for the derived characteristic that is granted by the race.
4466
4476
  */
4467
- life_points: number
4477
+ value: number
4478
+ }
4468
4479
 
4480
+ export interface DerivedCharacteristic {
4469
4481
  /**
4470
- * The race’s Spirit base value.
4482
+ * The position of the derived characteristic in lists. This has to be a unique value.
4471
4483
  */
4472
- spirit: number
4484
+ position: number
4473
4485
 
4474
4486
  /**
4475
- * The race’s Toughness base value.
4487
+ * The derived characteristic may have a specific use in the game.
4476
4488
  */
4477
- toughness: number
4489
+ type?: DerivedCharacteristicType
4478
4490
 
4479
4491
  /**
4480
- * The race’s tactical movement rate.
4492
+ * Instructions for calculating the derived characteristic’s value.
4481
4493
  */
4482
- movement: number
4483
- }
4494
+ calculation: DerivedCharacteristicCalculation
4495
+
4496
+ prerequisites?: DerivedCharacteristicPrerequisites
4484
4497
 
4485
- /**
4486
- * Describes how to raise or lower maximum attribute values during character creation.
4487
- */
4488
- export interface AttributeAdjustments {
4489
4498
  /**
4490
- * The values by which the maximum of the respective attribute is modified.
4499
+ * References to where in which publications this entry has been defined. Entries may also be added or removed in later printings.
4491
4500
  */
4492
- fixed?: FixedAttributeAdjustment[]
4501
+ src: PublicationRefs
4493
4502
 
4494
4503
  /**
4495
- * An array of attribute maximum modifiers, where the attribute they apply to is selected from a list of options.
4496
- *
4497
- * The array only permits a single entry because no race specified more than one selectable attribute adjustment so far. But the schema allows for multiple entries to be future-proof.
4504
+ * All translations for the entry, identified by IETF language tag (BCP47).
4498
4505
  */
4499
- selectable?: [SelectableAttributeAdjustment]
4506
+ translations: {
4507
+ [localeId: string]: DerivedCharacteristicTranslation
4508
+ }
4500
4509
  }
4501
4510
 
4502
4511
  /**
4503
- * A value by which the maximum of the respective attribute is modified.
4512
+ * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
4504
4513
  */
4505
- export interface FixedAttributeAdjustment {
4514
+ export type DerivedCharacteristic_ID = string
4515
+
4516
+ export interface DerivedCharacteristicTranslation {
4506
4517
  /**
4507
- * The attribute the modifier applies to.
4518
+ * The derived characteristic’s name.
4508
4519
  */
4509
- id: Attribute_ID
4520
+ name: string
4510
4521
 
4511
4522
  /**
4512
- * The value by which the specified attribute’s maximum is modified (negative values will lower the maximum).
4523
+ * The derived characteristic’s abbreviation.
4513
4524
  */
4514
- value: number
4515
- }
4525
+ abbreviation: string
4516
4526
 
4517
- /**
4518
- * A value that will be added to the current maximum of the selected attribute that has been chosen from the listed attributes (negative values will lower the maximum).
4519
- */
4520
- export interface SelectableAttributeAdjustment {
4521
4527
  /**
4522
- * A list of attributes the player has to choose from.
4528
+ * The derived characteristic’s description.
4523
4529
  */
4524
- list: Attribute_ID[]
4530
+ description?: string
4525
4531
 
4526
4532
  /**
4527
- * The value by which the selected attribute’s maximum is modified (negative values will lower the maximum).
4533
+ * Possible calculation strings for the final value.
4528
4534
  */
4529
- value: number
4535
+ calculation?: CalculationTranslation
4530
4536
  }
4531
4537
 
4532
4538
  /**
4533
- * An advantage or disadvantage that is automatically applied to the character after selecting the race. This does only work for advantages or disadvantages with no further configuration such as level or special selection.
4539
+ * The type of the derived characteristic, which determines how it can be used in the game.
4534
4540
  */
4535
- export interface AutomaticAdvantageDisadvantage<Identifier> {
4541
+ export type DerivedCharacteristicType =
4542
+ | {
4543
+ kind: "Energy"
4544
+ Energy: EnergyType
4545
+ }
4546
+ | {
4547
+ kind: "Resistance"
4548
+ }
4549
+
4550
+ /**
4551
+ * Additional values that can be defined for an energy.
4552
+ */
4553
+ export interface EnergyType {
4536
4554
  /**
4537
- * The automatic advantage or disadvantage.
4555
+ * If set, the energy’s maximum value can be improved by spending AP.
4556
+ *
4557
+ * If the energy’s permanent losses can be bought back, points will not be able to be purchased unless all permanent losses have been bought back.
4538
4558
  */
4539
- id: Identifier
4559
+ purchase?: DerivedCharacteristicPurchase
4560
+
4561
+ /**
4562
+ * If set, the energy can suffer permanent losses that reduce its maximum value. It may also be possible to buy back these permanent losses.
4563
+ */
4564
+ permanentLoss?: DerivedCharacteristicPermanentLoss
4540
4565
  }
4541
4566
 
4542
- /**
4543
- * Reference to a commonness-rated advantage or disadvantage. Commonness-rating terms used in the source books are strongly recommended, common, uncommon, suggested and unsuitable.
4544
- */
4545
- export interface CommonnessRatedAdvantageDisadvantage<Identifier> {
4567
+ export interface DerivedCharacteristicPurchase {
4546
4568
  /**
4547
- * The advantage's or disadvantage's identifier.
4569
+ * The cost for improving the derived characteristic by one.
4548
4570
  */
4549
- id: Identifier
4571
+ improvementCost: ImprovementCost
4550
4572
 
4551
4573
  /**
4552
- * All translations for the entry, identified by IETF language tag (BCP47).
4574
+ * The maximum value that can be achieved for the derived characteristic through improvements.
4553
4575
  */
4554
- translations?: {
4555
- [localeId: string]: CommonnessRatedAdvantageDisadvantageTranslation
4576
+ maximum: DerivedCharacteristicBase
4577
+ }
4578
+
4579
+ export type DerivedCharacteristicBase = MathOperation<DerivedCharacteristicBaseValue>
4580
+
4581
+ export type MathOperation<Value> =
4582
+ | {
4583
+ kind: "Value"
4584
+ Value: Value
4585
+ }
4586
+ | {
4587
+ kind: "Addition"
4588
+ Addition: [MathOperation<Value>, MathOperation<Value>]
4589
+ }
4590
+ | {
4591
+ kind: "Subtraction"
4592
+ Subtraction: [MathOperation<Value>, MathOperation<Value>]
4593
+ }
4594
+ | {
4595
+ kind: "Multiplication"
4596
+ Multiplication: [MathOperation<Value>, MathOperation<Value>]
4597
+ }
4598
+ | {
4599
+ kind: "Division"
4600
+ Division: [MathOperation<Value>, MathOperation<Value>]
4601
+ }
4602
+ | {
4603
+ kind: "Exponentiation"
4604
+ Exponentiation: [MathOperation<Value>, MathOperation<Value>]
4605
+ }
4606
+
4607
+ export type DerivedCharacteristicBaseValue =
4608
+ | {
4609
+ kind: "Constant"
4610
+ Constant: number
4611
+ }
4612
+ | {
4613
+ kind: "Attribute"
4614
+ Attribute: Attribute_ID
4615
+ }
4616
+ | {
4617
+ kind: "RaceBaseValue"
4618
+ }
4619
+ | {
4620
+ kind: "PrimaryAttribute"
4621
+ PrimaryAttribute: DerivedCharacteristicPrimaryAttributeValue
4622
+ }
4623
+
4624
+ export type DerivedCharacteristicPrimaryAttributeValue =
4625
+ | {
4626
+ kind: "Magical"
4627
+ }
4628
+ | {
4629
+ kind: "Blessed"
4556
4630
  }
4631
+
4632
+ export interface DerivedCharacteristicPermanentLoss {
4633
+ /**
4634
+ * If set, permanent losses to the derived characteristic can be bought back for the specified cost.
4635
+ */
4636
+ canBeBoughtBack?: DerivedCharacteristicBuyBack
4557
4637
  }
4558
4638
 
4559
- export interface CommonnessRatedAdvantageDisadvantageTranslation {
4639
+ export interface DerivedCharacteristicBuyBack {
4560
4640
  /**
4561
- * The options the commonness rating applies to.
4641
+ * The AP cost for buying back one point.
4562
4642
  */
4563
- options: string
4643
+ cost: number
4564
4644
  }
4565
4645
 
4566
- /**
4567
- * Configuration for random weight generation.
4568
- */
4569
- export interface RandomWeightGeneration {
4646
+ export interface DerivedCharacteristicCalculation {
4570
4647
  /**
4571
- * The base value used for random weight. The height subtrahend; in case of `Height - 110 + 2D6` it is `110`.
4648
+ * The base value for the calculation.
4572
4649
  */
4573
- base: number
4650
+ base: DerivedCharacteristicBase
4574
4651
 
4575
4652
  /**
4576
- * The dice used for random weight.
4653
+ * A list of modifiers that are applied to the base value. The modifiers are applied in the order they appear in the list.
4577
4654
  */
4578
- random: WeightDice[]
4655
+ modifiers?: DerivedCharacteristicModifier[]
4579
4656
  }
4580
4657
 
4581
- export interface WeightDice {
4658
+ export interface DerivedCharacteristicModifier {
4582
4659
  /**
4583
- * Number of dice of the same type. Example: 2 in 2D6.
4660
+ * The entry that, when active, causes the modifier.
4584
4661
  */
4585
- number: number
4662
+ source: DerivedCharacteristicModifierPrerequisiteGroup
4586
4663
 
4587
4664
  /**
4588
- * Number of sides on every die. Example: 6 in 2D6.
4665
+ * The mathematical operation that modifies the base value. The previous result is on the left side.
4589
4666
  */
4590
- sides: DieType
4667
+ operation: DerivedCharacteristicModifierOperation
4591
4668
 
4592
4669
  /**
4593
- * The strategy how to offset the randomly generated values against the base value. Either they are all added or subtracted or even results are added and odd results are subtracted.
4670
+ * The value that is used in the modifier operation. If the source entry has levels, the value is multiplied by the source entry’s level.
4594
4671
  */
4595
- offset_strategy: WeightDiceOffsetStrategy
4672
+ value: number
4596
4673
  }
4597
4674
 
4598
- /**
4599
- * Number of sides on every die. Example: 6 in 2D6.
4600
- */
4601
- export type DieType = number
4602
-
4603
- /**
4604
- * The strategy how to offset the randomly generated values against the base value. Either they are all added or subtracted or even results are added and odd results are subtracted.
4605
- */
4606
- export type WeightDiceOffsetStrategy =
4607
- | {
4608
- kind: "Add"
4609
- }
4675
+ export type DerivedCharacteristicModifierPrerequisiteGroup =
4610
4676
  | {
4611
- kind: "Subtract"
4677
+ kind: "Rule"
4678
+ Rule: RulePrerequisite
4612
4679
  }
4613
4680
  | {
4614
- kind: "AddEvenSubtractOdd"
4681
+ kind: "Activatable"
4682
+ Activatable: ActivatablePrerequisite
4615
4683
  }
4616
4684
 
4617
4685
  /**
4618
- * Adventure Points and maximum values at hero creation.
4686
+ * Requires a specific extension rule (focus rule or optional rule) to be used/active.
4619
4687
  */
4620
- export interface ExperienceLevel {
4621
- /**
4622
- * The AP value you get.
4623
- */
4624
- adventure_points: number
4688
+ export interface RulePrerequisite {
4689
+ id: ExtensionRuleIdentifier
4690
+ display_option?: DisplayOption
4691
+ }
4625
4692
 
4626
- /**
4627
- * The highest possible attribute value.
4628
- */
4629
- max_attribute_value: number
4693
+ export type ExtensionRuleIdentifier =
4694
+ | {
4695
+ kind: "FocusRule"
4696
+ FocusRule: FocusRule_ID
4697
+ }
4698
+ | {
4699
+ kind: "OptionalRule"
4700
+ OptionalRule: OptionalRule_ID
4701
+ }
4630
4702
 
4703
+ export interface FocusRule {
4631
4704
  /**
4632
- * The highest possible skill rating.
4705
+ * The associated subject.
4633
4706
  */
4634
- max_skill_rating: number
4707
+ subject: Subject_ID
4635
4708
 
4636
4709
  /**
4637
- * The highest possible combat technique rating.
4710
+ * The focus rule’s level.
4638
4711
  */
4639
- max_combat_technique_rating: number
4712
+ level: number
4640
4713
 
4641
4714
  /**
4642
- * The limit for the sum of all attribute values.
4715
+ * Has the focus rule not been implemented in Optolith yet? This is also true if the focus rule does not (currently) apply to any Optolith feature.
4643
4716
  */
4644
- max_attribute_total: number
4717
+ isMissingImplementation: boolean
4645
4718
 
4646
- /**
4647
- * The maximum of spells/chants you can activate.
4648
- */
4649
- max_number_of_spells_liturgical_chants: number
4719
+ prerequisites?: RulePrerequisites
4650
4720
 
4651
4721
  /**
4652
- * The maximum of spells of an unfamiliar tradition you can activate.
4722
+ * References to where in which publications this entry has been defined. Entries may also be added or removed in later printings.
4653
4723
  */
4654
- max_number_of_unfamiliar_spells: number
4724
+ src: PublicationRefs
4655
4725
 
4656
4726
  /**
4657
4727
  * All translations for the entry, identified by IETF language tag (BCP47).
4658
4728
  */
4659
4729
  translations: {
4660
- [localeId: string]: ExperienceLevelTranslation
4730
+ [localeId: string]: FocusRuleTranslation
4661
4731
  }
4662
4732
  }
4663
4733
 
4664
4734
  /**
4665
4735
  * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
4666
4736
  */
4667
- export type ExperienceLevel_ID = string
4737
+ export type FocusRule_ID = string
4668
4738
 
4669
- export interface ExperienceLevelTranslation {
4739
+ export interface FocusRuleTranslation {
4670
4740
  /**
4671
- * The experience level’s name.
4741
+ * The focus rule’s name.
4672
4742
  */
4673
4743
  name: string
4674
- }
4675
4744
 
4676
- export interface Dice {
4677
4745
  /**
4678
- * Number of dice of the same type. Example: 2 in 2D6.
4746
+ * The description of the focus rule.
4679
4747
  */
4680
- number: number
4748
+ description: string
4681
4749
 
4682
- /**
4683
- * Number of sides on every die. Example: 6 in 2D6.
4684
- */
4685
- sides: DieType
4750
+ errata?: Errata
4686
4751
  }
4687
4752
 
4688
- export interface RaceVariant {
4753
+ /**
4754
+ * Subjects or Subject Areas are the categories of Focus Rules.
4755
+ */
4756
+ export interface Subject {
4689
4757
  /**
4690
- * The associated race.
4758
+ * All translations for the entry, identified by IETF language tag (BCP47).
4691
4759
  */
4692
- race: Race_ID
4760
+ translations: {
4761
+ [localeId: string]: SubjectTranslation
4762
+ }
4763
+ }
4693
4764
 
4694
- /**
4695
- * The list of common cultures.
4696
- */
4697
- common_cultures?: Culture_ID[]
4765
+ /**
4766
+ * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
4767
+ */
4768
+ export type Subject_ID = string
4698
4769
 
4770
+ export interface SubjectTranslation {
4699
4771
  /**
4700
- * A list of common advantages.
4772
+ * The subject.
4701
4773
  */
4702
- common_advantages?: CommonnessRatedAdvantageDisadvantage<Advantage_ID>[]
4774
+ name: string
4775
+ }
4703
4776
 
4704
- /**
4705
- * A list of common disadvantages.
4706
- */
4707
- common_disadvantages?: CommonnessRatedAdvantageDisadvantage<Disadvantage_ID>[]
4777
+ export type RulePrerequisites = PlainPrerequisites<RulePrerequisiteGroup>
4708
4778
 
4709
- /**
4710
- * A list of uncommon advantages.
4711
- */
4712
- uncommon_advantages?: CommonnessRatedAdvantageDisadvantage<Advantage_ID>[]
4779
+ export type RulePrerequisiteGroup =
4780
+ | {
4781
+ kind: "Rule"
4782
+ Rule: RulePrerequisite
4783
+ }
4713
4784
 
4785
+ export interface OptionalRule {
4714
4786
  /**
4715
- * A list of uncommon disadvantages.
4787
+ * Has the optional rule not been implemented in Optolith yet? This is also true if the optional rule does not (currently) apply to any Optolith feature.
4716
4788
  */
4717
- uncommon_disadvantages?: CommonnessRatedAdvantageDisadvantage<Disadvantage_ID>[]
4789
+ isMissingImplementation: boolean
4718
4790
 
4719
4791
  /**
4720
- * An array containing 20 (numeric) hair color identifiers. The array also represents the 20-sided die for a random hair color.
4792
+ * How this optional rule influences the complexity of the game, if specified.
4721
4793
  */
4722
- hair_color?: [HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID]
4794
+ complexityInfluence?: ComplexityInfluence
4723
4795
 
4724
- /**
4725
- * An array containing 20 (numeric) eye color identifiers. The array also represents the 20-sided die for a random eye color.
4726
- */
4727
- eye_color?: [EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID]
4796
+ prerequisites?: RulePrerequisites
4728
4797
 
4729
4798
  /**
4730
- * Configuration for random height generation.
4799
+ * References to where in which publications this entry has been defined. Entries may also be added or removed in later printings.
4731
4800
  */
4732
- height: RandomHeightGeneration
4801
+ src: PublicationRefs
4733
4802
 
4734
4803
  /**
4735
4804
  * All translations for the entry, identified by IETF language tag (BCP47).
4736
4805
  */
4737
4806
  translations: {
4738
- [localeId: string]: RaceVariantTranslation
4807
+ [localeId: string]: OptionalRuleTranslation
4739
4808
  }
4740
4809
  }
4741
4810
 
4742
4811
  /**
4743
4812
  * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
4744
4813
  */
4745
- export type RaceVariant_ID = string
4814
+ export type OptionalRule_ID = string
4746
4815
 
4747
- export interface RaceVariantTranslation {
4816
+ export interface OptionalRuleTranslation {
4748
4817
  /**
4749
- * The race variant’s name. If this is the only variant for a base race and thus just provides the missing information without actually being able to select, fill in the name of the base race.
4818
+ * The optional rule’s name.
4750
4819
  */
4751
4820
  name: string
4752
4821
 
4753
4822
  /**
4754
- * The respective common advantages text from the source book.
4755
- */
4756
- common_advantages?: string
4757
-
4758
- /**
4759
- * The respective common disadvantages text from the source book.
4823
+ * The description of the optional rule, as stated in the optional rule box.
4760
4824
  */
4761
- common_disadvantages?: string
4825
+ description: string
4762
4826
 
4763
4827
  /**
4764
- * The respective uncommon advantages text from the source book.
4828
+ * Sometimes, an optional rule does not only contain all the rules belonging to it in its rule box, but also in the main text.
4765
4829
  */
4766
- uncommon_advantages?: string
4830
+ additionalRules?: string
4767
4831
 
4768
- /**
4769
- * The respective uncommon disadvantages text from the source book.
4770
- */
4771
- uncommon_disadvantages?: string
4832
+ errata?: Errata
4772
4833
  }
4773
4834
 
4774
- export interface Culture {
4775
- /**
4776
- * A list of native languages (usually it is only one).
4777
- */
4778
- language: CultureLanguage[]
4835
+ /**
4836
+ * How this optional rule influences the complexity of the game.
4837
+ */
4838
+ export type ComplexityInfluence =
4839
+ | {
4840
+ kind: "Less"
4841
+ }
4842
+ | {
4843
+ kind: "Unchanged"
4844
+ }
4845
+ | {
4846
+ kind: "More"
4847
+ }
4779
4848
 
4849
+ /**
4850
+ * Requires a specific advantage, disadvantage or special ability.
4851
+ */
4852
+ export interface ActivatablePrerequisite {
4780
4853
  /**
4781
- * A list of native scripts (usually it is only one). If the culture does not use any script, leave this array empty.
4854
+ * The activatable entry’s identifier.
4782
4855
  */
4783
- script?: Script_ID[]
4856
+ id: ActivatableIdentifier
4784
4857
 
4785
4858
  /**
4786
- * If the area knowledge has a fixed value or can be adjusted.
4859
+ * If the required entry should be required to be active or inactive.
4787
4860
  */
4788
- area_knowledge: AreaKnowledge
4861
+ active: boolean
4789
4862
 
4790
4863
  /**
4791
- * A list of possible social status in the respective culture.
4864
+ * The required minimum level of the entry.
4792
4865
  */
4793
- social_status: SocialStatus_ID[]
4866
+ level?: number
4794
4867
 
4795
4868
  /**
4796
- * A list of professions that are typical for the culture, as well as professions that are rarely practiced or encountered in the culture. The list is either defined by group (as multiple lists) or plain (as a single list).
4869
+ * Required select options. Order is important. Typically, you only need the first array index, though.
4797
4870
  */
4798
- common_professions: CommonProfessions
4871
+ options?: RequirableSelectOptionIdentifier[]
4799
4872
 
4800
- /**
4801
- * A list of common advantages.
4802
- */
4803
- common_advantages?: CommonnessRatedAdvantageDisadvantage<Advantage_ID>[]
4873
+ display_option?: DisplayOption
4804
4874
 
4805
- /**
4806
- * A list of common disadvantages.
4807
- */
4808
- common_disadvantages?: CommonnessRatedAdvantageDisadvantage<Disadvantage_ID>[]
4875
+ when?: Preconditions
4876
+ }
4809
4877
 
4810
- /**
4811
- * A list of uncommon advantages.
4812
- */
4813
- uncommon_advantages?: CommonnessRatedAdvantageDisadvantage<Advantage_ID>[]
4878
+ export type RequirableSelectOptionIdentifier =
4879
+ | {
4880
+ kind: "General"
4881
+ General: GeneralSelectOption_ID
4882
+ }
4883
+ | {
4884
+ kind: "Race"
4885
+ Race: Race_ID
4886
+ }
4887
+ | {
4888
+ kind: "Skill"
4889
+ Skill: Skill_ID
4890
+ }
4891
+ | {
4892
+ kind: "SkillApplication"
4893
+ SkillApplication: SkillApplication_ID
4894
+ }
4895
+ | {
4896
+ kind: "CloseCombatTechnique"
4897
+ CloseCombatTechnique: CloseCombatTechnique_ID
4898
+ }
4899
+ | {
4900
+ kind: "RangedCombatTechnique"
4901
+ RangedCombatTechnique: RangedCombatTechnique_ID
4902
+ }
4903
+ | {
4904
+ kind: "Property"
4905
+ Property: Property_ID
4906
+ }
4907
+ | {
4908
+ kind: "Aspect"
4909
+ Aspect: Aspect_ID
4910
+ }
4911
+ | {
4912
+ kind: "Language"
4913
+ Language: Language_ID
4914
+ }
4915
+ | {
4916
+ kind: "AnimalShape"
4917
+ AnimalShape: AnimalShape_ID
4918
+ }
4919
+ | {
4920
+ kind: "LiturgicalChant"
4921
+ LiturgicalChant: LiturgicalChant_ID
4922
+ }
4923
+ | {
4924
+ kind: "Ceremony"
4925
+ Ceremony: Ceremony_ID
4926
+ }
4927
+ | {
4928
+ kind: "Spell"
4929
+ Spell: Spell_ID
4930
+ }
4931
+ | {
4932
+ kind: "Ritual"
4933
+ Ritual: Ritual_ID
4934
+ }
4935
+ | {
4936
+ kind: "TradeSecret"
4937
+ TradeSecret: TradeSecret_ID
4938
+ }
4939
+ | {
4940
+ kind: "ArcaneBardTradition"
4941
+ ArcaneBardTradition: ArcaneBardTradition_ID
4942
+ }
4943
+ | {
4944
+ kind: "ArcaneDancerTradition"
4945
+ ArcaneDancerTradition: ArcaneDancerTradition_ID
4946
+ }
4947
+ | {
4948
+ kind: "Element"
4949
+ Element: Element_ID
4950
+ }
4814
4951
 
4952
+ export interface CloseCombatTechnique {
4815
4953
  /**
4816
- * A list of uncommon disadvantages.
4954
+ * Special rules for the combat technique that apply to all weapons in this category.
4817
4955
  */
4818
- uncommon_disadvantages?: CommonnessRatedAdvantageDisadvantage<Disadvantage_ID>[]
4956
+ special: CloseCombatTechniqueSpecialRules
4819
4957
 
4820
4958
  /**
4821
- * A list of common skills.
4959
+ * The primary attribute(s).
4822
4960
  */
4823
- common_skills: CommonnessRatedSkill[]
4961
+ primary_attribute: Attribute_ID[]
4824
4962
 
4825
4963
  /**
4826
- * A list of uncommon skills.
4964
+ * The *Breaking Point Rating* of the respective combat technique.
4827
4965
  */
4828
- uncommon_skills?: CommonnessRatedSkill[]
4966
+ breaking_point_rating: number
4829
4967
 
4830
4968
  /**
4831
- * The skill points you get for buying the culture package.
4969
+ * States which column is used to improve the combat technique.
4832
4970
  */
4833
- cultural_package: CulturalPackageItem[]
4971
+ improvement_cost: ImprovementCost
4834
4972
 
4835
4973
  /**
4836
4974
  * References to where in which publications this entry has been defined. Entries may also be added or removed in later printings.
@@ -4841,67 +4979,171 @@ export interface Culture {
4841
4979
  * All translations for the entry, identified by IETF language tag (BCP47).
4842
4980
  */
4843
4981
  translations: {
4844
- [localeId: string]: CultureTranslation
4982
+ [localeId: string]: CloseCombatTechniqueTranslation
4845
4983
  }
4846
4984
  }
4847
4985
 
4848
4986
  /**
4849
4987
  * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
4850
4988
  */
4851
- export type Culture_ID = string
4989
+ export type CloseCombatTechnique_ID = string
4852
4990
 
4853
- export interface CultureTranslation {
4991
+ export interface CloseCombatTechniqueTranslation {
4854
4992
  /**
4855
- * The race’s name.
4993
+ * The combat technique’s name.
4856
4994
  */
4857
4995
  name: string
4858
4996
 
4859
4997
  /**
4860
- * The description of the area knowledge.
4861
- */
4862
- area_knowledge: AreaKnowledgeTranslation
4863
-
4864
- /**
4865
- * The respective common advantages text from the source book.
4998
+ * Additional rules for the combat technique, if applicable.
4866
4999
  */
4867
- common_advantages?: string
5000
+ special?: string
4868
5001
 
5002
+ errata?: Errata
5003
+ }
5004
+
5005
+ /**
5006
+ * Special rules for the combat technique that apply to all weapons in this category.
5007
+ */
5008
+ export interface CloseCombatTechniqueSpecialRules {
4869
5009
  /**
4870
- * The respective common disadvantages text from the source book.
5010
+ * Is parrying possible with this combat technique?
4871
5011
  */
4872
- common_disadvantages?: string
5012
+ can_parry: WeaponCombatTechniqueValueRule
5013
+
5014
+ has_damage_threshold: WeaponCombatTechniqueValueRule
5015
+
5016
+ has_reach: WeaponCombatTechniqueValueRule
5017
+
5018
+ has_length: WeaponCombatTechniqueValueRule
5019
+
5020
+ has_shield_size: WeaponCombatTechniqueValueRule
5021
+ }
5022
+
5023
+ /**
5024
+ * Defines if the weapon must/can/must not define a value for this parameter.
5025
+ */
5026
+ export type WeaponCombatTechniqueValueRule =
5027
+ | {
5028
+ kind: "Required"
5029
+ }
5030
+ | {
5031
+ kind: "Optional"
5032
+ }
5033
+ | {
5034
+ kind: "Prohibited"
5035
+ }
4873
5036
 
5037
+ export interface RangedCombatTechnique {
4874
5038
  /**
4875
- * The respective uncommon advantages text from the source book.
5039
+ * Special rules for the combat technique that apply to all weapons in this category.
4876
5040
  */
4877
- uncommon_advantages?: string
5041
+ special: RangedCombatTechniqueSpecialRules
4878
5042
 
4879
5043
  /**
4880
- * The respective uncommon disadvantages text from the source book.
5044
+ * The primary attribute(s).
4881
5045
  */
4882
- uncommon_disadvantages?: string
5046
+ primary_attribute: Attribute_ID[]
4883
5047
 
4884
5048
  /**
4885
- * Structured description of common names.
5049
+ * The *Breaking Point Rating* of the respective combat technique.
4886
5050
  */
4887
- common_names: CommonNames
5051
+ breaking_point_rating: number
5052
+
5053
+ /**
5054
+ * States which column is used to improve the combat technique.
5055
+ */
5056
+ improvement_cost: ImprovementCost
5057
+
5058
+ /**
5059
+ * References to where in which publications this entry has been defined. Entries may also be added or removed in later printings.
5060
+ */
5061
+ src: PublicationRefs
5062
+
5063
+ /**
5064
+ * All translations for the entry, identified by IETF language tag (BCP47).
5065
+ */
5066
+ translations: {
5067
+ [localeId: string]: RangedCombatTechniqueTranslation
5068
+ }
5069
+ }
5070
+
5071
+ /**
5072
+ * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
5073
+ */
5074
+ export type RangedCombatTechnique_ID = string
5075
+
5076
+ export interface RangedCombatTechniqueTranslation {
5077
+ /**
5078
+ * The combat technique’s name.
5079
+ */
5080
+ name: string
5081
+
5082
+ /**
5083
+ * Additional rules for the combat technique, if applicable.
5084
+ */
5085
+ special?: string
4888
5086
 
4889
5087
  errata?: Errata
4890
5088
  }
4891
5089
 
4892
5090
  /**
4893
- * A native languages with optional specializations.
5091
+ * Special rules for the combat technique that apply to all weapons in this category.
4894
5092
  */
4895
- export interface CultureLanguage {
5093
+ export interface RangedCombatTechniqueSpecialRules {
5094
+ has_ammunition: WeaponCombatTechniqueValueRule
5095
+ }
5096
+
5097
+ export interface Property {
4896
5098
  /**
4897
- * The language’s identifier.
5099
+ * The property check’s attributes. Only the properties from the Core Rules have defined property checks.
4898
5100
  */
4899
- id: Language_ID
5101
+ check?: SkillCheck
4900
5102
 
4901
5103
  /**
4902
- * The language specializations, if any.
5104
+ * All translations for the entry, identified by IETF language tag (BCP47).
4903
5105
  */
4904
- specializations?: LanguageSpecialization_ID[]
5106
+ translations: {
5107
+ [localeId: string]: PropertyTranslation
5108
+ }
5109
+ }
5110
+
5111
+ /**
5112
+ * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
5113
+ */
5114
+ export type Property_ID = string
5115
+
5116
+ export interface PropertyTranslation {
5117
+ /**
5118
+ * The property’s name.
5119
+ */
5120
+ name: string
5121
+ }
5122
+
5123
+ export interface Aspect {
5124
+ /**
5125
+ * All translations for the entry, identified by IETF language tag (BCP47).
5126
+ */
5127
+ translations: {
5128
+ [localeId: string]: AspectTranslation
5129
+ }
5130
+ }
5131
+
5132
+ /**
5133
+ * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
5134
+ */
5135
+ export type Aspect_ID = string
5136
+
5137
+ export interface AspectTranslation {
5138
+ /**
5139
+ * The aspect’s name.
5140
+ */
5141
+ name: string
5142
+
5143
+ /**
5144
+ * In some languages, the aspect’s grammatical gender influences the full name of a *Master of (Aspect)* instance. To make this possible, the *name* (**not** the *name in library*) is joined with what is contained in this field.
5145
+ */
5146
+ master_of_aspect_suffix?: string
4905
5147
  }
4906
5148
 
4907
5149
  export interface Language {
@@ -5064,303 +5306,63 @@ export type LanguagePrerequisiteGroup =
5064
5306
  }
5065
5307
 
5066
5308
  /**
5067
- * Requires a specific advantage, disadvantage or special ability.
5309
+ * A prerequisite that is either not verifyable in general – e.g. roleplay or background information – or the referenced entities were not made available for use yet – e.g. races –, but which should be displayed, because it is part of the prerequisite string from the sources.
5068
5310
  */
5069
- export interface ActivatablePrerequisite {
5311
+ export interface TextPrerequisite {
5070
5312
  /**
5071
- * The activatable entry’s identifier.
5313
+ * The method how the prerequisite should be verified. Either is passes all verification text or it denies all verification tests. The latter results in the associated entry to never be available for purchase.
5072
5314
  */
5073
- id: ActivatableIdentifier
5315
+ verification: TextVerificationRule
5074
5316
 
5075
5317
  /**
5076
- * If the required entry should be required to be active or inactive.
5318
+ * If the text is a sentence or sentence-like fragment, this property ensures it is integrated into the prerequisite string correctly.
5319
+ *
5320
+ * A standalone sentence is connected to the previous prerequisite string with a period and a period is also added at the end of the sentence automatically, if it is not present. A connected sentence is connected to the previous prerequisite string with a semicolon and a period is not added to the end of the sentence. In this case, if there are prerequisites after this one, they will be connected using a semicolon again, unless a different punctuation mark is present at the end of the given text.
5077
5321
  */
5078
- active: boolean
5322
+ sentence_type?: SentenceType
5079
5323
 
5080
5324
  /**
5081
- * The required minimum level of the entry.
5325
+ * If the text does not represent an actual prerequisite but a prerequisite for the use of certain aspects or the entry the prerequisite is associated with, or something like that, this property is set to `true`.
5326
+ *
5327
+ * If all prerequisites of an entry are marked as meta, the entry is considered to have no prerequisites and thus the string `none` must be rendered before the list of meta prerequisites.
5328
+ *
5329
+ * This is the only use case for this property.
5082
5330
  */
5083
- level?: number
5331
+ is_meta?: boolean
5084
5332
 
5085
5333
  /**
5086
- * Required select options. Order is important. Typically, you only need the first array index, though.
5334
+ * All translations for the entry, identified by IETF language tag (BCP47).
5087
5335
  */
5088
- options?: RequirableSelectOptionIdentifier[]
5089
-
5090
- display_option?: DisplayOption
5336
+ translations: {
5337
+ [localeId: string]: TextPrerequisiteTranslation
5338
+ }
5339
+ }
5091
5340
 
5092
- when?: Preconditions
5341
+ export interface TextPrerequisiteTranslation {
5342
+ /**
5343
+ * The displayed text.
5344
+ */
5345
+ text: string
5093
5346
  }
5094
5347
 
5095
- export type RequirableSelectOptionIdentifier =
5096
- | {
5097
- kind: "General"
5098
- General: GeneralSelectOption_ID
5099
- }
5100
- | {
5101
- kind: "Race"
5102
- Race: Race_ID
5103
- }
5104
- | {
5105
- kind: "Skill"
5106
- Skill: Skill_ID
5107
- }
5108
- | {
5109
- kind: "SkillApplication"
5110
- SkillApplication: SkillApplication_ID
5111
- }
5112
- | {
5113
- kind: "CloseCombatTechnique"
5114
- CloseCombatTechnique: CloseCombatTechnique_ID
5115
- }
5116
- | {
5117
- kind: "RangedCombatTechnique"
5118
- RangedCombatTechnique: RangedCombatTechnique_ID
5119
- }
5120
- | {
5121
- kind: "Property"
5122
- Property: Property_ID
5123
- }
5124
- | {
5125
- kind: "Aspect"
5126
- Aspect: Aspect_ID
5127
- }
5128
- | {
5129
- kind: "Language"
5130
- Language: Language_ID
5131
- }
5132
- | {
5133
- kind: "AnimalShape"
5134
- AnimalShape: AnimalShape_ID
5135
- }
5136
- | {
5137
- kind: "LiturgicalChant"
5138
- LiturgicalChant: LiturgicalChant_ID
5139
- }
5140
- | {
5141
- kind: "Ceremony"
5142
- Ceremony: Ceremony_ID
5143
- }
5144
- | {
5145
- kind: "Spell"
5146
- Spell: Spell_ID
5147
- }
5148
- | {
5149
- kind: "Ritual"
5150
- Ritual: Ritual_ID
5151
- }
5152
- | {
5153
- kind: "TradeSecret"
5154
- TradeSecret: TradeSecret_ID
5155
- }
5156
- | {
5157
- kind: "ArcaneBardTradition"
5158
- ArcaneBardTradition: ArcaneBardTradition_ID
5159
- }
5348
+ export type TextVerificationRule =
5160
5349
  | {
5161
- kind: "ArcaneDancerTradition"
5162
- ArcaneDancerTradition: ArcaneDancerTradition_ID
5350
+ kind: "Pass"
5163
5351
  }
5164
5352
  | {
5165
- kind: "Element"
5166
- Element: Element_ID
5353
+ kind: "Deny"
5167
5354
  }
5168
5355
 
5169
- export interface CloseCombatTechnique {
5356
+ export interface AlternativeName {
5170
5357
  /**
5171
- * Special rules for the combat technique that apply to all weapons in this category.
5358
+ * An alternative name of the disease.
5172
5359
  */
5173
- special: CloseCombatTechniqueSpecialRules
5360
+ name: string
5174
5361
 
5175
5362
  /**
5176
- * The primary attribute(s).
5363
+ * The region where this alternative name is used.
5177
5364
  */
5178
- primary_attribute: Attribute_ID[]
5179
-
5180
- /**
5181
- * The *Breaking Point Rating* of the respective combat technique.
5182
- */
5183
- breaking_point_rating: number
5184
-
5185
- /**
5186
- * States which column is used to improve the combat technique.
5187
- */
5188
- improvement_cost: ImprovementCost
5189
-
5190
- /**
5191
- * References to where in which publications this entry has been defined. Entries may also be added or removed in later printings.
5192
- */
5193
- src: PublicationRefs
5194
-
5195
- /**
5196
- * All translations for the entry, identified by IETF language tag (BCP47).
5197
- */
5198
- translations: {
5199
- [localeId: string]: CloseCombatTechniqueTranslation
5200
- }
5201
- }
5202
-
5203
- /**
5204
- * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
5205
- */
5206
- export type CloseCombatTechnique_ID = string
5207
-
5208
- export interface CloseCombatTechniqueTranslation {
5209
- /**
5210
- * The combat technique’s name.
5211
- */
5212
- name: string
5213
-
5214
- /**
5215
- * Additional rules for the combat technique, if applicable.
5216
- */
5217
- special?: string
5218
-
5219
- errata?: Errata
5220
- }
5221
-
5222
- /**
5223
- * Special rules for the combat technique that apply to all weapons in this category.
5224
- */
5225
- export interface CloseCombatTechniqueSpecialRules {
5226
- /**
5227
- * Is parrying possible with this combat technique?
5228
- */
5229
- can_parry: WeaponCombatTechniqueValueRule
5230
-
5231
- has_damage_threshold: WeaponCombatTechniqueValueRule
5232
-
5233
- has_reach: WeaponCombatTechniqueValueRule
5234
-
5235
- has_length: WeaponCombatTechniqueValueRule
5236
-
5237
- has_shield_size: WeaponCombatTechniqueValueRule
5238
- }
5239
-
5240
- /**
5241
- * Defines if the weapon must/can/must not define a value for this parameter.
5242
- */
5243
- export type WeaponCombatTechniqueValueRule =
5244
- | {
5245
- kind: "Required"
5246
- }
5247
- | {
5248
- kind: "Optional"
5249
- }
5250
- | {
5251
- kind: "Prohibited"
5252
- }
5253
-
5254
- export interface RangedCombatTechnique {
5255
- /**
5256
- * Special rules for the combat technique that apply to all weapons in this category.
5257
- */
5258
- special: RangedCombatTechniqueSpecialRules
5259
-
5260
- /**
5261
- * The primary attribute(s).
5262
- */
5263
- primary_attribute: Attribute_ID[]
5264
-
5265
- /**
5266
- * The *Breaking Point Rating* of the respective combat technique.
5267
- */
5268
- breaking_point_rating: number
5269
-
5270
- /**
5271
- * States which column is used to improve the combat technique.
5272
- */
5273
- improvement_cost: ImprovementCost
5274
-
5275
- /**
5276
- * References to where in which publications this entry has been defined. Entries may also be added or removed in later printings.
5277
- */
5278
- src: PublicationRefs
5279
-
5280
- /**
5281
- * All translations for the entry, identified by IETF language tag (BCP47).
5282
- */
5283
- translations: {
5284
- [localeId: string]: RangedCombatTechniqueTranslation
5285
- }
5286
- }
5287
-
5288
- /**
5289
- * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
5290
- */
5291
- export type RangedCombatTechnique_ID = string
5292
-
5293
- export interface RangedCombatTechniqueTranslation {
5294
- /**
5295
- * The combat technique’s name.
5296
- */
5297
- name: string
5298
-
5299
- /**
5300
- * Additional rules for the combat technique, if applicable.
5301
- */
5302
- special?: string
5303
-
5304
- errata?: Errata
5305
- }
5306
-
5307
- /**
5308
- * Special rules for the combat technique that apply to all weapons in this category.
5309
- */
5310
- export interface RangedCombatTechniqueSpecialRules {
5311
- has_ammunition: WeaponCombatTechniqueValueRule
5312
- }
5313
-
5314
- export interface Property {
5315
- /**
5316
- * The property check’s attributes. Only the properties from the Core Rules have defined property checks.
5317
- */
5318
- check?: SkillCheck
5319
-
5320
- /**
5321
- * All translations for the entry, identified by IETF language tag (BCP47).
5322
- */
5323
- translations: {
5324
- [localeId: string]: PropertyTranslation
5325
- }
5326
- }
5327
-
5328
- /**
5329
- * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
5330
- */
5331
- export type Property_ID = string
5332
-
5333
- export interface PropertyTranslation {
5334
- /**
5335
- * The property’s name.
5336
- */
5337
- name: string
5338
- }
5339
-
5340
- export interface Aspect {
5341
- /**
5342
- * All translations for the entry, identified by IETF language tag (BCP47).
5343
- */
5344
- translations: {
5345
- [localeId: string]: AspectTranslation
5346
- }
5347
- }
5348
-
5349
- /**
5350
- * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
5351
- */
5352
- export type Aspect_ID = string
5353
-
5354
- export interface AspectTranslation {
5355
- /**
5356
- * The aspect’s name.
5357
- */
5358
- name: string
5359
-
5360
- /**
5361
- * In some languages, the aspect’s grammatical gender influences the full name of a *Master of (Aspect)* instance. To make this possible, the *name* (**not** the *name in library*) is joined with what is contained in this field.
5362
- */
5363
- master_of_aspect_suffix?: string
5365
+ region?: string
5364
5366
  }
5365
5367
 
5366
5368
  export interface AnimalShape {
@@ -7038,32 +7040,6 @@ export interface AdventurePointsDependingOnActiveInstancesThreshold {
7038
7040
  */
7039
7041
  export type AdventurePointsDependingOnActiveInstancesExpression = MathOperation<AdventurePointsDependingOnActiveInstancesExpressionValue>
7040
7042
 
7041
- export type MathOperation<Value> =
7042
- | {
7043
- kind: "Value"
7044
- Value: Value
7045
- }
7046
- | {
7047
- kind: "Addition"
7048
- Addition: [MathOperation<Value>, MathOperation<Value>]
7049
- }
7050
- | {
7051
- kind: "Subtraction"
7052
- Subtraction: [MathOperation<Value>, MathOperation<Value>]
7053
- }
7054
- | {
7055
- kind: "Multiplication"
7056
- Multiplication: [MathOperation<Value>, MathOperation<Value>]
7057
- }
7058
- | {
7059
- kind: "Division"
7060
- Division: [MathOperation<Value>, MathOperation<Value>]
7061
- }
7062
- | {
7063
- kind: "Exponentiation"
7064
- Exponentiation: [MathOperation<Value>, MathOperation<Value>]
7065
- }
7066
-
7067
7043
  /**
7068
7044
  * The type of value allowed in the expression to calculate the AP value.
7069
7045
  */
@@ -7097,211 +7073,47 @@ export type LiturgyPrerequisiteGroup =
7097
7073
  }
7098
7074
 
7099
7075
  /**
7100
- * Requires a specific extension rule (focus rule or optional rule) to be used/active.
7076
+ * The effect description may be either a plain text or a text that is divided by a list of effects for each quality level. It may also be a list for each two quality levels.
7101
7077
  */
7102
- export interface RulePrerequisite {
7103
- id: ExtensionRuleIdentifier
7104
- display_option?: DisplayOption
7105
- }
7106
-
7107
- export type ExtensionRuleIdentifier =
7078
+ export type ActivatableSkillEffect =
7108
7079
  | {
7109
- kind: "FocusRule"
7110
- FocusRule: FocusRule_ID
7080
+ kind: "Plain"
7081
+ Plain: ActivatableSkillPlainEffect
7111
7082
  }
7112
7083
  | {
7113
- kind: "OptionalRule"
7114
- OptionalRule: OptionalRule_ID
7084
+ kind: "ForEachQualityLevel"
7085
+ ForEachQualityLevel: ActivatableSkillEffectForEachQualityLevel
7086
+ }
7087
+ | {
7088
+ kind: "ForEachTwoQualityLevels"
7089
+ ForEachTwoQualityLevels: ActivatableSkillEffectForEachTwoQualityLevels
7115
7090
  }
7116
7091
 
7117
- export interface FocusRule {
7092
+ export interface ActivatableSkillPlainEffect {
7118
7093
  /**
7119
- * The associated subject.
7094
+ * The effect description.
7120
7095
  */
7121
- subject: Subject_ID
7096
+ text: string
7097
+ }
7122
7098
 
7099
+ export interface ActivatableSkillEffectForEachQualityLevel {
7123
7100
  /**
7124
- * The focus rule’s level.
7101
+ * The effect description before the list of effects for each quality level.
7125
7102
  */
7126
- level: number
7103
+ text_before: string
7127
7104
 
7128
7105
  /**
7129
- * Has the focus rule not been implemented in Optolith yet? This is also true if the focus rule does not (currently) apply to any Optolith feature.
7106
+ * The list of effects for each quality level. The first element represents QL 1, the second element QL 2, and so on.
7130
7107
  */
7131
- isMissingImplementation: boolean
7132
-
7133
- prerequisites?: RulePrerequisites
7108
+ quality_levels: [string, string, string, string, string, string]
7134
7109
 
7135
7110
  /**
7136
- * References to where in which publications this entry has been defined. Entries may also be added or removed in later printings.
7111
+ * The effect description after the list of effects for each quality level.
7137
7112
  */
7138
- src: PublicationRefs
7113
+ text_after?: string
7114
+ }
7139
7115
 
7140
- /**
7141
- * All translations for the entry, identified by IETF language tag (BCP47).
7142
- */
7143
- translations: {
7144
- [localeId: string]: FocusRuleTranslation
7145
- }
7146
- }
7147
-
7148
- /**
7149
- * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
7150
- */
7151
- export type FocusRule_ID = string
7152
-
7153
- export interface FocusRuleTranslation {
7154
- /**
7155
- * The focus rule’s name.
7156
- */
7157
- name: string
7158
-
7159
- /**
7160
- * The description of the focus rule.
7161
- */
7162
- description: string
7163
-
7164
- errata?: Errata
7165
- }
7166
-
7167
- /**
7168
- * Subjects or Subject Areas are the categories of Focus Rules.
7169
- */
7170
- export interface Subject {
7171
- /**
7172
- * All translations for the entry, identified by IETF language tag (BCP47).
7173
- */
7174
- translations: {
7175
- [localeId: string]: SubjectTranslation
7176
- }
7177
- }
7178
-
7179
- /**
7180
- * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
7181
- */
7182
- export type Subject_ID = string
7183
-
7184
- export interface SubjectTranslation {
7185
- /**
7186
- * The subject.
7187
- */
7188
- name: string
7189
- }
7190
-
7191
- export type RulePrerequisites = PlainPrerequisites<RulePrerequisiteGroup>
7192
-
7193
- export type RulePrerequisiteGroup =
7194
- | {
7195
- kind: "Rule"
7196
- Rule: RulePrerequisite
7197
- }
7198
-
7199
- export interface OptionalRule {
7200
- /**
7201
- * Has the optional rule not been implemented in Optolith yet? This is also true if the optional rule does not (currently) apply to any Optolith feature.
7202
- */
7203
- isMissingImplementation: boolean
7204
-
7205
- /**
7206
- * How this optional rule influences the complexity of the game, if specified.
7207
- */
7208
- complexityInfluence?: ComplexityInfluence
7209
-
7210
- prerequisites?: RulePrerequisites
7211
-
7212
- /**
7213
- * References to where in which publications this entry has been defined. Entries may also be added or removed in later printings.
7214
- */
7215
- src: PublicationRefs
7216
-
7217
- /**
7218
- * All translations for the entry, identified by IETF language tag (BCP47).
7219
- */
7220
- translations: {
7221
- [localeId: string]: OptionalRuleTranslation
7222
- }
7223
- }
7224
-
7225
- /**
7226
- * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
7227
- */
7228
- export type OptionalRule_ID = string
7229
-
7230
- export interface OptionalRuleTranslation {
7231
- /**
7232
- * The optional rule’s name.
7233
- */
7234
- name: string
7235
-
7236
- /**
7237
- * The description of the optional rule, as stated in the optional rule box.
7238
- */
7239
- description: string
7240
-
7241
- /**
7242
- * Sometimes, an optional rule does not only contain all the rules belonging to it in its rule box, but also in the main text.
7243
- */
7244
- additionalRules?: string
7245
-
7246
- errata?: Errata
7247
- }
7248
-
7249
- /**
7250
- * How this optional rule influences the complexity of the game.
7251
- */
7252
- export type ComplexityInfluence =
7253
- | {
7254
- kind: "Less"
7255
- }
7256
- | {
7257
- kind: "Unchanged"
7258
- }
7259
- | {
7260
- kind: "More"
7261
- }
7262
-
7263
- /**
7264
- * The effect description may be either a plain text or a text that is divided by a list of effects for each quality level. It may also be a list for each two quality levels.
7265
- */
7266
- export type ActivatableSkillEffect =
7267
- | {
7268
- kind: "Plain"
7269
- Plain: ActivatableSkillPlainEffect
7270
- }
7271
- | {
7272
- kind: "ForEachQualityLevel"
7273
- ForEachQualityLevel: ActivatableSkillEffectForEachQualityLevel
7274
- }
7275
- | {
7276
- kind: "ForEachTwoQualityLevels"
7277
- ForEachTwoQualityLevels: ActivatableSkillEffectForEachTwoQualityLevels
7278
- }
7279
-
7280
- export interface ActivatableSkillPlainEffect {
7281
- /**
7282
- * The effect description.
7283
- */
7284
- text: string
7285
- }
7286
-
7287
- export interface ActivatableSkillEffectForEachQualityLevel {
7288
- /**
7289
- * The effect description before the list of effects for each quality level.
7290
- */
7291
- text_before: string
7292
-
7293
- /**
7294
- * The list of effects for each quality level. The first element represents QL 1, the second element QL 2, and so on.
7295
- */
7296
- quality_levels: [string, string, string, string, string, string]
7297
-
7298
- /**
7299
- * The effect description after the list of effects for each quality level.
7300
- */
7301
- text_after?: string
7302
- }
7303
-
7304
- export interface ActivatableSkillEffectForEachTwoQualityLevels {
7116
+ export interface ActivatableSkillEffectForEachTwoQualityLevels {
7305
7117
  /**
7306
7118
  * The effect description before the list of effects for each quality level.
7307
7119
  */
@@ -8449,6 +8261,65 @@ export interface ProfessionPackage {
8449
8261
  */
8450
8262
  export type ProfessionPackage_ID = string
8451
8263
 
8264
+ /**
8265
+ * Adventure Points and maximum values at hero creation.
8266
+ */
8267
+ export interface ExperienceLevel {
8268
+ /**
8269
+ * The AP value you get.
8270
+ */
8271
+ adventure_points: number
8272
+
8273
+ /**
8274
+ * The highest possible attribute value.
8275
+ */
8276
+ max_attribute_value: number
8277
+
8278
+ /**
8279
+ * The highest possible skill rating.
8280
+ */
8281
+ max_skill_rating: number
8282
+
8283
+ /**
8284
+ * The highest possible combat technique rating.
8285
+ */
8286
+ max_combat_technique_rating: number
8287
+
8288
+ /**
8289
+ * The limit for the sum of all attribute values.
8290
+ */
8291
+ max_attribute_total: number
8292
+
8293
+ /**
8294
+ * The maximum of spells/chants you can activate.
8295
+ */
8296
+ max_number_of_spells_liturgical_chants: number
8297
+
8298
+ /**
8299
+ * The maximum of spells of an unfamiliar tradition you can activate.
8300
+ */
8301
+ max_number_of_unfamiliar_spells: number
8302
+
8303
+ /**
8304
+ * All translations for the entry, identified by IETF language tag (BCP47).
8305
+ */
8306
+ translations: {
8307
+ [localeId: string]: ExperienceLevelTranslation
8308
+ }
8309
+ }
8310
+
8311
+ /**
8312
+ * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
8313
+ */
8314
+ export type ExperienceLevel_ID = string
8315
+
8316
+ export interface ExperienceLevelTranslation {
8317
+ /**
8318
+ * The experience level’s name.
8319
+ */
8320
+ name: string
8321
+ }
8322
+
8452
8323
  export type ProfessionPrerequisites = PlainPrerequisites<ProfessionPrerequisiteGroup>
8453
8324
 
8454
8325
  export type ProfessionPrerequisiteGroup =
@@ -8485,121 +8356,66 @@ export interface CulturePrerequisite {
8485
8356
  display_option?: DisplayOption
8486
8357
  }
8487
8358
 
8488
- /**
8489
- * In some areas, the profession package grants a loose set of stats where the player must choose between different options for the profession package.
8490
- */
8491
- export interface ProfessionPackageOptions {
8492
- skill_specialization?: SkillSpecializationOptions
8493
- languages_scripts?: LanguagesScriptsOptions
8494
- combat_techniques?: CombatTechniquesOptions
8495
- cantrips?: CantripsOptions
8496
- curses?: CursesOptions
8497
- skills?: SkillsOptions
8498
- liturgies?: LiturgiesOptions
8499
- }
8500
-
8501
- /**
8502
- * Select an application from a skill or from one of a list of skills where you get a skill specialization for. You can also specify a skill group from which you can choose a skill.
8503
- */
8504
- export type SkillSpecializationOptions =
8505
- | {
8506
- kind: "Specific"
8507
- Specific: SpecificSkillSpecializationOptions
8508
- }
8509
- | {
8510
- kind: "Group"
8511
- Group: SkillGroup_ID
8512
- }
8513
-
8514
- /**
8515
- * Select an application from a skill or from one of a list of skills where you get a skill specialization for.
8516
- */
8517
- export interface SpecificSkillSpecializationOptions {
8359
+ export interface Culture {
8518
8360
  /**
8519
- * Possible skill(s) to get a skill specialization for.
8520
- */
8521
- options: Skill_ID[]
8522
- }
8523
-
8524
- /**
8525
- * Buy languages and scripts for a specific amount of AP.
8526
- */
8527
- export interface LanguagesScriptsOptions {
8528
- /**
8529
- * The AP value you can buy languages and scripts for.
8361
+ * A list of native languages (usually it is only one).
8530
8362
  */
8531
- ap_value: number
8532
- }
8363
+ language: CultureLanguage[]
8533
8364
 
8534
- /**
8535
- * Select one or more combat techniques you get a CtR bonus for.
8536
- */
8537
- export interface CombatTechniquesOptions {
8538
8365
  /**
8539
- * Specify the number of combat techniques that can be selected so that they get increased to a specific CtR. There can be multiple selections with different CtRs.
8366
+ * A list of native scripts (usually it is only one). If the culture does not use any script, leave this array empty.
8540
8367
  */
8541
- fixed: RatingForCombatTechniquesNumber[]
8368
+ script?: Script_ID[]
8542
8369
 
8543
8370
  /**
8544
- * Define if after the fixed selections the remaining unselected combat techniques will receive a certain rating bonus as well.
8371
+ * If the area knowledge has a fixed value or can be adjusted.
8545
8372
  */
8546
- rest_rating_modifier?: number
8373
+ area_knowledge: AreaKnowledge
8547
8374
 
8548
8375
  /**
8549
- * The list of combat techniques to choose from.
8376
+ * A list of possible social status in the respective culture.
8550
8377
  */
8551
- options: CombatTechniqueIdentifier[]
8552
- }
8378
+ social_status: SocialStatus_ID[]
8553
8379
 
8554
- export interface RatingForCombatTechniquesNumber {
8555
8380
  /**
8556
- * The number of selectable combat techniques.
8381
+ * A list of professions that are typical for the culture, as well as professions that are rarely practiced or encountered in the culture. The list is either defined by group (as multiple lists) or plain (as a single list).
8557
8382
  */
8558
- number: number
8383
+ common_professions: CommonProfessions
8559
8384
 
8560
8385
  /**
8561
- * The rating bonus provided for the selected combat technique(s).
8562
- *
8563
- * **Note:** This is a rating *bonus*, so it will be *added* to the default value of 6.
8386
+ * A list of common advantages.
8564
8387
  */
8565
- rating_modifier: number
8566
- }
8388
+ common_advantages?: CommonnessRatedAdvantageDisadvantage<Advantage_ID>[]
8567
8389
 
8568
- /**
8569
- * Select one or more cantrips you receive.
8570
- */
8571
- export interface CantripsOptions {
8572
8390
  /**
8573
- * The number of selectable cantrips.
8391
+ * A list of common disadvantages.
8574
8392
  */
8575
- number: number
8393
+ common_disadvantages?: CommonnessRatedAdvantageDisadvantage<Disadvantage_ID>[]
8576
8394
 
8577
8395
  /**
8578
- * The list of cantrips to choose from.
8396
+ * A list of uncommon advantages.
8579
8397
  */
8580
- options: Cantrip_ID[]
8581
- }
8398
+ uncommon_advantages?: CommonnessRatedAdvantageDisadvantage<Advantage_ID>[]
8582
8399
 
8583
- export interface Cantrip {
8584
8400
  /**
8585
- * Measurable parameters of a cantrip.
8401
+ * A list of uncommon disadvantages.
8586
8402
  */
8587
- parameters: CantripPerformanceParameters
8403
+ uncommon_disadvantages?: CommonnessRatedAdvantageDisadvantage<Disadvantage_ID>[]
8588
8404
 
8589
8405
  /**
8590
- * The target category – the kind of creature or object – the skill affects.
8406
+ * A list of common skills.
8591
8407
  */
8592
- target: AffectedTargetCategories
8408
+ common_skills: CommonnessRatedSkill[]
8593
8409
 
8594
8410
  /**
8595
- * The associated property.
8411
+ * A list of uncommon skills.
8596
8412
  */
8597
- property: Property_ID
8413
+ uncommon_skills?: CommonnessRatedSkill[]
8598
8414
 
8599
8415
  /**
8600
- * A note specifying the dissemination of the cantrip in different traditions. Sometimes a cantrip is exclusively available to one or more specific traditions, but usually one the academies and traditions are listed the cantrip is most commonly teached in.
8416
+ * The skill points you get for buying the culture package.
8601
8417
  */
8602
- note?: CantripNote
8418
+ cultural_package: CulturalPackageItem[]
8603
8419
 
8604
8420
  /**
8605
8421
  * References to where in which publications this entry has been defined. Entries may also be added or removed in later printings.
@@ -8610,201 +8426,687 @@ export interface Cantrip {
8610
8426
  * All translations for the entry, identified by IETF language tag (BCP47).
8611
8427
  */
8612
8428
  translations: {
8613
- [localeId: string]: CantripTranslation
8429
+ [localeId: string]: CultureTranslation
8614
8430
  }
8615
8431
  }
8616
8432
 
8617
8433
  /**
8618
8434
  * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
8619
8435
  */
8620
- export type Cantrip_ID = string
8436
+ export type Culture_ID = string
8621
8437
 
8622
- export interface CantripTranslation {
8438
+ export interface CultureTranslation {
8623
8439
  /**
8624
- * The cantrip’s name.
8440
+ * The race’s name.
8625
8441
  */
8626
8442
  name: string
8627
8443
 
8628
8444
  /**
8629
- * The effect description.
8445
+ * The description of the area knowledge.
8630
8446
  */
8631
- effect: string
8632
-
8633
- range: string
8634
-
8635
- duration: string
8636
-
8637
- target: string
8638
-
8639
- errata?: Errata
8640
- }
8641
-
8642
- /**
8643
- * Measurable parameters of a cantrip.
8644
- */
8645
- export interface CantripPerformanceParameters {
8646
- range: CantripRange
8647
- duration: CantripDuration
8648
- }
8649
-
8650
- export type CantripRange =
8651
- | {
8652
- kind: "Self"
8653
- }
8654
- | {
8655
- kind: "Touch"
8656
- }
8657
- | {
8658
- kind: "Fixed"
8659
- Fixed: FixedRange
8660
- }
8661
-
8662
- export type CantripDuration =
8663
- | {
8664
- kind: "Immediate"
8665
- }
8666
- | {
8667
- kind: "Fixed"
8668
- Fixed: FixedCantripDuration
8669
- }
8670
- | {
8671
- kind: "DuringLovemaking"
8672
- DuringLovemaking: CastingTimeDuringLovemaking
8673
- }
8674
- | {
8675
- kind: "Indefinite"
8676
- Indefinite: IndefiniteCantripDuration
8677
- }
8447
+ area_knowledge: AreaKnowledgeTranslation
8678
8448
 
8679
- export interface FixedCantripDuration {
8680
8449
  /**
8681
- * If the duration is the maximum duration, so it may end earlier.
8450
+ * The respective common advantages text from the source book.
8682
8451
  */
8683
- is_maximum?: boolean
8452
+ common_advantages?: string
8684
8453
 
8685
8454
  /**
8686
- * The (unitless) duration.
8455
+ * The respective common disadvantages text from the source book.
8687
8456
  */
8688
- value: number
8457
+ common_disadvantages?: string
8689
8458
 
8690
8459
  /**
8691
- * The duration unit.
8460
+ * The respective uncommon advantages text from the source book.
8692
8461
  */
8693
- unit: DurationUnit
8694
- }
8462
+ uncommon_advantages?: string
8695
8463
 
8696
- export interface IndefiniteCantripDuration {
8697
8464
  /**
8698
- * All translations for the entry, identified by IETF language tag (BCP47).
8465
+ * The respective uncommon disadvantages text from the source book.
8699
8466
  */
8700
- translations: {
8701
- [localeId: string]: IndefiniteCantripDurationTranslation
8702
- }
8703
- }
8467
+ uncommon_disadvantages?: string
8704
8468
 
8705
- export interface IndefiniteCantripDurationTranslation {
8706
8469
  /**
8707
- * A description of the duration.
8470
+ * Structured description of common names.
8708
8471
  */
8709
- description: ResponsiveText
8472
+ common_names: CommonNames
8473
+
8474
+ errata?: Errata
8710
8475
  }
8711
8476
 
8712
8477
  /**
8713
- * A note specifying the dissemination of the cantrip in different traditions. Sometimes a cantrip is exclusively available to one or more specific traditions, but usually one the academies and traditions are listed the cantrip is most commonly teached in.
8478
+ * A native languages with optional specializations.
8714
8479
  */
8715
- export type CantripNote =
8716
- | {
8717
- kind: "Exclusive"
8718
- Exclusive: ExclusiveCantripNote
8719
- }
8720
- | {
8721
- kind: "Common"
8722
- Common: CommonCantripNotes
8723
- }
8480
+ export interface CultureLanguage {
8481
+ /**
8482
+ * The language’s identifier.
8483
+ */
8484
+ id: Language_ID
8724
8485
 
8725
- export interface ExclusiveCantripNote {
8726
8486
  /**
8727
- * The traditions the cantrip is exclusively available to.
8487
+ * The language specializations, if any.
8728
8488
  */
8729
- traditions: MagicalTradition_ID[]
8489
+ specializations?: LanguageSpecialization_ID[]
8730
8490
  }
8731
8491
 
8732
- export interface CommonCantripNotes {
8492
+ export interface Script {
8733
8493
  /**
8734
- * The academies and traditions the cantrip is commonly teached in.
8494
+ * The script’s adventure point value
8735
8495
  */
8736
- list: CommonCantripNote[]
8737
- }
8496
+ ap_value?: number
8738
8497
 
8739
- export type CommonCantripNote =
8740
- | {
8741
- kind: "Academy"
8742
- Academy: Curriculum_ID
8743
- }
8744
- | {
8745
- kind: "Tradition"
8746
- Tradition: CommonCantripTraditionNote
8747
- }
8498
+ /**
8499
+ * A list of languages that use this script.
8500
+ */
8501
+ associated_languages: Language_ID[]
8748
8502
 
8749
- export interface CommonCantripTraditionNote {
8750
8503
  /**
8751
- * The magical tradition’s identifier.
8504
+ * The continents this language is present on.
8752
8505
  */
8753
- id: MagicalTradition_ID
8506
+ continent: AssociatedContinent[]
8754
8507
 
8755
8508
  /**
8756
- * All translations for the entry, identified by IETF language tag (BCP47).
8509
+ * References to where in which publications this entry has been defined. Entries may also be added or removed in later printings.
8757
8510
  */
8758
- translations?: {
8759
- [localeId: string]: CommonCantripTraditionNoteTranslation
8760
- }
8761
- }
8511
+ src: PublicationRefs
8762
8512
 
8763
- export interface CommonCantripTraditionNoteTranslation {
8764
8513
  /**
8765
- * A note, appended to the generated string in parenthesis.
8514
+ * All translations for the entry, identified by IETF language tag (BCP47).
8766
8515
  */
8767
- note: string
8516
+ translations: {
8517
+ [localeId: string]: ScriptTranslation
8518
+ }
8768
8519
  }
8769
8520
 
8770
8521
  /**
8771
- * Buy curses for a specific amount of AP.
8522
+ * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
8772
8523
  */
8773
- export interface CursesOptions {
8524
+ export type Script_ID = string
8525
+
8526
+ export interface ScriptTranslation {
8774
8527
  /**
8775
- * The AP value you can buy curses for.
8528
+ * The script’s name.
8776
8529
  */
8777
- ap_value: number
8778
- }
8530
+ name: string
8779
8531
 
8780
- /**
8781
- * Buy skills for a specific amount of AP.
8782
- */
8783
- export interface SkillsOptions {
8784
8532
  /**
8785
- * If specified, you may only choose from skills of the specified group.
8533
+ * A list of alternative names.
8786
8534
  */
8787
- group: SkillGroup_ID
8535
+ alternative_names?: AlternativeName[]
8788
8536
 
8789
8537
  /**
8790
- * The AP value you can buy skills for.
8538
+ * The description of the alphabet.
8791
8539
  */
8792
- ap_value: number
8540
+ alphabet?: string
8541
+
8542
+ errata?: Errata
8793
8543
  }
8794
8544
 
8795
8545
  /**
8796
- * Buy liturgical chants and ceremonies for a specific amount of AP.
8546
+ * If the area knowledge has a fixed value or can be adjusted.
8797
8547
  */
8798
- export interface LiturgiesOptions {
8548
+ export interface AreaKnowledge {
8799
8549
  /**
8800
- * The AP value you can buy liturgical chants and ceremonies for.
8550
+ * `true` if the area knowledge has a fixed value, `false` if it can be adjusted.
8801
8551
  */
8802
- ap_value: number
8552
+ is_fixed: boolean
8803
8553
  }
8804
8554
 
8805
- export type ProfessionSpecialAbility =
8806
- | {
8807
- kind: "Constant"
8555
+ export interface SocialStatus {
8556
+ /**
8557
+ * The social status’ position. The higher the position, the more powerful the social status. This has to be a unique value.
8558
+ */
8559
+ position: number
8560
+
8561
+ /**
8562
+ * All translations for the entry, identified by IETF language tag (BCP47).
8563
+ */
8564
+ translations: {
8565
+ [localeId: string]: SocialStatusTranslation
8566
+ }
8567
+ }
8568
+
8569
+ /**
8570
+ * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
8571
+ */
8572
+ export type SocialStatus_ID = string
8573
+
8574
+ export interface SocialStatusTranslation {
8575
+ /**
8576
+ * The social status’ name.
8577
+ */
8578
+ name: string
8579
+ }
8580
+
8581
+ /**
8582
+ * A list of professions that are typical for the culture, as well as professions that are rarely practiced or encountered in the culture. The list is either defined by group (as multiple lists) or plain (as a single list).
8583
+ */
8584
+ export type CommonProfessions =
8585
+ | {
8586
+ kind: "Plain"
8587
+ Plain: PlainCommonProfessions
8588
+ }
8589
+ | {
8590
+ kind: "Grouped"
8591
+ Grouped: GroupedCommonProfessions
8592
+ }
8593
+
8594
+ export type PlainCommonProfessions = CommonProfessionConstraints<Profession_ID>
8595
+
8596
+ /**
8597
+ * A list of professions. The filter specifies how the list is applied to all mundane professions.
8598
+ */
8599
+ export interface CommonProfessionConstraints<Constraint> {
8600
+ /**
8601
+ * The list of constraints.
8602
+ */
8603
+ constraints: Constraint[]
8604
+
8605
+ /**
8606
+ * This defines how the list of constraints should be offset against the list of all mundane professions: Either only the professions are kept that intersect with the constraints or only the professions are kept that are different from the constraints.
8607
+ */
8608
+ operation: CommonProfessionConstraintsOperation
8609
+ }
8610
+
8611
+ /**
8612
+ * This defines how the list of constraints should be offset against the list of all mundane professions: Either only the professions are kept that intersect with the constraints or only the professions are kept that are different from the constraints.
8613
+ */
8614
+ export type CommonProfessionConstraintsOperation =
8615
+ | {
8616
+ kind: "Intersection"
8617
+ }
8618
+ | {
8619
+ kind: "Difference"
8620
+ }
8621
+
8622
+ /**
8623
+ * Lists of professions by group.
8624
+ */
8625
+ export interface GroupedCommonProfessions {
8626
+ mundane?: CommonProfessionConstraints<MundaneCommonProfessionConstraint>
8627
+ magic?: CommonProfessionConstraints<MagicCommonProfessionConstraint>
8628
+ blessed?: CommonProfessionConstraints<BlessedCommonProfessionConstraint>
8629
+ }
8630
+
8631
+ export type MundaneCommonProfessionConstraint =
8632
+ | {
8633
+ kind: "Profession"
8634
+ Profession: ProfessionConstraint
8635
+ }
8636
+
8637
+ export interface ProfessionConstraint {
8638
+ /**
8639
+ * The profession’s identifier.
8640
+ */
8641
+ id: Profession_ID
8642
+
8643
+ /**
8644
+ * Some profession variants are more common than others. There may be cultures where some variants are not represented at all.
8645
+ */
8646
+ weighted_variants?: Weighted<ProfessionVariant_ID>
8647
+
8648
+ /**
8649
+ * Some professions may be found in a culture, but are not that common.
8650
+ */
8651
+ rarity?: Rarity
8652
+ }
8653
+
8654
+ /**
8655
+ * Some professions or profession variants are more common than others. There may be cultures where some professions or profession variants are not represented at all.
8656
+ */
8657
+ export interface Weighted<ProfessionOrVariant> {
8658
+ /**
8659
+ * The list of more common professions or profession variants.
8660
+ */
8661
+ elements: ProfessionOrVariant[]
8662
+
8663
+ /**
8664
+ * The list of more common professions or profession variants.
8665
+ */
8666
+ weight: CommonnessWeight
8667
+ }
8668
+
8669
+ /**
8670
+ * The “weight” difference compared to other professions or profession variants. Some professions or profession variants are simply more common (`Mostly`), but sometimes only specific elements are used (`Only`).
8671
+ */
8672
+ export type CommonnessWeight =
8673
+ | {
8674
+ kind: "Mostly"
8675
+ }
8676
+ | {
8677
+ kind: "Only"
8678
+ }
8679
+
8680
+ export interface ProfessionVariant {
8681
+ /**
8682
+ * The associated profession package.
8683
+ */
8684
+ profession_package: ProfessionPackage_ID
8685
+
8686
+ /**
8687
+ * The AP value you have to pay for the package variant. Some variants may reduce the AP value of the base package.
8688
+ */
8689
+ ap_value?: number
8690
+
8691
+ /**
8692
+ * Which prerequisites must be met to buy the stat block? For example, a character might need the advantage Spellcaster or Blessed. Note: the AP cost for a profession package does not include these prerequisites.
8693
+ */
8694
+ prerequisites?: ProfessionPrerequisites
8695
+
8696
+ /**
8697
+ * In some areas, the profession package grants a loose set of stats where the player must choose between different options for the profession package. The variant may override or remove those options.
8698
+ */
8699
+ options?: ProfessionVariantPackageOptions
8700
+
8701
+ /**
8702
+ * Any special abilities the profession receives from the package variant.
8703
+ */
8704
+ special_abilities?: ProfessionVariantSpecialAbility[]
8705
+
8706
+ /**
8707
+ * Provides ratings for the combat techniques that the hero receives from the package variant.
8708
+ */
8709
+ combat_techniques?: CombatTechniqueRating[]
8710
+
8711
+ /**
8712
+ * The skill ratings the package variant grants to the hero.
8713
+ */
8714
+ skills?: SkillRating[]
8715
+
8716
+ /**
8717
+ * The skill ratings a magical profession variant receives for spells; these spells are considered activated. Spells from an unfamiliar Tradition, if any, are identified as such.
8718
+ */
8719
+ spells?: MagicalSkillRating[]
8720
+
8721
+ /**
8722
+ * Clerical profession variants receive these liturgical chants at the listed skill ratings. These liturgical chants are considered activated.
8723
+ */
8724
+ liturgical_chants?: LiturgicalChantRating[]
8725
+
8726
+ /**
8727
+ * All translations for the entry, identified by IETF language tag (BCP47).
8728
+ */
8729
+ translations: {
8730
+ [localeId: string]: ProfessionVariantTranslation
8731
+ }
8732
+ }
8733
+
8734
+ /**
8735
+ * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
8736
+ */
8737
+ export type ProfessionVariant_ID = string
8738
+
8739
+ export interface ProfessionVariantTranslation {
8740
+ /**
8741
+ * The profession variant’s name.
8742
+ */
8743
+ name: ProfessionName
8744
+
8745
+ /**
8746
+ * A text that replaces the generated text for the profession variant.
8747
+ */
8748
+ full_text?: string
8749
+
8750
+ /**
8751
+ * A text that is appended to the generated text for the profession variant.
8752
+ */
8753
+ concluding_text?: string
8754
+ }
8755
+
8756
+ /**
8757
+ * In some areas, the profession package grants a loose set of stats where the player must choose between different options for the profession package. The variant may override or remove those options.
8758
+ */
8759
+ export interface ProfessionVariantPackageOptions {
8760
+ skill_specialization?: VariantOptionAction<SkillSpecializationOptions>
8761
+ languages_scripts?: VariantOptionAction<LanguagesScriptsOptions>
8762
+ combat_techniques?: VariantOptionAction<CombatTechniquesOptions>
8763
+ cantrips?: VariantOptionAction<CantripsOptions>
8764
+ curses?: VariantOptionAction<CursesOptions>
8765
+ skills?: VariantOptionAction<SkillsOptions>
8766
+ liturgies?: VariantOptionAction<LiturgiesOptions>
8767
+ }
8768
+
8769
+ export type VariantOptionAction<T> =
8770
+ | {
8771
+ kind: "Remove"
8772
+ }
8773
+ | {
8774
+ kind: "Override"
8775
+ Override: T
8776
+ }
8777
+
8778
+ /**
8779
+ * Select an application from a skill or from one of a list of skills where you get a skill specialization for. You can also specify a skill group from which you can choose a skill.
8780
+ */
8781
+ export type SkillSpecializationOptions =
8782
+ | {
8783
+ kind: "Specific"
8784
+ Specific: SpecificSkillSpecializationOptions
8785
+ }
8786
+ | {
8787
+ kind: "Group"
8788
+ Group: SkillGroup_ID
8789
+ }
8790
+
8791
+ /**
8792
+ * Select an application from a skill or from one of a list of skills where you get a skill specialization for.
8793
+ */
8794
+ export interface SpecificSkillSpecializationOptions {
8795
+ /**
8796
+ * Possible skill(s) to get a skill specialization for.
8797
+ */
8798
+ options: Skill_ID[]
8799
+ }
8800
+
8801
+ /**
8802
+ * Buy languages and scripts for a specific amount of AP.
8803
+ */
8804
+ export interface LanguagesScriptsOptions {
8805
+ /**
8806
+ * The AP value you can buy languages and scripts for.
8807
+ */
8808
+ ap_value: number
8809
+ }
8810
+
8811
+ /**
8812
+ * Select one or more combat techniques you get a CtR bonus for.
8813
+ */
8814
+ export interface CombatTechniquesOptions {
8815
+ /**
8816
+ * Specify the number of combat techniques that can be selected so that they get increased to a specific CtR. There can be multiple selections with different CtRs.
8817
+ */
8818
+ fixed: RatingForCombatTechniquesNumber[]
8819
+
8820
+ /**
8821
+ * Define if after the fixed selections the remaining unselected combat techniques will receive a certain rating bonus as well.
8822
+ */
8823
+ rest_rating_modifier?: number
8824
+
8825
+ /**
8826
+ * The list of combat techniques to choose from.
8827
+ */
8828
+ options: CombatTechniqueIdentifier[]
8829
+ }
8830
+
8831
+ export interface RatingForCombatTechniquesNumber {
8832
+ /**
8833
+ * The number of selectable combat techniques.
8834
+ */
8835
+ number: number
8836
+
8837
+ /**
8838
+ * The rating bonus provided for the selected combat technique(s).
8839
+ *
8840
+ * **Note:** This is a rating *bonus*, so it will be *added* to the default value of 6.
8841
+ */
8842
+ rating_modifier: number
8843
+ }
8844
+
8845
+ /**
8846
+ * Select one or more cantrips you receive.
8847
+ */
8848
+ export interface CantripsOptions {
8849
+ /**
8850
+ * The number of selectable cantrips.
8851
+ */
8852
+ number: number
8853
+
8854
+ /**
8855
+ * The list of cantrips to choose from.
8856
+ */
8857
+ options: Cantrip_ID[]
8858
+ }
8859
+
8860
+ export interface Cantrip {
8861
+ /**
8862
+ * Measurable parameters of a cantrip.
8863
+ */
8864
+ parameters: CantripPerformanceParameters
8865
+
8866
+ /**
8867
+ * The target category – the kind of creature or object – the skill affects.
8868
+ */
8869
+ target: AffectedTargetCategories
8870
+
8871
+ /**
8872
+ * The associated property.
8873
+ */
8874
+ property: Property_ID
8875
+
8876
+ /**
8877
+ * A note specifying the dissemination of the cantrip in different traditions. Sometimes a cantrip is exclusively available to one or more specific traditions, but usually one the academies and traditions are listed the cantrip is most commonly teached in.
8878
+ */
8879
+ note?: CantripNote
8880
+
8881
+ /**
8882
+ * References to where in which publications this entry has been defined. Entries may also be added or removed in later printings.
8883
+ */
8884
+ src: PublicationRefs
8885
+
8886
+ /**
8887
+ * All translations for the entry, identified by IETF language tag (BCP47).
8888
+ */
8889
+ translations: {
8890
+ [localeId: string]: CantripTranslation
8891
+ }
8892
+ }
8893
+
8894
+ /**
8895
+ * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
8896
+ */
8897
+ export type Cantrip_ID = string
8898
+
8899
+ export interface CantripTranslation {
8900
+ /**
8901
+ * The cantrip’s name.
8902
+ */
8903
+ name: string
8904
+
8905
+ /**
8906
+ * The effect description.
8907
+ */
8908
+ effect: string
8909
+
8910
+ range: string
8911
+
8912
+ duration: string
8913
+
8914
+ target: string
8915
+
8916
+ errata?: Errata
8917
+ }
8918
+
8919
+ /**
8920
+ * Measurable parameters of a cantrip.
8921
+ */
8922
+ export interface CantripPerformanceParameters {
8923
+ range: CantripRange
8924
+ duration: CantripDuration
8925
+ }
8926
+
8927
+ export type CantripRange =
8928
+ | {
8929
+ kind: "Self"
8930
+ }
8931
+ | {
8932
+ kind: "Touch"
8933
+ }
8934
+ | {
8935
+ kind: "Fixed"
8936
+ Fixed: FixedRange
8937
+ }
8938
+
8939
+ export type CantripDuration =
8940
+ | {
8941
+ kind: "Immediate"
8942
+ }
8943
+ | {
8944
+ kind: "Fixed"
8945
+ Fixed: FixedCantripDuration
8946
+ }
8947
+ | {
8948
+ kind: "DuringLovemaking"
8949
+ DuringLovemaking: CastingTimeDuringLovemaking
8950
+ }
8951
+ | {
8952
+ kind: "Indefinite"
8953
+ Indefinite: IndefiniteCantripDuration
8954
+ }
8955
+
8956
+ export interface FixedCantripDuration {
8957
+ /**
8958
+ * If the duration is the maximum duration, so it may end earlier.
8959
+ */
8960
+ is_maximum?: boolean
8961
+
8962
+ /**
8963
+ * The (unitless) duration.
8964
+ */
8965
+ value: number
8966
+
8967
+ /**
8968
+ * The duration unit.
8969
+ */
8970
+ unit: DurationUnit
8971
+ }
8972
+
8973
+ export interface IndefiniteCantripDuration {
8974
+ /**
8975
+ * All translations for the entry, identified by IETF language tag (BCP47).
8976
+ */
8977
+ translations: {
8978
+ [localeId: string]: IndefiniteCantripDurationTranslation
8979
+ }
8980
+ }
8981
+
8982
+ export interface IndefiniteCantripDurationTranslation {
8983
+ /**
8984
+ * A description of the duration.
8985
+ */
8986
+ description: ResponsiveText
8987
+ }
8988
+
8989
+ /**
8990
+ * A note specifying the dissemination of the cantrip in different traditions. Sometimes a cantrip is exclusively available to one or more specific traditions, but usually one the academies and traditions are listed the cantrip is most commonly teached in.
8991
+ */
8992
+ export type CantripNote =
8993
+ | {
8994
+ kind: "Exclusive"
8995
+ Exclusive: ExclusiveCantripNote
8996
+ }
8997
+ | {
8998
+ kind: "Common"
8999
+ Common: CommonCantripNotes
9000
+ }
9001
+
9002
+ export interface ExclusiveCantripNote {
9003
+ /**
9004
+ * The traditions the cantrip is exclusively available to.
9005
+ */
9006
+ traditions: MagicalTradition_ID[]
9007
+ }
9008
+
9009
+ export interface CommonCantripNotes {
9010
+ /**
9011
+ * The academies and traditions the cantrip is commonly teached in.
9012
+ */
9013
+ list: CommonCantripNote[]
9014
+ }
9015
+
9016
+ export type CommonCantripNote =
9017
+ | {
9018
+ kind: "Academy"
9019
+ Academy: Curriculum_ID
9020
+ }
9021
+ | {
9022
+ kind: "Tradition"
9023
+ Tradition: CommonCantripTraditionNote
9024
+ }
9025
+
9026
+ export interface CommonCantripTraditionNote {
9027
+ /**
9028
+ * The magical tradition’s identifier.
9029
+ */
9030
+ id: MagicalTradition_ID
9031
+
9032
+ /**
9033
+ * All translations for the entry, identified by IETF language tag (BCP47).
9034
+ */
9035
+ translations?: {
9036
+ [localeId: string]: CommonCantripTraditionNoteTranslation
9037
+ }
9038
+ }
9039
+
9040
+ export interface CommonCantripTraditionNoteTranslation {
9041
+ /**
9042
+ * A note, appended to the generated string in parenthesis.
9043
+ */
9044
+ note: string
9045
+ }
9046
+
9047
+ /**
9048
+ * Buy curses for a specific amount of AP.
9049
+ */
9050
+ export interface CursesOptions {
9051
+ /**
9052
+ * The AP value you can buy curses for.
9053
+ */
9054
+ ap_value: number
9055
+ }
9056
+
9057
+ /**
9058
+ * Buy skills for a specific amount of AP.
9059
+ */
9060
+ export interface SkillsOptions {
9061
+ /**
9062
+ * If specified, you may only choose from skills of the specified group.
9063
+ */
9064
+ group: SkillGroup_ID
9065
+
9066
+ /**
9067
+ * The list of specific skills to distribute AP to.
9068
+ */
9069
+ specific?: Skill_ID[]
9070
+
9071
+ /**
9072
+ * The AP value you can buy skills for.
9073
+ */
9074
+ ap_value: number
9075
+ }
9076
+
9077
+ /**
9078
+ * Buy liturgical chants and ceremonies for a specific amount of AP.
9079
+ */
9080
+ export interface LiturgiesOptions {
9081
+ /**
9082
+ * The AP value you can buy liturgical chants and ceremonies for.
9083
+ */
9084
+ ap_value: number
9085
+ }
9086
+
9087
+ export interface ProfessionVariantSpecialAbility {
9088
+ /**
9089
+ * If the selection is added to the base profession or if it removes a selection from the base profession with the same values.
9090
+ */
9091
+ action: VariantSpecialAbilityAction
9092
+
9093
+ /**
9094
+ * The special ability to add or remove.
9095
+ */
9096
+ value: ProfessionSpecialAbility
9097
+ }
9098
+
9099
+ export type VariantSpecialAbilityAction =
9100
+ | {
9101
+ kind: "Remove"
9102
+ }
9103
+ | {
9104
+ kind: "Override"
9105
+ }
9106
+
9107
+ export type ProfessionSpecialAbility =
9108
+ | {
9109
+ kind: "Constant"
8808
9110
  Constant: ConstantProfessionSpecialAbility
8809
9111
  }
8810
9112
  | {
@@ -8816,7 +9118,7 @@ export interface ConstantProfessionSpecialAbility {
8816
9118
  /**
8817
9119
  * The identifier of the special ability to grant.
8818
9120
  */
8819
- id: SpecialAbilityIdentifier
9121
+ id: ProfessionSpecialAbilityIdentifier
8820
9122
 
8821
9123
  /**
8822
9124
  * The level of the received special ability. If not specified and the special ability has levels, level 1 is used automatically.
@@ -8829,7 +9131,7 @@ export interface ConstantProfessionSpecialAbility {
8829
9131
  options?: RequirableSelectOptionIdentifier[]
8830
9132
  }
8831
9133
 
8832
- export type SpecialAbilityIdentifier =
9134
+ export type ProfessionSpecialAbilityIdentifier =
8833
9135
  | {
8834
9136
  kind: "AdvancedCombatSpecialAbility"
8835
9137
  AdvancedCombatSpecialAbility: AdvancedCombatSpecialAbility_ID
@@ -9034,6 +9336,10 @@ export type SpecialAbilityIdentifier =
9034
9336
  kind: "WeaponEnchantment"
9035
9337
  WeaponEnchantment: WeaponEnchantment_ID
9036
9338
  }
9339
+ | {
9340
+ kind: "Enhancement"
9341
+ Enhancement: Enhancement_ID
9342
+ }
9037
9343
 
9038
9344
  /**
9039
9345
  * Magical Special Abilities that are being unlocked by Magic Style Special Abilities.
@@ -10838,7 +11144,7 @@ export interface GenMeleeWeapon<Damage> {
10838
11144
  /**
10839
11145
  * The reach of the weapon.
10840
11146
  */
10841
- reach?: Reach_ID
11147
+ reach?: Reach_ID[]
10842
11148
 
10843
11149
  /**
10844
11150
  * The length of the weapon in cm/halffingers.
@@ -10916,6 +11222,11 @@ export type AttackModifier = number
10916
11222
  export type ParryModifier = number
10917
11223
 
10918
11224
  export interface Reach {
11225
+ /**
11226
+ * The position of the reach in lists. Lower values indicate a shorter range; higher values a larger range. This has to be a unique value.
11227
+ */
11228
+ position: number
11229
+
10919
11230
  /**
10920
11231
  * All translations for the entry, identified by IETF language tag (BCP47).
10921
11232
  */
@@ -10981,6 +11292,23 @@ export interface MeleeDamage {
10981
11292
  flat?: number
10982
11293
  }
10983
11294
 
11295
+ export interface Dice {
11296
+ /**
11297
+ * Number of dice of the same type. Example: 2 in 2D6.
11298
+ */
11299
+ number: number
11300
+
11301
+ /**
11302
+ * Number of sides on every die. Example: 6 in 2D6.
11303
+ */
11304
+ sides: DieType
11305
+ }
11306
+
11307
+ /**
11308
+ * Number of sides on every die. Example: 6 in 2D6.
11309
+ */
11310
+ export type DieType = number
11311
+
10984
11312
  export type RangedWeapon = GenRangedWeapon<RangedDamage>
10985
11313
 
10986
11314
  export interface GenRangedWeapon<Damage> {
@@ -11002,7 +11330,7 @@ export interface GenRangedWeapon<Damage> {
11002
11330
  /**
11003
11331
  * The needed ammunition.
11004
11332
  */
11005
- ammunition?: Ammunition_ID
11333
+ ammunition?: AmmunitionishIdentifier
11006
11334
 
11007
11335
  /**
11008
11336
  * The length of the weapon in cm/halffingers.
@@ -11039,6 +11367,16 @@ export interface RangeBrackets {
11039
11367
  far: number
11040
11368
  }
11041
11369
 
11370
+ export type AmmunitionishIdentifier =
11371
+ | {
11372
+ kind: "Ammunition"
11373
+ Ammunition: Ammunition_ID
11374
+ }
11375
+ | {
11376
+ kind: "Weapon"
11377
+ Weapon: Weapon_ID
11378
+ }
11379
+
11042
11380
  export interface Ammunition {
11043
11381
  /**
11044
11382
  * The cost in silverthalers.
@@ -16591,6 +16929,11 @@ export interface FixedMagicalMelodyCost {
16591
16929
  * The (temporary) AE cost value.
16592
16930
  */
16593
16931
  value: number
16932
+
16933
+ /**
16934
+ * The interval at which to pay half the initial cost.
16935
+ */
16936
+ interval?: DurationUnitValue
16594
16937
  }
16595
16938
 
16596
16939
  export interface FirstPersonMagicalMelodyCost {
@@ -17380,6 +17723,10 @@ export type GeodeRitualDuration =
17380
17723
  export type GeodeRitualPrerequisites = PlainPrerequisites<GeodeRitualPrerequisiteGroup>
17381
17724
 
17382
17725
  export type GeodeRitualPrerequisiteGroup =
17726
+ | {
17727
+ kind: "Activatable"
17728
+ Activatable: ActivatablePrerequisite
17729
+ }
17383
17730
  | {
17384
17731
  kind: "Influence"
17385
17732
  Influence: InfluencePrerequisite
@@ -17772,195 +18119,214 @@ export type LiturgyIdentifier =
17772
18119
  LiturgicalChant: LiturgicalChant_ID
17773
18120
  }
17774
18121
  | {
17775
- kind: "Ceremony"
17776
- Ceremony: Ceremony_ID
18122
+ kind: "Ceremony"
18123
+ Ceremony: Ceremony_ID
18124
+ }
18125
+
18126
+ /**
18127
+ * The name of the profession that may have sex-specific names. Useful if the term in generell is different (i.e. actor/actress) or if the language uses gendered nouns. The default name is also used in case neither the male nor female name strictly applies.
18128
+ */
18129
+ export interface ProfessionName {
18130
+ /**
18131
+ * The name from the source publication. This is also used if a character has no specified gender or is neither male nor female.
18132
+ */
18133
+ default: string
18134
+
18135
+ /**
18136
+ * The male name, if different from the default name.
18137
+ */
18138
+ male?: string
18139
+
18140
+ /**
18141
+ * The female name, if different from the default name.
18142
+ */
18143
+ female?: string
18144
+ }
18145
+
18146
+ /**
18147
+ * Some professions may be found in a culture, but are not that common.
18148
+ */
18149
+ export type Rarity =
18150
+ | {
18151
+ kind: "Rare"
18152
+ }
18153
+ | {
18154
+ kind: "VeryRare"
18155
+ }
18156
+
18157
+ export type MagicCommonProfessionConstraint =
18158
+ | {
18159
+ kind: "Tradition"
18160
+ Tradition: MagicalTraditionConstraint
18161
+ }
18162
+ | {
18163
+ kind: "MagicDilettante"
18164
+ }
18165
+ | {
18166
+ kind: "Profession"
18167
+ Profession: ProfessionConstraint
17777
18168
  }
17778
18169
 
17779
- export interface ProfessionVariant {
17780
- /**
17781
- * The associated profession package.
17782
- */
17783
- profession_package: ProfessionPackage_ID
17784
-
18170
+ export interface MagicalTraditionConstraint {
17785
18171
  /**
17786
- * The AP value you have to pay for the package variant. Some variants may reduce the AP value of the base package.
18172
+ * The magical tradition’s identifier.
17787
18173
  */
17788
- ap_value?: number
18174
+ id: MagicalTradition_ID
17789
18175
 
17790
18176
  /**
17791
- * Which prerequisites must be met to buy the stat block? For example, a character might need the advantage Spellcaster or Blessed. Note: the AP cost for a profession package does not include these prerequisites.
18177
+ * Some professions are more common than others. There may be cultures where some professions are not represented at all.
17792
18178
  */
17793
- prerequisites?: ProfessionPrerequisites
18179
+ weighted_professions?: Weighted<Profession_ID>
17794
18180
 
17795
18181
  /**
17796
- * In some areas, the profession package grants a loose set of stats where the player must choose between different options for the profession package. The variant may override or remove those options.
18182
+ * Some traditions may be found in a culture, but are not that common.
17797
18183
  */
17798
- options?: ProfessionVariantPackageOptions
18184
+ rarity?: Rarity
18185
+ }
17799
18186
 
17800
- /**
17801
- * Any special abilities the profession receives from the package variant.
17802
- */
17803
- special_abilities?: ProfessionVariantSpecialAbility[]
18187
+ export type BlessedCommonProfessionConstraint =
18188
+ | {
18189
+ kind: "Tradition"
18190
+ Tradition: BlessedTraditionConstraint
18191
+ }
17804
18192
 
18193
+ export interface BlessedTraditionConstraint {
17805
18194
  /**
17806
- * Provides ratings for the combat techniques that the hero receives from the package variant.
18195
+ * The blessed tradition’s identifier.
17807
18196
  */
17808
- combat_techniques?: CombatTechniqueRating[]
18197
+ id: BlessedTradition_ID
17809
18198
 
17810
18199
  /**
17811
- * The skill ratings the package variant grants to the hero.
18200
+ * Some professions are more common than others. There may be cultures where some professions are not represented at all.
17812
18201
  */
17813
- skills?: SkillRating[]
18202
+ weighted_professions?: Weighted<Profession_ID>
17814
18203
 
17815
18204
  /**
17816
- * The skill ratings a magical profession variant receives for spells; these spells are considered activated. Spells from an unfamiliar Tradition, if any, are identified as such.
18205
+ * Some traditions may be found in a culture, but are not that common.
17817
18206
  */
17818
- spells?: MagicalSkillRating[]
18207
+ rarity?: Rarity
18208
+ }
17819
18209
 
18210
+ /**
18211
+ * Reference to a commonness-rated advantage or disadvantage. Commonness-rating terms used in the source books are strongly recommended, common, uncommon, suggested and unsuitable.
18212
+ */
18213
+ export interface CommonnessRatedAdvantageDisadvantage<Identifier> {
17820
18214
  /**
17821
- * Clerical profession variants receive these liturgical chants at the listed skill ratings. These liturgical chants are considered activated.
18215
+ * The advantage's or disadvantage's identifier.
17822
18216
  */
17823
- liturgical_chants?: LiturgicalChantRating[]
18217
+ id: Identifier
17824
18218
 
17825
18219
  /**
17826
18220
  * All translations for the entry, identified by IETF language tag (BCP47).
17827
18221
  */
17828
- translations: {
17829
- [localeId: string]: ProfessionVariantTranslation
18222
+ translations?: {
18223
+ [localeId: string]: CommonnessRatedAdvantageDisadvantageTranslation
17830
18224
  }
17831
18225
  }
17832
18226
 
17833
- /**
17834
- * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
17835
- */
17836
- export type ProfessionVariant_ID = string
17837
-
17838
- export interface ProfessionVariantTranslation {
18227
+ export interface CommonnessRatedAdvantageDisadvantageTranslation {
17839
18228
  /**
17840
- * The profession variant’s name.
18229
+ * The options the commonness rating applies to.
17841
18230
  */
17842
- name: ProfessionName
18231
+ options: string
18232
+ }
18233
+
18234
+ export type CommonnessRatedSkill = Skill_ID
17843
18235
 
18236
+ export interface CulturalPackageItem {
17844
18237
  /**
17845
- * A text that replaces the generated text for the profession variant.
18238
+ * The skill’s identifier.
17846
18239
  */
17847
- full_text?: string
18240
+ id: Skill_ID
17848
18241
 
17849
18242
  /**
17850
- * A text that is appended to the generated text for the profession variant.
18243
+ * The skill points for the respective skill you get for buying the cultural package.
17851
18244
  */
17852
- concluding_text?: string
18245
+ points: number
17853
18246
  }
17854
18247
 
17855
18248
  /**
17856
- * In some areas, the profession package grants a loose set of stats where the player must choose between different options for the profession package. The variant may override or remove those options.
18249
+ * Description and examples of the area knowledge.
17857
18250
  */
17858
- export interface ProfessionVariantPackageOptions {
17859
- skill_specialization?: VariantOptionAction<SkillSpecializationOptions>
17860
- languages_scripts?: VariantOptionAction<LanguagesScriptsOptions>
17861
- combat_techniques?: VariantOptionAction<CombatTechniquesOptions>
17862
- cantrips?: VariantOptionAction<CantripsOptions>
17863
- curses?: VariantOptionAction<CursesOptions>
17864
- skills?: VariantOptionAction<SkillsOptions>
17865
- liturgies?: VariantOptionAction<LiturgiesOptions>
17866
- }
17867
-
17868
- export type VariantOptionAction<T> =
17869
- | {
17870
- kind: "Remove"
17871
- }
17872
- | {
17873
- kind: "Override"
17874
- Override: T
17875
- }
18251
+ export interface AreaKnowledgeTranslation {
18252
+ /**
18253
+ * The full description without examples in parenthesis.
18254
+ */
18255
+ description: string
17876
18256
 
17877
- export interface ProfessionVariantSpecialAbility {
17878
18257
  /**
17879
- * If the selection is added to the base profession or if it removes a selection from the base profession with the same values.
18258
+ * A shorter version of the description, used in input fields and other UI elements where the space might be to small to use the full description.
17880
18259
  */
17881
- action: VariantSpecialAbilityAction
18260
+ abbreviated: string
17882
18261
 
17883
18262
  /**
17884
- * The special ability to add or remove.
18263
+ * Examples of areas, if applicable.
17885
18264
  */
17886
- value: ProfessionSpecialAbility
18265
+ examples?: AreaKnowledgeExample[]
17887
18266
  }
17888
18267
 
17889
- export type VariantSpecialAbilityAction =
17890
- | {
17891
- kind: "Remove"
17892
- }
17893
- | {
17894
- kind: "Override"
17895
- }
18268
+ export interface AreaKnowledgeExample {
18269
+ area: string
18270
+ }
17896
18271
 
17897
18272
  /**
17898
- * The name of the profession that may have sex-specific names. Useful if the term in generell is different (i.e. actor/actress) or if the language uses gendered nouns. The default name is also used in case neither the male nor female name strictly applies.
18273
+ * Structured description of common names.
17899
18274
  */
17900
- export interface ProfessionName {
18275
+ export interface CommonNames {
17901
18276
  /**
17902
- * The name from the source publication. This is also used if a character has no specified gender or is neither male nor female.
18277
+ * First names can be gender-neutral, but they can also be for a specific binary sex. They are sorted into groups.
17903
18278
  */
17904
- default: string
18279
+ first_name_groups?: CommonNameGroup[]
17905
18280
 
17906
18281
  /**
17907
- * The male name, if different from the default name.
18282
+ * Last names can be gender-neutral, like family names, but they can also be for a specific binary sex. They are sorted into groups.
17908
18283
  */
17909
- male?: string
18284
+ last_name_groups?: CommonNameGroup[]
17910
18285
 
17911
18286
  /**
17912
- * The female name, if different from the default name.
18287
+ * Special naming rules.
17913
18288
  */
17914
- female?: string
18289
+ naming_rules?: string
17915
18290
  }
17916
18291
 
17917
- /**
17918
- * A prerequisite that is either not verifyable in general – e.g. roleplay or background information – or the referenced entities were not made available for use yet – e.g. races –, but which should be displayed, because it is part of the prerequisite string from the sources.
17919
- */
17920
- export interface TextPrerequisite {
17921
- /**
17922
- * The method how the prerequisite should be verified. Either is passes all verification text or it denies all verification tests. The latter results in the associated entry to never be available for purchase.
17923
- */
17924
- verification: TextVerificationRule
17925
-
18292
+ export interface CommonNameGroup {
17926
18293
  /**
17927
- * If the text is a sentence or sentence-like fragment, this property ensures it is integrated into the prerequisite string correctly.
17928
- *
17929
- * A standalone sentence is connected to the previous prerequisite string with a period and a period is also added at the end of the sentence automatically, if it is not present. A connected sentence is connected to the previous prerequisite string with a semicolon and a period is not added to the end of the sentence. In this case, if there are prerequisites after this one, they will be connected using a semicolon again, unless a different punctuation mark is present at the end of the given text.
18294
+ * The group label.
17930
18295
  */
17931
- sentence_type?: SentenceType
18296
+ label: string
17932
18297
 
17933
18298
  /**
17934
- * If the text does not represent an actual prerequisite but a prerequisite for the use of certain aspects or the entry the prerequisite is associated with, or something like that, this property is set to `true`.
17935
- *
17936
- * If all prerequisites of an entry are marked as meta, the entry is considered to have no prerequisites and thus the string `none` must be rendered before the list of meta prerequisites.
17937
- *
17938
- * This is the only use case for this property.
18299
+ * The binary sex if the group is only for a certain binary sex.
17939
18300
  */
17940
- is_meta?: boolean
18301
+ sex?: BinarySex
17941
18302
 
17942
18303
  /**
17943
- * All translations for the entry, identified by IETF language tag (BCP47).
18304
+ * The names from the group.
17944
18305
  */
17945
- translations: {
17946
- [localeId: string]: TextPrerequisiteTranslation
17947
- }
18306
+ names: CommonName[]
17948
18307
  }
17949
18308
 
17950
- export interface TextPrerequisiteTranslation {
18309
+ export interface CommonName {
18310
+ name: string
18311
+
17951
18312
  /**
17952
- * The displayed text.
18313
+ * Additional information about the name, appended in parenthesis.
17953
18314
  */
17954
- text: string
18315
+ note?: string
17955
18316
  }
17956
18317
 
17957
- export type TextVerificationRule =
17958
- | {
17959
- kind: "Pass"
17960
- }
17961
- | {
17962
- kind: "Deny"
17963
- }
18318
+ /**
18319
+ * In some areas, the profession package grants a loose set of stats where the player must choose between different options for the profession package.
18320
+ */
18321
+ export interface ProfessionPackageOptions {
18322
+ skill_specialization?: SkillSpecializationOptions
18323
+ languages_scripts?: LanguagesScriptsOptions
18324
+ combat_techniques?: CombatTechniquesOptions
18325
+ cantrips?: CantripsOptions
18326
+ curses?: CursesOptions
18327
+ skills?: SkillsOptions
18328
+ liturgies?: LiturgiesOptions
18329
+ }
17964
18330
 
17965
18331
  export interface InfluenceEffect {
17966
18332
  /**
@@ -18479,352 +18845,285 @@ export type SexualCharacteristic =
18479
18845
  kind: "Vagina"
18480
18846
  }
18481
18847
 
18482
- export interface AlternativeName {
18483
- /**
18484
- * An alternative name of the disease.
18485
- */
18486
- name: string
18487
-
18488
- /**
18489
- * The region where this alternative name is used.
18490
- */
18491
- region?: string
18492
- }
18493
-
18494
- export interface Script {
18495
- /**
18496
- * The script’s adventure point value
18497
- */
18498
- ap_value?: number
18848
+ export type DerivedCharacteristicModifierOperation =
18849
+ | {
18850
+ kind: "Addition"
18851
+ }
18852
+ | {
18853
+ kind: "Subtraction"
18854
+ }
18855
+ | {
18856
+ kind: "Multiplication"
18857
+ }
18858
+ | {
18859
+ kind: "Division"
18860
+ }
18499
18861
 
18500
- /**
18501
- * A list of languages that use this script.
18502
- */
18503
- associated_languages: Language_ID[]
18862
+ export type DerivedCharacteristicPrerequisites = PlainPrerequisites<DerivedCharacteristicPrerequisiteGroup>
18504
18863
 
18505
- /**
18506
- * The continents this language is present on.
18507
- */
18508
- continent: AssociatedContinent[]
18864
+ export type DerivedCharacteristicPrerequisiteGroup =
18865
+ | {
18866
+ kind: "Rule"
18867
+ Rule: RulePrerequisite
18868
+ }
18869
+ | {
18870
+ kind: "BlessedTradition"
18871
+ BlessedTradition: BlessedTraditionPrerequisite
18872
+ }
18873
+ | {
18874
+ kind: "MagicalTradition"
18875
+ MagicalTradition: MagicalTraditionPrerequisite
18876
+ }
18509
18877
 
18878
+ export interface BlessedTraditionPrerequisite {
18510
18879
  /**
18511
- * References to where in which publications this entry has been defined. Entries may also be added or removed in later printings.
18880
+ * The blessed tradition prerequisite may only be satified if the blessed tradition is either church or shamanistic.
18512
18881
  */
18513
- src: PublicationRefs
18882
+ restriction?: BlessedTraditionPrerequisiteRestriction
18883
+
18884
+ display_option?: DisplayOption
18885
+ }
18886
+
18887
+ /**
18888
+ * The blessed tradition prerequisite may only be satified if the blessed tradition is either church or shamanistic.
18889
+ */
18890
+ export type BlessedTraditionPrerequisiteRestriction =
18891
+ | {
18892
+ kind: "Church"
18893
+ }
18894
+ | {
18895
+ kind: "Shamanistic"
18896
+ }
18514
18897
 
18898
+ export interface MagicalTraditionPrerequisite {
18515
18899
  /**
18516
- * All translations for the entry, identified by IETF language tag (BCP47).
18900
+ * The magical tradition prerequisite may only be satified if the magical tradition can learn rituals or can bind familiars.
18517
18901
  */
18518
- translations: {
18519
- [localeId: string]: ScriptTranslation
18520
- }
18902
+ restriction?: MagicalTraditionPrerequisiteRestriction
18903
+
18904
+ display_option?: DisplayOption
18521
18905
  }
18522
18906
 
18523
18907
  /**
18524
- * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
18908
+ * The magical tradition prerequisite may only be satified if the magical tradition can learn rituals or can bind familiars.
18525
18909
  */
18526
- export type Script_ID = string
18910
+ export type MagicalTraditionPrerequisiteRestriction =
18911
+ | {
18912
+ kind: "CanLearnRituals"
18913
+ }
18914
+ | {
18915
+ kind: "CanBindFamiliars"
18916
+ }
18527
18917
 
18528
- export interface ScriptTranslation {
18918
+ export interface CalculationTranslation {
18529
18919
  /**
18530
- * The script’s name.
18920
+ * The default calculation string.
18531
18921
  */
18532
- name: string
18922
+ default: string
18533
18923
 
18534
18924
  /**
18535
- * A list of alternative names.
18925
+ * The calculation string if only half of the primary attribute is used.
18536
18926
  */
18537
- alternative_names?: AlternativeName[]
18927
+ half_primary?: string
18538
18928
 
18539
18929
  /**
18540
- * The description of the alphabet.
18930
+ * The calculation string if no primary attribute is used.
18541
18931
  */
18542
- alphabet?: string
18543
-
18544
- errata?: Errata
18932
+ no_primary?: string
18545
18933
  }
18546
18934
 
18547
18935
  /**
18548
- * If the area knowledge has a fixed value or can be adjusted.
18936
+ * An advantage or disadvantage that is automatically applied to the character after selecting the race. This does only work for advantages or disadvantages with no further configuration such as level or special selection.
18549
18937
  */
18550
- export interface AreaKnowledge {
18938
+ export interface AutomaticAdvantageDisadvantage<Identifier> {
18551
18939
  /**
18552
- * `true` if the area knowledge has a fixed value, `false` if it can be adjusted.
18940
+ * The automatic advantage or disadvantage.
18553
18941
  */
18554
- is_fixed: boolean
18942
+ id: Identifier
18555
18943
  }
18556
18944
 
18557
- export interface SocialStatus {
18945
+ /**
18946
+ * Configuration for random weight generation.
18947
+ */
18948
+ export interface RandomWeightGeneration {
18558
18949
  /**
18559
- * The social status’ position. The higher the position, the more powerful the social status. This has to be a unique value.
18950
+ * The base value used for random weight. The height subtrahend; in case of `Height - 110 + 2D6` it is `110`.
18560
18951
  */
18561
- position: number
18952
+ base: number
18562
18953
 
18563
18954
  /**
18564
- * All translations for the entry, identified by IETF language tag (BCP47).
18955
+ * The dice used for random weight.
18565
18956
  */
18566
- translations: {
18567
- [localeId: string]: SocialStatusTranslation
18568
- }
18957
+ random: WeightDice[]
18569
18958
  }
18570
18959
 
18571
- /**
18572
- * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
18573
- */
18574
- export type SocialStatus_ID = string
18575
-
18576
- export interface SocialStatusTranslation {
18960
+ export interface WeightDice {
18577
18961
  /**
18578
- * The social status’ name.
18962
+ * Number of dice of the same type. Example: 2 in 2D6.
18579
18963
  */
18580
- name: string
18581
- }
18582
-
18583
- /**
18584
- * A list of professions that are typical for the culture, as well as professions that are rarely practiced or encountered in the culture. The list is either defined by group (as multiple lists) or plain (as a single list).
18585
- */
18586
- export type CommonProfessions =
18587
- | {
18588
- kind: "Plain"
18589
- Plain: PlainCommonProfessions
18590
- }
18591
- | {
18592
- kind: "Grouped"
18593
- Grouped: GroupedCommonProfessions
18594
- }
18595
-
18596
- export type PlainCommonProfessions = CommonProfessionConstraints<Profession_ID>
18964
+ number: number
18597
18965
 
18598
- /**
18599
- * A list of professions. The filter specifies how the list is applied to all mundane professions.
18600
- */
18601
- export interface CommonProfessionConstraints<Constraint> {
18602
18966
  /**
18603
- * The list of constraints.
18967
+ * Number of sides on every die. Example: 6 in 2D6.
18604
18968
  */
18605
- constraints: Constraint[]
18969
+ sides: DieType
18606
18970
 
18607
18971
  /**
18608
- * This defines how the list of constraints should be offset against the list of all mundane professions: Either only the professions are kept that intersect with the constraints or only the professions are kept that are different from the constraints.
18972
+ * The strategy how to offset the randomly generated values against the base value. Either they are all added or subtracted or even results are added and odd results are subtracted.
18609
18973
  */
18610
- operation: CommonProfessionConstraintsOperation
18974
+ offset_strategy: WeightDiceOffsetStrategy
18611
18975
  }
18612
18976
 
18613
18977
  /**
18614
- * This defines how the list of constraints should be offset against the list of all mundane professions: Either only the professions are kept that intersect with the constraints or only the professions are kept that are different from the constraints.
18978
+ * The strategy how to offset the randomly generated values against the base value. Either they are all added or subtracted or even results are added and odd results are subtracted.
18615
18979
  */
18616
- export type CommonProfessionConstraintsOperation =
18980
+ export type WeightDiceOffsetStrategy =
18617
18981
  | {
18618
- kind: "Intersection"
18982
+ kind: "Add"
18619
18983
  }
18620
18984
  | {
18621
- kind: "Difference"
18985
+ kind: "Subtract"
18622
18986
  }
18623
-
18624
- /**
18625
- * Lists of professions by group.
18626
- */
18627
- export interface GroupedCommonProfessions {
18628
- mundane?: CommonProfessionConstraints<MundaneCommonProfessionConstraint>
18629
- magic?: CommonProfessionConstraints<MagicCommonProfessionConstraint>
18630
- blessed?: CommonProfessionConstraints<BlessedCommonProfessionConstraint>
18631
- }
18632
-
18633
- export type MundaneCommonProfessionConstraint =
18634
18987
  | {
18635
- kind: "Profession"
18636
- Profession: ProfessionConstraint
18988
+ kind: "AddEvenSubtractOdd"
18637
18989
  }
18638
18990
 
18639
- export interface ProfessionConstraint {
18991
+ export interface RaceVariant {
18640
18992
  /**
18641
- * The profession’s identifier.
18993
+ * The associated race.
18642
18994
  */
18643
- id: Profession_ID
18995
+ race: Race_ID
18644
18996
 
18645
18997
  /**
18646
- * Some profession variants are more common than others. There may be cultures where some variants are not represented at all.
18998
+ * Describes how to raise or lower maximum attribute values during character creation.
18647
18999
  */
18648
- weighted_variants?: Weighted<ProfessionVariant_ID>
19000
+ attribute_adjustments: AttributeAdjustments
18649
19001
 
18650
19002
  /**
18651
- * Some professions may be found in a culture, but are not that common.
19003
+ * The list of common cultures.
18652
19004
  */
18653
- rarity?: Rarity
18654
- }
19005
+ common_cultures?: Culture_ID[]
18655
19006
 
18656
- /**
18657
- * Some professions or profession variants are more common than others. There may be cultures where some professions or profession variants are not represented at all.
18658
- */
18659
- export interface Weighted<ProfessionOrVariant> {
18660
19007
  /**
18661
- * The list of more common professions or profession variants.
19008
+ * A list of common advantages.
18662
19009
  */
18663
- elements: ProfessionOrVariant[]
19010
+ common_advantages?: CommonnessRatedAdvantageDisadvantage<Advantage_ID>[]
18664
19011
 
18665
19012
  /**
18666
- * The list of more common professions or profession variants.
19013
+ * A list of common disadvantages.
18667
19014
  */
18668
- weight: CommonnessWeight
18669
- }
18670
-
18671
- /**
18672
- * The “weight” difference compared to other professions or profession variants. Some professions or profession variants are simply more common (`Mostly`), but sometimes only specific elements are used (`Only`).
18673
- */
18674
- export type CommonnessWeight =
18675
- | {
18676
- kind: "Mostly"
18677
- }
18678
- | {
18679
- kind: "Only"
18680
- }
18681
-
18682
- /**
18683
- * Some professions may be found in a culture, but are not that common.
18684
- */
18685
- export type Rarity =
18686
- | {
18687
- kind: "Rare"
18688
- }
18689
- | {
18690
- kind: "VeryRare"
18691
- }
18692
-
18693
- export type MagicCommonProfessionConstraint =
18694
- | {
18695
- kind: "Tradition"
18696
- Tradition: MagicalTraditionConstraint
18697
- }
18698
- | {
18699
- kind: "MagicDilettante"
18700
- }
18701
- | {
18702
- kind: "Profession"
18703
- Profession: ProfessionConstraint
18704
- }
19015
+ common_disadvantages?: CommonnessRatedAdvantageDisadvantage<Disadvantage_ID>[]
18705
19016
 
18706
- export interface MagicalTraditionConstraint {
18707
19017
  /**
18708
- * The magical tradition’s identifier.
19018
+ * A list of uncommon advantages.
18709
19019
  */
18710
- id: MagicalTradition_ID
19020
+ uncommon_advantages?: CommonnessRatedAdvantageDisadvantage<Advantage_ID>[]
18711
19021
 
18712
19022
  /**
18713
- * Some professions are more common than others. There may be cultures where some professions are not represented at all.
19023
+ * A list of uncommon disadvantages.
18714
19024
  */
18715
- weighted_professions?: Weighted<Profession_ID>
19025
+ uncommon_disadvantages?: CommonnessRatedAdvantageDisadvantage<Disadvantage_ID>[]
18716
19026
 
18717
19027
  /**
18718
- * Some traditions may be found in a culture, but are not that common.
19028
+ * An array containing 20 (numeric) hair color identifiers. The array also represents the 20-sided die for a random hair color.
18719
19029
  */
18720
- rarity?: Rarity
18721
- }
18722
-
18723
- export type BlessedCommonProfessionConstraint =
18724
- | {
18725
- kind: "Tradition"
18726
- Tradition: BlessedTraditionConstraint
18727
- }
19030
+ hair_color?: [HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID]
18728
19031
 
18729
- export interface BlessedTraditionConstraint {
18730
19032
  /**
18731
- * The blessed tradition’s identifier.
19033
+ * An array containing 20 (numeric) eye color identifiers. The array also represents the 20-sided die for a random eye color.
18732
19034
  */
18733
- id: BlessedTradition_ID
19035
+ eye_color?: [EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID]
18734
19036
 
18735
19037
  /**
18736
- * Some professions are more common than others. There may be cultures where some professions are not represented at all.
19038
+ * Configuration for random height generation.
18737
19039
  */
18738
- weighted_professions?: Weighted<Profession_ID>
19040
+ height: RandomHeightGeneration
18739
19041
 
18740
19042
  /**
18741
- * Some traditions may be found in a culture, but are not that common.
19043
+ * All translations for the entry, identified by IETF language tag (BCP47).
18742
19044
  */
18743
- rarity?: Rarity
19045
+ translations: {
19046
+ [localeId: string]: RaceVariantTranslation
19047
+ }
18744
19048
  }
18745
19049
 
18746
- export type CommonnessRatedSkill = Skill_ID
19050
+ /**
19051
+ * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
19052
+ */
19053
+ export type RaceVariant_ID = string
18747
19054
 
18748
- export interface CulturalPackageItem {
19055
+ export interface RaceVariantTranslation {
18749
19056
  /**
18750
- * The skill’s identifier.
19057
+ * The race variant’s name. If this is the only variant for a base race and thus just provides the missing information without actually being able to select, fill in the name of the base race.
18751
19058
  */
18752
- id: Skill_ID
19059
+ name: string
18753
19060
 
18754
19061
  /**
18755
- * The skill points for the respective skill you get for buying the cultural package.
19062
+ * The respective common advantages text from the source book.
18756
19063
  */
18757
- points: number
18758
- }
19064
+ common_advantages?: string
18759
19065
 
18760
- /**
18761
- * Description and examples of the area knowledge.
18762
- */
18763
- export interface AreaKnowledgeTranslation {
18764
19066
  /**
18765
- * The full description without examples in parenthesis.
19067
+ * The respective common disadvantages text from the source book.
18766
19068
  */
18767
- description: string
19069
+ common_disadvantages?: string
18768
19070
 
18769
19071
  /**
18770
- * A shorter version of the description, used in input fields and other UI elements where the space might be to small to use the full description.
19072
+ * The respective uncommon advantages text from the source book.
18771
19073
  */
18772
- abbreviated: string
19074
+ uncommon_advantages?: string
18773
19075
 
18774
19076
  /**
18775
- * Examples of areas, if applicable.
19077
+ * The respective uncommon disadvantages text from the source book.
18776
19078
  */
18777
- examples?: AreaKnowledgeExample[]
18778
- }
18779
-
18780
- export interface AreaKnowledgeExample {
18781
- area: string
19079
+ uncommon_disadvantages?: string
18782
19080
  }
18783
19081
 
18784
19082
  /**
18785
- * Structured description of common names.
19083
+ * Describes how to raise or lower maximum attribute values during character creation.
18786
19084
  */
18787
- export interface CommonNames {
18788
- /**
18789
- * First names can be gender-neutral, but they can also be for a specific binary sex. They are sorted into groups.
18790
- */
18791
- first_name_groups?: CommonNameGroup[]
18792
-
19085
+ export interface AttributeAdjustments {
18793
19086
  /**
18794
- * Last names can be gender-neutral, like family names, but they can also be for a specific binary sex. They are sorted into groups.
19087
+ * The values by which the maximum of the respective attribute is modified.
18795
19088
  */
18796
- last_name_groups?: CommonNameGroup[]
19089
+ fixed?: FixedAttributeAdjustment[]
18797
19090
 
18798
19091
  /**
18799
- * Special naming rules.
19092
+ * An array of attribute maximum modifiers, where the attribute they apply to is selected from a list of options.
19093
+ *
19094
+ * The array only permits a single entry because no race specified more than one selectable attribute adjustment so far. But the schema allows for multiple entries to be future-proof.
18800
19095
  */
18801
- naming_rules?: string
19096
+ selectable?: [SelectableAttributeAdjustment]
18802
19097
  }
18803
19098
 
18804
- export interface CommonNameGroup {
19099
+ /**
19100
+ * A value by which the maximum of the respective attribute is modified.
19101
+ */
19102
+ export interface FixedAttributeAdjustment {
18805
19103
  /**
18806
- * The group label.
19104
+ * The attribute the modifier applies to.
18807
19105
  */
18808
- label: string
19106
+ id: Attribute_ID
18809
19107
 
18810
19108
  /**
18811
- * The binary sex if the group is only for a certain binary sex.
19109
+ * The value by which the specified attribute’s maximum is modified (negative values will lower the maximum).
18812
19110
  */
18813
- sex?: BinarySex
19111
+ value: number
19112
+ }
18814
19113
 
19114
+ /**
19115
+ * A value that will be added to the current maximum of the selected attribute that has been chosen from the listed attributes (negative values will lower the maximum).
19116
+ */
19117
+ export interface SelectableAttributeAdjustment {
18815
19118
  /**
18816
- * The names from the group.
19119
+ * A list of attributes the player has to choose from.
18817
19120
  */
18818
- names: CommonName[]
18819
- }
18820
-
18821
- export interface CommonName {
18822
- name: string
19121
+ list: Attribute_ID[]
18823
19122
 
18824
19123
  /**
18825
- * Additional information about the name, appended in parenthesis.
19124
+ * The value by which the selected attribute’s maximum is modified (negative values will lower the maximum).
18826
19125
  */
18827
- note?: string
19126
+ value: number
18828
19127
  }
18829
19128
 
18830
19129
  export interface HairColor {
@@ -19061,46 +19360,6 @@ export type PrimaryAttributeCategory =
19061
19360
  kind: "Magical"
19062
19361
  }
19063
19362
 
19064
- export interface BlessedTraditionPrerequisite {
19065
- /**
19066
- * The blessed tradition prerequisite may only be satified if the blessed tradition is either church or shamanistic.
19067
- */
19068
- restriction?: BlessedTraditionPrerequisiteRestriction
19069
-
19070
- display_option?: DisplayOption
19071
- }
19072
-
19073
- /**
19074
- * The blessed tradition prerequisite may only be satified if the blessed tradition is either church or shamanistic.
19075
- */
19076
- export type BlessedTraditionPrerequisiteRestriction =
19077
- | {
19078
- kind: "Church"
19079
- }
19080
- | {
19081
- kind: "Shamanistic"
19082
- }
19083
-
19084
- export interface MagicalTraditionPrerequisite {
19085
- /**
19086
- * The magical tradition prerequisite may only be satified if the magical tradition can learn rituals or can bind familiars.
19087
- */
19088
- restriction?: MagicalTraditionPrerequisiteRestriction
19089
-
19090
- display_option?: DisplayOption
19091
- }
19092
-
19093
- /**
19094
- * The magical tradition prerequisite may only be satified if the magical tradition can learn rituals or can bind familiars.
19095
- */
19096
- export type MagicalTraditionPrerequisiteRestriction =
19097
- | {
19098
- kind: "CanLearnRituals"
19099
- }
19100
- | {
19101
- kind: "CanBindFamiliars"
19102
- }
19103
-
19104
19363
  export interface RatedMinimumNumberPrerequisite {
19105
19364
  /**
19106
19365
  * The minimum number of skills that need to be on the defined minimum skill rating.
@@ -20346,7 +20605,7 @@ export interface CeremonialItem {
20346
20605
  /**
20347
20606
  * The structure points of the item. Use an array if the item consists of multiple components that have individual structure points.
20348
20607
  */
20349
- structure_points: StructurePoints
20608
+ structure_points?: StructurePoints
20350
20609
 
20351
20610
  /**
20352
20611
  * The deity associated with the equipment item.
@@ -20870,287 +21129,68 @@ export type ReferenceListNodeSource =
20870
21129
  kind: "SocialStatuses"
20871
21130
  }
20872
21131
  | {
20873
- kind: "Poisons"
20874
- }
20875
- | {
20876
- kind: "Diseases"
20877
- }
20878
- | {
20879
- kind: "HealingHerbs"
20880
- }
20881
- | {
20882
- kind: "VisibilityModifier"
20883
- }
20884
- | {
20885
- kind: "Demons"
20886
- }
20887
- | {
20888
- kind: "Elementals"
20889
- }
20890
- | {
20891
- kind: "Animals"
20892
- }
20893
- | {
20894
- kind: "Familiars"
20895
- }
20896
- | {
20897
- kind: "AnimalSpecialAbilities"
20898
- }
20899
- | {
20900
- kind: "EquipmentPackages"
20901
- }
20902
- | {
20903
- kind: "Items"
20904
- }
20905
- | {
20906
- kind: "OptionalRules"
20907
- }
20908
- | {
20909
- kind: "ImprovementCost"
20910
- ImprovementCost: ReferenceListNodeImprovementCostSource
20911
- }
20912
-
20913
- export interface ReferenceListNodeImprovementCostSource {
20914
- /**
20915
- * Define if the cost for attributes or skills should be defined. The cost for attributes start with value 9, while the cost for skills start with 1 in addition to possible activation cost.
20916
- */
20917
- target: ReferenceListNodeImprovementCostSourceTarget
20918
-
20919
- /**
20920
- * The highest value the improvement cost are displayed for.
20921
- *
20922
- * The minimum maximum value should depend on what is the upper bound of the range of adventure point cost that are equal across multiple values (value increases for attributes are always 15 up to (and including) value 14, while value increases for skills are always 1 to 4, depending on the improvement cost, up to (and including) value 12), since those ranges should be combined into a single table row.
20923
- */
20924
- maximum_rating: number
20925
- }
20926
-
20927
- export type ReferenceListNodeImprovementCostSourceTarget =
20928
- | {
20929
- kind: "Attributes"
20930
- }
20931
- | {
20932
- kind: "Skills"
20933
- }
20934
-
20935
- export interface DerivedCharacteristic {
20936
- /**
20937
- * The position of the derived characteristic in lists. This has to be a unique value.
20938
- */
20939
- position: number
20940
-
20941
- /**
20942
- * Instructions for calculating the derived characteristic’s value.
20943
- */
20944
- calculation: DerivedCharacteristicCalculation
20945
-
20946
- prerequisites?: DerivedCharacteristicPrerequisites
20947
-
20948
- /**
20949
- * References to where in which publications this entry has been defined. Entries may also be added or removed in later printings.
20950
- */
20951
- src: PublicationRefs
20952
-
20953
- /**
20954
- * All translations for the entry, identified by IETF language tag (BCP47).
20955
- */
20956
- translations: {
20957
- [localeId: string]: DerivedCharacteristicTranslation
20958
- }
20959
- }
20960
-
20961
- /**
20962
- * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
20963
- */
20964
- export type DerivedCharacteristic_ID = string
20965
-
20966
- export interface DerivedCharacteristicTranslation {
20967
- /**
20968
- * The derived characteristic’s name.
20969
- */
20970
- name: string
20971
-
20972
- /**
20973
- * The derived characteristic’s abbreviation.
20974
- */
20975
- abbreviation: string
20976
-
20977
- /**
20978
- * The derived characteristic’s description.
20979
- */
20980
- description?: string
20981
-
20982
- /**
20983
- * Possible calculation strings for the final value.
20984
- */
20985
- calculation?: CalculationTranslation
20986
- }
20987
-
20988
- export interface DerivedCharacteristicCalculation {
20989
- /**
20990
- * The base value for the calculation.
20991
- */
20992
- base: DerivedCharacteristicBase
20993
-
20994
- /**
20995
- * A list of modifiers that are applied to the base value. The modifiers are applied in the order they appear in the list.
20996
- */
20997
- modifiers?: DerivedCharacteristicModifier[]
20998
-
20999
- /**
21000
- * If set, the derived characteristic can be improved by spending AP.
21001
- *
21002
- * If the derived characteristic’s permanent losses can be bought back, points will not be able to be purchased unless all permanent losses have been bought back.
21003
- */
21004
- purchasable?: DerivedCharacteristicPurchase
21005
-
21006
- /**
21007
- * If set, the derived characteristic can suffer permanent losses that reduce its maximum value. It may also be possible to buy back these permanent losses.
21008
- */
21009
- permanentLoss?: DerivedCharacteristicPermanentLoss
21010
- }
21011
-
21012
- export type DerivedCharacteristicBase = MathOperation<DerivedCharacteristicBaseValue>
21013
-
21014
- export type DerivedCharacteristicBaseValue =
21015
- | {
21016
- kind: "Constant"
21017
- Constant: number
21018
- }
21019
- | {
21020
- kind: "Attribute"
21021
- Attribute: Attribute_ID
21022
- }
21023
- | {
21024
- kind: "RaceBaseValue"
21025
- RaceBaseValue: DerivedCharacteristicRaceBaseValue
21026
- }
21027
- | {
21028
- kind: "PrimaryAttribute"
21029
- PrimaryAttribute: DerivedCharacteristicPrimaryAttributeValue
21132
+ kind: "Poisons"
21030
21133
  }
21031
-
21032
- export type DerivedCharacteristicRaceBaseValue =
21033
21134
  | {
21034
- kind: "LifePoints"
21135
+ kind: "Diseases"
21035
21136
  }
21036
21137
  | {
21037
- kind: "Spirit"
21138
+ kind: "HealingHerbs"
21038
21139
  }
21039
21140
  | {
21040
- kind: "Toughness"
21141
+ kind: "VisibilityModifier"
21041
21142
  }
21042
21143
  | {
21043
- kind: "Movement"
21144
+ kind: "Demons"
21044
21145
  }
21045
-
21046
- export type DerivedCharacteristicPrimaryAttributeValue =
21047
21146
  | {
21048
- kind: "Magical"
21147
+ kind: "Elementals"
21049
21148
  }
21050
21149
  | {
21051
- kind: "Blessed"
21150
+ kind: "Animals"
21052
21151
  }
21053
-
21054
- export interface DerivedCharacteristicModifier {
21055
- /**
21056
- * The entry that, when active, causes the modifier.
21057
- */
21058
- source: DerivedCharacteristicModifierPrerequisiteGroup
21059
-
21060
- /**
21061
- * The mathematical operation that modifies the base value. The previous result is on the left side.
21062
- */
21063
- operation: DerivedCharacteristicModifierOperation
21064
-
21065
- /**
21066
- * The value that is used in the modifier operation. If the source entry has levels, the value is multiplied by the source entry’s level.
21067
- */
21068
- value: number
21069
- }
21070
-
21071
- export type DerivedCharacteristicModifierPrerequisiteGroup =
21072
21152
  | {
21073
- kind: "Rule"
21074
- Rule: RulePrerequisite
21153
+ kind: "Familiars"
21075
21154
  }
21076
21155
  | {
21077
- kind: "Activatable"
21078
- Activatable: ActivatablePrerequisite
21156
+ kind: "AnimalSpecialAbilities"
21079
21157
  }
21080
-
21081
- export type DerivedCharacteristicModifierOperation =
21082
21158
  | {
21083
- kind: "Addition"
21159
+ kind: "EquipmentPackages"
21084
21160
  }
21085
21161
  | {
21086
- kind: "Subtraction"
21162
+ kind: "Items"
21087
21163
  }
21088
21164
  | {
21089
- kind: "Multiplication"
21165
+ kind: "OptionalRules"
21090
21166
  }
21091
21167
  | {
21092
- kind: "Division"
21168
+ kind: "ImprovementCost"
21169
+ ImprovementCost: ReferenceListNodeImprovementCostSource
21093
21170
  }
21094
21171
 
21095
- export interface DerivedCharacteristicPurchase {
21096
- /**
21097
- * The cost for improving the derived characteristic by one.
21098
- */
21099
- improvementCost: ImprovementCost
21100
-
21101
- /**
21102
- * The maximum value that can be achieved for the derived characteristic through improvements.
21103
- */
21104
- maximum: DerivedCharacteristicBase
21105
- }
21106
-
21107
- export interface DerivedCharacteristicPermanentLoss {
21172
+ export interface ReferenceListNodeImprovementCostSource {
21108
21173
  /**
21109
- * If set, permanent losses to the derived characteristic can be bought back for the specified cost.
21174
+ * Define if the cost for attributes or skills should be defined. The cost for attributes start with value 9, while the cost for skills start with 1 in addition to possible activation cost.
21110
21175
  */
21111
- canBeBoughtBack?: DerivedCharacteristicBuyBack
21112
- }
21176
+ target: ReferenceListNodeImprovementCostSourceTarget
21113
21177
 
21114
- export interface DerivedCharacteristicBuyBack {
21115
21178
  /**
21116
- * The AP cost for buying back one point.
21179
+ * The highest value the improvement cost are displayed for.
21180
+ *
21181
+ * The minimum maximum value should depend on what is the upper bound of the range of adventure point cost that are equal across multiple values (value increases for attributes are always 15 up to (and including) value 14, while value increases for skills are always 1 to 4, depending on the improvement cost, up to (and including) value 12), since those ranges should be combined into a single table row.
21117
21182
  */
21118
- cost: number
21183
+ maximum_rating: number
21119
21184
  }
21120
21185
 
21121
- export type DerivedCharacteristicPrerequisites = PlainPrerequisites<DerivedCharacteristicPrerequisiteGroup>
21122
-
21123
- export type DerivedCharacteristicPrerequisiteGroup =
21124
- | {
21125
- kind: "Rule"
21126
- Rule: RulePrerequisite
21127
- }
21186
+ export type ReferenceListNodeImprovementCostSourceTarget =
21128
21187
  | {
21129
- kind: "BlessedTradition"
21130
- BlessedTradition: BlessedTraditionPrerequisite
21188
+ kind: "Attributes"
21131
21189
  }
21132
21190
  | {
21133
- kind: "MagicalTradition"
21134
- MagicalTradition: MagicalTraditionPrerequisite
21191
+ kind: "Skills"
21135
21192
  }
21136
21193
 
21137
- export interface CalculationTranslation {
21138
- /**
21139
- * The default calculation string.
21140
- */
21141
- default: string
21142
-
21143
- /**
21144
- * The calculation string if only half of the primary attribute is used.
21145
- */
21146
- half_primary?: string
21147
-
21148
- /**
21149
- * The calculation string if no primary attribute is used.
21150
- */
21151
- no_primary?: string
21152
- }
21153
-
21154
21194
  export interface Disease {
21155
21195
  /**
21156
21196
  * The disease’s level.
@@ -21172,6 +21212,16 @@ export interface Disease {
21172
21212
  */
21173
21213
  trade_secret?: RecipeTradeSecret
21174
21214
 
21215
+ /**
21216
+ * Whether the disease is a childhood disease.
21217
+ */
21218
+ isChildhoodDisease: boolean
21219
+
21220
+ /**
21221
+ * Whether the disease is a magical disease.
21222
+ */
21223
+ isMagicalDisease: boolean
21224
+
21175
21225
  /**
21176
21226
  * References to where in which publications this entry has been defined. Entries may also be added or removed in later printings.
21177
21227
  */
@@ -21332,9 +21382,9 @@ export interface ElixirTranslationTranslation {
21332
21382
  brewing_process_prerequisites?: string
21333
21383
 
21334
21384
  /**
21335
- * The list of effects for each quality level. The first element represents QL 1, the second element QL 2, and so on.
21385
+ * The effect description may be either a plain text or a text that is divided by a list of effects for each quality level.
21336
21386
  */
21337
- quality_levels: [string, string, string, string, string, string]
21387
+ quality_levels: ElixirEffect
21338
21388
 
21339
21389
  errata?: Errata
21340
21390
  }
@@ -21376,6 +21426,33 @@ export type LaboratoryLevel =
21376
21426
  kind: "AlchemistsLaboratory"
21377
21427
  }
21378
21428
 
21429
+ /**
21430
+ * The effect description may be either a plain text or a text that is divided by a list of effects for each quality level.
21431
+ */
21432
+ export type ElixirEffect =
21433
+ | {
21434
+ kind: "Plain"
21435
+ Plain: ElixirPlainEffect
21436
+ }
21437
+ | {
21438
+ kind: "ForEachQualityLevel"
21439
+ ForEachQualityLevel: ElixirEffectForEachQualityLevel
21440
+ }
21441
+
21442
+ export interface ElixirPlainEffect {
21443
+ /**
21444
+ * The effect description.
21445
+ */
21446
+ text: string
21447
+ }
21448
+
21449
+ export interface ElixirEffectForEachQualityLevel {
21450
+ /**
21451
+ * The list of effects for each quality level. The first element represents QL 1, the second element QL 2, and so on.
21452
+ */
21453
+ qualityLevels: [string, string, string, string, string, string]
21454
+ }
21455
+
21379
21456
  export interface EquipmentOfBlessedOnes {
21380
21457
  /**
21381
21458
  * The cost in silverthalers.
@@ -22501,9 +22578,9 @@ export interface AnimalVenom {
22501
22578
  is_extractable: boolean
22502
22579
 
22503
22580
  /**
22504
- * AP value and prerequisites of the poison’s trade secret.
22581
+ * The complexity of the poison. Complex poisons define AP value and prerequisites of the poison’s trade secret.
22505
22582
  */
22506
- trade_secret?: RecipeTradeSecret
22583
+ complexity?: RecipeComplexity
22507
22584
  }
22508
22585
 
22509
22586
  export type AnimalVenomLevel =
@@ -22540,6 +22617,21 @@ export interface AnimalVenomLevelBySubTypeTranslation {
22540
22617
  name: string
22541
22618
  }
22542
22619
 
22620
+ /**
22621
+ * The complexity of crafting the recipe.
22622
+ */
22623
+ export type RecipeComplexity =
22624
+ | {
22625
+ kind: "Primitive"
22626
+ }
22627
+ | {
22628
+ kind: "Simple"
22629
+ }
22630
+ | {
22631
+ kind: "Complex"
22632
+ Complex: RecipeTradeSecret
22633
+ }
22634
+
22543
22635
  export interface AlchemicalPoison {
22544
22636
  /**
22545
22637
  * Effect type(s) of an alchemical poison.
@@ -22810,23 +22902,34 @@ export type PoisonStart =
22810
22902
  kind: "Immediate"
22811
22903
  }
22812
22904
  | {
22813
- kind: "Constant"
22814
- Constant: ConstantPoisonTime
22815
- }
22816
- | {
22817
- kind: "DiceBased"
22818
- DiceBased: DiceBasedPoisonTime
22905
+ kind: "ExpressionBased"
22906
+ ExpressionBased: ExpressionBasedPoisonTime
22819
22907
  }
22820
22908
  | {
22821
22909
  kind: "Indefinite"
22822
22910
  Indefinite: IndefinitePoisonTime
22823
22911
  }
22824
22912
 
22825
- export interface ConstantPoisonTime {
22826
- value: number
22913
+ export interface ExpressionBasedPoisonTime {
22914
+ value: ExpressionBasedPoisonTimeValue
22827
22915
  unit: PoisonTimeUnit
22828
22916
  }
22829
22917
 
22918
+ export type ExpressionBasedPoisonTimeValue = MathOperation<ExpressionBasedPoisonTimeExpressionValue>
22919
+
22920
+ export type ExpressionBasedPoisonTimeExpressionValue =
22921
+ | {
22922
+ kind: "Constant"
22923
+ Constant: number
22924
+ }
22925
+ | {
22926
+ kind: "Dice"
22927
+ Dice: Dice
22928
+ }
22929
+ | {
22930
+ kind: "CircleOfDamnation"
22931
+ }
22932
+
22830
22933
  export type PoisonTimeUnit =
22831
22934
  | {
22832
22935
  kind: "CombatRounds"
@@ -22841,17 +22944,6 @@ export type PoisonTimeUnit =
22841
22944
  kind: "Days"
22842
22945
  }
22843
22946
 
22844
- export interface DiceBasedPoisonTime {
22845
- dice: Dice
22846
-
22847
- /**
22848
- * The value to add to the result of the dice roll(s).
22849
- */
22850
- flat?: number
22851
-
22852
- unit: PoisonTimeUnit
22853
- }
22854
-
22855
22947
  export interface IndefinitePoisonTime {
22856
22948
  /**
22857
22949
  * All translations for the entry, identified by IETF language tag (BCP47).
@@ -22872,14 +22964,6 @@ export type PoisonDuration =
22872
22964
  | {
22873
22965
  kind: "Instant"
22874
22966
  }
22875
- | {
22876
- kind: "Constant"
22877
- Constant: ConstantPoisonTime
22878
- }
22879
- | {
22880
- kind: "DiceBased"
22881
- DiceBased: DiceBasedPoisonTime
22882
- }
22883
22967
  | {
22884
22968
  kind: "ExpressionBased"
22885
22969
  ExpressionBased: ExpressionBasedPoisonTime
@@ -22889,26 +22973,6 @@ export type PoisonDuration =
22889
22973
  Indefinite: IndefinitePoisonTime
22890
22974
  }
22891
22975
 
22892
- export interface ExpressionBasedPoisonTime {
22893
- value: ExpressionBasedPoisonTimeValue
22894
- unit: PoisonTimeUnit
22895
- }
22896
-
22897
- export type ExpressionBasedPoisonTimeValue = MathOperation<ExpressionBasedPoisonTimeExpressionValue>
22898
-
22899
- export type ExpressionBasedPoisonTimeExpressionValue =
22900
- | {
22901
- kind: "Constant"
22902
- Constant: number
22903
- }
22904
- | {
22905
- kind: "Dice"
22906
- Dice: Dice
22907
- }
22908
- | {
22909
- kind: "CircleOfDamnation"
22910
- }
22911
-
22912
22976
  export type PoisonCost =
22913
22977
  | {
22914
22978
  kind: "CannotBeExtracted"
@@ -23961,6 +24025,11 @@ export interface Talisman {
23961
24025
  */
23962
24026
  type?: TalismanType
23963
24027
 
24028
+ /**
24029
+ * The activation parameters.
24030
+ */
24031
+ activation?: TalismanActivation
24032
+
23964
24033
  /**
23965
24034
  * The AP value for the required trade secret, if possible.
23966
24035
  */
@@ -24015,11 +24084,6 @@ export interface TalismanTranslation {
24015
24084
  */
24016
24085
  effect: string
24017
24086
 
24018
- /**
24019
- * The activation parameters.
24020
- */
24021
- activation?: TalismanActivationTranslation
24022
-
24023
24087
  errata?: Errata
24024
24088
  }
24025
24089
 
@@ -24040,6 +24104,53 @@ export type TalismanType =
24040
24104
  kind: "PowerfulTalisman"
24041
24105
  }
24042
24106
 
24107
+ export interface TalismanActivation {
24108
+ /**
24109
+ * The cost to activate the talisman.
24110
+ */
24111
+ cost: TalismanActivationCost
24112
+
24113
+ /**
24114
+ * The duration of how long the talisman will be active.
24115
+ */
24116
+ duration: TalismanActivationDuration
24117
+ }
24118
+
24119
+ export interface TalismanActivationCost {
24120
+ /**
24121
+ * The (numeric) cost value.
24122
+ */
24123
+ value: number
24124
+
24125
+ /**
24126
+ * The unit in which to pay the cost.
24127
+ */
24128
+ unit: DerivedCharacteristic_ID
24129
+ }
24130
+
24131
+ export interface TalismanActivationDuration {
24132
+ /**
24133
+ * The (numeric) duration value.
24134
+ */
24135
+ value: TalismanActivationDurationExpression
24136
+
24137
+ /**
24138
+ * The unit of the duration.
24139
+ */
24140
+ unit: DurationUnit
24141
+ }
24142
+
24143
+ export type TalismanActivationDurationExpression = MathOperation<TalismanActivationDurationExpressionValue>
24144
+
24145
+ export type TalismanActivationDurationExpressionValue =
24146
+ | {
24147
+ kind: "Constant"
24148
+ Constant: number
24149
+ }
24150
+ | {
24151
+ kind: "QualityLevels"
24152
+ }
24153
+
24043
24154
  export type TalismanMeleeWeapon = GenMeleeWeapon<TalismanDamage>
24044
24155
 
24045
24156
  export type TalismanDamage = MathOperation<TalismanDamageOption>
@@ -24056,16 +24167,4 @@ export type TalismanDamageOption =
24056
24167
  kind: "QualityLevels"
24057
24168
  }
24058
24169
 
24059
- export type TalismanRangedWeapon = GenRangedWeapon<TalismanDamage>
24060
-
24061
- export interface TalismanActivationTranslation {
24062
- /**
24063
- * The KP cost.
24064
- */
24065
- cost: number
24066
-
24067
- /**
24068
- * The duration.
24069
- */
24070
- duration: string
24071
- }
24170
+ export type TalismanRangedWeapon = GenRangedWeapon<TalismanDamage>