optolith-database-schema 0.39.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 (270) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/README.md +1 -1
  3. package/gen/types.d.ts +1712 -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/Locale.d.ts +7 -0
  9. package/lib/types/Locale.js +7 -0
  10. package/lib/types/Profession.d.ts +31 -14
  11. package/lib/types/Profession.js +12 -2
  12. package/lib/types/Race.d.ts +22 -15
  13. package/lib/types/Race.js +26 -20
  14. package/lib/types/Talisman.d.ts +32 -6
  15. package/lib/types/Talisman.js +51 -11
  16. package/lib/types/_Identifier.d.ts +1 -0
  17. package/lib/types/_Identifier.js +2 -0
  18. package/lib/types/_IdentifierGroup.d.ts +58 -0
  19. package/lib/types/_IdentifierGroup.js +15 -1
  20. package/lib/types/equipment/item/BandageOrRemedy.d.ts +5 -2
  21. package/lib/types/equipment/item/CeremonialItem.d.ts +6 -3
  22. package/lib/types/equipment/item/CeremonialItem.js +1 -1
  23. package/lib/types/equipment/item/Clothes.d.ts +5 -2
  24. package/lib/types/equipment/item/Container.d.ts +5 -2
  25. package/lib/types/equipment/item/Elixir.d.ts +16 -1
  26. package/lib/types/equipment/item/Elixir.js +35 -5
  27. package/lib/types/equipment/item/EquipmentOfBlessedOnes.d.ts +5 -2
  28. package/lib/types/equipment/item/IlluminationLightSource.d.ts +5 -2
  29. package/lib/types/equipment/item/IlluminationRefillOrSupply.d.ts +5 -2
  30. package/lib/types/equipment/item/Liebesspielzeug.d.ts +5 -2
  31. package/lib/types/equipment/item/LuxuryGood.d.ts +5 -2
  32. package/lib/types/equipment/item/MagicalArtifact.d.ts +5 -2
  33. package/lib/types/equipment/item/MusicalInstrument.d.ts +5 -2
  34. package/lib/types/equipment/item/OrienteeringAid.d.ts +5 -2
  35. package/lib/types/equipment/item/Poison.d.ts +64 -91
  36. package/lib/types/equipment/item/Poison.js +5 -34
  37. package/lib/types/equipment/item/RopeOrChain.d.ts +5 -2
  38. package/lib/types/equipment/item/Stationery.d.ts +5 -2
  39. package/lib/types/equipment/item/ThievesTool.d.ts +5 -2
  40. package/lib/types/equipment/item/TravelGearOrTool.d.ts +5 -2
  41. package/lib/types/equipment/item/Weapon.d.ts +10 -4
  42. package/lib/types/equipment/item/WeaponAccessory.d.ts +5 -2
  43. package/lib/types/equipment/item/_Herbary.d.ts +31 -0
  44. package/lib/types/equipment/item/_Herbary.js +9 -0
  45. package/lib/types/equipment/item/_Item.d.ts +10 -4
  46. package/lib/types/equipment/item/_MeleeWeapon.d.ts +2 -2
  47. package/lib/types/equipment/item/_MeleeWeapon.js +1 -1
  48. package/lib/types/equipment/item/_RangedWeapon.d.ts +8 -2
  49. package/lib/types/equipment/item/_RangedWeapon.js +2 -2
  50. package/lib/types/equipment/item/sub/Reach.d.ts +1 -0
  51. package/lib/types/equipment/item/sub/Reach.js +7 -0
  52. package/lib/types/magicalActions/MagicalMelody.d.ts +15 -0
  53. package/lib/types/magicalActions/MagicalMelody.js +5 -0
  54. package/lib/types/prerequisites/PrerequisiteGroups.d.ts +132 -0
  55. package/lib/types/prerequisites/PrerequisiteGroups.js +1 -0
  56. package/package.json +7 -7
  57. package/schema/Advantage.schema.json +0 -108
  58. package/schema/AnimalDisease.schema.json +0 -74
  59. package/schema/AnimalType.schema.json +0 -47
  60. package/schema/ArcaneBardTradition.schema.json +0 -11
  61. package/schema/ArcaneDancerTradition.schema.json +0 -11
  62. package/schema/Aspect.schema.json +0 -51
  63. package/schema/Attribute.schema.json +0 -57
  64. package/schema/Blessing.schema.json +0 -265
  65. package/schema/Cantrip.schema.json +0 -443
  66. package/schema/Ceremony.schema.json +0 -122
  67. package/schema/CombatTechnique_Close.schema.json +0 -116
  68. package/schema/CombatTechnique_Ranged.schema.json +0 -99
  69. package/schema/Condition.schema.json +0 -68
  70. package/schema/Continent.schema.json +0 -49
  71. package/schema/Culture.schema.json +0 -781
  72. package/schema/DerivedCharacteristic.schema.json +0 -90
  73. package/schema/Disadvantage.schema.json +0 -97
  74. package/schema/Disease.schema.json +0 -58
  75. package/schema/Element.schema.json +0 -48
  76. package/schema/ExperienceLevel.schema.json +0 -84
  77. package/schema/EyeColor.schema.json +0 -47
  78. package/schema/FamiliarsTrick.schema.json +0 -576
  79. package/schema/HairColor.schema.json +0 -47
  80. package/schema/Kirchenpraegung.schema.json +0 -11
  81. package/schema/Lessons_Curriculum.schema.json +0 -499
  82. package/schema/Lessons_Guideline.schema.json +0 -53
  83. package/schema/LiturgicalChant.schema.json +0 -122
  84. package/schema/Locale.schema.json +0 -38
  85. package/schema/MetaCondition.schema.json +0 -69
  86. package/schema/PactCategory.schema.json +0 -150
  87. package/schema/Patron.schema.json +0 -352
  88. package/schema/PatronCategory.schema.json +0 -57
  89. package/schema/PersonalityTrait.schema.json +0 -100
  90. package/schema/Profession.schema.json +0 -1424
  91. package/schema/Property.schema.json +0 -51
  92. package/schema/Race.schema.json +0 -534
  93. package/schema/Region.schema.json +0 -47
  94. package/schema/Ritual.schema.json +0 -120
  95. package/schema/Service.schema.json +0 -79
  96. package/schema/SexPractice.schema.json +0 -70
  97. package/schema/Skill.schema.json +0 -223
  98. package/schema/SkillGroup.schema.json +0 -57
  99. package/schema/SkillModificationLevel.schema.json +0 -153
  100. package/schema/SocialStatus.schema.json +0 -47
  101. package/schema/Spell.schema.json +0 -119
  102. package/schema/State.schema.json +0 -59
  103. package/schema/Talisman.schema.json +0 -120
  104. package/schema/TargetCategory.schema.json +0 -65
  105. package/schema/UI.schema.json +0 -4441
  106. package/schema/_Activatable.schema.json +0 -2755
  107. package/schema/_ActivatableSelectOptionCategory.schema.json +0 -1313
  108. package/schema/_ActivatableSkill.schema.json +0 -188
  109. package/schema/_ActivatableSkillCastingTime.schema.json +0 -181
  110. package/schema/_ActivatableSkillCheckResultBased.schema.json +0 -65
  111. package/schema/_ActivatableSkillCost.schema.json +0 -513
  112. package/schema/_ActivatableSkillDuration.schema.json +0 -353
  113. package/schema/_ActivatableSkillEffect.schema.json +0 -122
  114. package/schema/_ActivatableSkillRange.schema.json +0 -264
  115. package/schema/_ActivatableSkillTargetCategory.schema.json +0 -145
  116. package/schema/_AlternativeNames.schema.json +0 -23
  117. package/schema/_ArcaneTradition.schema.json +0 -51
  118. package/schema/_Blessed.schema.json +0 -64
  119. package/schema/_Dice.schema.json +0 -40
  120. package/schema/_DiseasePoison.schema.json +0 -152
  121. package/schema/_Enhancements.schema.json +0 -85
  122. package/schema/_I18n.schema.json +0 -55
  123. package/schema/_Identifier.schema.json +0 -2577
  124. package/schema/_IdentifierGroup.schema.json +0 -753
  125. package/schema/_ImprovementCost.schema.json +0 -23
  126. package/schema/_Influence.schema.json +0 -84
  127. package/schema/_NonEmptyString.schema.json +0 -14
  128. package/schema/_Prerequisite.schema.json +0 -1518
  129. package/schema/_ResponsiveText.schema.json +0 -66
  130. package/schema/_Sex.schema.json +0 -18
  131. package/schema/_SimpleReferences.schema.json +0 -522
  132. package/schema/_SkillCheck.schema.json +0 -38
  133. package/schema/_Spellwork.schema.json +0 -54
  134. package/schema/equipment/EquipmentPackage.schema.json +0 -79
  135. package/schema/equipment/item/Ammunition.schema.json +0 -56
  136. package/schema/equipment/item/Animal.schema.json +0 -36
  137. package/schema/equipment/item/AnimalCare.schema.json +0 -124
  138. package/schema/equipment/item/Armor.schema.json +0 -309
  139. package/schema/equipment/item/BandageOrRemedy.schema.json +0 -53
  140. package/schema/equipment/item/Book.schema.json +0 -89
  141. package/schema/equipment/item/CeremonialItem.schema.json +0 -59
  142. package/schema/equipment/item/Clothes.schema.json +0 -10
  143. package/schema/equipment/item/Container.schema.json +0 -10
  144. package/schema/equipment/item/Elixir.schema.json +0 -103
  145. package/schema/equipment/item/EquipmentOfBlessedOnes.schema.json +0 -49
  146. package/schema/equipment/item/GemOrPreciousStone.schema.json +0 -69
  147. package/schema/equipment/item/IlluminationLightSource.schema.json +0 -120
  148. package/schema/equipment/item/IlluminationRefillsOrSupplies.schema.json +0 -10
  149. package/schema/equipment/item/Jewelry.schema.json +0 -113
  150. package/schema/equipment/item/Liebesspielzeug.schema.json +0 -10
  151. package/schema/equipment/item/LuxuryGood.schema.json +0 -53
  152. package/schema/equipment/item/MagicalArtifact.schema.json +0 -64
  153. package/schema/equipment/item/MusicalInstrument.schema.json +0 -49
  154. package/schema/equipment/item/OrienteeringAid.schema.json +0 -10
  155. package/schema/equipment/item/Poison.schema.json +0 -835
  156. package/schema/equipment/item/RopeOrChain.schema.json +0 -10
  157. package/schema/equipment/item/Stationary.schema.json +0 -10
  158. package/schema/equipment/item/ThievesTool.schema.json +0 -10
  159. package/schema/equipment/item/ToolOfTheTrade.schema.json +0 -93
  160. package/schema/equipment/item/TravelGearOrTool.schema.json +0 -10
  161. package/schema/equipment/item/Vehicle.schema.json +0 -36
  162. package/schema/equipment/item/Weapon.schema.json +0 -285
  163. package/schema/equipment/item/WeaponAccessory.schema.json +0 -10
  164. package/schema/equipment/item/_Herbary.schema.json +0 -62
  165. package/schema/equipment/item/_Item.schema.json +0 -384
  166. package/schema/equipment/item/_MeleeWeapon.schema.json +0 -164
  167. package/schema/equipment/item/_RangedWeapon.schema.json +0 -185
  168. package/schema/equipment/item/_Weapon.schema.json +0 -99
  169. package/schema/equipment/item/sub/ArmorType.schema.json +0 -52
  170. package/schema/equipment/item/sub/Reach.schema.json +0 -47
  171. package/schema/magicalActions/AnimistPower.schema.json +0 -488
  172. package/schema/magicalActions/AnimistPower_Tribe.schema.json +0 -47
  173. package/schema/magicalActions/Curse.schema.json +0 -332
  174. package/schema/magicalActions/DominationRitual.schema.json +0 -275
  175. package/schema/magicalActions/ElvenMagicalSong.schema.json +0 -196
  176. package/schema/magicalActions/GeodeRitual.schema.json +0 -327
  177. package/schema/magicalActions/JesterTrick.schema.json +0 -311
  178. package/schema/magicalActions/MagicalDance.schema.json +0 -198
  179. package/schema/magicalActions/MagicalMelody.schema.json +0 -193
  180. package/schema/magicalActions/MagicalRune.schema.json +0 -578
  181. package/schema/magicalActions/ZibiljaRitual.schema.json +0 -165
  182. package/schema/magicalActions/_MusicTradition.schema.json +0 -82
  183. package/schema/magicalActions/_SkillReference.schema.json +0 -20
  184. package/schema/prerequisites/ConditionalPrerequisites.schema.json +0 -15
  185. package/schema/prerequisites/DisplayOption.schema.json +0 -70
  186. package/schema/prerequisites/PrerequisiteGroups.schema.json +0 -1029
  187. package/schema/prerequisites/single/ActivatablePrerequisite.schema.json +0 -45
  188. package/schema/prerequisites/single/AncestorBloodPrerequisite.schema.json +0 -14
  189. package/schema/prerequisites/single/AnimistPowerPrerequisite.schema.json +0 -36
  190. package/schema/prerequisites/single/CulturePrerequisite.schema.json +0 -24
  191. package/schema/prerequisites/single/EnhancementPrerequisite.schema.json +0 -61
  192. package/schema/prerequisites/single/InfluencePrerequisite.schema.json +0 -28
  193. package/schema/prerequisites/single/PactPrerequisite.schema.json +0 -36
  194. package/schema/prerequisites/single/PrimaryAttributePrerequisite.schema.json +0 -39
  195. package/schema/prerequisites/single/PublicationPrerequisite.schema.json +0 -22
  196. package/schema/prerequisites/single/RacePrerequisite.schema.json +0 -28
  197. package/schema/prerequisites/single/RatedMinimumNumberPrerequisite.schema.json +0 -172
  198. package/schema/prerequisites/single/RatedPrerequisite.schema.json +0 -29
  199. package/schema/prerequisites/single/RatedSumPrerequisite.schema.json +0 -33
  200. package/schema/prerequisites/single/RulePrerequisite.schema.json +0 -22
  201. package/schema/prerequisites/single/SexPrerequisite.schema.json +0 -23
  202. package/schema/prerequisites/single/SexualCharacteristicPrerequisite.schema.json +0 -30
  203. package/schema/prerequisites/single/SocialStatusPrerequisite.schema.json +0 -24
  204. package/schema/prerequisites/single/StatePrerequisite.schema.json +0 -23
  205. package/schema/prerequisites/single/TextPrerequisite.schema.json +0 -64
  206. package/schema/prerequisites/single/TraditionPrerequisite.schema.json +0 -58
  207. package/schema/rule/CoreRule.schema.json +0 -1403
  208. package/schema/rule/FocusRule.schema.json +0 -76
  209. package/schema/rule/FocusRule_Subject.schema.json +0 -48
  210. package/schema/rule/OptionalRule.schema.json +0 -64
  211. package/schema/source/Publication.schema.json +0 -103
  212. package/schema/source/_Erratum.schema.json +0 -36
  213. package/schema/source/_PublicationRef.schema.json +0 -285
  214. package/schema/specialAbility/AdvancedCombatSpecialAbility.schema.json +0 -102
  215. package/schema/specialAbility/AdvancedKarmaSpecialAbility.schema.json +0 -80
  216. package/schema/specialAbility/AdvancedMagicalSpecialAbility.schema.json +0 -80
  217. package/schema/specialAbility/AdvancedSkillSpecialAbility.schema.json +0 -80
  218. package/schema/specialAbility/AncestorGlyph.schema.json +0 -80
  219. package/schema/specialAbility/BlessedTradition.schema.json +0 -354
  220. package/schema/specialAbility/BrawlingSpecialAbility.schema.json +0 -82
  221. package/schema/specialAbility/CeremonialItemSpecialAbility.schema.json +0 -87
  222. package/schema/specialAbility/CombatSpecialAbility.schema.json +0 -98
  223. package/schema/specialAbility/CombatStyleSpecialAbility.schema.json +0 -273
  224. package/schema/specialAbility/CommandSpecialAbility.schema.json +0 -82
  225. package/schema/specialAbility/FamiliarSpecialAbility.schema.json +0 -74
  226. package/schema/specialAbility/FatePointSexSpecialAbility.schema.json +0 -74
  227. package/schema/specialAbility/FatePointSpecialAbility.schema.json +0 -84
  228. package/schema/specialAbility/GeneralSpecialAbility.schema.json +0 -88
  229. package/schema/specialAbility/KarmaSpecialAbility.schema.json +0 -78
  230. package/schema/specialAbility/LiturgicalStyleSpecialAbility.schema.json +0 -260
  231. package/schema/specialAbility/LycantropicGift.schema.json +0 -74
  232. package/schema/specialAbility/MagicStyleSpecialAbility.schema.json +0 -260
  233. package/schema/specialAbility/MagicalSign.schema.json +0 -72
  234. package/schema/specialAbility/MagicalSpecialAbility.schema.json +0 -88
  235. package/schema/specialAbility/MagicalTradition.schema.json +0 -163
  236. package/schema/specialAbility/PactGift.schema.json +0 -254
  237. package/schema/specialAbility/ProtectiveWardingCircleSpecialAbility.schema.json +0 -86
  238. package/schema/specialAbility/Sermon.schema.json +0 -74
  239. package/schema/specialAbility/SexSpecialAbility.schema.json +0 -80
  240. package/schema/specialAbility/SikaryanDrainSpecialAbility.schema.json +0 -78
  241. package/schema/specialAbility/SkillStyleSpecialAbility.schema.json +0 -254
  242. package/schema/specialAbility/VampiricGift.schema.json +0 -78
  243. package/schema/specialAbility/Vision.schema.json +0 -74
  244. package/schema/specialAbility/_Tradition.schema.json +0 -23
  245. package/schema/specialAbility/sub/Language.schema.json +0 -222
  246. package/schema/specialAbility/sub/Script.schema.json +0 -90
  247. package/schema/specialAbility/sub/TradeSecret.schema.json +0 -72
  248. package/schema/specialAbility/sub/_LanguageScript.schema.json +0 -24
  249. package/schema/traditionArtifacts/ArcaneOrbEnchantment.schema.json +0 -95
  250. package/schema/traditionArtifacts/AttireEnchantment.schema.json +0 -95
  251. package/schema/traditionArtifacts/BowlEnchantment.schema.json +0 -95
  252. package/schema/traditionArtifacts/CauldronEnchantment.schema.json +0 -115
  253. package/schema/traditionArtifacts/ChronicleEnchantment.schema.json +0 -95
  254. package/schema/traditionArtifacts/DaggerRitual.schema.json +0 -176
  255. package/schema/traditionArtifacts/FoolsHatEnchantment.schema.json +0 -95
  256. package/schema/traditionArtifacts/InstrumentEnchantment.schema.json +0 -95
  257. package/schema/traditionArtifacts/Krallenkettenzauber.schema.json +0 -95
  258. package/schema/traditionArtifacts/OrbEnchantment.schema.json +0 -95
  259. package/schema/traditionArtifacts/RingEnchantment.schema.json +0 -95
  260. package/schema/traditionArtifacts/SickleRitual.schema.json +0 -95
  261. package/schema/traditionArtifacts/SpellSwordEnchantment.schema.json +0 -99
  262. package/schema/traditionArtifacts/StaffEnchantment.schema.json +0 -103
  263. package/schema/traditionArtifacts/ToyEnchantment.schema.json +0 -95
  264. package/schema/traditionArtifacts/Trinkhornzauber.schema.json +0 -95
  265. package/schema/traditionArtifacts/WandEnchantment.schema.json +0 -87
  266. package/schema/traditionArtifacts/WeaponEnchantment.schema.json +0 -95
  267. package/schema/traditionArtifacts/sub/AnimalShape.schema.json +0 -85
  268. package/schema/traditionArtifacts/sub/AnimalShapePath.schema.json +0 -47
  269. package/schema/traditionArtifacts/sub/AnimalShapeSize.schema.json +0 -59
  270. 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
@@ -2289,6 +2297,13 @@ export interface Locale {
2289
2297
  "Volume": string
2290
2298
  "Penalty": string
2291
2299
  "Binding Cost": string
2300
+ "one or two of these special abilities can alternatively be replaced by advanced special abilities {$first} and/or {$second}": string & { __params: { "first": StringableTranslationParameter; "second": StringableTranslationParameter } }
2301
+ ".input {$count :number} {{{$count} more by primary patron}}": string & { __params: { "count": number } }
2302
+ "Patron": string
2303
+ "corresponding combat style special ability": string
2304
+ "corresponding liturgical style special ability": string
2305
+ "corresponding magic style special ability": string
2306
+ "corresponding skill style special ability": string
2292
2307
  "All": string
2293
2308
  "All Close Combat Techniques": string
2294
2309
  "All Ranged Combat Techniques": string
@@ -4352,11 +4367,6 @@ export interface Race {
4352
4367
  */
4353
4368
  base_values: BaseValues
4354
4369
 
4355
- /**
4356
- * Describes how to raise or lower maximum attribute values during character creation.
4357
- */
4358
- attribute_adjustments: AttributeAdjustments
4359
-
4360
4370
  /**
4361
4371
  * A list of automatically applied advantages. This does only work for advantages with no further configuration such as level or special selection.
4362
4372
  */
@@ -4453,377 +4463,512 @@ export interface RaceTranslation {
4453
4463
  errata?: Errata
4454
4464
  }
4455
4465
 
4456
- 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 {
4457
4474
  /**
4458
- * The race’s life point base value.
4475
+ * The base value for the derived characteristic that is granted by the race.
4459
4476
  */
4460
- life_points: number
4477
+ value: number
4478
+ }
4461
4479
 
4480
+ export interface DerivedCharacteristic {
4462
4481
  /**
4463
- * The race’s Spirit base value.
4482
+ * The position of the derived characteristic in lists. This has to be a unique value.
4464
4483
  */
4465
- spirit: number
4484
+ position: number
4466
4485
 
4467
4486
  /**
4468
- * The race’s Toughness base value.
4487
+ * The derived characteristic may have a specific use in the game.
4469
4488
  */
4470
- toughness: number
4489
+ type?: DerivedCharacteristicType
4471
4490
 
4472
4491
  /**
4473
- * The race’s tactical movement rate.
4492
+ * Instructions for calculating the derived characteristic’s value.
4474
4493
  */
4475
- movement: number
4476
- }
4494
+ calculation: DerivedCharacteristicCalculation
4495
+
4496
+ prerequisites?: DerivedCharacteristicPrerequisites
4477
4497
 
4478
- /**
4479
- * Describes how to raise or lower maximum attribute values during character creation.
4480
- */
4481
- export interface AttributeAdjustments {
4482
4498
  /**
4483
- * 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.
4484
4500
  */
4485
- fixed?: FixedAttributeAdjustment[]
4501
+ src: PublicationRefs
4486
4502
 
4487
4503
  /**
4488
- * An array of attribute maximum modifiers, where the attribute they apply to is selected from a list of options.
4489
- *
4490
- * 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).
4491
4505
  */
4492
- selectable?: [SelectableAttributeAdjustment]
4506
+ translations: {
4507
+ [localeId: string]: DerivedCharacteristicTranslation
4508
+ }
4493
4509
  }
4494
4510
 
4495
4511
  /**
4496
- * 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.
4497
4513
  */
4498
- export interface FixedAttributeAdjustment {
4514
+ export type DerivedCharacteristic_ID = string
4515
+
4516
+ export interface DerivedCharacteristicTranslation {
4499
4517
  /**
4500
- * The attribute the modifier applies to.
4518
+ * The derived characteristic’s name.
4501
4519
  */
4502
- id: Attribute_ID
4520
+ name: string
4503
4521
 
4504
4522
  /**
4505
- * The value by which the specified attribute’s maximum is modified (negative values will lower the maximum).
4523
+ * The derived characteristic’s abbreviation.
4506
4524
  */
4507
- value: number
4508
- }
4525
+ abbreviation: string
4509
4526
 
4510
- /**
4511
- * 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).
4512
- */
4513
- export interface SelectableAttributeAdjustment {
4514
4527
  /**
4515
- * A list of attributes the player has to choose from.
4528
+ * The derived characteristic’s description.
4516
4529
  */
4517
- list: Attribute_ID[]
4530
+ description?: string
4518
4531
 
4519
4532
  /**
4520
- * 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.
4521
4534
  */
4522
- value: number
4535
+ calculation?: CalculationTranslation
4523
4536
  }
4524
4537
 
4525
4538
  /**
4526
- * 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.
4527
4540
  */
4528
- 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 {
4529
4554
  /**
4530
- * 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.
4531
4558
  */
4532
- 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
4533
4565
  }
4534
4566
 
4535
- /**
4536
- * Reference to a commonness-rated advantage or disadvantage. Commonness-rating terms used in the source books are strongly recommended, common, uncommon, suggested and unsuitable.
4537
- */
4538
- export interface CommonnessRatedAdvantageDisadvantage<Identifier> {
4567
+ export interface DerivedCharacteristicPurchase {
4539
4568
  /**
4540
- * The advantage's or disadvantage's identifier.
4569
+ * The cost for improving the derived characteristic by one.
4541
4570
  */
4542
- id: Identifier
4571
+ improvementCost: ImprovementCost
4543
4572
 
4544
4573
  /**
4545
- * 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.
4546
4575
  */
4547
- translations?: {
4548
- [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"
4549
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
4550
4637
  }
4551
4638
 
4552
- export interface CommonnessRatedAdvantageDisadvantageTranslation {
4639
+ export interface DerivedCharacteristicBuyBack {
4553
4640
  /**
4554
- * The options the commonness rating applies to.
4641
+ * The AP cost for buying back one point.
4555
4642
  */
4556
- options: string
4643
+ cost: number
4557
4644
  }
4558
4645
 
4559
- /**
4560
- * Configuration for random weight generation.
4561
- */
4562
- export interface RandomWeightGeneration {
4646
+ export interface DerivedCharacteristicCalculation {
4563
4647
  /**
4564
- * 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.
4565
4649
  */
4566
- base: number
4650
+ base: DerivedCharacteristicBase
4567
4651
 
4568
4652
  /**
4569
- * 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.
4570
4654
  */
4571
- random: WeightDice[]
4655
+ modifiers?: DerivedCharacteristicModifier[]
4572
4656
  }
4573
4657
 
4574
- export interface WeightDice {
4658
+ export interface DerivedCharacteristicModifier {
4575
4659
  /**
4576
- * Number of dice of the same type. Example: 2 in 2D6.
4660
+ * The entry that, when active, causes the modifier.
4577
4661
  */
4578
- number: number
4662
+ source: DerivedCharacteristicModifierPrerequisiteGroup
4579
4663
 
4580
4664
  /**
4581
- * 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.
4582
4666
  */
4583
- sides: DieType
4667
+ operation: DerivedCharacteristicModifierOperation
4584
4668
 
4585
4669
  /**
4586
- * 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.
4587
4671
  */
4588
- offset_strategy: WeightDiceOffsetStrategy
4672
+ value: number
4589
4673
  }
4590
4674
 
4591
- /**
4592
- * Number of sides on every die. Example: 6 in 2D6.
4593
- */
4594
- export type DieType = number
4595
-
4596
- /**
4597
- * 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.
4598
- */
4599
- export type WeightDiceOffsetStrategy =
4600
- | {
4601
- kind: "Add"
4602
- }
4675
+ export type DerivedCharacteristicModifierPrerequisiteGroup =
4603
4676
  | {
4604
- kind: "Subtract"
4677
+ kind: "Rule"
4678
+ Rule: RulePrerequisite
4605
4679
  }
4606
4680
  | {
4607
- kind: "AddEvenSubtractOdd"
4681
+ kind: "Activatable"
4682
+ Activatable: ActivatablePrerequisite
4608
4683
  }
4609
4684
 
4610
4685
  /**
4611
- * Adventure Points and maximum values at hero creation.
4686
+ * Requires a specific extension rule (focus rule or optional rule) to be used/active.
4612
4687
  */
4613
- export interface ExperienceLevel {
4614
- /**
4615
- * The AP value you get.
4616
- */
4617
- adventure_points: number
4688
+ export interface RulePrerequisite {
4689
+ id: ExtensionRuleIdentifier
4690
+ display_option?: DisplayOption
4691
+ }
4618
4692
 
4619
- /**
4620
- * The highest possible attribute value.
4621
- */
4622
- 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
+ }
4623
4702
 
4703
+ export interface FocusRule {
4624
4704
  /**
4625
- * The highest possible skill rating.
4705
+ * The associated subject.
4626
4706
  */
4627
- max_skill_rating: number
4707
+ subject: Subject_ID
4628
4708
 
4629
4709
  /**
4630
- * The highest possible combat technique rating.
4710
+ * The focus rule’s level.
4631
4711
  */
4632
- max_combat_technique_rating: number
4712
+ level: number
4633
4713
 
4634
4714
  /**
4635
- * 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.
4636
4716
  */
4637
- max_attribute_total: number
4717
+ isMissingImplementation: boolean
4638
4718
 
4639
- /**
4640
- * The maximum of spells/chants you can activate.
4641
- */
4642
- max_number_of_spells_liturgical_chants: number
4719
+ prerequisites?: RulePrerequisites
4643
4720
 
4644
4721
  /**
4645
- * 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.
4646
4723
  */
4647
- max_number_of_unfamiliar_spells: number
4724
+ src: PublicationRefs
4648
4725
 
4649
4726
  /**
4650
4727
  * All translations for the entry, identified by IETF language tag (BCP47).
4651
4728
  */
4652
4729
  translations: {
4653
- [localeId: string]: ExperienceLevelTranslation
4730
+ [localeId: string]: FocusRuleTranslation
4654
4731
  }
4655
4732
  }
4656
4733
 
4657
4734
  /**
4658
4735
  * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
4659
4736
  */
4660
- export type ExperienceLevel_ID = string
4737
+ export type FocusRule_ID = string
4661
4738
 
4662
- export interface ExperienceLevelTranslation {
4739
+ export interface FocusRuleTranslation {
4663
4740
  /**
4664
- * The experience level’s name.
4741
+ * The focus rule’s name.
4665
4742
  */
4666
4743
  name: string
4667
- }
4668
4744
 
4669
- export interface Dice {
4670
4745
  /**
4671
- * Number of dice of the same type. Example: 2 in 2D6.
4746
+ * The description of the focus rule.
4672
4747
  */
4673
- number: number
4748
+ description: string
4674
4749
 
4675
- /**
4676
- * Number of sides on every die. Example: 6 in 2D6.
4677
- */
4678
- sides: DieType
4750
+ errata?: Errata
4679
4751
  }
4680
4752
 
4681
- export interface RaceVariant {
4753
+ /**
4754
+ * Subjects or Subject Areas are the categories of Focus Rules.
4755
+ */
4756
+ export interface Subject {
4682
4757
  /**
4683
- * The associated race.
4758
+ * All translations for the entry, identified by IETF language tag (BCP47).
4684
4759
  */
4685
- race: Race_ID
4760
+ translations: {
4761
+ [localeId: string]: SubjectTranslation
4762
+ }
4763
+ }
4686
4764
 
4687
- /**
4688
- * The list of common cultures.
4689
- */
4690
- 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
4691
4769
 
4770
+ export interface SubjectTranslation {
4692
4771
  /**
4693
- * A list of common advantages.
4772
+ * The subject.
4694
4773
  */
4695
- common_advantages?: CommonnessRatedAdvantageDisadvantage<Advantage_ID>[]
4774
+ name: string
4775
+ }
4696
4776
 
4697
- /**
4698
- * A list of common disadvantages.
4699
- */
4700
- common_disadvantages?: CommonnessRatedAdvantageDisadvantage<Disadvantage_ID>[]
4777
+ export type RulePrerequisites = PlainPrerequisites<RulePrerequisiteGroup>
4701
4778
 
4702
- /**
4703
- * A list of uncommon advantages.
4704
- */
4705
- uncommon_advantages?: CommonnessRatedAdvantageDisadvantage<Advantage_ID>[]
4779
+ export type RulePrerequisiteGroup =
4780
+ | {
4781
+ kind: "Rule"
4782
+ Rule: RulePrerequisite
4783
+ }
4706
4784
 
4785
+ export interface OptionalRule {
4707
4786
  /**
4708
- * 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.
4709
4788
  */
4710
- uncommon_disadvantages?: CommonnessRatedAdvantageDisadvantage<Disadvantage_ID>[]
4789
+ isMissingImplementation: boolean
4711
4790
 
4712
4791
  /**
4713
- * 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.
4714
4793
  */
4715
- 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
4716
4795
 
4717
- /**
4718
- * An array containing 20 (numeric) eye color identifiers. The array also represents the 20-sided die for a random eye color.
4719
- */
4720
- 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
4721
4797
 
4722
4798
  /**
4723
- * 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.
4724
4800
  */
4725
- height: RandomHeightGeneration
4801
+ src: PublicationRefs
4726
4802
 
4727
4803
  /**
4728
4804
  * All translations for the entry, identified by IETF language tag (BCP47).
4729
4805
  */
4730
4806
  translations: {
4731
- [localeId: string]: RaceVariantTranslation
4807
+ [localeId: string]: OptionalRuleTranslation
4732
4808
  }
4733
4809
  }
4734
4810
 
4735
4811
  /**
4736
4812
  * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
4737
4813
  */
4738
- export type RaceVariant_ID = string
4814
+ export type OptionalRule_ID = string
4739
4815
 
4740
- export interface RaceVariantTranslation {
4816
+ export interface OptionalRuleTranslation {
4741
4817
  /**
4742
- * 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.
4743
4819
  */
4744
4820
  name: string
4745
4821
 
4746
4822
  /**
4747
- * The respective common advantages text from the source book.
4748
- */
4749
- common_advantages?: string
4750
-
4751
- /**
4752
- * The respective common disadvantages text from the source book.
4823
+ * The description of the optional rule, as stated in the optional rule box.
4753
4824
  */
4754
- common_disadvantages?: string
4825
+ description: string
4755
4826
 
4756
4827
  /**
4757
- * 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.
4758
4829
  */
4759
- uncommon_advantages?: string
4830
+ additionalRules?: string
4760
4831
 
4761
- /**
4762
- * The respective uncommon disadvantages text from the source book.
4763
- */
4764
- uncommon_disadvantages?: string
4832
+ errata?: Errata
4765
4833
  }
4766
4834
 
4767
- export interface Culture {
4768
- /**
4769
- * A list of native languages (usually it is only one).
4770
- */
4771
- 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
+ }
4772
4848
 
4849
+ /**
4850
+ * Requires a specific advantage, disadvantage or special ability.
4851
+ */
4852
+ export interface ActivatablePrerequisite {
4773
4853
  /**
4774
- * 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.
4775
4855
  */
4776
- script?: Script_ID[]
4856
+ id: ActivatableIdentifier
4777
4857
 
4778
4858
  /**
4779
- * 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.
4780
4860
  */
4781
- area_knowledge: AreaKnowledge
4861
+ active: boolean
4782
4862
 
4783
4863
  /**
4784
- * A list of possible social status in the respective culture.
4864
+ * The required minimum level of the entry.
4785
4865
  */
4786
- social_status: SocialStatus_ID[]
4866
+ level?: number
4787
4867
 
4788
4868
  /**
4789
- * 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.
4790
4870
  */
4791
- common_professions: CommonProfessions
4871
+ options?: RequirableSelectOptionIdentifier[]
4792
4872
 
4793
- /**
4794
- * A list of common advantages.
4795
- */
4796
- common_advantages?: CommonnessRatedAdvantageDisadvantage<Advantage_ID>[]
4873
+ display_option?: DisplayOption
4797
4874
 
4798
- /**
4799
- * A list of common disadvantages.
4800
- */
4801
- common_disadvantages?: CommonnessRatedAdvantageDisadvantage<Disadvantage_ID>[]
4875
+ when?: Preconditions
4876
+ }
4802
4877
 
4803
- /**
4804
- * A list of uncommon advantages.
4805
- */
4806
- 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
+ }
4807
4951
 
4952
+ export interface CloseCombatTechnique {
4808
4953
  /**
4809
- * A list of uncommon disadvantages.
4954
+ * Special rules for the combat technique that apply to all weapons in this category.
4810
4955
  */
4811
- uncommon_disadvantages?: CommonnessRatedAdvantageDisadvantage<Disadvantage_ID>[]
4956
+ special: CloseCombatTechniqueSpecialRules
4812
4957
 
4813
4958
  /**
4814
- * A list of common skills.
4959
+ * The primary attribute(s).
4815
4960
  */
4816
- common_skills: CommonnessRatedSkill[]
4961
+ primary_attribute: Attribute_ID[]
4817
4962
 
4818
4963
  /**
4819
- * A list of uncommon skills.
4964
+ * The *Breaking Point Rating* of the respective combat technique.
4820
4965
  */
4821
- uncommon_skills?: CommonnessRatedSkill[]
4966
+ breaking_point_rating: number
4822
4967
 
4823
4968
  /**
4824
- * The skill points you get for buying the culture package.
4969
+ * States which column is used to improve the combat technique.
4825
4970
  */
4826
- cultural_package: CulturalPackageItem[]
4971
+ improvement_cost: ImprovementCost
4827
4972
 
4828
4973
  /**
4829
4974
  * References to where in which publications this entry has been defined. Entries may also be added or removed in later printings.
@@ -4834,67 +4979,171 @@ export interface Culture {
4834
4979
  * All translations for the entry, identified by IETF language tag (BCP47).
4835
4980
  */
4836
4981
  translations: {
4837
- [localeId: string]: CultureTranslation
4982
+ [localeId: string]: CloseCombatTechniqueTranslation
4838
4983
  }
4839
4984
  }
4840
4985
 
4841
4986
  /**
4842
4987
  * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
4843
4988
  */
4844
- export type Culture_ID = string
4989
+ export type CloseCombatTechnique_ID = string
4845
4990
 
4846
- export interface CultureTranslation {
4991
+ export interface CloseCombatTechniqueTranslation {
4847
4992
  /**
4848
- * The race’s name.
4993
+ * The combat technique’s name.
4849
4994
  */
4850
4995
  name: string
4851
4996
 
4852
4997
  /**
4853
- * The description of the area knowledge.
4854
- */
4855
- area_knowledge: AreaKnowledgeTranslation
4856
-
4857
- /**
4858
- * The respective common advantages text from the source book.
4998
+ * Additional rules for the combat technique, if applicable.
4859
4999
  */
4860
- common_advantages?: string
5000
+ special?: string
4861
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 {
4862
5009
  /**
4863
- * The respective common disadvantages text from the source book.
5010
+ * Is parrying possible with this combat technique?
4864
5011
  */
4865
- 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
+ }
4866
5036
 
5037
+ export interface RangedCombatTechnique {
4867
5038
  /**
4868
- * The respective uncommon advantages text from the source book.
5039
+ * Special rules for the combat technique that apply to all weapons in this category.
4869
5040
  */
4870
- uncommon_advantages?: string
5041
+ special: RangedCombatTechniqueSpecialRules
4871
5042
 
4872
5043
  /**
4873
- * The respective uncommon disadvantages text from the source book.
5044
+ * The primary attribute(s).
4874
5045
  */
4875
- uncommon_disadvantages?: string
5046
+ primary_attribute: Attribute_ID[]
4876
5047
 
4877
5048
  /**
4878
- * Structured description of common names.
5049
+ * The *Breaking Point Rating* of the respective combat technique.
4879
5050
  */
4880
- 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
4881
5086
 
4882
5087
  errata?: Errata
4883
5088
  }
4884
5089
 
4885
5090
  /**
4886
- * A native languages with optional specializations.
5091
+ * Special rules for the combat technique that apply to all weapons in this category.
4887
5092
  */
4888
- export interface CultureLanguage {
5093
+ export interface RangedCombatTechniqueSpecialRules {
5094
+ has_ammunition: WeaponCombatTechniqueValueRule
5095
+ }
5096
+
5097
+ export interface Property {
4889
5098
  /**
4890
- * The language’s identifier.
5099
+ * The property check’s attributes. Only the properties from the Core Rules have defined property checks.
4891
5100
  */
4892
- id: Language_ID
5101
+ check?: SkillCheck
4893
5102
 
4894
5103
  /**
4895
- * The language specializations, if any.
5104
+ * All translations for the entry, identified by IETF language tag (BCP47).
4896
5105
  */
4897
- 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
4898
5147
  }
4899
5148
 
4900
5149
  export interface Language {
@@ -5057,303 +5306,63 @@ export type LanguagePrerequisiteGroup =
5057
5306
  }
5058
5307
 
5059
5308
  /**
5060
- * 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.
5061
5310
  */
5062
- export interface ActivatablePrerequisite {
5311
+ export interface TextPrerequisite {
5063
5312
  /**
5064
- * 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.
5065
5314
  */
5066
- id: ActivatableIdentifier
5315
+ verification: TextVerificationRule
5067
5316
 
5068
5317
  /**
5069
- * 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.
5070
5321
  */
5071
- active: boolean
5322
+ sentence_type?: SentenceType
5072
5323
 
5073
5324
  /**
5074
- * 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.
5075
5330
  */
5076
- level?: number
5331
+ is_meta?: boolean
5077
5332
 
5078
5333
  /**
5079
- * 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).
5080
5335
  */
5081
- options?: RequirableSelectOptionIdentifier[]
5082
-
5083
- display_option?: DisplayOption
5336
+ translations: {
5337
+ [localeId: string]: TextPrerequisiteTranslation
5338
+ }
5339
+ }
5084
5340
 
5085
- when?: Preconditions
5341
+ export interface TextPrerequisiteTranslation {
5342
+ /**
5343
+ * The displayed text.
5344
+ */
5345
+ text: string
5086
5346
  }
5087
5347
 
5088
- export type RequirableSelectOptionIdentifier =
5089
- | {
5090
- kind: "General"
5091
- General: GeneralSelectOption_ID
5092
- }
5093
- | {
5094
- kind: "Race"
5095
- Race: Race_ID
5096
- }
5097
- | {
5098
- kind: "Skill"
5099
- Skill: Skill_ID
5100
- }
5101
- | {
5102
- kind: "SkillApplication"
5103
- SkillApplication: SkillApplication_ID
5104
- }
5105
- | {
5106
- kind: "CloseCombatTechnique"
5107
- CloseCombatTechnique: CloseCombatTechnique_ID
5108
- }
5109
- | {
5110
- kind: "RangedCombatTechnique"
5111
- RangedCombatTechnique: RangedCombatTechnique_ID
5112
- }
5113
- | {
5114
- kind: "Property"
5115
- Property: Property_ID
5116
- }
5117
- | {
5118
- kind: "Aspect"
5119
- Aspect: Aspect_ID
5120
- }
5121
- | {
5122
- kind: "Language"
5123
- Language: Language_ID
5124
- }
5125
- | {
5126
- kind: "AnimalShape"
5127
- AnimalShape: AnimalShape_ID
5128
- }
5129
- | {
5130
- kind: "LiturgicalChant"
5131
- LiturgicalChant: LiturgicalChant_ID
5132
- }
5133
- | {
5134
- kind: "Ceremony"
5135
- Ceremony: Ceremony_ID
5136
- }
5137
- | {
5138
- kind: "Spell"
5139
- Spell: Spell_ID
5140
- }
5141
- | {
5142
- kind: "Ritual"
5143
- Ritual: Ritual_ID
5144
- }
5145
- | {
5146
- kind: "TradeSecret"
5147
- TradeSecret: TradeSecret_ID
5148
- }
5149
- | {
5150
- kind: "ArcaneBardTradition"
5151
- ArcaneBardTradition: ArcaneBardTradition_ID
5152
- }
5348
+ export type TextVerificationRule =
5153
5349
  | {
5154
- kind: "ArcaneDancerTradition"
5155
- ArcaneDancerTradition: ArcaneDancerTradition_ID
5350
+ kind: "Pass"
5156
5351
  }
5157
5352
  | {
5158
- kind: "Element"
5159
- Element: Element_ID
5353
+ kind: "Deny"
5160
5354
  }
5161
5355
 
5162
- export interface CloseCombatTechnique {
5356
+ export interface AlternativeName {
5163
5357
  /**
5164
- * Special rules for the combat technique that apply to all weapons in this category.
5358
+ * An alternative name of the disease.
5165
5359
  */
5166
- special: CloseCombatTechniqueSpecialRules
5360
+ name: string
5167
5361
 
5168
5362
  /**
5169
- * The primary attribute(s).
5363
+ * The region where this alternative name is used.
5170
5364
  */
5171
- primary_attribute: Attribute_ID[]
5172
-
5173
- /**
5174
- * The *Breaking Point Rating* of the respective combat technique.
5175
- */
5176
- breaking_point_rating: number
5177
-
5178
- /**
5179
- * States which column is used to improve the combat technique.
5180
- */
5181
- improvement_cost: ImprovementCost
5182
-
5183
- /**
5184
- * References to where in which publications this entry has been defined. Entries may also be added or removed in later printings.
5185
- */
5186
- src: PublicationRefs
5187
-
5188
- /**
5189
- * All translations for the entry, identified by IETF language tag (BCP47).
5190
- */
5191
- translations: {
5192
- [localeId: string]: CloseCombatTechniqueTranslation
5193
- }
5194
- }
5195
-
5196
- /**
5197
- * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
5198
- */
5199
- export type CloseCombatTechnique_ID = string
5200
-
5201
- export interface CloseCombatTechniqueTranslation {
5202
- /**
5203
- * The combat technique’s name.
5204
- */
5205
- name: string
5206
-
5207
- /**
5208
- * Additional rules for the combat technique, if applicable.
5209
- */
5210
- special?: string
5211
-
5212
- errata?: Errata
5213
- }
5214
-
5215
- /**
5216
- * Special rules for the combat technique that apply to all weapons in this category.
5217
- */
5218
- export interface CloseCombatTechniqueSpecialRules {
5219
- /**
5220
- * Is parrying possible with this combat technique?
5221
- */
5222
- can_parry: WeaponCombatTechniqueValueRule
5223
-
5224
- has_damage_threshold: WeaponCombatTechniqueValueRule
5225
-
5226
- has_reach: WeaponCombatTechniqueValueRule
5227
-
5228
- has_length: WeaponCombatTechniqueValueRule
5229
-
5230
- has_shield_size: WeaponCombatTechniqueValueRule
5231
- }
5232
-
5233
- /**
5234
- * Defines if the weapon must/can/must not define a value for this parameter.
5235
- */
5236
- export type WeaponCombatTechniqueValueRule =
5237
- | {
5238
- kind: "Required"
5239
- }
5240
- | {
5241
- kind: "Optional"
5242
- }
5243
- | {
5244
- kind: "Prohibited"
5245
- }
5246
-
5247
- export interface RangedCombatTechnique {
5248
- /**
5249
- * Special rules for the combat technique that apply to all weapons in this category.
5250
- */
5251
- special: RangedCombatTechniqueSpecialRules
5252
-
5253
- /**
5254
- * The primary attribute(s).
5255
- */
5256
- primary_attribute: Attribute_ID[]
5257
-
5258
- /**
5259
- * The *Breaking Point Rating* of the respective combat technique.
5260
- */
5261
- breaking_point_rating: number
5262
-
5263
- /**
5264
- * States which column is used to improve the combat technique.
5265
- */
5266
- improvement_cost: ImprovementCost
5267
-
5268
- /**
5269
- * References to where in which publications this entry has been defined. Entries may also be added or removed in later printings.
5270
- */
5271
- src: PublicationRefs
5272
-
5273
- /**
5274
- * All translations for the entry, identified by IETF language tag (BCP47).
5275
- */
5276
- translations: {
5277
- [localeId: string]: RangedCombatTechniqueTranslation
5278
- }
5279
- }
5280
-
5281
- /**
5282
- * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
5283
- */
5284
- export type RangedCombatTechnique_ID = string
5285
-
5286
- export interface RangedCombatTechniqueTranslation {
5287
- /**
5288
- * The combat technique’s name.
5289
- */
5290
- name: string
5291
-
5292
- /**
5293
- * Additional rules for the combat technique, if applicable.
5294
- */
5295
- special?: string
5296
-
5297
- errata?: Errata
5298
- }
5299
-
5300
- /**
5301
- * Special rules for the combat technique that apply to all weapons in this category.
5302
- */
5303
- export interface RangedCombatTechniqueSpecialRules {
5304
- has_ammunition: WeaponCombatTechniqueValueRule
5305
- }
5306
-
5307
- export interface Property {
5308
- /**
5309
- * The property check’s attributes. Only the properties from the Core Rules have defined property checks.
5310
- */
5311
- check?: SkillCheck
5312
-
5313
- /**
5314
- * All translations for the entry, identified by IETF language tag (BCP47).
5315
- */
5316
- translations: {
5317
- [localeId: string]: PropertyTranslation
5318
- }
5319
- }
5320
-
5321
- /**
5322
- * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
5323
- */
5324
- export type Property_ID = string
5325
-
5326
- export interface PropertyTranslation {
5327
- /**
5328
- * The property’s name.
5329
- */
5330
- name: string
5331
- }
5332
-
5333
- export interface Aspect {
5334
- /**
5335
- * All translations for the entry, identified by IETF language tag (BCP47).
5336
- */
5337
- translations: {
5338
- [localeId: string]: AspectTranslation
5339
- }
5340
- }
5341
-
5342
- /**
5343
- * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
5344
- */
5345
- export type Aspect_ID = string
5346
-
5347
- export interface AspectTranslation {
5348
- /**
5349
- * The aspect’s name.
5350
- */
5351
- name: string
5352
-
5353
- /**
5354
- * 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.
5355
- */
5356
- master_of_aspect_suffix?: string
5365
+ region?: string
5357
5366
  }
5358
5367
 
5359
5368
  export interface AnimalShape {
@@ -7031,32 +7040,6 @@ export interface AdventurePointsDependingOnActiveInstancesThreshold {
7031
7040
  */
7032
7041
  export type AdventurePointsDependingOnActiveInstancesExpression = MathOperation<AdventurePointsDependingOnActiveInstancesExpressionValue>
7033
7042
 
7034
- export type MathOperation<Value> =
7035
- | {
7036
- kind: "Value"
7037
- Value: Value
7038
- }
7039
- | {
7040
- kind: "Addition"
7041
- Addition: [MathOperation<Value>, MathOperation<Value>]
7042
- }
7043
- | {
7044
- kind: "Subtraction"
7045
- Subtraction: [MathOperation<Value>, MathOperation<Value>]
7046
- }
7047
- | {
7048
- kind: "Multiplication"
7049
- Multiplication: [MathOperation<Value>, MathOperation<Value>]
7050
- }
7051
- | {
7052
- kind: "Division"
7053
- Division: [MathOperation<Value>, MathOperation<Value>]
7054
- }
7055
- | {
7056
- kind: "Exponentiation"
7057
- Exponentiation: [MathOperation<Value>, MathOperation<Value>]
7058
- }
7059
-
7060
7043
  /**
7061
7044
  * The type of value allowed in the expression to calculate the AP value.
7062
7045
  */
@@ -7090,211 +7073,47 @@ export type LiturgyPrerequisiteGroup =
7090
7073
  }
7091
7074
 
7092
7075
  /**
7093
- * 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.
7094
7077
  */
7095
- export interface RulePrerequisite {
7096
- id: ExtensionRuleIdentifier
7097
- display_option?: DisplayOption
7098
- }
7099
-
7100
- export type ExtensionRuleIdentifier =
7078
+ export type ActivatableSkillEffect =
7101
7079
  | {
7102
- kind: "FocusRule"
7103
- FocusRule: FocusRule_ID
7080
+ kind: "Plain"
7081
+ Plain: ActivatableSkillPlainEffect
7104
7082
  }
7105
7083
  | {
7106
- kind: "OptionalRule"
7107
- OptionalRule: OptionalRule_ID
7084
+ kind: "ForEachQualityLevel"
7085
+ ForEachQualityLevel: ActivatableSkillEffectForEachQualityLevel
7086
+ }
7087
+ | {
7088
+ kind: "ForEachTwoQualityLevels"
7089
+ ForEachTwoQualityLevels: ActivatableSkillEffectForEachTwoQualityLevels
7108
7090
  }
7109
7091
 
7110
- export interface FocusRule {
7092
+ export interface ActivatableSkillPlainEffect {
7111
7093
  /**
7112
- * The associated subject.
7094
+ * The effect description.
7113
7095
  */
7114
- subject: Subject_ID
7096
+ text: string
7097
+ }
7115
7098
 
7099
+ export interface ActivatableSkillEffectForEachQualityLevel {
7116
7100
  /**
7117
- * The focus rule’s level.
7101
+ * The effect description before the list of effects for each quality level.
7118
7102
  */
7119
- level: number
7103
+ text_before: string
7120
7104
 
7121
7105
  /**
7122
- * 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.
7123
7107
  */
7124
- isMissingImplementation: boolean
7125
-
7126
- prerequisites?: RulePrerequisites
7108
+ quality_levels: [string, string, string, string, string, string]
7127
7109
 
7128
7110
  /**
7129
- * 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.
7130
7112
  */
7131
- src: PublicationRefs
7113
+ text_after?: string
7114
+ }
7132
7115
 
7133
- /**
7134
- * All translations for the entry, identified by IETF language tag (BCP47).
7135
- */
7136
- translations: {
7137
- [localeId: string]: FocusRuleTranslation
7138
- }
7139
- }
7140
-
7141
- /**
7142
- * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
7143
- */
7144
- export type FocusRule_ID = string
7145
-
7146
- export interface FocusRuleTranslation {
7147
- /**
7148
- * The focus rule’s name.
7149
- */
7150
- name: string
7151
-
7152
- /**
7153
- * The description of the focus rule.
7154
- */
7155
- description: string
7156
-
7157
- errata?: Errata
7158
- }
7159
-
7160
- /**
7161
- * Subjects or Subject Areas are the categories of Focus Rules.
7162
- */
7163
- export interface Subject {
7164
- /**
7165
- * All translations for the entry, identified by IETF language tag (BCP47).
7166
- */
7167
- translations: {
7168
- [localeId: string]: SubjectTranslation
7169
- }
7170
- }
7171
-
7172
- /**
7173
- * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
7174
- */
7175
- export type Subject_ID = string
7176
-
7177
- export interface SubjectTranslation {
7178
- /**
7179
- * The subject.
7180
- */
7181
- name: string
7182
- }
7183
-
7184
- export type RulePrerequisites = PlainPrerequisites<RulePrerequisiteGroup>
7185
-
7186
- export type RulePrerequisiteGroup =
7187
- | {
7188
- kind: "Rule"
7189
- Rule: RulePrerequisite
7190
- }
7191
-
7192
- export interface OptionalRule {
7193
- /**
7194
- * 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.
7195
- */
7196
- isMissingImplementation: boolean
7197
-
7198
- /**
7199
- * How this optional rule influences the complexity of the game, if specified.
7200
- */
7201
- complexityInfluence?: ComplexityInfluence
7202
-
7203
- prerequisites?: RulePrerequisites
7204
-
7205
- /**
7206
- * References to where in which publications this entry has been defined. Entries may also be added or removed in later printings.
7207
- */
7208
- src: PublicationRefs
7209
-
7210
- /**
7211
- * All translations for the entry, identified by IETF language tag (BCP47).
7212
- */
7213
- translations: {
7214
- [localeId: string]: OptionalRuleTranslation
7215
- }
7216
- }
7217
-
7218
- /**
7219
- * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
7220
- */
7221
- export type OptionalRule_ID = string
7222
-
7223
- export interface OptionalRuleTranslation {
7224
- /**
7225
- * The optional rule’s name.
7226
- */
7227
- name: string
7228
-
7229
- /**
7230
- * The description of the optional rule, as stated in the optional rule box.
7231
- */
7232
- description: string
7233
-
7234
- /**
7235
- * Sometimes, an optional rule does not only contain all the rules belonging to it in its rule box, but also in the main text.
7236
- */
7237
- additionalRules?: string
7238
-
7239
- errata?: Errata
7240
- }
7241
-
7242
- /**
7243
- * How this optional rule influences the complexity of the game.
7244
- */
7245
- export type ComplexityInfluence =
7246
- | {
7247
- kind: "Less"
7248
- }
7249
- | {
7250
- kind: "Unchanged"
7251
- }
7252
- | {
7253
- kind: "More"
7254
- }
7255
-
7256
- /**
7257
- * 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.
7258
- */
7259
- export type ActivatableSkillEffect =
7260
- | {
7261
- kind: "Plain"
7262
- Plain: ActivatableSkillPlainEffect
7263
- }
7264
- | {
7265
- kind: "ForEachQualityLevel"
7266
- ForEachQualityLevel: ActivatableSkillEffectForEachQualityLevel
7267
- }
7268
- | {
7269
- kind: "ForEachTwoQualityLevels"
7270
- ForEachTwoQualityLevels: ActivatableSkillEffectForEachTwoQualityLevels
7271
- }
7272
-
7273
- export interface ActivatableSkillPlainEffect {
7274
- /**
7275
- * The effect description.
7276
- */
7277
- text: string
7278
- }
7279
-
7280
- export interface ActivatableSkillEffectForEachQualityLevel {
7281
- /**
7282
- * The effect description before the list of effects for each quality level.
7283
- */
7284
- text_before: string
7285
-
7286
- /**
7287
- * The list of effects for each quality level. The first element represents QL 1, the second element QL 2, and so on.
7288
- */
7289
- quality_levels: [string, string, string, string, string, string]
7290
-
7291
- /**
7292
- * The effect description after the list of effects for each quality level.
7293
- */
7294
- text_after?: string
7295
- }
7296
-
7297
- export interface ActivatableSkillEffectForEachTwoQualityLevels {
7116
+ export interface ActivatableSkillEffectForEachTwoQualityLevels {
7298
7117
  /**
7299
7118
  * The effect description before the list of effects for each quality level.
7300
7119
  */
@@ -8442,6 +8261,65 @@ export interface ProfessionPackage {
8442
8261
  */
8443
8262
  export type ProfessionPackage_ID = string
8444
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
+
8445
8323
  export type ProfessionPrerequisites = PlainPrerequisites<ProfessionPrerequisiteGroup>
8446
8324
 
8447
8325
  export type ProfessionPrerequisiteGroup =
@@ -8478,121 +8356,66 @@ export interface CulturePrerequisite {
8478
8356
  display_option?: DisplayOption
8479
8357
  }
8480
8358
 
8481
- /**
8482
- * In some areas, the profession package grants a loose set of stats where the player must choose between different options for the profession package.
8483
- */
8484
- export interface ProfessionPackageOptions {
8485
- skill_specialization?: SkillSpecializationOptions
8486
- languages_scripts?: LanguagesScriptsOptions
8487
- combat_techniques?: CombatTechniquesOptions
8488
- cantrips?: CantripsOptions
8489
- curses?: CursesOptions
8490
- skills?: SkillsOptions
8491
- liturgies?: LiturgiesOptions
8492
- }
8493
-
8494
- /**
8495
- * 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.
8496
- */
8497
- export type SkillSpecializationOptions =
8498
- | {
8499
- kind: "Specific"
8500
- Specific: SpecificSkillSpecializationOptions
8501
- }
8502
- | {
8503
- kind: "Group"
8504
- Group: SkillGroup_ID
8505
- }
8506
-
8507
- /**
8508
- * Select an application from a skill or from one of a list of skills where you get a skill specialization for.
8509
- */
8510
- export interface SpecificSkillSpecializationOptions {
8359
+ export interface Culture {
8511
8360
  /**
8512
- * Possible skill(s) to get a skill specialization for.
8513
- */
8514
- options: Skill_ID[]
8515
- }
8516
-
8517
- /**
8518
- * Buy languages and scripts for a specific amount of AP.
8519
- */
8520
- export interface LanguagesScriptsOptions {
8521
- /**
8522
- * The AP value you can buy languages and scripts for.
8361
+ * A list of native languages (usually it is only one).
8523
8362
  */
8524
- ap_value: number
8525
- }
8363
+ language: CultureLanguage[]
8526
8364
 
8527
- /**
8528
- * Select one or more combat techniques you get a CtR bonus for.
8529
- */
8530
- export interface CombatTechniquesOptions {
8531
8365
  /**
8532
- * 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.
8533
8367
  */
8534
- fixed: RatingForCombatTechniquesNumber[]
8368
+ script?: Script_ID[]
8535
8369
 
8536
8370
  /**
8537
- * 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.
8538
8372
  */
8539
- rest_rating_modifier?: number
8373
+ area_knowledge: AreaKnowledge
8540
8374
 
8541
8375
  /**
8542
- * The list of combat techniques to choose from.
8376
+ * A list of possible social status in the respective culture.
8543
8377
  */
8544
- options: CombatTechniqueIdentifier[]
8545
- }
8378
+ social_status: SocialStatus_ID[]
8546
8379
 
8547
- export interface RatingForCombatTechniquesNumber {
8548
8380
  /**
8549
- * 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).
8550
8382
  */
8551
- number: number
8383
+ common_professions: CommonProfessions
8552
8384
 
8553
8385
  /**
8554
- * The rating bonus provided for the selected combat technique(s).
8555
- *
8556
- * **Note:** This is a rating *bonus*, so it will be *added* to the default value of 6.
8386
+ * A list of common advantages.
8557
8387
  */
8558
- rating_modifier: number
8559
- }
8388
+ common_advantages?: CommonnessRatedAdvantageDisadvantage<Advantage_ID>[]
8560
8389
 
8561
- /**
8562
- * Select one or more cantrips you receive.
8563
- */
8564
- export interface CantripsOptions {
8565
8390
  /**
8566
- * The number of selectable cantrips.
8391
+ * A list of common disadvantages.
8567
8392
  */
8568
- number: number
8393
+ common_disadvantages?: CommonnessRatedAdvantageDisadvantage<Disadvantage_ID>[]
8569
8394
 
8570
8395
  /**
8571
- * The list of cantrips to choose from.
8396
+ * A list of uncommon advantages.
8572
8397
  */
8573
- options: Cantrip_ID[]
8574
- }
8398
+ uncommon_advantages?: CommonnessRatedAdvantageDisadvantage<Advantage_ID>[]
8575
8399
 
8576
- export interface Cantrip {
8577
8400
  /**
8578
- * Measurable parameters of a cantrip.
8401
+ * A list of uncommon disadvantages.
8579
8402
  */
8580
- parameters: CantripPerformanceParameters
8403
+ uncommon_disadvantages?: CommonnessRatedAdvantageDisadvantage<Disadvantage_ID>[]
8581
8404
 
8582
8405
  /**
8583
- * The target category – the kind of creature or object – the skill affects.
8406
+ * A list of common skills.
8584
8407
  */
8585
- target: AffectedTargetCategories
8408
+ common_skills: CommonnessRatedSkill[]
8586
8409
 
8587
8410
  /**
8588
- * The associated property.
8411
+ * A list of uncommon skills.
8589
8412
  */
8590
- property: Property_ID
8413
+ uncommon_skills?: CommonnessRatedSkill[]
8591
8414
 
8592
8415
  /**
8593
- * 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.
8594
8417
  */
8595
- note?: CantripNote
8418
+ cultural_package: CulturalPackageItem[]
8596
8419
 
8597
8420
  /**
8598
8421
  * References to where in which publications this entry has been defined. Entries may also be added or removed in later printings.
@@ -8603,201 +8426,687 @@ export interface Cantrip {
8603
8426
  * All translations for the entry, identified by IETF language tag (BCP47).
8604
8427
  */
8605
8428
  translations: {
8606
- [localeId: string]: CantripTranslation
8429
+ [localeId: string]: CultureTranslation
8607
8430
  }
8608
8431
  }
8609
8432
 
8610
8433
  /**
8611
8434
  * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
8612
8435
  */
8613
- export type Cantrip_ID = string
8436
+ export type Culture_ID = string
8614
8437
 
8615
- export interface CantripTranslation {
8438
+ export interface CultureTranslation {
8616
8439
  /**
8617
- * The cantrip’s name.
8440
+ * The race’s name.
8618
8441
  */
8619
8442
  name: string
8620
8443
 
8621
8444
  /**
8622
- * The effect description.
8445
+ * The description of the area knowledge.
8623
8446
  */
8624
- effect: string
8625
-
8626
- range: string
8627
-
8628
- duration: string
8629
-
8630
- target: string
8631
-
8632
- errata?: Errata
8633
- }
8634
-
8635
- /**
8636
- * Measurable parameters of a cantrip.
8637
- */
8638
- export interface CantripPerformanceParameters {
8639
- range: CantripRange
8640
- duration: CantripDuration
8641
- }
8642
-
8643
- export type CantripRange =
8644
- | {
8645
- kind: "Self"
8646
- }
8647
- | {
8648
- kind: "Touch"
8649
- }
8650
- | {
8651
- kind: "Fixed"
8652
- Fixed: FixedRange
8653
- }
8654
-
8655
- export type CantripDuration =
8656
- | {
8657
- kind: "Immediate"
8658
- }
8659
- | {
8660
- kind: "Fixed"
8661
- Fixed: FixedCantripDuration
8662
- }
8663
- | {
8664
- kind: "DuringLovemaking"
8665
- DuringLovemaking: CastingTimeDuringLovemaking
8666
- }
8667
- | {
8668
- kind: "Indefinite"
8669
- Indefinite: IndefiniteCantripDuration
8670
- }
8447
+ area_knowledge: AreaKnowledgeTranslation
8671
8448
 
8672
- export interface FixedCantripDuration {
8673
8449
  /**
8674
- * If the duration is the maximum duration, so it may end earlier.
8450
+ * The respective common advantages text from the source book.
8675
8451
  */
8676
- is_maximum?: boolean
8452
+ common_advantages?: string
8677
8453
 
8678
8454
  /**
8679
- * The (unitless) duration.
8455
+ * The respective common disadvantages text from the source book.
8680
8456
  */
8681
- value: number
8457
+ common_disadvantages?: string
8682
8458
 
8683
8459
  /**
8684
- * The duration unit.
8460
+ * The respective uncommon advantages text from the source book.
8685
8461
  */
8686
- unit: DurationUnit
8687
- }
8462
+ uncommon_advantages?: string
8688
8463
 
8689
- export interface IndefiniteCantripDuration {
8690
8464
  /**
8691
- * All translations for the entry, identified by IETF language tag (BCP47).
8465
+ * The respective uncommon disadvantages text from the source book.
8692
8466
  */
8693
- translations: {
8694
- [localeId: string]: IndefiniteCantripDurationTranslation
8695
- }
8696
- }
8467
+ uncommon_disadvantages?: string
8697
8468
 
8698
- export interface IndefiniteCantripDurationTranslation {
8699
8469
  /**
8700
- * A description of the duration.
8470
+ * Structured description of common names.
8701
8471
  */
8702
- description: ResponsiveText
8472
+ common_names: CommonNames
8473
+
8474
+ errata?: Errata
8703
8475
  }
8704
8476
 
8705
8477
  /**
8706
- * 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.
8707
8479
  */
8708
- export type CantripNote =
8709
- | {
8710
- kind: "Exclusive"
8711
- Exclusive: ExclusiveCantripNote
8712
- }
8713
- | {
8714
- kind: "Common"
8715
- Common: CommonCantripNotes
8716
- }
8480
+ export interface CultureLanguage {
8481
+ /**
8482
+ * The language’s identifier.
8483
+ */
8484
+ id: Language_ID
8717
8485
 
8718
- export interface ExclusiveCantripNote {
8719
8486
  /**
8720
- * The traditions the cantrip is exclusively available to.
8487
+ * The language specializations, if any.
8721
8488
  */
8722
- traditions: MagicalTradition_ID[]
8489
+ specializations?: LanguageSpecialization_ID[]
8723
8490
  }
8724
8491
 
8725
- export interface CommonCantripNotes {
8492
+ export interface Script {
8726
8493
  /**
8727
- * The academies and traditions the cantrip is commonly teached in.
8494
+ * The script’s adventure point value
8728
8495
  */
8729
- list: CommonCantripNote[]
8730
- }
8496
+ ap_value?: number
8731
8497
 
8732
- export type CommonCantripNote =
8733
- | {
8734
- kind: "Academy"
8735
- Academy: Curriculum_ID
8736
- }
8737
- | {
8738
- kind: "Tradition"
8739
- Tradition: CommonCantripTraditionNote
8740
- }
8498
+ /**
8499
+ * A list of languages that use this script.
8500
+ */
8501
+ associated_languages: Language_ID[]
8741
8502
 
8742
- export interface CommonCantripTraditionNote {
8743
8503
  /**
8744
- * The magical tradition’s identifier.
8504
+ * The continents this language is present on.
8745
8505
  */
8746
- id: MagicalTradition_ID
8506
+ continent: AssociatedContinent[]
8747
8507
 
8748
8508
  /**
8749
- * 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.
8750
8510
  */
8751
- translations?: {
8752
- [localeId: string]: CommonCantripTraditionNoteTranslation
8753
- }
8754
- }
8511
+ src: PublicationRefs
8755
8512
 
8756
- export interface CommonCantripTraditionNoteTranslation {
8757
8513
  /**
8758
- * A note, appended to the generated string in parenthesis.
8514
+ * All translations for the entry, identified by IETF language tag (BCP47).
8759
8515
  */
8760
- note: string
8516
+ translations: {
8517
+ [localeId: string]: ScriptTranslation
8518
+ }
8761
8519
  }
8762
8520
 
8763
8521
  /**
8764
- * 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.
8765
8523
  */
8766
- export interface CursesOptions {
8524
+ export type Script_ID = string
8525
+
8526
+ export interface ScriptTranslation {
8767
8527
  /**
8768
- * The AP value you can buy curses for.
8528
+ * The script’s name.
8769
8529
  */
8770
- ap_value: number
8771
- }
8530
+ name: string
8772
8531
 
8773
- /**
8774
- * Buy skills for a specific amount of AP.
8775
- */
8776
- export interface SkillsOptions {
8777
8532
  /**
8778
- * If specified, you may only choose from skills of the specified group.
8533
+ * A list of alternative names.
8779
8534
  */
8780
- group: SkillGroup_ID
8535
+ alternative_names?: AlternativeName[]
8781
8536
 
8782
8537
  /**
8783
- * The AP value you can buy skills for.
8538
+ * The description of the alphabet.
8784
8539
  */
8785
- ap_value: number
8540
+ alphabet?: string
8541
+
8542
+ errata?: Errata
8786
8543
  }
8787
8544
 
8788
8545
  /**
8789
- * Buy liturgical chants and ceremonies for a specific amount of AP.
8546
+ * If the area knowledge has a fixed value or can be adjusted.
8790
8547
  */
8791
- export interface LiturgiesOptions {
8548
+ export interface AreaKnowledge {
8792
8549
  /**
8793
- * 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.
8794
8551
  */
8795
- ap_value: number
8552
+ is_fixed: boolean
8796
8553
  }
8797
8554
 
8798
- export type ProfessionSpecialAbility =
8799
- | {
8800
- 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"
8801
9110
  Constant: ConstantProfessionSpecialAbility
8802
9111
  }
8803
9112
  | {
@@ -8809,7 +9118,7 @@ export interface ConstantProfessionSpecialAbility {
8809
9118
  /**
8810
9119
  * The identifier of the special ability to grant.
8811
9120
  */
8812
- id: SpecialAbilityIdentifier
9121
+ id: ProfessionSpecialAbilityIdentifier
8813
9122
 
8814
9123
  /**
8815
9124
  * The level of the received special ability. If not specified and the special ability has levels, level 1 is used automatically.
@@ -8822,7 +9131,7 @@ export interface ConstantProfessionSpecialAbility {
8822
9131
  options?: RequirableSelectOptionIdentifier[]
8823
9132
  }
8824
9133
 
8825
- export type SpecialAbilityIdentifier =
9134
+ export type ProfessionSpecialAbilityIdentifier =
8826
9135
  | {
8827
9136
  kind: "AdvancedCombatSpecialAbility"
8828
9137
  AdvancedCombatSpecialAbility: AdvancedCombatSpecialAbility_ID
@@ -9027,6 +9336,10 @@ export type SpecialAbilityIdentifier =
9027
9336
  kind: "WeaponEnchantment"
9028
9337
  WeaponEnchantment: WeaponEnchantment_ID
9029
9338
  }
9339
+ | {
9340
+ kind: "Enhancement"
9341
+ Enhancement: Enhancement_ID
9342
+ }
9030
9343
 
9031
9344
  /**
9032
9345
  * Magical Special Abilities that are being unlocked by Magic Style Special Abilities.
@@ -10831,7 +11144,7 @@ export interface GenMeleeWeapon<Damage> {
10831
11144
  /**
10832
11145
  * The reach of the weapon.
10833
11146
  */
10834
- reach?: Reach_ID
11147
+ reach?: Reach_ID[]
10835
11148
 
10836
11149
  /**
10837
11150
  * The length of the weapon in cm/halffingers.
@@ -10909,6 +11222,11 @@ export type AttackModifier = number
10909
11222
  export type ParryModifier = number
10910
11223
 
10911
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
+
10912
11230
  /**
10913
11231
  * All translations for the entry, identified by IETF language tag (BCP47).
10914
11232
  */
@@ -10974,6 +11292,23 @@ export interface MeleeDamage {
10974
11292
  flat?: number
10975
11293
  }
10976
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
+
10977
11312
  export type RangedWeapon = GenRangedWeapon<RangedDamage>
10978
11313
 
10979
11314
  export interface GenRangedWeapon<Damage> {
@@ -10995,7 +11330,7 @@ export interface GenRangedWeapon<Damage> {
10995
11330
  /**
10996
11331
  * The needed ammunition.
10997
11332
  */
10998
- ammunition?: Ammunition_ID
11333
+ ammunition?: AmmunitionishIdentifier
10999
11334
 
11000
11335
  /**
11001
11336
  * The length of the weapon in cm/halffingers.
@@ -11032,6 +11367,16 @@ export interface RangeBrackets {
11032
11367
  far: number
11033
11368
  }
11034
11369
 
11370
+ export type AmmunitionishIdentifier =
11371
+ | {
11372
+ kind: "Ammunition"
11373
+ Ammunition: Ammunition_ID
11374
+ }
11375
+ | {
11376
+ kind: "Weapon"
11377
+ Weapon: Weapon_ID
11378
+ }
11379
+
11035
11380
  export interface Ammunition {
11036
11381
  /**
11037
11382
  * The cost in silverthalers.
@@ -16584,6 +16929,11 @@ export interface FixedMagicalMelodyCost {
16584
16929
  * The (temporary) AE cost value.
16585
16930
  */
16586
16931
  value: number
16932
+
16933
+ /**
16934
+ * The interval at which to pay half the initial cost.
16935
+ */
16936
+ interval?: DurationUnitValue
16587
16937
  }
16588
16938
 
16589
16939
  export interface FirstPersonMagicalMelodyCost {
@@ -17373,6 +17723,10 @@ export type GeodeRitualDuration =
17373
17723
  export type GeodeRitualPrerequisites = PlainPrerequisites<GeodeRitualPrerequisiteGroup>
17374
17724
 
17375
17725
  export type GeodeRitualPrerequisiteGroup =
17726
+ | {
17727
+ kind: "Activatable"
17728
+ Activatable: ActivatablePrerequisite
17729
+ }
17376
17730
  | {
17377
17731
  kind: "Influence"
17378
17732
  Influence: InfluencePrerequisite
@@ -17765,195 +18119,214 @@ export type LiturgyIdentifier =
17765
18119
  LiturgicalChant: LiturgicalChant_ID
17766
18120
  }
17767
18121
  | {
17768
- kind: "Ceremony"
17769
- 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
17770
18168
  }
17771
18169
 
17772
- export interface ProfessionVariant {
17773
- /**
17774
- * The associated profession package.
17775
- */
17776
- profession_package: ProfessionPackage_ID
17777
-
18170
+ export interface MagicalTraditionConstraint {
17778
18171
  /**
17779
- * 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.
17780
18173
  */
17781
- ap_value?: number
18174
+ id: MagicalTradition_ID
17782
18175
 
17783
18176
  /**
17784
- * 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.
17785
18178
  */
17786
- prerequisites?: ProfessionPrerequisites
18179
+ weighted_professions?: Weighted<Profession_ID>
17787
18180
 
17788
18181
  /**
17789
- * 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.
17790
18183
  */
17791
- options?: ProfessionVariantPackageOptions
18184
+ rarity?: Rarity
18185
+ }
17792
18186
 
17793
- /**
17794
- * Any special abilities the profession receives from the package variant.
17795
- */
17796
- special_abilities?: ProfessionVariantSpecialAbility[]
18187
+ export type BlessedCommonProfessionConstraint =
18188
+ | {
18189
+ kind: "Tradition"
18190
+ Tradition: BlessedTraditionConstraint
18191
+ }
17797
18192
 
18193
+ export interface BlessedTraditionConstraint {
17798
18194
  /**
17799
- * Provides ratings for the combat techniques that the hero receives from the package variant.
18195
+ * The blessed tradition’s identifier.
17800
18196
  */
17801
- combat_techniques?: CombatTechniqueRating[]
18197
+ id: BlessedTradition_ID
17802
18198
 
17803
18199
  /**
17804
- * 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.
17805
18201
  */
17806
- skills?: SkillRating[]
18202
+ weighted_professions?: Weighted<Profession_ID>
17807
18203
 
17808
18204
  /**
17809
- * 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.
17810
18206
  */
17811
- spells?: MagicalSkillRating[]
18207
+ rarity?: Rarity
18208
+ }
17812
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> {
17813
18214
  /**
17814
- * 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.
17815
18216
  */
17816
- liturgical_chants?: LiturgicalChantRating[]
18217
+ id: Identifier
17817
18218
 
17818
18219
  /**
17819
18220
  * All translations for the entry, identified by IETF language tag (BCP47).
17820
18221
  */
17821
- translations: {
17822
- [localeId: string]: ProfessionVariantTranslation
18222
+ translations?: {
18223
+ [localeId: string]: CommonnessRatedAdvantageDisadvantageTranslation
17823
18224
  }
17824
18225
  }
17825
18226
 
17826
- /**
17827
- * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
17828
- */
17829
- export type ProfessionVariant_ID = string
17830
-
17831
- export interface ProfessionVariantTranslation {
18227
+ export interface CommonnessRatedAdvantageDisadvantageTranslation {
17832
18228
  /**
17833
- * The profession variant’s name.
18229
+ * The options the commonness rating applies to.
17834
18230
  */
17835
- name: ProfessionName
18231
+ options: string
18232
+ }
18233
+
18234
+ export type CommonnessRatedSkill = Skill_ID
17836
18235
 
18236
+ export interface CulturalPackageItem {
17837
18237
  /**
17838
- * A text that replaces the generated text for the profession variant.
18238
+ * The skill’s identifier.
17839
18239
  */
17840
- full_text?: string
18240
+ id: Skill_ID
17841
18241
 
17842
18242
  /**
17843
- * 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.
17844
18244
  */
17845
- concluding_text?: string
18245
+ points: number
17846
18246
  }
17847
18247
 
17848
18248
  /**
17849
- * 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.
17850
18250
  */
17851
- export interface ProfessionVariantPackageOptions {
17852
- skill_specialization?: VariantOptionAction<SkillSpecializationOptions>
17853
- languages_scripts?: VariantOptionAction<LanguagesScriptsOptions>
17854
- combat_techniques?: VariantOptionAction<CombatTechniquesOptions>
17855
- cantrips?: VariantOptionAction<CantripsOptions>
17856
- curses?: VariantOptionAction<CursesOptions>
17857
- skills?: VariantOptionAction<SkillsOptions>
17858
- liturgies?: VariantOptionAction<LiturgiesOptions>
17859
- }
17860
-
17861
- export type VariantOptionAction<T> =
17862
- | {
17863
- kind: "Remove"
17864
- }
17865
- | {
17866
- kind: "Override"
17867
- Override: T
17868
- }
18251
+ export interface AreaKnowledgeTranslation {
18252
+ /**
18253
+ * The full description without examples in parenthesis.
18254
+ */
18255
+ description: string
17869
18256
 
17870
- export interface ProfessionVariantSpecialAbility {
17871
18257
  /**
17872
- * 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.
17873
18259
  */
17874
- action: VariantSpecialAbilityAction
18260
+ abbreviated: string
17875
18261
 
17876
18262
  /**
17877
- * The special ability to add or remove.
18263
+ * Examples of areas, if applicable.
17878
18264
  */
17879
- value: ProfessionSpecialAbility
18265
+ examples?: AreaKnowledgeExample[]
17880
18266
  }
17881
18267
 
17882
- export type VariantSpecialAbilityAction =
17883
- | {
17884
- kind: "Remove"
17885
- }
17886
- | {
17887
- kind: "Override"
17888
- }
18268
+ export interface AreaKnowledgeExample {
18269
+ area: string
18270
+ }
17889
18271
 
17890
18272
  /**
17891
- * 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.
17892
18274
  */
17893
- export interface ProfessionName {
18275
+ export interface CommonNames {
17894
18276
  /**
17895
- * 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.
17896
18278
  */
17897
- default: string
18279
+ first_name_groups?: CommonNameGroup[]
17898
18280
 
17899
18281
  /**
17900
- * 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.
17901
18283
  */
17902
- male?: string
18284
+ last_name_groups?: CommonNameGroup[]
17903
18285
 
17904
18286
  /**
17905
- * The female name, if different from the default name.
18287
+ * Special naming rules.
17906
18288
  */
17907
- female?: string
18289
+ naming_rules?: string
17908
18290
  }
17909
18291
 
17910
- /**
17911
- * 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.
17912
- */
17913
- export interface TextPrerequisite {
17914
- /**
17915
- * 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.
17916
- */
17917
- verification: TextVerificationRule
17918
-
18292
+ export interface CommonNameGroup {
17919
18293
  /**
17920
- * If the text is a sentence or sentence-like fragment, this property ensures it is integrated into the prerequisite string correctly.
17921
- *
17922
- * 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.
17923
18295
  */
17924
- sentence_type?: SentenceType
18296
+ label: string
17925
18297
 
17926
18298
  /**
17927
- * 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`.
17928
- *
17929
- * 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.
17930
- *
17931
- * This is the only use case for this property.
18299
+ * The binary sex if the group is only for a certain binary sex.
17932
18300
  */
17933
- is_meta?: boolean
18301
+ sex?: BinarySex
17934
18302
 
17935
18303
  /**
17936
- * All translations for the entry, identified by IETF language tag (BCP47).
18304
+ * The names from the group.
17937
18305
  */
17938
- translations: {
17939
- [localeId: string]: TextPrerequisiteTranslation
17940
- }
18306
+ names: CommonName[]
17941
18307
  }
17942
18308
 
17943
- export interface TextPrerequisiteTranslation {
18309
+ export interface CommonName {
18310
+ name: string
18311
+
17944
18312
  /**
17945
- * The displayed text.
18313
+ * Additional information about the name, appended in parenthesis.
17946
18314
  */
17947
- text: string
18315
+ note?: string
17948
18316
  }
17949
18317
 
17950
- export type TextVerificationRule =
17951
- | {
17952
- kind: "Pass"
17953
- }
17954
- | {
17955
- kind: "Deny"
17956
- }
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
+ }
17957
18330
 
17958
18331
  export interface InfluenceEffect {
17959
18332
  /**
@@ -18472,352 +18845,285 @@ export type SexualCharacteristic =
18472
18845
  kind: "Vagina"
18473
18846
  }
18474
18847
 
18475
- export interface AlternativeName {
18476
- /**
18477
- * An alternative name of the disease.
18478
- */
18479
- name: string
18480
-
18481
- /**
18482
- * The region where this alternative name is used.
18483
- */
18484
- region?: string
18485
- }
18486
-
18487
- export interface Script {
18488
- /**
18489
- * The script’s adventure point value
18490
- */
18491
- 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
+ }
18492
18861
 
18493
- /**
18494
- * A list of languages that use this script.
18495
- */
18496
- associated_languages: Language_ID[]
18862
+ export type DerivedCharacteristicPrerequisites = PlainPrerequisites<DerivedCharacteristicPrerequisiteGroup>
18497
18863
 
18498
- /**
18499
- * The continents this language is present on.
18500
- */
18501
- 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
+ }
18502
18877
 
18878
+ export interface BlessedTraditionPrerequisite {
18503
18879
  /**
18504
- * 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.
18505
18881
  */
18506
- 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
+ }
18507
18897
 
18898
+ export interface MagicalTraditionPrerequisite {
18508
18899
  /**
18509
- * 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.
18510
18901
  */
18511
- translations: {
18512
- [localeId: string]: ScriptTranslation
18513
- }
18902
+ restriction?: MagicalTraditionPrerequisiteRestriction
18903
+
18904
+ display_option?: DisplayOption
18514
18905
  }
18515
18906
 
18516
18907
  /**
18517
- * 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.
18518
18909
  */
18519
- export type Script_ID = string
18910
+ export type MagicalTraditionPrerequisiteRestriction =
18911
+ | {
18912
+ kind: "CanLearnRituals"
18913
+ }
18914
+ | {
18915
+ kind: "CanBindFamiliars"
18916
+ }
18520
18917
 
18521
- export interface ScriptTranslation {
18918
+ export interface CalculationTranslation {
18522
18919
  /**
18523
- * The script’s name.
18920
+ * The default calculation string.
18524
18921
  */
18525
- name: string
18922
+ default: string
18526
18923
 
18527
18924
  /**
18528
- * A list of alternative names.
18925
+ * The calculation string if only half of the primary attribute is used.
18529
18926
  */
18530
- alternative_names?: AlternativeName[]
18927
+ half_primary?: string
18531
18928
 
18532
18929
  /**
18533
- * The description of the alphabet.
18930
+ * The calculation string if no primary attribute is used.
18534
18931
  */
18535
- alphabet?: string
18536
-
18537
- errata?: Errata
18932
+ no_primary?: string
18538
18933
  }
18539
18934
 
18540
18935
  /**
18541
- * 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.
18542
18937
  */
18543
- export interface AreaKnowledge {
18938
+ export interface AutomaticAdvantageDisadvantage<Identifier> {
18544
18939
  /**
18545
- * `true` if the area knowledge has a fixed value, `false` if it can be adjusted.
18940
+ * The automatic advantage or disadvantage.
18546
18941
  */
18547
- is_fixed: boolean
18942
+ id: Identifier
18548
18943
  }
18549
18944
 
18550
- export interface SocialStatus {
18945
+ /**
18946
+ * Configuration for random weight generation.
18947
+ */
18948
+ export interface RandomWeightGeneration {
18551
18949
  /**
18552
- * 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`.
18553
18951
  */
18554
- position: number
18952
+ base: number
18555
18953
 
18556
18954
  /**
18557
- * All translations for the entry, identified by IETF language tag (BCP47).
18955
+ * The dice used for random weight.
18558
18956
  */
18559
- translations: {
18560
- [localeId: string]: SocialStatusTranslation
18561
- }
18957
+ random: WeightDice[]
18562
18958
  }
18563
18959
 
18564
- /**
18565
- * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
18566
- */
18567
- export type SocialStatus_ID = string
18568
-
18569
- export interface SocialStatusTranslation {
18960
+ export interface WeightDice {
18570
18961
  /**
18571
- * The social status’ name.
18962
+ * Number of dice of the same type. Example: 2 in 2D6.
18572
18963
  */
18573
- name: string
18574
- }
18575
-
18576
- /**
18577
- * 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).
18578
- */
18579
- export type CommonProfessions =
18580
- | {
18581
- kind: "Plain"
18582
- Plain: PlainCommonProfessions
18583
- }
18584
- | {
18585
- kind: "Grouped"
18586
- Grouped: GroupedCommonProfessions
18587
- }
18588
-
18589
- export type PlainCommonProfessions = CommonProfessionConstraints<Profession_ID>
18964
+ number: number
18590
18965
 
18591
- /**
18592
- * A list of professions. The filter specifies how the list is applied to all mundane professions.
18593
- */
18594
- export interface CommonProfessionConstraints<Constraint> {
18595
18966
  /**
18596
- * The list of constraints.
18967
+ * Number of sides on every die. Example: 6 in 2D6.
18597
18968
  */
18598
- constraints: Constraint[]
18969
+ sides: DieType
18599
18970
 
18600
18971
  /**
18601
- * 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.
18602
18973
  */
18603
- operation: CommonProfessionConstraintsOperation
18974
+ offset_strategy: WeightDiceOffsetStrategy
18604
18975
  }
18605
18976
 
18606
18977
  /**
18607
- * 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.
18608
18979
  */
18609
- export type CommonProfessionConstraintsOperation =
18980
+ export type WeightDiceOffsetStrategy =
18610
18981
  | {
18611
- kind: "Intersection"
18982
+ kind: "Add"
18612
18983
  }
18613
18984
  | {
18614
- kind: "Difference"
18985
+ kind: "Subtract"
18615
18986
  }
18616
-
18617
- /**
18618
- * Lists of professions by group.
18619
- */
18620
- export interface GroupedCommonProfessions {
18621
- mundane?: CommonProfessionConstraints<MundaneCommonProfessionConstraint>
18622
- magic?: CommonProfessionConstraints<MagicCommonProfessionConstraint>
18623
- blessed?: CommonProfessionConstraints<BlessedCommonProfessionConstraint>
18624
- }
18625
-
18626
- export type MundaneCommonProfessionConstraint =
18627
18987
  | {
18628
- kind: "Profession"
18629
- Profession: ProfessionConstraint
18988
+ kind: "AddEvenSubtractOdd"
18630
18989
  }
18631
18990
 
18632
- export interface ProfessionConstraint {
18991
+ export interface RaceVariant {
18633
18992
  /**
18634
- * The profession’s identifier.
18993
+ * The associated race.
18635
18994
  */
18636
- id: Profession_ID
18995
+ race: Race_ID
18637
18996
 
18638
18997
  /**
18639
- * 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.
18640
18999
  */
18641
- weighted_variants?: Weighted<ProfessionVariant_ID>
19000
+ attribute_adjustments: AttributeAdjustments
18642
19001
 
18643
19002
  /**
18644
- * Some professions may be found in a culture, but are not that common.
19003
+ * The list of common cultures.
18645
19004
  */
18646
- rarity?: Rarity
18647
- }
19005
+ common_cultures?: Culture_ID[]
18648
19006
 
18649
- /**
18650
- * 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.
18651
- */
18652
- export interface Weighted<ProfessionOrVariant> {
18653
19007
  /**
18654
- * The list of more common professions or profession variants.
19008
+ * A list of common advantages.
18655
19009
  */
18656
- elements: ProfessionOrVariant[]
19010
+ common_advantages?: CommonnessRatedAdvantageDisadvantage<Advantage_ID>[]
18657
19011
 
18658
19012
  /**
18659
- * The list of more common professions or profession variants.
19013
+ * A list of common disadvantages.
18660
19014
  */
18661
- weight: CommonnessWeight
18662
- }
18663
-
18664
- /**
18665
- * 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`).
18666
- */
18667
- export type CommonnessWeight =
18668
- | {
18669
- kind: "Mostly"
18670
- }
18671
- | {
18672
- kind: "Only"
18673
- }
18674
-
18675
- /**
18676
- * Some professions may be found in a culture, but are not that common.
18677
- */
18678
- export type Rarity =
18679
- | {
18680
- kind: "Rare"
18681
- }
18682
- | {
18683
- kind: "VeryRare"
18684
- }
18685
-
18686
- export type MagicCommonProfessionConstraint =
18687
- | {
18688
- kind: "Tradition"
18689
- Tradition: MagicalTraditionConstraint
18690
- }
18691
- | {
18692
- kind: "MagicDilettante"
18693
- }
18694
- | {
18695
- kind: "Profession"
18696
- Profession: ProfessionConstraint
18697
- }
19015
+ common_disadvantages?: CommonnessRatedAdvantageDisadvantage<Disadvantage_ID>[]
18698
19016
 
18699
- export interface MagicalTraditionConstraint {
18700
19017
  /**
18701
- * The magical tradition’s identifier.
19018
+ * A list of uncommon advantages.
18702
19019
  */
18703
- id: MagicalTradition_ID
19020
+ uncommon_advantages?: CommonnessRatedAdvantageDisadvantage<Advantage_ID>[]
18704
19021
 
18705
19022
  /**
18706
- * 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.
18707
19024
  */
18708
- weighted_professions?: Weighted<Profession_ID>
19025
+ uncommon_disadvantages?: CommonnessRatedAdvantageDisadvantage<Disadvantage_ID>[]
18709
19026
 
18710
19027
  /**
18711
- * 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.
18712
19029
  */
18713
- rarity?: Rarity
18714
- }
18715
-
18716
- export type BlessedCommonProfessionConstraint =
18717
- | {
18718
- kind: "Tradition"
18719
- Tradition: BlessedTraditionConstraint
18720
- }
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]
18721
19031
 
18722
- export interface BlessedTraditionConstraint {
18723
19032
  /**
18724
- * 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.
18725
19034
  */
18726
- 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]
18727
19036
 
18728
19037
  /**
18729
- * 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.
18730
19039
  */
18731
- weighted_professions?: Weighted<Profession_ID>
19040
+ height: RandomHeightGeneration
18732
19041
 
18733
19042
  /**
18734
- * 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).
18735
19044
  */
18736
- rarity?: Rarity
19045
+ translations: {
19046
+ [localeId: string]: RaceVariantTranslation
19047
+ }
18737
19048
  }
18738
19049
 
18739
- 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
18740
19054
 
18741
- export interface CulturalPackageItem {
19055
+ export interface RaceVariantTranslation {
18742
19056
  /**
18743
- * 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.
18744
19058
  */
18745
- id: Skill_ID
19059
+ name: string
18746
19060
 
18747
19061
  /**
18748
- * The skill points for the respective skill you get for buying the cultural package.
19062
+ * The respective common advantages text from the source book.
18749
19063
  */
18750
- points: number
18751
- }
19064
+ common_advantages?: string
18752
19065
 
18753
- /**
18754
- * Description and examples of the area knowledge.
18755
- */
18756
- export interface AreaKnowledgeTranslation {
18757
19066
  /**
18758
- * The full description without examples in parenthesis.
19067
+ * The respective common disadvantages text from the source book.
18759
19068
  */
18760
- description: string
19069
+ common_disadvantages?: string
18761
19070
 
18762
19071
  /**
18763
- * 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.
18764
19073
  */
18765
- abbreviated: string
19074
+ uncommon_advantages?: string
18766
19075
 
18767
19076
  /**
18768
- * Examples of areas, if applicable.
19077
+ * The respective uncommon disadvantages text from the source book.
18769
19078
  */
18770
- examples?: AreaKnowledgeExample[]
18771
- }
18772
-
18773
- export interface AreaKnowledgeExample {
18774
- area: string
19079
+ uncommon_disadvantages?: string
18775
19080
  }
18776
19081
 
18777
19082
  /**
18778
- * Structured description of common names.
19083
+ * Describes how to raise or lower maximum attribute values during character creation.
18779
19084
  */
18780
- export interface CommonNames {
18781
- /**
18782
- * First names can be gender-neutral, but they can also be for a specific binary sex. They are sorted into groups.
18783
- */
18784
- first_name_groups?: CommonNameGroup[]
18785
-
19085
+ export interface AttributeAdjustments {
18786
19086
  /**
18787
- * 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.
18788
19088
  */
18789
- last_name_groups?: CommonNameGroup[]
19089
+ fixed?: FixedAttributeAdjustment[]
18790
19090
 
18791
19091
  /**
18792
- * 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.
18793
19095
  */
18794
- naming_rules?: string
19096
+ selectable?: [SelectableAttributeAdjustment]
18795
19097
  }
18796
19098
 
18797
- export interface CommonNameGroup {
19099
+ /**
19100
+ * A value by which the maximum of the respective attribute is modified.
19101
+ */
19102
+ export interface FixedAttributeAdjustment {
18798
19103
  /**
18799
- * The group label.
19104
+ * The attribute the modifier applies to.
18800
19105
  */
18801
- label: string
19106
+ id: Attribute_ID
18802
19107
 
18803
19108
  /**
18804
- * 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).
18805
19110
  */
18806
- sex?: BinarySex
19111
+ value: number
19112
+ }
18807
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 {
18808
19118
  /**
18809
- * The names from the group.
19119
+ * A list of attributes the player has to choose from.
18810
19120
  */
18811
- names: CommonName[]
18812
- }
18813
-
18814
- export interface CommonName {
18815
- name: string
19121
+ list: Attribute_ID[]
18816
19122
 
18817
19123
  /**
18818
- * 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).
18819
19125
  */
18820
- note?: string
19126
+ value: number
18821
19127
  }
18822
19128
 
18823
19129
  export interface HairColor {
@@ -19054,46 +19360,6 @@ export type PrimaryAttributeCategory =
19054
19360
  kind: "Magical"
19055
19361
  }
19056
19362
 
19057
- export interface BlessedTraditionPrerequisite {
19058
- /**
19059
- * The blessed tradition prerequisite may only be satified if the blessed tradition is either church or shamanistic.
19060
- */
19061
- restriction?: BlessedTraditionPrerequisiteRestriction
19062
-
19063
- display_option?: DisplayOption
19064
- }
19065
-
19066
- /**
19067
- * The blessed tradition prerequisite may only be satified if the blessed tradition is either church or shamanistic.
19068
- */
19069
- export type BlessedTraditionPrerequisiteRestriction =
19070
- | {
19071
- kind: "Church"
19072
- }
19073
- | {
19074
- kind: "Shamanistic"
19075
- }
19076
-
19077
- export interface MagicalTraditionPrerequisite {
19078
- /**
19079
- * The magical tradition prerequisite may only be satified if the magical tradition can learn rituals or can bind familiars.
19080
- */
19081
- restriction?: MagicalTraditionPrerequisiteRestriction
19082
-
19083
- display_option?: DisplayOption
19084
- }
19085
-
19086
- /**
19087
- * The magical tradition prerequisite may only be satified if the magical tradition can learn rituals or can bind familiars.
19088
- */
19089
- export type MagicalTraditionPrerequisiteRestriction =
19090
- | {
19091
- kind: "CanLearnRituals"
19092
- }
19093
- | {
19094
- kind: "CanBindFamiliars"
19095
- }
19096
-
19097
19363
  export interface RatedMinimumNumberPrerequisite {
19098
19364
  /**
19099
19365
  * The minimum number of skills that need to be on the defined minimum skill rating.
@@ -20339,7 +20605,7 @@ export interface CeremonialItem {
20339
20605
  /**
20340
20606
  * The structure points of the item. Use an array if the item consists of multiple components that have individual structure points.
20341
20607
  */
20342
- structure_points: StructurePoints
20608
+ structure_points?: StructurePoints
20343
20609
 
20344
20610
  /**
20345
20611
  * The deity associated with the equipment item.
@@ -20863,287 +21129,68 @@ export type ReferenceListNodeSource =
20863
21129
  kind: "SocialStatuses"
20864
21130
  }
20865
21131
  | {
20866
- kind: "Poisons"
20867
- }
20868
- | {
20869
- kind: "Diseases"
20870
- }
20871
- | {
20872
- kind: "HealingHerbs"
20873
- }
20874
- | {
20875
- kind: "VisibilityModifier"
20876
- }
20877
- | {
20878
- kind: "Demons"
20879
- }
20880
- | {
20881
- kind: "Elementals"
20882
- }
20883
- | {
20884
- kind: "Animals"
20885
- }
20886
- | {
20887
- kind: "Familiars"
20888
- }
20889
- | {
20890
- kind: "AnimalSpecialAbilities"
20891
- }
20892
- | {
20893
- kind: "EquipmentPackages"
20894
- }
20895
- | {
20896
- kind: "Items"
20897
- }
20898
- | {
20899
- kind: "OptionalRules"
20900
- }
20901
- | {
20902
- kind: "ImprovementCost"
20903
- ImprovementCost: ReferenceListNodeImprovementCostSource
20904
- }
20905
-
20906
- export interface ReferenceListNodeImprovementCostSource {
20907
- /**
20908
- * 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.
20909
- */
20910
- target: ReferenceListNodeImprovementCostSourceTarget
20911
-
20912
- /**
20913
- * The highest value the improvement cost are displayed for.
20914
- *
20915
- * 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.
20916
- */
20917
- maximum_rating: number
20918
- }
20919
-
20920
- export type ReferenceListNodeImprovementCostSourceTarget =
20921
- | {
20922
- kind: "Attributes"
20923
- }
20924
- | {
20925
- kind: "Skills"
20926
- }
20927
-
20928
- export interface DerivedCharacteristic {
20929
- /**
20930
- * The position of the derived characteristic in lists. This has to be a unique value.
20931
- */
20932
- position: number
20933
-
20934
- /**
20935
- * Instructions for calculating the derived characteristic’s value.
20936
- */
20937
- calculation: DerivedCharacteristicCalculation
20938
-
20939
- prerequisites?: DerivedCharacteristicPrerequisites
20940
-
20941
- /**
20942
- * References to where in which publications this entry has been defined. Entries may also be added or removed in later printings.
20943
- */
20944
- src: PublicationRefs
20945
-
20946
- /**
20947
- * All translations for the entry, identified by IETF language tag (BCP47).
20948
- */
20949
- translations: {
20950
- [localeId: string]: DerivedCharacteristicTranslation
20951
- }
20952
- }
20953
-
20954
- /**
20955
- * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
20956
- */
20957
- export type DerivedCharacteristic_ID = string
20958
-
20959
- export interface DerivedCharacteristicTranslation {
20960
- /**
20961
- * The derived characteristic’s name.
20962
- */
20963
- name: string
20964
-
20965
- /**
20966
- * The derived characteristic’s abbreviation.
20967
- */
20968
- abbreviation: string
20969
-
20970
- /**
20971
- * The derived characteristic’s description.
20972
- */
20973
- description?: string
20974
-
20975
- /**
20976
- * Possible calculation strings for the final value.
20977
- */
20978
- calculation?: CalculationTranslation
20979
- }
20980
-
20981
- export interface DerivedCharacteristicCalculation {
20982
- /**
20983
- * The base value for the calculation.
20984
- */
20985
- base: DerivedCharacteristicBase
20986
-
20987
- /**
20988
- * A list of modifiers that are applied to the base value. The modifiers are applied in the order they appear in the list.
20989
- */
20990
- modifiers?: DerivedCharacteristicModifier[]
20991
-
20992
- /**
20993
- * If set, the derived characteristic can be improved by spending AP.
20994
- *
20995
- * 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.
20996
- */
20997
- purchasable?: DerivedCharacteristicPurchase
20998
-
20999
- /**
21000
- * 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.
21001
- */
21002
- permanentLoss?: DerivedCharacteristicPermanentLoss
21003
- }
21004
-
21005
- export type DerivedCharacteristicBase = MathOperation<DerivedCharacteristicBaseValue>
21006
-
21007
- export type DerivedCharacteristicBaseValue =
21008
- | {
21009
- kind: "Constant"
21010
- Constant: number
21011
- }
21012
- | {
21013
- kind: "Attribute"
21014
- Attribute: Attribute_ID
21015
- }
21016
- | {
21017
- kind: "RaceBaseValue"
21018
- RaceBaseValue: DerivedCharacteristicRaceBaseValue
21019
- }
21020
- | {
21021
- kind: "PrimaryAttribute"
21022
- PrimaryAttribute: DerivedCharacteristicPrimaryAttributeValue
21132
+ kind: "Poisons"
21023
21133
  }
21024
-
21025
- export type DerivedCharacteristicRaceBaseValue =
21026
21134
  | {
21027
- kind: "LifePoints"
21135
+ kind: "Diseases"
21028
21136
  }
21029
21137
  | {
21030
- kind: "Spirit"
21138
+ kind: "HealingHerbs"
21031
21139
  }
21032
21140
  | {
21033
- kind: "Toughness"
21141
+ kind: "VisibilityModifier"
21034
21142
  }
21035
21143
  | {
21036
- kind: "Movement"
21144
+ kind: "Demons"
21037
21145
  }
21038
-
21039
- export type DerivedCharacteristicPrimaryAttributeValue =
21040
21146
  | {
21041
- kind: "Magical"
21147
+ kind: "Elementals"
21042
21148
  }
21043
21149
  | {
21044
- kind: "Blessed"
21150
+ kind: "Animals"
21045
21151
  }
21046
-
21047
- export interface DerivedCharacteristicModifier {
21048
- /**
21049
- * The entry that, when active, causes the modifier.
21050
- */
21051
- source: DerivedCharacteristicModifierPrerequisiteGroup
21052
-
21053
- /**
21054
- * The mathematical operation that modifies the base value. The previous result is on the left side.
21055
- */
21056
- operation: DerivedCharacteristicModifierOperation
21057
-
21058
- /**
21059
- * 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.
21060
- */
21061
- value: number
21062
- }
21063
-
21064
- export type DerivedCharacteristicModifierPrerequisiteGroup =
21065
21152
  | {
21066
- kind: "Rule"
21067
- Rule: RulePrerequisite
21153
+ kind: "Familiars"
21068
21154
  }
21069
21155
  | {
21070
- kind: "Activatable"
21071
- Activatable: ActivatablePrerequisite
21156
+ kind: "AnimalSpecialAbilities"
21072
21157
  }
21073
-
21074
- export type DerivedCharacteristicModifierOperation =
21075
21158
  | {
21076
- kind: "Addition"
21159
+ kind: "EquipmentPackages"
21077
21160
  }
21078
21161
  | {
21079
- kind: "Subtraction"
21162
+ kind: "Items"
21080
21163
  }
21081
21164
  | {
21082
- kind: "Multiplication"
21165
+ kind: "OptionalRules"
21083
21166
  }
21084
21167
  | {
21085
- kind: "Division"
21168
+ kind: "ImprovementCost"
21169
+ ImprovementCost: ReferenceListNodeImprovementCostSource
21086
21170
  }
21087
21171
 
21088
- export interface DerivedCharacteristicPurchase {
21089
- /**
21090
- * The cost for improving the derived characteristic by one.
21091
- */
21092
- improvementCost: ImprovementCost
21093
-
21094
- /**
21095
- * The maximum value that can be achieved for the derived characteristic through improvements.
21096
- */
21097
- maximum: DerivedCharacteristicBase
21098
- }
21099
-
21100
- export interface DerivedCharacteristicPermanentLoss {
21172
+ export interface ReferenceListNodeImprovementCostSource {
21101
21173
  /**
21102
- * 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.
21103
21175
  */
21104
- canBeBoughtBack?: DerivedCharacteristicBuyBack
21105
- }
21176
+ target: ReferenceListNodeImprovementCostSourceTarget
21106
21177
 
21107
- export interface DerivedCharacteristicBuyBack {
21108
21178
  /**
21109
- * 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.
21110
21182
  */
21111
- cost: number
21183
+ maximum_rating: number
21112
21184
  }
21113
21185
 
21114
- export type DerivedCharacteristicPrerequisites = PlainPrerequisites<DerivedCharacteristicPrerequisiteGroup>
21115
-
21116
- export type DerivedCharacteristicPrerequisiteGroup =
21117
- | {
21118
- kind: "Rule"
21119
- Rule: RulePrerequisite
21120
- }
21186
+ export type ReferenceListNodeImprovementCostSourceTarget =
21121
21187
  | {
21122
- kind: "BlessedTradition"
21123
- BlessedTradition: BlessedTraditionPrerequisite
21188
+ kind: "Attributes"
21124
21189
  }
21125
21190
  | {
21126
- kind: "MagicalTradition"
21127
- MagicalTradition: MagicalTraditionPrerequisite
21191
+ kind: "Skills"
21128
21192
  }
21129
21193
 
21130
- export interface CalculationTranslation {
21131
- /**
21132
- * The default calculation string.
21133
- */
21134
- default: string
21135
-
21136
- /**
21137
- * The calculation string if only half of the primary attribute is used.
21138
- */
21139
- half_primary?: string
21140
-
21141
- /**
21142
- * The calculation string if no primary attribute is used.
21143
- */
21144
- no_primary?: string
21145
- }
21146
-
21147
21194
  export interface Disease {
21148
21195
  /**
21149
21196
  * The disease’s level.
@@ -21165,6 +21212,16 @@ export interface Disease {
21165
21212
  */
21166
21213
  trade_secret?: RecipeTradeSecret
21167
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
+
21168
21225
  /**
21169
21226
  * References to where in which publications this entry has been defined. Entries may also be added or removed in later printings.
21170
21227
  */
@@ -21325,9 +21382,9 @@ export interface ElixirTranslationTranslation {
21325
21382
  brewing_process_prerequisites?: string
21326
21383
 
21327
21384
  /**
21328
- * 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.
21329
21386
  */
21330
- quality_levels: [string, string, string, string, string, string]
21387
+ quality_levels: ElixirEffect
21331
21388
 
21332
21389
  errata?: Errata
21333
21390
  }
@@ -21369,6 +21426,33 @@ export type LaboratoryLevel =
21369
21426
  kind: "AlchemistsLaboratory"
21370
21427
  }
21371
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
+
21372
21456
  export interface EquipmentOfBlessedOnes {
21373
21457
  /**
21374
21458
  * The cost in silverthalers.
@@ -22494,9 +22578,9 @@ export interface AnimalVenom {
22494
22578
  is_extractable: boolean
22495
22579
 
22496
22580
  /**
22497
- * 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.
22498
22582
  */
22499
- trade_secret?: RecipeTradeSecret
22583
+ complexity?: RecipeComplexity
22500
22584
  }
22501
22585
 
22502
22586
  export type AnimalVenomLevel =
@@ -22533,6 +22617,21 @@ export interface AnimalVenomLevelBySubTypeTranslation {
22533
22617
  name: string
22534
22618
  }
22535
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
+
22536
22635
  export interface AlchemicalPoison {
22537
22636
  /**
22538
22637
  * Effect type(s) of an alchemical poison.
@@ -22803,23 +22902,34 @@ export type PoisonStart =
22803
22902
  kind: "Immediate"
22804
22903
  }
22805
22904
  | {
22806
- kind: "Constant"
22807
- Constant: ConstantPoisonTime
22808
- }
22809
- | {
22810
- kind: "DiceBased"
22811
- DiceBased: DiceBasedPoisonTime
22905
+ kind: "ExpressionBased"
22906
+ ExpressionBased: ExpressionBasedPoisonTime
22812
22907
  }
22813
22908
  | {
22814
22909
  kind: "Indefinite"
22815
22910
  Indefinite: IndefinitePoisonTime
22816
22911
  }
22817
22912
 
22818
- export interface ConstantPoisonTime {
22819
- value: number
22913
+ export interface ExpressionBasedPoisonTime {
22914
+ value: ExpressionBasedPoisonTimeValue
22820
22915
  unit: PoisonTimeUnit
22821
22916
  }
22822
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
+
22823
22933
  export type PoisonTimeUnit =
22824
22934
  | {
22825
22935
  kind: "CombatRounds"
@@ -22834,17 +22944,6 @@ export type PoisonTimeUnit =
22834
22944
  kind: "Days"
22835
22945
  }
22836
22946
 
22837
- export interface DiceBasedPoisonTime {
22838
- dice: Dice
22839
-
22840
- /**
22841
- * The value to add to the result of the dice roll(s).
22842
- */
22843
- flat?: number
22844
-
22845
- unit: PoisonTimeUnit
22846
- }
22847
-
22848
22947
  export interface IndefinitePoisonTime {
22849
22948
  /**
22850
22949
  * All translations for the entry, identified by IETF language tag (BCP47).
@@ -22865,14 +22964,6 @@ export type PoisonDuration =
22865
22964
  | {
22866
22965
  kind: "Instant"
22867
22966
  }
22868
- | {
22869
- kind: "Constant"
22870
- Constant: ConstantPoisonTime
22871
- }
22872
- | {
22873
- kind: "DiceBased"
22874
- DiceBased: DiceBasedPoisonTime
22875
- }
22876
22967
  | {
22877
22968
  kind: "ExpressionBased"
22878
22969
  ExpressionBased: ExpressionBasedPoisonTime
@@ -22882,26 +22973,6 @@ export type PoisonDuration =
22882
22973
  Indefinite: IndefinitePoisonTime
22883
22974
  }
22884
22975
 
22885
- export interface ExpressionBasedPoisonTime {
22886
- value: ExpressionBasedPoisonTimeValue
22887
- unit: PoisonTimeUnit
22888
- }
22889
-
22890
- export type ExpressionBasedPoisonTimeValue = MathOperation<ExpressionBasedPoisonTimeExpressionValue>
22891
-
22892
- export type ExpressionBasedPoisonTimeExpressionValue =
22893
- | {
22894
- kind: "Constant"
22895
- Constant: number
22896
- }
22897
- | {
22898
- kind: "Dice"
22899
- Dice: Dice
22900
- }
22901
- | {
22902
- kind: "CircleOfDamnation"
22903
- }
22904
-
22905
22976
  export type PoisonCost =
22906
22977
  | {
22907
22978
  kind: "CannotBeExtracted"
@@ -23954,6 +24025,11 @@ export interface Talisman {
23954
24025
  */
23955
24026
  type?: TalismanType
23956
24027
 
24028
+ /**
24029
+ * The activation parameters.
24030
+ */
24031
+ activation?: TalismanActivation
24032
+
23957
24033
  /**
23958
24034
  * The AP value for the required trade secret, if possible.
23959
24035
  */
@@ -24008,11 +24084,6 @@ export interface TalismanTranslation {
24008
24084
  */
24009
24085
  effect: string
24010
24086
 
24011
- /**
24012
- * The activation parameters.
24013
- */
24014
- activation?: TalismanActivationTranslation
24015
-
24016
24087
  errata?: Errata
24017
24088
  }
24018
24089
 
@@ -24033,6 +24104,53 @@ export type TalismanType =
24033
24104
  kind: "PowerfulTalisman"
24034
24105
  }
24035
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
+
24036
24154
  export type TalismanMeleeWeapon = GenMeleeWeapon<TalismanDamage>
24037
24155
 
24038
24156
  export type TalismanDamage = MathOperation<TalismanDamageOption>
@@ -24049,16 +24167,4 @@ export type TalismanDamageOption =
24049
24167
  kind: "QualityLevels"
24050
24168
  }
24051
24169
 
24052
- export type TalismanRangedWeapon = GenRangedWeapon<TalismanDamage>
24053
-
24054
- export interface TalismanActivationTranslation {
24055
- /**
24056
- * The KP cost.
24057
- */
24058
- cost: number
24059
-
24060
- /**
24061
- * The duration.
24062
- */
24063
- duration: string
24064
- }
24170
+ export type TalismanRangedWeapon = GenRangedWeapon<TalismanDamage>