optolith-database-schema 0.40.0 → 0.42.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 (288) hide show
  1. package/CHANGELOG.md +59 -0
  2. package/README.md +1 -1
  3. package/gen/types.d.ts +1705 -1582
  4. package/lib/types/Ceremony.d.ts +3 -0
  5. package/lib/types/DerivedCharacteristic.d.ts +23 -14
  6. package/lib/types/DerivedCharacteristic.js +58 -21
  7. package/lib/types/Disease.d.ts +2 -0
  8. package/lib/types/Disease.js +8 -0
  9. package/lib/types/FamiliarsTrick.d.ts +1 -0
  10. package/lib/types/FamiliarsTrick.js +8 -2
  11. package/lib/types/LiturgicalChant.d.ts +3 -0
  12. package/lib/types/Locale.d.ts +10 -6
  13. package/lib/types/Locale.js +10 -6
  14. package/lib/types/Profession.d.ts +31 -14
  15. package/lib/types/Profession.js +12 -2
  16. package/lib/types/Race.d.ts +28 -19
  17. package/lib/types/Race.js +36 -22
  18. package/lib/types/Ritual.d.ts +3 -0
  19. package/lib/types/Spell.d.ts +3 -0
  20. package/lib/types/Talisman.d.ts +32 -6
  21. package/lib/types/Talisman.js +51 -11
  22. package/lib/types/_ActivatableSkill.d.ts +8 -0
  23. package/lib/types/_ActivatableSkillCheckResultBased.d.ts +2 -0
  24. package/lib/types/_ActivatableSkillCheckResultBased.js +1 -0
  25. package/lib/types/_ActivatableSkillDuration.d.ts +2 -0
  26. package/lib/types/_ActivatableSkillRange.d.ts +1 -0
  27. package/lib/types/_Identifier.d.ts +1 -0
  28. package/lib/types/_Identifier.js +2 -0
  29. package/lib/types/_IdentifierGroup.d.ts +58 -0
  30. package/lib/types/_IdentifierGroup.js +15 -1
  31. package/lib/types/equipment/item/BandageOrRemedy.d.ts +5 -2
  32. package/lib/types/equipment/item/CeremonialItem.d.ts +6 -3
  33. package/lib/types/equipment/item/CeremonialItem.js +1 -1
  34. package/lib/types/equipment/item/Clothes.d.ts +5 -2
  35. package/lib/types/equipment/item/Container.d.ts +5 -2
  36. package/lib/types/equipment/item/Elixir.d.ts +16 -1
  37. package/lib/types/equipment/item/Elixir.js +35 -5
  38. package/lib/types/equipment/item/EquipmentOfBlessedOnes.d.ts +5 -2
  39. package/lib/types/equipment/item/IlluminationLightSource.d.ts +5 -2
  40. package/lib/types/equipment/item/IlluminationRefillOrSupply.d.ts +5 -2
  41. package/lib/types/equipment/item/Liebesspielzeug.d.ts +5 -2
  42. package/lib/types/equipment/item/LuxuryGood.d.ts +5 -2
  43. package/lib/types/equipment/item/MagicalArtifact.d.ts +5 -2
  44. package/lib/types/equipment/item/MusicalInstrument.d.ts +5 -2
  45. package/lib/types/equipment/item/OrienteeringAid.d.ts +5 -2
  46. package/lib/types/equipment/item/Poison.d.ts +64 -91
  47. package/lib/types/equipment/item/Poison.js +5 -34
  48. package/lib/types/equipment/item/RopeOrChain.d.ts +5 -2
  49. package/lib/types/equipment/item/Stationery.d.ts +5 -2
  50. package/lib/types/equipment/item/ThievesTool.d.ts +5 -2
  51. package/lib/types/equipment/item/TravelGearOrTool.d.ts +5 -2
  52. package/lib/types/equipment/item/Weapon.d.ts +10 -4
  53. package/lib/types/equipment/item/WeaponAccessory.d.ts +5 -2
  54. package/lib/types/equipment/item/_Herbary.d.ts +31 -0
  55. package/lib/types/equipment/item/_Herbary.js +9 -0
  56. package/lib/types/equipment/item/_Item.d.ts +10 -4
  57. package/lib/types/equipment/item/_MeleeWeapon.d.ts +2 -2
  58. package/lib/types/equipment/item/_MeleeWeapon.js +1 -1
  59. package/lib/types/equipment/item/_RangedWeapon.d.ts +8 -2
  60. package/lib/types/equipment/item/_RangedWeapon.js +2 -2
  61. package/lib/types/equipment/item/sub/Reach.d.ts +1 -0
  62. package/lib/types/equipment/item/sub/Reach.js +7 -0
  63. package/lib/types/magicalActions/AnimistPower.d.ts +1 -0
  64. package/lib/types/magicalActions/Curse.d.ts +2 -0
  65. package/lib/types/magicalActions/DominationRitual.d.ts +2 -0
  66. package/lib/types/magicalActions/GeodeRitual.d.ts +1 -0
  67. package/lib/types/magicalActions/JesterTrick.d.ts +3 -0
  68. package/lib/types/magicalActions/MagicalMelody.d.ts +15 -0
  69. package/lib/types/magicalActions/MagicalMelody.js +5 -0
  70. package/lib/types/magicalActions/MagicalRune.d.ts +2 -0
  71. package/lib/types/magicalActions/ZibiljaRitual.d.ts +2 -0
  72. package/lib/types/prerequisites/PrerequisiteGroups.d.ts +132 -0
  73. package/lib/types/prerequisites/PrerequisiteGroups.js +1 -0
  74. package/package.json +7 -7
  75. package/schema/Advantage.schema.json +0 -108
  76. package/schema/AnimalDisease.schema.json +0 -74
  77. package/schema/AnimalType.schema.json +0 -47
  78. package/schema/ArcaneBardTradition.schema.json +0 -11
  79. package/schema/ArcaneDancerTradition.schema.json +0 -11
  80. package/schema/Aspect.schema.json +0 -51
  81. package/schema/Attribute.schema.json +0 -57
  82. package/schema/Blessing.schema.json +0 -265
  83. package/schema/Cantrip.schema.json +0 -443
  84. package/schema/Ceremony.schema.json +0 -122
  85. package/schema/CombatTechnique_Close.schema.json +0 -116
  86. package/schema/CombatTechnique_Ranged.schema.json +0 -99
  87. package/schema/Condition.schema.json +0 -68
  88. package/schema/Continent.schema.json +0 -49
  89. package/schema/Culture.schema.json +0 -781
  90. package/schema/DerivedCharacteristic.schema.json +0 -90
  91. package/schema/Disadvantage.schema.json +0 -97
  92. package/schema/Disease.schema.json +0 -58
  93. package/schema/Element.schema.json +0 -48
  94. package/schema/ExperienceLevel.schema.json +0 -84
  95. package/schema/EyeColor.schema.json +0 -47
  96. package/schema/FamiliarsTrick.schema.json +0 -576
  97. package/schema/HairColor.schema.json +0 -47
  98. package/schema/Kirchenpraegung.schema.json +0 -11
  99. package/schema/Lessons_Curriculum.schema.json +0 -499
  100. package/schema/Lessons_Guideline.schema.json +0 -53
  101. package/schema/LiturgicalChant.schema.json +0 -122
  102. package/schema/Locale.schema.json +0 -38
  103. package/schema/MetaCondition.schema.json +0 -69
  104. package/schema/PactCategory.schema.json +0 -150
  105. package/schema/Patron.schema.json +0 -352
  106. package/schema/PatronCategory.schema.json +0 -57
  107. package/schema/PersonalityTrait.schema.json +0 -100
  108. package/schema/Profession.schema.json +0 -1424
  109. package/schema/Property.schema.json +0 -51
  110. package/schema/Race.schema.json +0 -534
  111. package/schema/Region.schema.json +0 -47
  112. package/schema/Ritual.schema.json +0 -120
  113. package/schema/Service.schema.json +0 -79
  114. package/schema/SexPractice.schema.json +0 -70
  115. package/schema/Skill.schema.json +0 -223
  116. package/schema/SkillGroup.schema.json +0 -57
  117. package/schema/SkillModificationLevel.schema.json +0 -153
  118. package/schema/SocialStatus.schema.json +0 -47
  119. package/schema/Spell.schema.json +0 -119
  120. package/schema/State.schema.json +0 -59
  121. package/schema/Talisman.schema.json +0 -120
  122. package/schema/TargetCategory.schema.json +0 -65
  123. package/schema/UI.schema.json +0 -4441
  124. package/schema/_Activatable.schema.json +0 -2755
  125. package/schema/_ActivatableSelectOptionCategory.schema.json +0 -1313
  126. package/schema/_ActivatableSkill.schema.json +0 -188
  127. package/schema/_ActivatableSkillCastingTime.schema.json +0 -181
  128. package/schema/_ActivatableSkillCheckResultBased.schema.json +0 -65
  129. package/schema/_ActivatableSkillCost.schema.json +0 -513
  130. package/schema/_ActivatableSkillDuration.schema.json +0 -353
  131. package/schema/_ActivatableSkillEffect.schema.json +0 -122
  132. package/schema/_ActivatableSkillRange.schema.json +0 -264
  133. package/schema/_ActivatableSkillTargetCategory.schema.json +0 -145
  134. package/schema/_AlternativeNames.schema.json +0 -23
  135. package/schema/_ArcaneTradition.schema.json +0 -51
  136. package/schema/_Blessed.schema.json +0 -64
  137. package/schema/_Dice.schema.json +0 -40
  138. package/schema/_DiseasePoison.schema.json +0 -152
  139. package/schema/_Enhancements.schema.json +0 -85
  140. package/schema/_I18n.schema.json +0 -55
  141. package/schema/_Identifier.schema.json +0 -2577
  142. package/schema/_IdentifierGroup.schema.json +0 -753
  143. package/schema/_ImprovementCost.schema.json +0 -23
  144. package/schema/_Influence.schema.json +0 -84
  145. package/schema/_NonEmptyString.schema.json +0 -14
  146. package/schema/_Prerequisite.schema.json +0 -1518
  147. package/schema/_ResponsiveText.schema.json +0 -66
  148. package/schema/_Sex.schema.json +0 -18
  149. package/schema/_SimpleReferences.schema.json +0 -522
  150. package/schema/_SkillCheck.schema.json +0 -38
  151. package/schema/_Spellwork.schema.json +0 -54
  152. package/schema/equipment/EquipmentPackage.schema.json +0 -79
  153. package/schema/equipment/item/Ammunition.schema.json +0 -56
  154. package/schema/equipment/item/Animal.schema.json +0 -36
  155. package/schema/equipment/item/AnimalCare.schema.json +0 -124
  156. package/schema/equipment/item/Armor.schema.json +0 -309
  157. package/schema/equipment/item/BandageOrRemedy.schema.json +0 -53
  158. package/schema/equipment/item/Book.schema.json +0 -89
  159. package/schema/equipment/item/CeremonialItem.schema.json +0 -59
  160. package/schema/equipment/item/Clothes.schema.json +0 -10
  161. package/schema/equipment/item/Container.schema.json +0 -10
  162. package/schema/equipment/item/Elixir.schema.json +0 -103
  163. package/schema/equipment/item/EquipmentOfBlessedOnes.schema.json +0 -49
  164. package/schema/equipment/item/GemOrPreciousStone.schema.json +0 -69
  165. package/schema/equipment/item/IlluminationLightSource.schema.json +0 -120
  166. package/schema/equipment/item/IlluminationRefillsOrSupplies.schema.json +0 -10
  167. package/schema/equipment/item/Jewelry.schema.json +0 -113
  168. package/schema/equipment/item/Liebesspielzeug.schema.json +0 -10
  169. package/schema/equipment/item/LuxuryGood.schema.json +0 -53
  170. package/schema/equipment/item/MagicalArtifact.schema.json +0 -64
  171. package/schema/equipment/item/MusicalInstrument.schema.json +0 -49
  172. package/schema/equipment/item/OrienteeringAid.schema.json +0 -10
  173. package/schema/equipment/item/Poison.schema.json +0 -835
  174. package/schema/equipment/item/RopeOrChain.schema.json +0 -10
  175. package/schema/equipment/item/Stationary.schema.json +0 -10
  176. package/schema/equipment/item/ThievesTool.schema.json +0 -10
  177. package/schema/equipment/item/ToolOfTheTrade.schema.json +0 -93
  178. package/schema/equipment/item/TravelGearOrTool.schema.json +0 -10
  179. package/schema/equipment/item/Vehicle.schema.json +0 -36
  180. package/schema/equipment/item/Weapon.schema.json +0 -285
  181. package/schema/equipment/item/WeaponAccessory.schema.json +0 -10
  182. package/schema/equipment/item/_Herbary.schema.json +0 -62
  183. package/schema/equipment/item/_Item.schema.json +0 -384
  184. package/schema/equipment/item/_MeleeWeapon.schema.json +0 -164
  185. package/schema/equipment/item/_RangedWeapon.schema.json +0 -185
  186. package/schema/equipment/item/_Weapon.schema.json +0 -99
  187. package/schema/equipment/item/sub/ArmorType.schema.json +0 -52
  188. package/schema/equipment/item/sub/Reach.schema.json +0 -47
  189. package/schema/magicalActions/AnimistPower.schema.json +0 -488
  190. package/schema/magicalActions/AnimistPower_Tribe.schema.json +0 -47
  191. package/schema/magicalActions/Curse.schema.json +0 -332
  192. package/schema/magicalActions/DominationRitual.schema.json +0 -275
  193. package/schema/magicalActions/ElvenMagicalSong.schema.json +0 -196
  194. package/schema/magicalActions/GeodeRitual.schema.json +0 -327
  195. package/schema/magicalActions/JesterTrick.schema.json +0 -311
  196. package/schema/magicalActions/MagicalDance.schema.json +0 -198
  197. package/schema/magicalActions/MagicalMelody.schema.json +0 -193
  198. package/schema/magicalActions/MagicalRune.schema.json +0 -578
  199. package/schema/magicalActions/ZibiljaRitual.schema.json +0 -165
  200. package/schema/magicalActions/_MusicTradition.schema.json +0 -82
  201. package/schema/magicalActions/_SkillReference.schema.json +0 -20
  202. package/schema/prerequisites/ConditionalPrerequisites.schema.json +0 -15
  203. package/schema/prerequisites/DisplayOption.schema.json +0 -70
  204. package/schema/prerequisites/PrerequisiteGroups.schema.json +0 -1029
  205. package/schema/prerequisites/single/ActivatablePrerequisite.schema.json +0 -45
  206. package/schema/prerequisites/single/AncestorBloodPrerequisite.schema.json +0 -14
  207. package/schema/prerequisites/single/AnimistPowerPrerequisite.schema.json +0 -36
  208. package/schema/prerequisites/single/CulturePrerequisite.schema.json +0 -24
  209. package/schema/prerequisites/single/EnhancementPrerequisite.schema.json +0 -61
  210. package/schema/prerequisites/single/InfluencePrerequisite.schema.json +0 -28
  211. package/schema/prerequisites/single/PactPrerequisite.schema.json +0 -36
  212. package/schema/prerequisites/single/PrimaryAttributePrerequisite.schema.json +0 -39
  213. package/schema/prerequisites/single/PublicationPrerequisite.schema.json +0 -22
  214. package/schema/prerequisites/single/RacePrerequisite.schema.json +0 -28
  215. package/schema/prerequisites/single/RatedMinimumNumberPrerequisite.schema.json +0 -172
  216. package/schema/prerequisites/single/RatedPrerequisite.schema.json +0 -29
  217. package/schema/prerequisites/single/RatedSumPrerequisite.schema.json +0 -33
  218. package/schema/prerequisites/single/RulePrerequisite.schema.json +0 -22
  219. package/schema/prerequisites/single/SexPrerequisite.schema.json +0 -23
  220. package/schema/prerequisites/single/SexualCharacteristicPrerequisite.schema.json +0 -30
  221. package/schema/prerequisites/single/SocialStatusPrerequisite.schema.json +0 -24
  222. package/schema/prerequisites/single/StatePrerequisite.schema.json +0 -23
  223. package/schema/prerequisites/single/TextPrerequisite.schema.json +0 -64
  224. package/schema/prerequisites/single/TraditionPrerequisite.schema.json +0 -58
  225. package/schema/rule/CoreRule.schema.json +0 -1403
  226. package/schema/rule/FocusRule.schema.json +0 -76
  227. package/schema/rule/FocusRule_Subject.schema.json +0 -48
  228. package/schema/rule/OptionalRule.schema.json +0 -64
  229. package/schema/source/Publication.schema.json +0 -103
  230. package/schema/source/_Erratum.schema.json +0 -36
  231. package/schema/source/_PublicationRef.schema.json +0 -285
  232. package/schema/specialAbility/AdvancedCombatSpecialAbility.schema.json +0 -102
  233. package/schema/specialAbility/AdvancedKarmaSpecialAbility.schema.json +0 -80
  234. package/schema/specialAbility/AdvancedMagicalSpecialAbility.schema.json +0 -80
  235. package/schema/specialAbility/AdvancedSkillSpecialAbility.schema.json +0 -80
  236. package/schema/specialAbility/AncestorGlyph.schema.json +0 -80
  237. package/schema/specialAbility/BlessedTradition.schema.json +0 -354
  238. package/schema/specialAbility/BrawlingSpecialAbility.schema.json +0 -82
  239. package/schema/specialAbility/CeremonialItemSpecialAbility.schema.json +0 -87
  240. package/schema/specialAbility/CombatSpecialAbility.schema.json +0 -98
  241. package/schema/specialAbility/CombatStyleSpecialAbility.schema.json +0 -273
  242. package/schema/specialAbility/CommandSpecialAbility.schema.json +0 -82
  243. package/schema/specialAbility/FamiliarSpecialAbility.schema.json +0 -74
  244. package/schema/specialAbility/FatePointSexSpecialAbility.schema.json +0 -74
  245. package/schema/specialAbility/FatePointSpecialAbility.schema.json +0 -84
  246. package/schema/specialAbility/GeneralSpecialAbility.schema.json +0 -88
  247. package/schema/specialAbility/KarmaSpecialAbility.schema.json +0 -78
  248. package/schema/specialAbility/LiturgicalStyleSpecialAbility.schema.json +0 -260
  249. package/schema/specialAbility/LycantropicGift.schema.json +0 -74
  250. package/schema/specialAbility/MagicStyleSpecialAbility.schema.json +0 -260
  251. package/schema/specialAbility/MagicalSign.schema.json +0 -72
  252. package/schema/specialAbility/MagicalSpecialAbility.schema.json +0 -88
  253. package/schema/specialAbility/MagicalTradition.schema.json +0 -163
  254. package/schema/specialAbility/PactGift.schema.json +0 -254
  255. package/schema/specialAbility/ProtectiveWardingCircleSpecialAbility.schema.json +0 -86
  256. package/schema/specialAbility/Sermon.schema.json +0 -74
  257. package/schema/specialAbility/SexSpecialAbility.schema.json +0 -80
  258. package/schema/specialAbility/SikaryanDrainSpecialAbility.schema.json +0 -78
  259. package/schema/specialAbility/SkillStyleSpecialAbility.schema.json +0 -254
  260. package/schema/specialAbility/VampiricGift.schema.json +0 -78
  261. package/schema/specialAbility/Vision.schema.json +0 -74
  262. package/schema/specialAbility/_Tradition.schema.json +0 -23
  263. package/schema/specialAbility/sub/Language.schema.json +0 -222
  264. package/schema/specialAbility/sub/Script.schema.json +0 -90
  265. package/schema/specialAbility/sub/TradeSecret.schema.json +0 -72
  266. package/schema/specialAbility/sub/_LanguageScript.schema.json +0 -24
  267. package/schema/traditionArtifacts/ArcaneOrbEnchantment.schema.json +0 -95
  268. package/schema/traditionArtifacts/AttireEnchantment.schema.json +0 -95
  269. package/schema/traditionArtifacts/BowlEnchantment.schema.json +0 -95
  270. package/schema/traditionArtifacts/CauldronEnchantment.schema.json +0 -115
  271. package/schema/traditionArtifacts/ChronicleEnchantment.schema.json +0 -95
  272. package/schema/traditionArtifacts/DaggerRitual.schema.json +0 -176
  273. package/schema/traditionArtifacts/FoolsHatEnchantment.schema.json +0 -95
  274. package/schema/traditionArtifacts/InstrumentEnchantment.schema.json +0 -95
  275. package/schema/traditionArtifacts/Krallenkettenzauber.schema.json +0 -95
  276. package/schema/traditionArtifacts/OrbEnchantment.schema.json +0 -95
  277. package/schema/traditionArtifacts/RingEnchantment.schema.json +0 -95
  278. package/schema/traditionArtifacts/SickleRitual.schema.json +0 -95
  279. package/schema/traditionArtifacts/SpellSwordEnchantment.schema.json +0 -99
  280. package/schema/traditionArtifacts/StaffEnchantment.schema.json +0 -103
  281. package/schema/traditionArtifacts/ToyEnchantment.schema.json +0 -95
  282. package/schema/traditionArtifacts/Trinkhornzauber.schema.json +0 -95
  283. package/schema/traditionArtifacts/WandEnchantment.schema.json +0 -87
  284. package/schema/traditionArtifacts/WeaponEnchantment.schema.json +0 -95
  285. package/schema/traditionArtifacts/sub/AnimalShape.schema.json +0 -85
  286. package/schema/traditionArtifacts/sub/AnimalShapePath.schema.json +0 -47
  287. package/schema/traditionArtifacts/sub/AnimalShapeSize.schema.json +0 -59
  288. 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
@@ -1214,7 +1222,7 @@ export interface Locale {
1214
1222
  "Personal Data": string
1215
1223
  "Character Sheet": string
1216
1224
  "Pact": string
1217
- "Rules": string
1225
+ "Rule Set": string
1218
1226
  "Race, Culture & Profession": string
1219
1227
  "Race": string
1220
1228
  "Culture": string
@@ -1879,6 +1887,7 @@ export interface Locale {
1879
1887
  "CD": string
1880
1888
  "Object": string
1881
1889
  "Effect": string
1890
+ "Rules": string
1882
1891
  "Casting Time": string
1883
1892
  "Ritual Time": string
1884
1893
  "Liturgical Time": string
@@ -2476,6 +2485,8 @@ export interface Locale {
2476
2485
  ".input {$value :number} {{{$value}%}}": string & { __params: { "value": number } }
2477
2486
  "Animal Types": string
2478
2487
  "Communicability to Intelligent Creatures": string
2488
+ "childhood disease": string
2489
+ "magical disease": string
2479
2490
  "Can be combined with": string
2480
2491
  "Skill": string
2481
2492
  "{$defaultDuration}, but no more than {$maximumDuration}": string & { __params: { "defaultDuration": StringableTranslationParameter; "maximumDuration": StringableTranslationParameter } }
@@ -2495,10 +2506,7 @@ export interface Locale {
2495
2506
  "All AE": string
2496
2507
  "All AE, at least {$value} AE": string & { __params: { "value": StringableTranslationParameter } }
2497
2508
  "depends on spent AE": string
2498
- "Life Point Base Value": string
2499
- "Spirit Base Value": string
2500
- "Toughness Base Value": string
2501
- "Movement Base Value": string
2509
+ "{$derivedCharacteristic} Base Value": string & { __params: { "derivedCharacteristic": StringableTranslationParameter } }
2502
2510
  "Attribute Adjustments": string
2503
2511
  "one attribute of your choice": string
2504
2512
  "Common Cultures": string
@@ -2538,12 +2546,13 @@ export interface Locale {
2538
2546
  "no Skill Specialization for a {$skillOfGroup}": string & { __params: { "skillOfGroup": StringableTranslationParameter } }
2539
2547
  ".input {$count :number} {{{$count} of the following combat techniques {$rating}}}": string & { __params: { "count": number; "rating": StringableTranslationParameter } }
2540
2548
  ".input {$count :number} {{{$previous}, {$count} others {$rating}}}": string & { __params: { "count": number; "previous": StringableTranslationParameter; "rating": StringableTranslationParameter } }
2541
- "{$previous}, all others {$rating}": string & { __params: { "previous": StringableTranslationParameter; "rating": StringableTranslationParameter } }
2549
+ "{$previous}, the others {$rating}": string & { __params: { "previous": StringableTranslationParameter; "rating": StringableTranslationParameter } }
2542
2550
  "Curses totaling {$apValue} AP": string & { __params: { "apValue": StringableTranslationParameter } }
2543
2551
  "no Curses totaling {$apValue} AP": string & { __params: { "apValue": StringableTranslationParameter } }
2544
2552
  "Liturgies totaling {$apValue} AP": string & { __params: { "apValue": StringableTranslationParameter } }
2545
2553
  "no Liturgies totaling {$apValue} AP": string & { __params: { "apValue": StringableTranslationParameter } }
2546
2554
  "{$apValue} AP to improve other {$skillsOfGroup}": string & { __params: { "apValue": StringableTranslationParameter; "skillsOfGroup": StringableTranslationParameter } }
2555
+ "{$apValue} AP to distribute among the following skills: {$list}": string & { __params: { "apValue": StringableTranslationParameter; "list": StringableTranslationParameter } }
2547
2556
  "no AP to improve other {$skillsOfGroup}": string & { __params: { "skillsOfGroup": StringableTranslationParameter } }
2548
2557
  ".input {$count :number} {{{$count} cantrips}}": string & { __params: { "count": number } }
2549
2558
  "{$count} from the following list": string & { __params: { "count": StringableTranslationParameter } }
@@ -2554,6 +2563,9 @@ export interface Locale {
2554
2563
  "Enhancements": string
2555
2564
  "SR {$value}": string & { __params: { "value": StringableTranslationParameter } }
2556
2565
  ".input {$hiddenCount :number} {{Prerequisites}}": string & { __params: { "hiddenCount": number } }
2566
+ "Spell Enhancement {$spell}": string & { __params: { "spell": StringableTranslationParameter } }
2567
+ "Ritual Enhancement {$ritual}": string & { __params: { "ritual": StringableTranslationParameter } }
2568
+ "Liturgical Enhancement {$liturgicalChantOrCeremony}": string & { __params: { "liturgicalChantOrCeremony": StringableTranslationParameter } }
2557
2569
  "Profession Package": string
2558
2570
  "Optional Rule": string
2559
2571
  }
@@ -4359,11 +4371,6 @@ export interface Race {
4359
4371
  */
4360
4372
  base_values: BaseValues
4361
4373
 
4362
- /**
4363
- * Describes how to raise or lower maximum attribute values during character creation.
4364
- */
4365
- attribute_adjustments: AttributeAdjustments
4366
-
4367
4374
  /**
4368
4375
  * A list of automatically applied advantages. This does only work for advantages with no further configuration such as level or special selection.
4369
4376
  */
@@ -4384,6 +4391,11 @@ export interface Race {
4384
4391
  */
4385
4392
  strongly_recommended_disadvantages?: CommonnessRatedAdvantageDisadvantage<Disadvantage_ID>[]
4386
4393
 
4394
+ /**
4395
+ * How many different hair colors a race may have. By default, they have a single one that is for their whole body, but a race may have multiple if their hair color is different for different body parts. Additionally, if the hair color is labelled differently (e.g. scale color), there might be multiple colors for different body parts as well. This should only be set if the hair color count is higher than 1.
4396
+ */
4397
+ hairColorCount?: number
4398
+
4387
4399
  /**
4388
4400
  * Configuration for random weight generation.
4389
4401
  */
@@ -4457,380 +4469,345 @@ export interface RaceTranslation {
4457
4469
  */
4458
4470
  strongly_recommended_disadvantages?: string
4459
4471
 
4460
- errata?: Errata
4461
- }
4462
-
4463
- export interface BaseValues {
4464
- /**
4465
- * The race’s life point base value.
4466
- */
4467
- life_points: number
4468
-
4469
4472
  /**
4470
- * The race’s Spirit base value.
4473
+ * The label for hair colors if it is not a hair color in that sense: Some races may have different labels for hair color such as scale color.
4471
4474
  */
4472
- spirit: number
4475
+ hairColorLabel?: string
4473
4476
 
4474
- /**
4475
- * The race’s Toughness base value.
4476
- */
4477
- toughness: number
4478
-
4479
- /**
4480
- * The race’s tactical movement rate.
4481
- */
4482
- movement: number
4477
+ errata?: Errata
4483
4478
  }
4484
4479
 
4485
- /**
4486
- * Describes how to raise or lower maximum attribute values during character creation.
4487
- */
4488
- export interface AttributeAdjustments {
4489
- /**
4490
- * The values by which the maximum of the respective attribute is modified.
4491
- */
4492
- fixed?: FixedAttributeAdjustment[]
4493
-
4494
- /**
4495
- * An array of attribute maximum modifiers, where the attribute they apply to is selected from a list of options.
4496
- *
4497
- * The array only permits a single entry because no race specified more than one selectable attribute adjustment so far. But the schema allows for multiple entries to be future-proof.
4498
- */
4499
- selectable?: [SelectableAttributeAdjustment]
4480
+ export type BaseValues = {
4481
+ [derivedCharacteristicId: string]: RaceBaseValue
4500
4482
  }
4501
4483
 
4502
4484
  /**
4503
- * A value by which the maximum of the respective attribute is modified.
4485
+ * The base value for a derived characteristic that is granted by the race.
4504
4486
  */
4505
- export interface FixedAttributeAdjustment {
4506
- /**
4507
- * The attribute the modifier applies to.
4508
- */
4509
- id: Attribute_ID
4510
-
4487
+ export interface RaceBaseValue {
4511
4488
  /**
4512
- * The value by which the specified attribute’s maximum is modified (negative values will lower the maximum).
4489
+ * The base value for the derived characteristic that is granted by the race.
4513
4490
  */
4514
4491
  value: number
4515
4492
  }
4516
4493
 
4517
- /**
4518
- * A value that will be added to the current maximum of the selected attribute that has been chosen from the listed attributes (negative values will lower the maximum).
4519
- */
4520
- export interface SelectableAttributeAdjustment {
4494
+ export interface DerivedCharacteristic {
4521
4495
  /**
4522
- * A list of attributes the player has to choose from.
4496
+ * The position of the derived characteristic in lists. This has to be a unique value.
4523
4497
  */
4524
- list: Attribute_ID[]
4498
+ position: number
4525
4499
 
4526
4500
  /**
4527
- * The value by which the selected attribute’s maximum is modified (negative values will lower the maximum).
4501
+ * The derived characteristic may have a specific use in the game.
4528
4502
  */
4529
- value: number
4530
- }
4503
+ type?: DerivedCharacteristicType
4531
4504
 
4532
- /**
4533
- * An advantage or disadvantage that is automatically applied to the character after selecting the race. This does only work for advantages or disadvantages with no further configuration such as level or special selection.
4534
- */
4535
- export interface AutomaticAdvantageDisadvantage<Identifier> {
4536
4505
  /**
4537
- * The automatic advantage or disadvantage.
4506
+ * Instructions for calculating the derived characteristic’s value.
4538
4507
  */
4539
- id: Identifier
4540
- }
4508
+ calculation: DerivedCharacteristicCalculation
4509
+
4510
+ prerequisites?: DerivedCharacteristicPrerequisites
4541
4511
 
4542
- /**
4543
- * Reference to a commonness-rated advantage or disadvantage. Commonness-rating terms used in the source books are strongly recommended, common, uncommon, suggested and unsuitable.
4544
- */
4545
- export interface CommonnessRatedAdvantageDisadvantage<Identifier> {
4546
4512
  /**
4547
- * The advantage's or disadvantage's identifier.
4513
+ * References to where in which publications this entry has been defined. Entries may also be added or removed in later printings.
4548
4514
  */
4549
- id: Identifier
4515
+ src: PublicationRefs
4550
4516
 
4551
4517
  /**
4552
4518
  * All translations for the entry, identified by IETF language tag (BCP47).
4553
4519
  */
4554
- translations?: {
4555
- [localeId: string]: CommonnessRatedAdvantageDisadvantageTranslation
4520
+ translations: {
4521
+ [localeId: string]: DerivedCharacteristicTranslation
4556
4522
  }
4557
4523
  }
4558
4524
 
4559
- export interface CommonnessRatedAdvantageDisadvantageTranslation {
4560
- /**
4561
- * The options the commonness rating applies to.
4562
- */
4563
- options: string
4564
- }
4565
-
4566
4525
  /**
4567
- * Configuration for random weight generation.
4526
+ * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
4568
4527
  */
4569
- export interface RandomWeightGeneration {
4570
- /**
4571
- * The base value used for random weight. The height subtrahend; in case of `Height - 110 + 2D6` it is `110`.
4572
- */
4573
- base: number
4528
+ export type DerivedCharacteristic_ID = string
4574
4529
 
4530
+ export interface DerivedCharacteristicTranslation {
4575
4531
  /**
4576
- * The dice used for random weight.
4532
+ * The derived characteristic’s name.
4577
4533
  */
4578
- random: WeightDice[]
4579
- }
4534
+ name: string
4580
4535
 
4581
- export interface WeightDice {
4582
4536
  /**
4583
- * Number of dice of the same type. Example: 2 in 2D6.
4537
+ * The derived characteristic’s abbreviation.
4584
4538
  */
4585
- number: number
4539
+ abbreviation: string
4586
4540
 
4587
4541
  /**
4588
- * Number of sides on every die. Example: 6 in 2D6.
4542
+ * The derived characteristic’s description.
4589
4543
  */
4590
- sides: DieType
4544
+ description?: string
4591
4545
 
4592
4546
  /**
4593
- * The strategy how to offset the randomly generated values against the base value. Either they are all added or subtracted or even results are added and odd results are subtracted.
4547
+ * Possible calculation strings for the final value.
4594
4548
  */
4595
- offset_strategy: WeightDiceOffsetStrategy
4549
+ calculation?: CalculationTranslation
4596
4550
  }
4597
4551
 
4598
4552
  /**
4599
- * Number of sides on every die. Example: 6 in 2D6.
4600
- */
4601
- export type DieType = number
4602
-
4603
- /**
4604
- * The strategy how to offset the randomly generated values against the base value. Either they are all added or subtracted or even results are added and odd results are subtracted.
4553
+ * The type of the derived characteristic, which determines how it can be used in the game.
4605
4554
  */
4606
- export type WeightDiceOffsetStrategy =
4607
- | {
4608
- kind: "Add"
4609
- }
4555
+ export type DerivedCharacteristicType =
4610
4556
  | {
4611
- kind: "Subtract"
4557
+ kind: "Energy"
4558
+ Energy: EnergyType
4612
4559
  }
4613
4560
  | {
4614
- kind: "AddEvenSubtractOdd"
4561
+ kind: "Resistance"
4615
4562
  }
4616
4563
 
4617
4564
  /**
4618
- * Adventure Points and maximum values at hero creation.
4565
+ * Additional values that can be defined for an energy.
4619
4566
  */
4620
- export interface ExperienceLevel {
4567
+ export interface EnergyType {
4621
4568
  /**
4622
- * The AP value you get.
4623
- */
4624
- adventure_points: number
4625
-
4626
- /**
4627
- * The highest possible attribute value.
4569
+ * If set, the energy’s maximum value can be improved by spending AP.
4570
+ *
4571
+ * 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.
4628
4572
  */
4629
- max_attribute_value: number
4573
+ purchase?: DerivedCharacteristicPurchase
4630
4574
 
4631
4575
  /**
4632
- * The highest possible skill rating.
4576
+ * If set, the energy can suffer permanent losses that reduce its maximum value. It may also be possible to buy back these permanent losses.
4633
4577
  */
4634
- max_skill_rating: number
4578
+ permanentLoss?: DerivedCharacteristicPermanentLoss
4579
+ }
4635
4580
 
4581
+ export interface DerivedCharacteristicPurchase {
4636
4582
  /**
4637
- * The highest possible combat technique rating.
4583
+ * The cost for improving the derived characteristic by one.
4638
4584
  */
4639
- max_combat_technique_rating: number
4585
+ improvementCost: ImprovementCost
4640
4586
 
4641
4587
  /**
4642
- * The limit for the sum of all attribute values.
4588
+ * The maximum value that can be achieved for the derived characteristic through improvements.
4643
4589
  */
4644
- max_attribute_total: number
4590
+ maximum: DerivedCharacteristicBase
4591
+ }
4645
4592
 
4646
- /**
4647
- * The maximum of spells/chants you can activate.
4648
- */
4649
- max_number_of_spells_liturgical_chants: number
4593
+ export type DerivedCharacteristicBase = MathOperation<DerivedCharacteristicBaseValue>
4650
4594
 
4651
- /**
4652
- * The maximum of spells of an unfamiliar tradition you can activate.
4653
- */
4654
- max_number_of_unfamiliar_spells: number
4595
+ export type MathOperation<Value> =
4596
+ | {
4597
+ kind: "Value"
4598
+ Value: Value
4599
+ }
4600
+ | {
4601
+ kind: "Addition"
4602
+ Addition: [MathOperation<Value>, MathOperation<Value>]
4603
+ }
4604
+ | {
4605
+ kind: "Subtraction"
4606
+ Subtraction: [MathOperation<Value>, MathOperation<Value>]
4607
+ }
4608
+ | {
4609
+ kind: "Multiplication"
4610
+ Multiplication: [MathOperation<Value>, MathOperation<Value>]
4611
+ }
4612
+ | {
4613
+ kind: "Division"
4614
+ Division: [MathOperation<Value>, MathOperation<Value>]
4615
+ }
4616
+ | {
4617
+ kind: "Exponentiation"
4618
+ Exponentiation: [MathOperation<Value>, MathOperation<Value>]
4619
+ }
4655
4620
 
4656
- /**
4657
- * All translations for the entry, identified by IETF language tag (BCP47).
4658
- */
4659
- translations: {
4660
- [localeId: string]: ExperienceLevelTranslation
4621
+ export type DerivedCharacteristicBaseValue =
4622
+ | {
4623
+ kind: "Constant"
4624
+ Constant: number
4625
+ }
4626
+ | {
4627
+ kind: "Attribute"
4628
+ Attribute: Attribute_ID
4629
+ }
4630
+ | {
4631
+ kind: "RaceBaseValue"
4632
+ }
4633
+ | {
4634
+ kind: "PrimaryAttribute"
4635
+ PrimaryAttribute: DerivedCharacteristicPrimaryAttributeValue
4661
4636
  }
4662
- }
4663
4637
 
4664
- /**
4665
- * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
4666
- */
4667
- export type ExperienceLevel_ID = string
4638
+ export type DerivedCharacteristicPrimaryAttributeValue =
4639
+ | {
4640
+ kind: "Magical"
4641
+ }
4642
+ | {
4643
+ kind: "Blessed"
4644
+ }
4668
4645
 
4669
- export interface ExperienceLevelTranslation {
4646
+ export interface DerivedCharacteristicPermanentLoss {
4670
4647
  /**
4671
- * The experience level’s name.
4648
+ * If set, permanent losses to the derived characteristic can be bought back for the specified cost.
4672
4649
  */
4673
- name: string
4650
+ canBeBoughtBack?: DerivedCharacteristicBuyBack
4674
4651
  }
4675
4652
 
4676
- export interface Dice {
4677
- /**
4678
- * Number of dice of the same type. Example: 2 in 2D6.
4679
- */
4680
- number: number
4681
-
4653
+ export interface DerivedCharacteristicBuyBack {
4682
4654
  /**
4683
- * Number of sides on every die. Example: 6 in 2D6.
4655
+ * The AP cost for buying back one point.
4684
4656
  */
4685
- sides: DieType
4657
+ cost: number
4686
4658
  }
4687
4659
 
4688
- export interface RaceVariant {
4660
+ export interface DerivedCharacteristicCalculation {
4689
4661
  /**
4690
- * The associated race.
4662
+ * The base value for the calculation.
4691
4663
  */
4692
- race: Race_ID
4664
+ base: DerivedCharacteristicBase
4693
4665
 
4694
4666
  /**
4695
- * The list of common cultures.
4667
+ * A list of modifiers that are applied to the base value. The modifiers are applied in the order they appear in the list.
4696
4668
  */
4697
- common_cultures?: Culture_ID[]
4669
+ modifiers?: DerivedCharacteristicModifier[]
4670
+ }
4698
4671
 
4672
+ export interface DerivedCharacteristicModifier {
4699
4673
  /**
4700
- * A list of common advantages.
4674
+ * The entry that, when active, causes the modifier.
4701
4675
  */
4702
- common_advantages?: CommonnessRatedAdvantageDisadvantage<Advantage_ID>[]
4676
+ source: DerivedCharacteristicModifierPrerequisiteGroup
4703
4677
 
4704
4678
  /**
4705
- * A list of common disadvantages.
4679
+ * The mathematical operation that modifies the base value. The previous result is on the left side.
4706
4680
  */
4707
- common_disadvantages?: CommonnessRatedAdvantageDisadvantage<Disadvantage_ID>[]
4681
+ operation: DerivedCharacteristicModifierOperation
4708
4682
 
4709
4683
  /**
4710
- * A list of uncommon advantages.
4684
+ * 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.
4711
4685
  */
4712
- uncommon_advantages?: CommonnessRatedAdvantageDisadvantage<Advantage_ID>[]
4686
+ value: number
4687
+ }
4688
+
4689
+ export type DerivedCharacteristicModifierPrerequisiteGroup =
4690
+ | {
4691
+ kind: "Rule"
4692
+ Rule: RulePrerequisite
4693
+ }
4694
+ | {
4695
+ kind: "Activatable"
4696
+ Activatable: ActivatablePrerequisite
4697
+ }
4698
+
4699
+ /**
4700
+ * Requires a specific extension rule (focus rule or optional rule) to be used/active.
4701
+ */
4702
+ export interface RulePrerequisite {
4703
+ id: ExtensionRuleIdentifier
4704
+ display_option?: DisplayOption
4705
+ }
4706
+
4707
+ export type ExtensionRuleIdentifier =
4708
+ | {
4709
+ kind: "FocusRule"
4710
+ FocusRule: FocusRule_ID
4711
+ }
4712
+ | {
4713
+ kind: "OptionalRule"
4714
+ OptionalRule: OptionalRule_ID
4715
+ }
4713
4716
 
4717
+ export interface FocusRule {
4714
4718
  /**
4715
- * A list of uncommon disadvantages.
4719
+ * The associated subject.
4716
4720
  */
4717
- uncommon_disadvantages?: CommonnessRatedAdvantageDisadvantage<Disadvantage_ID>[]
4721
+ subject: Subject_ID
4718
4722
 
4719
4723
  /**
4720
- * An array containing 20 (numeric) hair color identifiers. The array also represents the 20-sided die for a random hair color.
4724
+ * The focus rule’s level.
4721
4725
  */
4722
- hair_color?: [HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID]
4726
+ level: number
4723
4727
 
4724
4728
  /**
4725
- * An array containing 20 (numeric) eye color identifiers. The array also represents the 20-sided die for a random eye color.
4729
+ * 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.
4726
4730
  */
4727
- eye_color?: [EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID]
4731
+ isMissingImplementation: boolean
4732
+
4733
+ prerequisites?: RulePrerequisites
4728
4734
 
4729
4735
  /**
4730
- * Configuration for random height generation.
4736
+ * References to where in which publications this entry has been defined. Entries may also be added or removed in later printings.
4731
4737
  */
4732
- height: RandomHeightGeneration
4738
+ src: PublicationRefs
4733
4739
 
4734
4740
  /**
4735
4741
  * All translations for the entry, identified by IETF language tag (BCP47).
4736
4742
  */
4737
4743
  translations: {
4738
- [localeId: string]: RaceVariantTranslation
4744
+ [localeId: string]: FocusRuleTranslation
4739
4745
  }
4740
4746
  }
4741
4747
 
4742
4748
  /**
4743
4749
  * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
4744
4750
  */
4745
- export type RaceVariant_ID = string
4751
+ export type FocusRule_ID = string
4746
4752
 
4747
- export interface RaceVariantTranslation {
4753
+ export interface FocusRuleTranslation {
4748
4754
  /**
4749
- * The race variant’s name. If this is the only variant for a base race and thus just provides the missing information without actually being able to select, fill in the name of the base race.
4755
+ * The focus rule’s name.
4750
4756
  */
4751
4757
  name: string
4752
4758
 
4753
4759
  /**
4754
- * The respective common advantages text from the source book.
4755
- */
4756
- common_advantages?: string
4757
-
4758
- /**
4759
- * The respective common disadvantages text from the source book.
4760
- */
4761
- common_disadvantages?: string
4762
-
4763
- /**
4764
- * The respective uncommon advantages text from the source book.
4760
+ * The description of the focus rule.
4765
4761
  */
4766
- uncommon_advantages?: string
4762
+ description: string
4767
4763
 
4768
- /**
4769
- * The respective uncommon disadvantages text from the source book.
4770
- */
4771
- uncommon_disadvantages?: string
4764
+ errata?: Errata
4772
4765
  }
4773
4766
 
4774
- export interface Culture {
4775
- /**
4776
- * A list of native languages (usually it is only one).
4777
- */
4778
- language: CultureLanguage[]
4779
-
4780
- /**
4781
- * A list of native scripts (usually it is only one). If the culture does not use any script, leave this array empty.
4782
- */
4783
- script?: Script_ID[]
4784
-
4785
- /**
4786
- * If the area knowledge has a fixed value or can be adjusted.
4787
- */
4788
- area_knowledge: AreaKnowledge
4789
-
4790
- /**
4791
- * A list of possible social status in the respective culture.
4792
- */
4793
- social_status: SocialStatus_ID[]
4794
-
4767
+ /**
4768
+ * Subjects or Subject Areas are the categories of Focus Rules.
4769
+ */
4770
+ export interface Subject {
4795
4771
  /**
4796
- * A list of professions that are typical for the culture, as well as professions that are rarely practiced or encountered in the culture. The list is either defined by group (as multiple lists) or plain (as a single list).
4772
+ * All translations for the entry, identified by IETF language tag (BCP47).
4797
4773
  */
4798
- common_professions: CommonProfessions
4774
+ translations: {
4775
+ [localeId: string]: SubjectTranslation
4776
+ }
4777
+ }
4799
4778
 
4800
- /**
4801
- * A list of common advantages.
4802
- */
4803
- common_advantages?: CommonnessRatedAdvantageDisadvantage<Advantage_ID>[]
4779
+ /**
4780
+ * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
4781
+ */
4782
+ export type Subject_ID = string
4804
4783
 
4784
+ export interface SubjectTranslation {
4805
4785
  /**
4806
- * A list of common disadvantages.
4786
+ * The subject.
4807
4787
  */
4808
- common_disadvantages?: CommonnessRatedAdvantageDisadvantage<Disadvantage_ID>[]
4788
+ name: string
4789
+ }
4809
4790
 
4810
- /**
4811
- * A list of uncommon advantages.
4812
- */
4813
- uncommon_advantages?: CommonnessRatedAdvantageDisadvantage<Advantage_ID>[]
4791
+ export type RulePrerequisites = PlainPrerequisites<RulePrerequisiteGroup>
4814
4792
 
4815
- /**
4816
- * A list of uncommon disadvantages.
4817
- */
4818
- uncommon_disadvantages?: CommonnessRatedAdvantageDisadvantage<Disadvantage_ID>[]
4793
+ export type RulePrerequisiteGroup =
4794
+ | {
4795
+ kind: "Rule"
4796
+ Rule: RulePrerequisite
4797
+ }
4819
4798
 
4799
+ export interface OptionalRule {
4820
4800
  /**
4821
- * A list of common skills.
4801
+ * 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.
4822
4802
  */
4823
- common_skills: CommonnessRatedSkill[]
4803
+ isMissingImplementation: boolean
4824
4804
 
4825
4805
  /**
4826
- * A list of uncommon skills.
4806
+ * How this optional rule influences the complexity of the game, if specified.
4827
4807
  */
4828
- uncommon_skills?: CommonnessRatedSkill[]
4808
+ complexityInfluence?: ComplexityInfluence
4829
4809
 
4830
- /**
4831
- * The skill points you get for buying the culture package.
4832
- */
4833
- cultural_package: CulturalPackageItem[]
4810
+ prerequisites?: RulePrerequisites
4834
4811
 
4835
4812
  /**
4836
4813
  * References to where in which publications this entry has been defined. Entries may also be added or removed in later printings.
@@ -4841,255 +4818,75 @@ export interface Culture {
4841
4818
  * All translations for the entry, identified by IETF language tag (BCP47).
4842
4819
  */
4843
4820
  translations: {
4844
- [localeId: string]: CultureTranslation
4821
+ [localeId: string]: OptionalRuleTranslation
4845
4822
  }
4846
4823
  }
4847
4824
 
4848
4825
  /**
4849
4826
  * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
4850
4827
  */
4851
- export type Culture_ID = string
4828
+ export type OptionalRule_ID = string
4852
4829
 
4853
- export interface CultureTranslation {
4830
+ export interface OptionalRuleTranslation {
4854
4831
  /**
4855
- * The race’s name.
4832
+ * The optional rule’s name.
4856
4833
  */
4857
4834
  name: string
4858
4835
 
4859
4836
  /**
4860
- * The description of the area knowledge.
4861
- */
4862
- area_knowledge: AreaKnowledgeTranslation
4863
-
4864
- /**
4865
- * The respective common advantages text from the source book.
4866
- */
4867
- common_advantages?: string
4868
-
4869
- /**
4870
- * The respective common disadvantages text from the source book.
4871
- */
4872
- common_disadvantages?: string
4873
-
4874
- /**
4875
- * The respective uncommon advantages text from the source book.
4876
- */
4877
- uncommon_advantages?: string
4878
-
4879
- /**
4880
- * The respective uncommon disadvantages text from the source book.
4837
+ * The description of the optional rule, as stated in the optional rule box.
4881
4838
  */
4882
- uncommon_disadvantages?: string
4839
+ description: string
4883
4840
 
4884
4841
  /**
4885
- * Structured description of common names.
4842
+ * Sometimes, an optional rule does not only contain all the rules belonging to it in its rule box, but also in the main text.
4886
4843
  */
4887
- common_names: CommonNames
4844
+ additionalRules?: string
4888
4845
 
4889
4846
  errata?: Errata
4890
4847
  }
4891
4848
 
4892
4849
  /**
4893
- * A native languages with optional specializations.
4850
+ * How this optional rule influences the complexity of the game.
4894
4851
  */
4895
- export interface CultureLanguage {
4896
- /**
4897
- * The language’s identifier.
4898
- */
4899
- id: Language_ID
4852
+ export type ComplexityInfluence =
4853
+ | {
4854
+ kind: "Less"
4855
+ }
4856
+ | {
4857
+ kind: "Unchanged"
4858
+ }
4859
+ | {
4860
+ kind: "More"
4861
+ }
4900
4862
 
4863
+ /**
4864
+ * Requires a specific advantage, disadvantage or special ability.
4865
+ */
4866
+ export interface ActivatablePrerequisite {
4901
4867
  /**
4902
- * The language specializations, if any.
4868
+ * The activatable entry’s identifier.
4903
4869
  */
4904
- specializations?: LanguageSpecialization_ID[]
4905
- }
4870
+ id: ActivatableIdentifier
4906
4871
 
4907
- export interface Language {
4908
4872
  /**
4909
- * The continents this language is present on.
4873
+ * If the required entry should be required to be active or inactive.
4910
4874
  */
4911
- continent: AssociatedContinent[]
4875
+ active: boolean
4912
4876
 
4913
4877
  /**
4914
- * If applicable, a description of what may be a specialization.
4878
+ * The required minimum level of the entry.
4915
4879
  */
4916
- customSpecializations?: IndefiniteSpecializations
4917
-
4918
- prerequisites?: LanguagePrerequisites
4880
+ level?: number
4919
4881
 
4920
4882
  /**
4921
- * The maximum possible level of the language. Only specified if lower than default of 3.
4883
+ * Required select options. Order is important. Typically, you only need the first array index, though.
4922
4884
  */
4923
- max_level?: number
4885
+ options?: RequirableSelectOptionIdentifier[]
4924
4886
 
4925
- /**
4926
- * References to where in which publications this entry has been defined. Entries may also be added or removed in later printings.
4927
- */
4928
- src: PublicationRefs
4887
+ display_option?: DisplayOption
4929
4888
 
4930
- /**
4931
- * All translations for the entry, identified by IETF language tag (BCP47).
4932
- */
4933
- translations: {
4934
- [localeId: string]: LanguageTranslation
4935
- }
4936
- }
4937
-
4938
- /**
4939
- * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
4940
- */
4941
- export type Language_ID = string
4942
-
4943
- export interface LanguageTranslation {
4944
- /**
4945
- * The language’s name.
4946
- */
4947
- name: string
4948
-
4949
- /**
4950
- * A list of alternative names.
4951
- */
4952
- alternative_names?: AlternativeName[]
4953
-
4954
- /**
4955
- * The description of the language.
4956
- */
4957
- description?: string
4958
-
4959
- errata?: Errata
4960
- }
4961
-
4962
- export interface AssociatedContinent {
4963
- /**
4964
- * The continent’s identifier.
4965
- */
4966
- id: Continent_ID
4967
-
4968
- /**
4969
- * Is the language considered virtually extinct in this continent?
4970
- */
4971
- is_extinct: boolean
4972
- }
4973
-
4974
- /**
4975
- * Continents are mostly referenced to in languages and scripts that occur on a specific continent.
4976
- */
4977
- export interface Continent {
4978
- /**
4979
- * All translations for the entry, identified by IETF language tag (BCP47).
4980
- */
4981
- translations: {
4982
- [localeId: string]: ContinentTranslation
4983
- }
4984
- }
4985
-
4986
- /**
4987
- * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
4988
- */
4989
- export type Continent_ID = string
4990
-
4991
- export interface ContinentTranslation {
4992
- /**
4993
- * The continent name.
4994
- */
4995
- name: string
4996
- }
4997
-
4998
- export interface LanguageSpecialization {
4999
- /**
5000
- * The language this specialization belongs to.
5001
- */
5002
- parent: Language_ID
5003
-
5004
- /**
5005
- * All translations for the entry, identified by IETF language tag (BCP47).
5006
- */
5007
- translations: {
5008
- [localeId: string]: LanguageSpecializationTranslation
5009
- }
5010
- }
5011
-
5012
- /**
5013
- * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
5014
- */
5015
- export type LanguageSpecialization_ID = string
5016
-
5017
- export interface LanguageSpecializationTranslation {
5018
- /**
5019
- * The specialization’s name.
5020
- */
5021
- name: string
5022
-
5023
- /**
5024
- * The specialization description. It will be appended to the name in parenthesis.
5025
- */
5026
- description?: string
5027
- }
5028
-
5029
- export interface IndefiniteSpecializations {
5030
- /**
5031
- * All translations for the entry, identified by IETF language tag (BCP47).
5032
- */
5033
- translations: {
5034
- [localeId: string]: IndefiniteSpecializationsTranslation
5035
- }
5036
- }
5037
-
5038
- export interface IndefiniteSpecializationsTranslation {
5039
- /**
5040
- * The specializations description.
5041
- */
5042
- description: string
5043
-
5044
- /**
5045
- * An input label or placeholder text for an UI element if it differs from the `description`.
5046
- */
5047
- label?: string
5048
- }
5049
-
5050
- export type LanguagePrerequisites = PrerequisitesForLevels<LanguagePrerequisiteGroup>
5051
-
5052
- export type LanguagePrerequisiteGroup =
5053
- | {
5054
- kind: "Race"
5055
- Race: RacePrerequisite
5056
- }
5057
- | {
5058
- kind: "Activatable"
5059
- Activatable: ActivatablePrerequisite
5060
- }
5061
- | {
5062
- kind: "Text"
5063
- Text: TextPrerequisite
5064
- }
5065
-
5066
- /**
5067
- * Requires a specific advantage, disadvantage or special ability.
5068
- */
5069
- export interface ActivatablePrerequisite {
5070
- /**
5071
- * The activatable entry’s identifier.
5072
- */
5073
- id: ActivatableIdentifier
5074
-
5075
- /**
5076
- * If the required entry should be required to be active or inactive.
5077
- */
5078
- active: boolean
5079
-
5080
- /**
5081
- * The required minimum level of the entry.
5082
- */
5083
- level?: number
5084
-
5085
- /**
5086
- * Required select options. Order is important. Typically, you only need the first array index, though.
5087
- */
5088
- options?: RequirableSelectOptionIdentifier[]
5089
-
5090
- display_option?: DisplayOption
5091
-
5092
- when?: Preconditions
4889
+ when?: Preconditions
5093
4890
  }
5094
4891
 
5095
4892
  export type RequirableSelectOptionIdentifier =
@@ -5363,124 +5160,343 @@ export interface AspectTranslation {
5363
5160
  master_of_aspect_suffix?: string
5364
5161
  }
5365
5162
 
5366
- export interface AnimalShape {
5163
+ export interface Language {
5367
5164
  /**
5368
- * The animal shape’s path.
5165
+ * The continents this language is present on.
5369
5166
  */
5370
- path: AnimalShapePath_ID
5167
+ continent: AssociatedContinent[]
5371
5168
 
5372
5169
  /**
5373
- * The animal shape’s size.
5170
+ * If applicable, a description of what may be a specialization.
5374
5171
  */
5375
- size: AnimalShapeSize_ID
5172
+ customSpecializations?: IndefiniteSpecializations
5173
+
5174
+ prerequisites?: LanguagePrerequisites
5376
5175
 
5377
5176
  /**
5378
- * All translations for the entry, identified by IETF language tag (BCP47).
5177
+ * The maximum possible level of the language. Only specified if lower than default of 3.
5379
5178
  */
5380
- translations: {
5381
- [localeId: string]: AnimalShapeTranslation
5382
- }
5383
- }
5384
-
5385
- /**
5386
- * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
5387
- */
5388
- export type AnimalShape_ID = string
5179
+ max_level?: number
5389
5180
 
5390
- export interface AnimalShapeTranslation {
5391
5181
  /**
5392
- * The animal shape’s name.
5182
+ * References to where in which publications this entry has been defined. Entries may also be added or removed in later printings.
5393
5183
  */
5394
- name: string
5395
- }
5184
+ src: PublicationRefs
5396
5185
 
5397
- export interface AnimalShapePath {
5398
5186
  /**
5399
5187
  * All translations for the entry, identified by IETF language tag (BCP47).
5400
5188
  */
5401
5189
  translations: {
5402
- [localeId: string]: AnimalShapePathTranslation
5190
+ [localeId: string]: LanguageTranslation
5403
5191
  }
5404
5192
  }
5405
5193
 
5406
5194
  /**
5407
5195
  * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
5408
5196
  */
5409
- export type AnimalShapePath_ID = string
5197
+ export type Language_ID = string
5410
5198
 
5411
- export interface AnimalShapePathTranslation {
5199
+ export interface LanguageTranslation {
5412
5200
  /**
5413
- * The animal shape path’s name.
5201
+ * The language’s name.
5414
5202
  */
5415
5203
  name: string
5204
+
5205
+ /**
5206
+ * A list of alternative names.
5207
+ */
5208
+ alternative_names?: AlternativeName[]
5209
+
5210
+ /**
5211
+ * The description of the language.
5212
+ */
5213
+ description?: string
5214
+
5215
+ errata?: Errata
5416
5216
  }
5417
5217
 
5418
- export interface AnimalShapeSize {
5218
+ export interface AssociatedContinent {
5419
5219
  /**
5420
- * The animal shape size’s volume points
5220
+ * The continent’s identifier.
5421
5221
  */
5422
- volume: number
5222
+ id: Continent_ID
5423
5223
 
5424
5224
  /**
5425
- * The animal shape size’s adventure point value
5225
+ * Is the language considered virtually extinct in this continent?
5426
5226
  */
5427
- ap_value: number
5227
+ is_extinct: boolean
5228
+ }
5428
5229
 
5230
+ /**
5231
+ * Continents are mostly referenced to in languages and scripts that occur on a specific continent.
5232
+ */
5233
+ export interface Continent {
5429
5234
  /**
5430
5235
  * All translations for the entry, identified by IETF language tag (BCP47).
5431
5236
  */
5432
5237
  translations: {
5433
- [localeId: string]: AnimalShapeSizeTranslation
5238
+ [localeId: string]: ContinentTranslation
5434
5239
  }
5435
5240
  }
5436
5241
 
5437
5242
  /**
5438
5243
  * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
5439
5244
  */
5440
- export type AnimalShapeSize_ID = string
5245
+ export type Continent_ID = string
5441
5246
 
5442
- export interface AnimalShapeSizeTranslation {
5247
+ export interface ContinentTranslation {
5443
5248
  /**
5444
- * The animal shape size’s name.
5249
+ * The continent name.
5445
5250
  */
5446
5251
  name: string
5447
5252
  }
5448
5253
 
5449
- export interface LiturgicalChant {
5254
+ export interface LanguageSpecialization {
5450
5255
  /**
5451
- * Lists the linked three attributes used to make a skill check.
5256
+ * The language this specialization belongs to.
5452
5257
  */
5453
- check: SkillCheck
5258
+ parent: Language_ID
5454
5259
 
5455
5260
  /**
5456
- * In some cases, the target's Spirit or Toughness is applied as a penalty.
5261
+ * All translations for the entry, identified by IETF language tag (BCP47).
5457
5262
  */
5458
- check_penalty?: SkillCheckPenalty
5263
+ translations: {
5264
+ [localeId: string]: LanguageSpecializationTranslation
5265
+ }
5266
+ }
5459
5267
 
5460
- /**
5461
- * Measurable parameters of a liturgical chant.
5462
- */
5463
- parameters: FastPerformanceParameters
5268
+ /**
5269
+ * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
5270
+ */
5271
+ export type LanguageSpecialization_ID = string
5464
5272
 
5273
+ export interface LanguageSpecializationTranslation {
5465
5274
  /**
5466
- * The target category – the kind of creature or object – the skill affects.
5275
+ * The specialization’s name.
5467
5276
  */
5468
- target: AffectedTargetCategories
5277
+ name: string
5469
5278
 
5470
5279
  /**
5471
- * The tradition(s) the liturgical chant is available for. Note that general aspects do not have an associated tradition and thus need to be defined in a special way.
5280
+ * The specialization description. It will be appended to the name in parenthesis.
5472
5281
  */
5473
- traditions: LiturgyTradition[]
5282
+ description?: string
5283
+ }
5474
5284
 
5285
+ export interface IndefiniteSpecializations {
5475
5286
  /**
5476
- * States which column is used to improve the skill.
5287
+ * All translations for the entry, identified by IETF language tag (BCP47).
5477
5288
  */
5478
- improvement_cost: ImprovementCost
5289
+ translations: {
5290
+ [localeId: string]: IndefiniteSpecializationsTranslation
5291
+ }
5292
+ }
5479
5293
 
5294
+ export interface IndefiniteSpecializationsTranslation {
5480
5295
  /**
5481
- * The prerequisites for the liturgical chant.
5296
+ * The specializations description.
5482
5297
  */
5483
- prerequisites?: LiturgyPrerequisites
5298
+ description: string
5299
+
5300
+ /**
5301
+ * An input label or placeholder text for an UI element if it differs from the `description`.
5302
+ */
5303
+ label?: string
5304
+ }
5305
+
5306
+ export type LanguagePrerequisites = PrerequisitesForLevels<LanguagePrerequisiteGroup>
5307
+
5308
+ export type LanguagePrerequisiteGroup =
5309
+ | {
5310
+ kind: "Race"
5311
+ Race: RacePrerequisite
5312
+ }
5313
+ | {
5314
+ kind: "Activatable"
5315
+ Activatable: ActivatablePrerequisite
5316
+ }
5317
+ | {
5318
+ kind: "Text"
5319
+ Text: TextPrerequisite
5320
+ }
5321
+
5322
+ /**
5323
+ * 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.
5324
+ */
5325
+ export interface TextPrerequisite {
5326
+ /**
5327
+ * 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.
5328
+ */
5329
+ verification: TextVerificationRule
5330
+
5331
+ /**
5332
+ * If the text is a sentence or sentence-like fragment, this property ensures it is integrated into the prerequisite string correctly.
5333
+ *
5334
+ * 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.
5335
+ */
5336
+ sentence_type?: SentenceType
5337
+
5338
+ /**
5339
+ * 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`.
5340
+ *
5341
+ * 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.
5342
+ *
5343
+ * This is the only use case for this property.
5344
+ */
5345
+ is_meta?: boolean
5346
+
5347
+ /**
5348
+ * All translations for the entry, identified by IETF language tag (BCP47).
5349
+ */
5350
+ translations: {
5351
+ [localeId: string]: TextPrerequisiteTranslation
5352
+ }
5353
+ }
5354
+
5355
+ export interface TextPrerequisiteTranslation {
5356
+ /**
5357
+ * The displayed text.
5358
+ */
5359
+ text: string
5360
+ }
5361
+
5362
+ export type TextVerificationRule =
5363
+ | {
5364
+ kind: "Pass"
5365
+ }
5366
+ | {
5367
+ kind: "Deny"
5368
+ }
5369
+
5370
+ export interface AlternativeName {
5371
+ /**
5372
+ * An alternative name of the disease.
5373
+ */
5374
+ name: string
5375
+
5376
+ /**
5377
+ * The region where this alternative name is used.
5378
+ */
5379
+ region?: string
5380
+ }
5381
+
5382
+ export interface AnimalShape {
5383
+ /**
5384
+ * The animal shape’s path.
5385
+ */
5386
+ path: AnimalShapePath_ID
5387
+
5388
+ /**
5389
+ * The animal shape’s size.
5390
+ */
5391
+ size: AnimalShapeSize_ID
5392
+
5393
+ /**
5394
+ * All translations for the entry, identified by IETF language tag (BCP47).
5395
+ */
5396
+ translations: {
5397
+ [localeId: string]: AnimalShapeTranslation
5398
+ }
5399
+ }
5400
+
5401
+ /**
5402
+ * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
5403
+ */
5404
+ export type AnimalShape_ID = string
5405
+
5406
+ export interface AnimalShapeTranslation {
5407
+ /**
5408
+ * The animal shape’s name.
5409
+ */
5410
+ name: string
5411
+ }
5412
+
5413
+ export interface AnimalShapePath {
5414
+ /**
5415
+ * All translations for the entry, identified by IETF language tag (BCP47).
5416
+ */
5417
+ translations: {
5418
+ [localeId: string]: AnimalShapePathTranslation
5419
+ }
5420
+ }
5421
+
5422
+ /**
5423
+ * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
5424
+ */
5425
+ export type AnimalShapePath_ID = string
5426
+
5427
+ export interface AnimalShapePathTranslation {
5428
+ /**
5429
+ * The animal shape path’s name.
5430
+ */
5431
+ name: string
5432
+ }
5433
+
5434
+ export interface AnimalShapeSize {
5435
+ /**
5436
+ * The animal shape size’s volume points
5437
+ */
5438
+ volume: number
5439
+
5440
+ /**
5441
+ * The animal shape size’s adventure point value
5442
+ */
5443
+ ap_value: number
5444
+
5445
+ /**
5446
+ * All translations for the entry, identified by IETF language tag (BCP47).
5447
+ */
5448
+ translations: {
5449
+ [localeId: string]: AnimalShapeSizeTranslation
5450
+ }
5451
+ }
5452
+
5453
+ /**
5454
+ * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
5455
+ */
5456
+ export type AnimalShapeSize_ID = string
5457
+
5458
+ export interface AnimalShapeSizeTranslation {
5459
+ /**
5460
+ * The animal shape size’s name.
5461
+ */
5462
+ name: string
5463
+ }
5464
+
5465
+ export interface LiturgicalChant {
5466
+ /**
5467
+ * Lists the linked three attributes used to make a skill check.
5468
+ */
5469
+ check: SkillCheck
5470
+
5471
+ /**
5472
+ * In some cases, the target's Spirit or Toughness is applied as a penalty.
5473
+ */
5474
+ check_penalty?: SkillCheckPenalty
5475
+
5476
+ /**
5477
+ * Measurable parameters of a liturgical chant.
5478
+ */
5479
+ parameters: FastPerformanceParameters
5480
+
5481
+ /**
5482
+ * The target category – the kind of creature or object – the skill affects.
5483
+ */
5484
+ target: AffectedTargetCategories
5485
+
5486
+ /**
5487
+ * The tradition(s) the liturgical chant is available for. Note that general aspects do not have an associated tradition and thus need to be defined in a special way.
5488
+ */
5489
+ traditions: LiturgyTradition[]
5490
+
5491
+ /**
5492
+ * States which column is used to improve the skill.
5493
+ */
5494
+ improvement_cost: ImprovementCost
5495
+
5496
+ /**
5497
+ * The prerequisites for the liturgical chant.
5498
+ */
5499
+ prerequisites?: LiturgyPrerequisites
5484
5500
 
5485
5501
  /**
5486
5502
  * References to where in which publications this entry has been defined. Entries may also be added or removed in later printings.
@@ -6081,6 +6097,9 @@ export type CheckResultValue =
6081
6097
  | {
6082
6098
  kind: "SkillPoints"
6083
6099
  }
6100
+ | {
6101
+ kind: "SkillRating"
6102
+ }
6084
6103
 
6085
6104
  export interface CheckResultBasedModifier {
6086
6105
  /**
@@ -7038,32 +7057,6 @@ export interface AdventurePointsDependingOnActiveInstancesThreshold {
7038
7057
  */
7039
7058
  export type AdventurePointsDependingOnActiveInstancesExpression = MathOperation<AdventurePointsDependingOnActiveInstancesExpressionValue>
7040
7059
 
7041
- export type MathOperation<Value> =
7042
- | {
7043
- kind: "Value"
7044
- Value: Value
7045
- }
7046
- | {
7047
- kind: "Addition"
7048
- Addition: [MathOperation<Value>, MathOperation<Value>]
7049
- }
7050
- | {
7051
- kind: "Subtraction"
7052
- Subtraction: [MathOperation<Value>, MathOperation<Value>]
7053
- }
7054
- | {
7055
- kind: "Multiplication"
7056
- Multiplication: [MathOperation<Value>, MathOperation<Value>]
7057
- }
7058
- | {
7059
- kind: "Division"
7060
- Division: [MathOperation<Value>, MathOperation<Value>]
7061
- }
7062
- | {
7063
- kind: "Exponentiation"
7064
- Exponentiation: [MathOperation<Value>, MathOperation<Value>]
7065
- }
7066
-
7067
7060
  /**
7068
7061
  * The type of value allowed in the expression to calculate the AP value.
7069
7062
  */
@@ -7097,189 +7090,25 @@ export type LiturgyPrerequisiteGroup =
7097
7090
  }
7098
7091
 
7099
7092
  /**
7100
- * Requires a specific extension rule (focus rule or optional rule) to be used/active.
7093
+ * The effect description may be either a plain text or a text that is divided by a list of effects for each quality level. It may also be a list for each two quality levels.
7101
7094
  */
7102
- export interface RulePrerequisite {
7103
- id: ExtensionRuleIdentifier
7104
- display_option?: DisplayOption
7105
- }
7106
-
7107
- export type ExtensionRuleIdentifier =
7095
+ export type ActivatableSkillEffect =
7108
7096
  | {
7109
- kind: "FocusRule"
7110
- FocusRule: FocusRule_ID
7097
+ kind: "Plain"
7098
+ Plain: ActivatableSkillPlainEffect
7111
7099
  }
7112
7100
  | {
7113
- kind: "OptionalRule"
7114
- OptionalRule: OptionalRule_ID
7101
+ kind: "ForEachQualityLevel"
7102
+ ForEachQualityLevel: ActivatableSkillEffectForEachQualityLevel
7103
+ }
7104
+ | {
7105
+ kind: "ForEachTwoQualityLevels"
7106
+ ForEachTwoQualityLevels: ActivatableSkillEffectForEachTwoQualityLevels
7115
7107
  }
7116
7108
 
7117
- export interface FocusRule {
7109
+ export interface ActivatableSkillPlainEffect {
7118
7110
  /**
7119
- * The associated subject.
7120
- */
7121
- subject: Subject_ID
7122
-
7123
- /**
7124
- * The focus rule’s level.
7125
- */
7126
- level: number
7127
-
7128
- /**
7129
- * Has the focus rule not been implemented in Optolith yet? This is also true if the focus rule does not (currently) apply to any Optolith feature.
7130
- */
7131
- isMissingImplementation: boolean
7132
-
7133
- prerequisites?: RulePrerequisites
7134
-
7135
- /**
7136
- * References to where in which publications this entry has been defined. Entries may also be added or removed in later printings.
7137
- */
7138
- src: PublicationRefs
7139
-
7140
- /**
7141
- * All translations for the entry, identified by IETF language tag (BCP47).
7142
- */
7143
- translations: {
7144
- [localeId: string]: FocusRuleTranslation
7145
- }
7146
- }
7147
-
7148
- /**
7149
- * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
7150
- */
7151
- export type FocusRule_ID = string
7152
-
7153
- export interface FocusRuleTranslation {
7154
- /**
7155
- * The focus rule’s name.
7156
- */
7157
- name: string
7158
-
7159
- /**
7160
- * The description of the focus rule.
7161
- */
7162
- description: string
7163
-
7164
- errata?: Errata
7165
- }
7166
-
7167
- /**
7168
- * Subjects or Subject Areas are the categories of Focus Rules.
7169
- */
7170
- export interface Subject {
7171
- /**
7172
- * All translations for the entry, identified by IETF language tag (BCP47).
7173
- */
7174
- translations: {
7175
- [localeId: string]: SubjectTranslation
7176
- }
7177
- }
7178
-
7179
- /**
7180
- * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
7181
- */
7182
- export type Subject_ID = string
7183
-
7184
- export interface SubjectTranslation {
7185
- /**
7186
- * The subject.
7187
- */
7188
- name: string
7189
- }
7190
-
7191
- export type RulePrerequisites = PlainPrerequisites<RulePrerequisiteGroup>
7192
-
7193
- export type RulePrerequisiteGroup =
7194
- | {
7195
- kind: "Rule"
7196
- Rule: RulePrerequisite
7197
- }
7198
-
7199
- export interface OptionalRule {
7200
- /**
7201
- * Has the optional rule not been implemented in Optolith yet? This is also true if the optional rule does not (currently) apply to any Optolith feature.
7202
- */
7203
- isMissingImplementation: boolean
7204
-
7205
- /**
7206
- * How this optional rule influences the complexity of the game, if specified.
7207
- */
7208
- complexityInfluence?: ComplexityInfluence
7209
-
7210
- prerequisites?: RulePrerequisites
7211
-
7212
- /**
7213
- * References to where in which publications this entry has been defined. Entries may also be added or removed in later printings.
7214
- */
7215
- src: PublicationRefs
7216
-
7217
- /**
7218
- * All translations for the entry, identified by IETF language tag (BCP47).
7219
- */
7220
- translations: {
7221
- [localeId: string]: OptionalRuleTranslation
7222
- }
7223
- }
7224
-
7225
- /**
7226
- * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
7227
- */
7228
- export type OptionalRule_ID = string
7229
-
7230
- export interface OptionalRuleTranslation {
7231
- /**
7232
- * The optional rule’s name.
7233
- */
7234
- name: string
7235
-
7236
- /**
7237
- * The description of the optional rule, as stated in the optional rule box.
7238
- */
7239
- description: string
7240
-
7241
- /**
7242
- * Sometimes, an optional rule does not only contain all the rules belonging to it in its rule box, but also in the main text.
7243
- */
7244
- additionalRules?: string
7245
-
7246
- errata?: Errata
7247
- }
7248
-
7249
- /**
7250
- * How this optional rule influences the complexity of the game.
7251
- */
7252
- export type ComplexityInfluence =
7253
- | {
7254
- kind: "Less"
7255
- }
7256
- | {
7257
- kind: "Unchanged"
7258
- }
7259
- | {
7260
- kind: "More"
7261
- }
7262
-
7263
- /**
7264
- * The effect description may be either a plain text or a text that is divided by a list of effects for each quality level. It may also be a list for each two quality levels.
7265
- */
7266
- export type ActivatableSkillEffect =
7267
- | {
7268
- kind: "Plain"
7269
- Plain: ActivatableSkillPlainEffect
7270
- }
7271
- | {
7272
- kind: "ForEachQualityLevel"
7273
- ForEachQualityLevel: ActivatableSkillEffectForEachQualityLevel
7274
- }
7275
- | {
7276
- kind: "ForEachTwoQualityLevels"
7277
- ForEachTwoQualityLevels: ActivatableSkillEffectForEachTwoQualityLevels
7278
- }
7279
-
7280
- export interface ActivatableSkillPlainEffect {
7281
- /**
7282
- * The effect description.
7111
+ * The effect description.
7283
7112
  */
7284
7113
  text: string
7285
7114
  }
@@ -8449,6 +8278,65 @@ export interface ProfessionPackage {
8449
8278
  */
8450
8279
  export type ProfessionPackage_ID = string
8451
8280
 
8281
+ /**
8282
+ * Adventure Points and maximum values at hero creation.
8283
+ */
8284
+ export interface ExperienceLevel {
8285
+ /**
8286
+ * The AP value you get.
8287
+ */
8288
+ adventure_points: number
8289
+
8290
+ /**
8291
+ * The highest possible attribute value.
8292
+ */
8293
+ max_attribute_value: number
8294
+
8295
+ /**
8296
+ * The highest possible skill rating.
8297
+ */
8298
+ max_skill_rating: number
8299
+
8300
+ /**
8301
+ * The highest possible combat technique rating.
8302
+ */
8303
+ max_combat_technique_rating: number
8304
+
8305
+ /**
8306
+ * The limit for the sum of all attribute values.
8307
+ */
8308
+ max_attribute_total: number
8309
+
8310
+ /**
8311
+ * The maximum of spells/chants you can activate.
8312
+ */
8313
+ max_number_of_spells_liturgical_chants: number
8314
+
8315
+ /**
8316
+ * The maximum of spells of an unfamiliar tradition you can activate.
8317
+ */
8318
+ max_number_of_unfamiliar_spells: number
8319
+
8320
+ /**
8321
+ * All translations for the entry, identified by IETF language tag (BCP47).
8322
+ */
8323
+ translations: {
8324
+ [localeId: string]: ExperienceLevelTranslation
8325
+ }
8326
+ }
8327
+
8328
+ /**
8329
+ * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
8330
+ */
8331
+ export type ExperienceLevel_ID = string
8332
+
8333
+ export interface ExperienceLevelTranslation {
8334
+ /**
8335
+ * The experience level’s name.
8336
+ */
8337
+ name: string
8338
+ }
8339
+
8452
8340
  export type ProfessionPrerequisites = PlainPrerequisites<ProfessionPrerequisiteGroup>
8453
8341
 
8454
8342
  export type ProfessionPrerequisiteGroup =
@@ -8485,121 +8373,66 @@ export interface CulturePrerequisite {
8485
8373
  display_option?: DisplayOption
8486
8374
  }
8487
8375
 
8488
- /**
8489
- * In some areas, the profession package grants a loose set of stats where the player must choose between different options for the profession package.
8490
- */
8491
- export interface ProfessionPackageOptions {
8492
- skill_specialization?: SkillSpecializationOptions
8493
- languages_scripts?: LanguagesScriptsOptions
8494
- combat_techniques?: CombatTechniquesOptions
8495
- cantrips?: CantripsOptions
8496
- curses?: CursesOptions
8497
- skills?: SkillsOptions
8498
- liturgies?: LiturgiesOptions
8499
- }
8500
-
8501
- /**
8502
- * Select an application from a skill or from one of a list of skills where you get a skill specialization for. You can also specify a skill group from which you can choose a skill.
8503
- */
8504
- export type SkillSpecializationOptions =
8505
- | {
8506
- kind: "Specific"
8507
- Specific: SpecificSkillSpecializationOptions
8508
- }
8509
- | {
8510
- kind: "Group"
8511
- Group: SkillGroup_ID
8512
- }
8513
-
8514
- /**
8515
- * Select an application from a skill or from one of a list of skills where you get a skill specialization for.
8516
- */
8517
- export interface SpecificSkillSpecializationOptions {
8376
+ export interface Culture {
8518
8377
  /**
8519
- * Possible skill(s) to get a skill specialization for.
8378
+ * A list of native languages (usually it is only one).
8520
8379
  */
8521
- options: Skill_ID[]
8522
- }
8380
+ language: CultureLanguage[]
8523
8381
 
8524
- /**
8525
- * Buy languages and scripts for a specific amount of AP.
8526
- */
8527
- export interface LanguagesScriptsOptions {
8528
- /**
8529
- * The AP value you can buy languages and scripts for.
8530
- */
8531
- ap_value: number
8532
- }
8533
-
8534
- /**
8535
- * Select one or more combat techniques you get a CtR bonus for.
8536
- */
8537
- export interface CombatTechniquesOptions {
8538
8382
  /**
8539
- * Specify the number of combat techniques that can be selected so that they get increased to a specific CtR. There can be multiple selections with different CtRs.
8383
+ * A list of native scripts (usually it is only one). If the culture does not use any script, leave this array empty.
8540
8384
  */
8541
- fixed: RatingForCombatTechniquesNumber[]
8385
+ script?: Script_ID[]
8542
8386
 
8543
8387
  /**
8544
- * Define if after the fixed selections the remaining unselected combat techniques will receive a certain rating bonus as well.
8388
+ * If the area knowledge has a fixed value or can be adjusted.
8545
8389
  */
8546
- rest_rating_modifier?: number
8390
+ area_knowledge: AreaKnowledge
8547
8391
 
8548
8392
  /**
8549
- * The list of combat techniques to choose from.
8393
+ * A list of possible social status in the respective culture.
8550
8394
  */
8551
- options: CombatTechniqueIdentifier[]
8552
- }
8395
+ social_status: SocialStatus_ID[]
8553
8396
 
8554
- export interface RatingForCombatTechniquesNumber {
8555
8397
  /**
8556
- * The number of selectable combat techniques.
8398
+ * A list of professions that are typical for the culture, as well as professions that are rarely practiced or encountered in the culture. The list is either defined by group (as multiple lists) or plain (as a single list).
8557
8399
  */
8558
- number: number
8400
+ common_professions: CommonProfessions
8559
8401
 
8560
8402
  /**
8561
- * The rating bonus provided for the selected combat technique(s).
8562
- *
8563
- * **Note:** This is a rating *bonus*, so it will be *added* to the default value of 6.
8403
+ * A list of common advantages.
8564
8404
  */
8565
- rating_modifier: number
8566
- }
8405
+ common_advantages?: CommonnessRatedAdvantageDisadvantage<Advantage_ID>[]
8567
8406
 
8568
- /**
8569
- * Select one or more cantrips you receive.
8570
- */
8571
- export interface CantripsOptions {
8572
8407
  /**
8573
- * The number of selectable cantrips.
8408
+ * A list of common disadvantages.
8574
8409
  */
8575
- number: number
8410
+ common_disadvantages?: CommonnessRatedAdvantageDisadvantage<Disadvantage_ID>[]
8576
8411
 
8577
8412
  /**
8578
- * The list of cantrips to choose from.
8413
+ * A list of uncommon advantages.
8579
8414
  */
8580
- options: Cantrip_ID[]
8581
- }
8415
+ uncommon_advantages?: CommonnessRatedAdvantageDisadvantage<Advantage_ID>[]
8582
8416
 
8583
- export interface Cantrip {
8584
8417
  /**
8585
- * Measurable parameters of a cantrip.
8418
+ * A list of uncommon disadvantages.
8586
8419
  */
8587
- parameters: CantripPerformanceParameters
8420
+ uncommon_disadvantages?: CommonnessRatedAdvantageDisadvantage<Disadvantage_ID>[]
8588
8421
 
8589
8422
  /**
8590
- * The target category – the kind of creature or object – the skill affects.
8423
+ * A list of common skills.
8591
8424
  */
8592
- target: AffectedTargetCategories
8425
+ common_skills: CommonnessRatedSkill[]
8593
8426
 
8594
8427
  /**
8595
- * The associated property.
8428
+ * A list of uncommon skills.
8596
8429
  */
8597
- property: Property_ID
8430
+ uncommon_skills?: CommonnessRatedSkill[]
8598
8431
 
8599
8432
  /**
8600
- * A note specifying the dissemination of the cantrip in different traditions. Sometimes a cantrip is exclusively available to one or more specific traditions, but usually one the academies and traditions are listed the cantrip is most commonly teached in.
8433
+ * The skill points you get for buying the culture package.
8601
8434
  */
8602
- note?: CantripNote
8435
+ cultural_package: CulturalPackageItem[]
8603
8436
 
8604
8437
  /**
8605
8438
  * References to where in which publications this entry has been defined. Entries may also be added or removed in later printings.
@@ -8610,182 +8443,648 @@ export interface Cantrip {
8610
8443
  * All translations for the entry, identified by IETF language tag (BCP47).
8611
8444
  */
8612
8445
  translations: {
8613
- [localeId: string]: CantripTranslation
8446
+ [localeId: string]: CultureTranslation
8614
8447
  }
8615
8448
  }
8616
8449
 
8617
8450
  /**
8618
8451
  * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
8619
8452
  */
8620
- export type Cantrip_ID = string
8453
+ export type Culture_ID = string
8621
8454
 
8622
- export interface CantripTranslation {
8455
+ export interface CultureTranslation {
8623
8456
  /**
8624
- * The cantrip’s name.
8457
+ * The race’s name.
8625
8458
  */
8626
8459
  name: string
8627
8460
 
8628
8461
  /**
8629
- * The effect description.
8462
+ * The description of the area knowledge.
8630
8463
  */
8631
- effect: string
8464
+ area_knowledge: AreaKnowledgeTranslation
8632
8465
 
8633
- range: string
8466
+ /**
8467
+ * The respective common advantages text from the source book.
8468
+ */
8469
+ common_advantages?: string
8634
8470
 
8635
- duration: string
8471
+ /**
8472
+ * The respective common disadvantages text from the source book.
8473
+ */
8474
+ common_disadvantages?: string
8636
8475
 
8637
- target: string
8476
+ /**
8477
+ * The respective uncommon advantages text from the source book.
8478
+ */
8479
+ uncommon_advantages?: string
8480
+
8481
+ /**
8482
+ * The respective uncommon disadvantages text from the source book.
8483
+ */
8484
+ uncommon_disadvantages?: string
8485
+
8486
+ /**
8487
+ * Structured description of common names.
8488
+ */
8489
+ common_names: CommonNames
8638
8490
 
8639
8491
  errata?: Errata
8640
8492
  }
8641
8493
 
8642
8494
  /**
8643
- * Measurable parameters of a cantrip.
8495
+ * A native languages with optional specializations.
8644
8496
  */
8645
- export interface CantripPerformanceParameters {
8646
- range: CantripRange
8647
- duration: CantripDuration
8648
- }
8497
+ export interface CultureLanguage {
8498
+ /**
8499
+ * The language’s identifier.
8500
+ */
8501
+ id: Language_ID
8649
8502
 
8650
- export type CantripRange =
8651
- | {
8652
- kind: "Self"
8653
- }
8654
- | {
8655
- kind: "Touch"
8656
- }
8657
- | {
8658
- kind: "Fixed"
8659
- Fixed: FixedRange
8660
- }
8503
+ /**
8504
+ * The language specializations, if any.
8505
+ */
8506
+ specializations?: LanguageSpecialization_ID[]
8507
+ }
8661
8508
 
8662
- export type CantripDuration =
8663
- | {
8664
- kind: "Immediate"
8665
- }
8666
- | {
8667
- kind: "Fixed"
8668
- Fixed: FixedCantripDuration
8669
- }
8670
- | {
8671
- kind: "DuringLovemaking"
8672
- DuringLovemaking: CastingTimeDuringLovemaking
8673
- }
8674
- | {
8675
- kind: "Indefinite"
8676
- Indefinite: IndefiniteCantripDuration
8677
- }
8509
+ export interface Script {
8510
+ /**
8511
+ * The script’s adventure point value
8512
+ */
8513
+ ap_value?: number
8678
8514
 
8679
- export interface FixedCantripDuration {
8680
8515
  /**
8681
- * If the duration is the maximum duration, so it may end earlier.
8516
+ * A list of languages that use this script.
8682
8517
  */
8683
- is_maximum?: boolean
8518
+ associated_languages: Language_ID[]
8684
8519
 
8685
8520
  /**
8686
- * The (unitless) duration.
8521
+ * The continents this language is present on.
8687
8522
  */
8688
- value: number
8523
+ continent: AssociatedContinent[]
8689
8524
 
8690
8525
  /**
8691
- * The duration unit.
8526
+ * References to where in which publications this entry has been defined. Entries may also be added or removed in later printings.
8692
8527
  */
8693
- unit: DurationUnit
8694
- }
8528
+ src: PublicationRefs
8695
8529
 
8696
- export interface IndefiniteCantripDuration {
8697
8530
  /**
8698
8531
  * All translations for the entry, identified by IETF language tag (BCP47).
8699
8532
  */
8700
8533
  translations: {
8701
- [localeId: string]: IndefiniteCantripDurationTranslation
8534
+ [localeId: string]: ScriptTranslation
8702
8535
  }
8703
8536
  }
8704
8537
 
8705
- export interface IndefiniteCantripDurationTranslation {
8538
+ /**
8539
+ * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
8540
+ */
8541
+ export type Script_ID = string
8542
+
8543
+ export interface ScriptTranslation {
8706
8544
  /**
8707
- * A description of the duration.
8545
+ * The script’s name.
8708
8546
  */
8709
- description: ResponsiveText
8710
- }
8547
+ name: string
8711
8548
 
8712
- /**
8713
- * A note specifying the dissemination of the cantrip in different traditions. Sometimes a cantrip is exclusively available to one or more specific traditions, but usually one the academies and traditions are listed the cantrip is most commonly teached in.
8714
- */
8715
- export type CantripNote =
8716
- | {
8717
- kind: "Exclusive"
8718
- Exclusive: ExclusiveCantripNote
8719
- }
8720
- | {
8721
- kind: "Common"
8722
- Common: CommonCantripNotes
8723
- }
8549
+ /**
8550
+ * A list of alternative names.
8551
+ */
8552
+ alternative_names?: AlternativeName[]
8724
8553
 
8725
- export interface ExclusiveCantripNote {
8726
8554
  /**
8727
- * The traditions the cantrip is exclusively available to.
8555
+ * The description of the alphabet.
8728
8556
  */
8729
- traditions: MagicalTradition_ID[]
8557
+ alphabet?: string
8558
+
8559
+ errata?: Errata
8730
8560
  }
8731
8561
 
8732
- export interface CommonCantripNotes {
8562
+ /**
8563
+ * If the area knowledge has a fixed value or can be adjusted.
8564
+ */
8565
+ export interface AreaKnowledge {
8733
8566
  /**
8734
- * The academies and traditions the cantrip is commonly teached in.
8567
+ * `true` if the area knowledge has a fixed value, `false` if it can be adjusted.
8735
8568
  */
8736
- list: CommonCantripNote[]
8569
+ is_fixed: boolean
8737
8570
  }
8738
8571
 
8739
- export type CommonCantripNote =
8740
- | {
8741
- kind: "Academy"
8742
- Academy: Curriculum_ID
8743
- }
8744
- | {
8745
- kind: "Tradition"
8746
- Tradition: CommonCantripTraditionNote
8747
- }
8748
-
8749
- export interface CommonCantripTraditionNote {
8572
+ export interface SocialStatus {
8750
8573
  /**
8751
- * The magical traditions identifier.
8574
+ * The social statusposition. The higher the position, the more powerful the social status. This has to be a unique value.
8752
8575
  */
8753
- id: MagicalTradition_ID
8576
+ position: number
8754
8577
 
8755
8578
  /**
8756
8579
  * All translations for the entry, identified by IETF language tag (BCP47).
8757
8580
  */
8758
- translations?: {
8759
- [localeId: string]: CommonCantripTraditionNoteTranslation
8581
+ translations: {
8582
+ [localeId: string]: SocialStatusTranslation
8760
8583
  }
8761
8584
  }
8762
8585
 
8763
- export interface CommonCantripTraditionNoteTranslation {
8764
- /**
8765
- * A note, appended to the generated string in parenthesis.
8766
- */
8767
- note: string
8768
- }
8769
-
8770
8586
  /**
8771
- * Buy curses for a specific amount of AP.
8587
+ * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
8772
8588
  */
8773
- export interface CursesOptions {
8589
+ export type SocialStatus_ID = string
8590
+
8591
+ export interface SocialStatusTranslation {
8774
8592
  /**
8775
- * The AP value you can buy curses for.
8593
+ * The social status’ name.
8776
8594
  */
8777
- ap_value: number
8595
+ name: string
8778
8596
  }
8779
8597
 
8780
8598
  /**
8781
- * Buy skills for a specific amount of AP.
8599
+ * 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).
8782
8600
  */
8783
- export interface SkillsOptions {
8784
- /**
8601
+ export type CommonProfessions =
8602
+ | {
8603
+ kind: "Plain"
8604
+ Plain: PlainCommonProfessions
8605
+ }
8606
+ | {
8607
+ kind: "Grouped"
8608
+ Grouped: GroupedCommonProfessions
8609
+ }
8610
+
8611
+ export type PlainCommonProfessions = CommonProfessionConstraints<Profession_ID>
8612
+
8613
+ /**
8614
+ * A list of professions. The filter specifies how the list is applied to all mundane professions.
8615
+ */
8616
+ export interface CommonProfessionConstraints<Constraint> {
8617
+ /**
8618
+ * The list of constraints.
8619
+ */
8620
+ constraints: Constraint[]
8621
+
8622
+ /**
8623
+ * 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.
8624
+ */
8625
+ operation: CommonProfessionConstraintsOperation
8626
+ }
8627
+
8628
+ /**
8629
+ * 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.
8630
+ */
8631
+ export type CommonProfessionConstraintsOperation =
8632
+ | {
8633
+ kind: "Intersection"
8634
+ }
8635
+ | {
8636
+ kind: "Difference"
8637
+ }
8638
+
8639
+ /**
8640
+ * Lists of professions by group.
8641
+ */
8642
+ export interface GroupedCommonProfessions {
8643
+ mundane?: CommonProfessionConstraints<MundaneCommonProfessionConstraint>
8644
+ magic?: CommonProfessionConstraints<MagicCommonProfessionConstraint>
8645
+ blessed?: CommonProfessionConstraints<BlessedCommonProfessionConstraint>
8646
+ }
8647
+
8648
+ export type MundaneCommonProfessionConstraint =
8649
+ | {
8650
+ kind: "Profession"
8651
+ Profession: ProfessionConstraint
8652
+ }
8653
+
8654
+ export interface ProfessionConstraint {
8655
+ /**
8656
+ * The profession’s identifier.
8657
+ */
8658
+ id: Profession_ID
8659
+
8660
+ /**
8661
+ * Some profession variants are more common than others. There may be cultures where some variants are not represented at all.
8662
+ */
8663
+ weighted_variants?: Weighted<ProfessionVariant_ID>
8664
+
8665
+ /**
8666
+ * Some professions may be found in a culture, but are not that common.
8667
+ */
8668
+ rarity?: Rarity
8669
+ }
8670
+
8671
+ /**
8672
+ * 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.
8673
+ */
8674
+ export interface Weighted<ProfessionOrVariant> {
8675
+ /**
8676
+ * The list of more common professions or profession variants.
8677
+ */
8678
+ elements: ProfessionOrVariant[]
8679
+
8680
+ /**
8681
+ * The list of more common professions or profession variants.
8682
+ */
8683
+ weight: CommonnessWeight
8684
+ }
8685
+
8686
+ /**
8687
+ * 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`).
8688
+ */
8689
+ export type CommonnessWeight =
8690
+ | {
8691
+ kind: "Mostly"
8692
+ }
8693
+ | {
8694
+ kind: "Only"
8695
+ }
8696
+
8697
+ export interface ProfessionVariant {
8698
+ /**
8699
+ * The associated profession package.
8700
+ */
8701
+ profession_package: ProfessionPackage_ID
8702
+
8703
+ /**
8704
+ * The AP value you have to pay for the package variant. Some variants may reduce the AP value of the base package.
8705
+ */
8706
+ ap_value?: number
8707
+
8708
+ /**
8709
+ * 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.
8710
+ */
8711
+ prerequisites?: ProfessionPrerequisites
8712
+
8713
+ /**
8714
+ * 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.
8715
+ */
8716
+ options?: ProfessionVariantPackageOptions
8717
+
8718
+ /**
8719
+ * Any special abilities the profession receives from the package variant.
8720
+ */
8721
+ special_abilities?: ProfessionVariantSpecialAbility[]
8722
+
8723
+ /**
8724
+ * Provides ratings for the combat techniques that the hero receives from the package variant.
8725
+ */
8726
+ combat_techniques?: CombatTechniqueRating[]
8727
+
8728
+ /**
8729
+ * The skill ratings the package variant grants to the hero.
8730
+ */
8731
+ skills?: SkillRating[]
8732
+
8733
+ /**
8734
+ * 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.
8735
+ */
8736
+ spells?: MagicalSkillRating[]
8737
+
8738
+ /**
8739
+ * Clerical profession variants receive these liturgical chants at the listed skill ratings. These liturgical chants are considered activated.
8740
+ */
8741
+ liturgical_chants?: LiturgicalChantRating[]
8742
+
8743
+ /**
8744
+ * All translations for the entry, identified by IETF language tag (BCP47).
8745
+ */
8746
+ translations: {
8747
+ [localeId: string]: ProfessionVariantTranslation
8748
+ }
8749
+ }
8750
+
8751
+ /**
8752
+ * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
8753
+ */
8754
+ export type ProfessionVariant_ID = string
8755
+
8756
+ export interface ProfessionVariantTranslation {
8757
+ /**
8758
+ * The profession variant’s name.
8759
+ */
8760
+ name: ProfessionName
8761
+
8762
+ /**
8763
+ * A text that replaces the generated text for the profession variant.
8764
+ */
8765
+ full_text?: string
8766
+
8767
+ /**
8768
+ * A text that is appended to the generated text for the profession variant.
8769
+ */
8770
+ concluding_text?: string
8771
+ }
8772
+
8773
+ /**
8774
+ * 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.
8775
+ */
8776
+ export interface ProfessionVariantPackageOptions {
8777
+ skill_specialization?: VariantOptionAction<SkillSpecializationOptions>
8778
+ languages_scripts?: VariantOptionAction<LanguagesScriptsOptions>
8779
+ combat_techniques?: VariantOptionAction<CombatTechniquesOptions>
8780
+ cantrips?: VariantOptionAction<CantripsOptions>
8781
+ curses?: VariantOptionAction<CursesOptions>
8782
+ skills?: VariantOptionAction<SkillsOptions>
8783
+ liturgies?: VariantOptionAction<LiturgiesOptions>
8784
+ }
8785
+
8786
+ export type VariantOptionAction<T> =
8787
+ | {
8788
+ kind: "Remove"
8789
+ }
8790
+ | {
8791
+ kind: "Override"
8792
+ Override: T
8793
+ }
8794
+
8795
+ /**
8796
+ * 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.
8797
+ */
8798
+ export type SkillSpecializationOptions =
8799
+ | {
8800
+ kind: "Specific"
8801
+ Specific: SpecificSkillSpecializationOptions
8802
+ }
8803
+ | {
8804
+ kind: "Group"
8805
+ Group: SkillGroup_ID
8806
+ }
8807
+
8808
+ /**
8809
+ * Select an application from a skill or from one of a list of skills where you get a skill specialization for.
8810
+ */
8811
+ export interface SpecificSkillSpecializationOptions {
8812
+ /**
8813
+ * Possible skill(s) to get a skill specialization for.
8814
+ */
8815
+ options: Skill_ID[]
8816
+ }
8817
+
8818
+ /**
8819
+ * Buy languages and scripts for a specific amount of AP.
8820
+ */
8821
+ export interface LanguagesScriptsOptions {
8822
+ /**
8823
+ * The AP value you can buy languages and scripts for.
8824
+ */
8825
+ ap_value: number
8826
+ }
8827
+
8828
+ /**
8829
+ * Select one or more combat techniques you get a CtR bonus for.
8830
+ */
8831
+ export interface CombatTechniquesOptions {
8832
+ /**
8833
+ * 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.
8834
+ */
8835
+ fixed: RatingForCombatTechniquesNumber[]
8836
+
8837
+ /**
8838
+ * Define if after the fixed selections the remaining unselected combat techniques will receive a certain rating bonus as well.
8839
+ */
8840
+ rest_rating_modifier?: number
8841
+
8842
+ /**
8843
+ * The list of combat techniques to choose from.
8844
+ */
8845
+ options: CombatTechniqueIdentifier[]
8846
+ }
8847
+
8848
+ export interface RatingForCombatTechniquesNumber {
8849
+ /**
8850
+ * The number of selectable combat techniques.
8851
+ */
8852
+ number: number
8853
+
8854
+ /**
8855
+ * The rating bonus provided for the selected combat technique(s).
8856
+ *
8857
+ * **Note:** This is a rating *bonus*, so it will be *added* to the default value of 6.
8858
+ */
8859
+ rating_modifier: number
8860
+ }
8861
+
8862
+ /**
8863
+ * Select one or more cantrips you receive.
8864
+ */
8865
+ export interface CantripsOptions {
8866
+ /**
8867
+ * The number of selectable cantrips.
8868
+ */
8869
+ number: number
8870
+
8871
+ /**
8872
+ * The list of cantrips to choose from.
8873
+ */
8874
+ options: Cantrip_ID[]
8875
+ }
8876
+
8877
+ export interface Cantrip {
8878
+ /**
8879
+ * Measurable parameters of a cantrip.
8880
+ */
8881
+ parameters: CantripPerformanceParameters
8882
+
8883
+ /**
8884
+ * The target category – the kind of creature or object – the skill affects.
8885
+ */
8886
+ target: AffectedTargetCategories
8887
+
8888
+ /**
8889
+ * The associated property.
8890
+ */
8891
+ property: Property_ID
8892
+
8893
+ /**
8894
+ * 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.
8895
+ */
8896
+ note?: CantripNote
8897
+
8898
+ /**
8899
+ * References to where in which publications this entry has been defined. Entries may also be added or removed in later printings.
8900
+ */
8901
+ src: PublicationRefs
8902
+
8903
+ /**
8904
+ * All translations for the entry, identified by IETF language tag (BCP47).
8905
+ */
8906
+ translations: {
8907
+ [localeId: string]: CantripTranslation
8908
+ }
8909
+ }
8910
+
8911
+ /**
8912
+ * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
8913
+ */
8914
+ export type Cantrip_ID = string
8915
+
8916
+ export interface CantripTranslation {
8917
+ /**
8918
+ * The cantrip’s name.
8919
+ */
8920
+ name: string
8921
+
8922
+ /**
8923
+ * The effect description.
8924
+ */
8925
+ effect: string
8926
+
8927
+ range: string
8928
+
8929
+ duration: string
8930
+
8931
+ target: string
8932
+
8933
+ errata?: Errata
8934
+ }
8935
+
8936
+ /**
8937
+ * Measurable parameters of a cantrip.
8938
+ */
8939
+ export interface CantripPerformanceParameters {
8940
+ range: CantripRange
8941
+ duration: CantripDuration
8942
+ }
8943
+
8944
+ export type CantripRange =
8945
+ | {
8946
+ kind: "Self"
8947
+ }
8948
+ | {
8949
+ kind: "Touch"
8950
+ }
8951
+ | {
8952
+ kind: "Fixed"
8953
+ Fixed: FixedRange
8954
+ }
8955
+
8956
+ export type CantripDuration =
8957
+ | {
8958
+ kind: "Immediate"
8959
+ }
8960
+ | {
8961
+ kind: "Fixed"
8962
+ Fixed: FixedCantripDuration
8963
+ }
8964
+ | {
8965
+ kind: "DuringLovemaking"
8966
+ DuringLovemaking: CastingTimeDuringLovemaking
8967
+ }
8968
+ | {
8969
+ kind: "Indefinite"
8970
+ Indefinite: IndefiniteCantripDuration
8971
+ }
8972
+
8973
+ export interface FixedCantripDuration {
8974
+ /**
8975
+ * If the duration is the maximum duration, so it may end earlier.
8976
+ */
8977
+ is_maximum?: boolean
8978
+
8979
+ /**
8980
+ * The (unitless) duration.
8981
+ */
8982
+ value: number
8983
+
8984
+ /**
8985
+ * The duration unit.
8986
+ */
8987
+ unit: DurationUnit
8988
+ }
8989
+
8990
+ export interface IndefiniteCantripDuration {
8991
+ /**
8992
+ * All translations for the entry, identified by IETF language tag (BCP47).
8993
+ */
8994
+ translations: {
8995
+ [localeId: string]: IndefiniteCantripDurationTranslation
8996
+ }
8997
+ }
8998
+
8999
+ export interface IndefiniteCantripDurationTranslation {
9000
+ /**
9001
+ * A description of the duration.
9002
+ */
9003
+ description: ResponsiveText
9004
+ }
9005
+
9006
+ /**
9007
+ * 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.
9008
+ */
9009
+ export type CantripNote =
9010
+ | {
9011
+ kind: "Exclusive"
9012
+ Exclusive: ExclusiveCantripNote
9013
+ }
9014
+ | {
9015
+ kind: "Common"
9016
+ Common: CommonCantripNotes
9017
+ }
9018
+
9019
+ export interface ExclusiveCantripNote {
9020
+ /**
9021
+ * The traditions the cantrip is exclusively available to.
9022
+ */
9023
+ traditions: MagicalTradition_ID[]
9024
+ }
9025
+
9026
+ export interface CommonCantripNotes {
9027
+ /**
9028
+ * The academies and traditions the cantrip is commonly teached in.
9029
+ */
9030
+ list: CommonCantripNote[]
9031
+ }
9032
+
9033
+ export type CommonCantripNote =
9034
+ | {
9035
+ kind: "Academy"
9036
+ Academy: Curriculum_ID
9037
+ }
9038
+ | {
9039
+ kind: "Tradition"
9040
+ Tradition: CommonCantripTraditionNote
9041
+ }
9042
+
9043
+ export interface CommonCantripTraditionNote {
9044
+ /**
9045
+ * The magical tradition’s identifier.
9046
+ */
9047
+ id: MagicalTradition_ID
9048
+
9049
+ /**
9050
+ * All translations for the entry, identified by IETF language tag (BCP47).
9051
+ */
9052
+ translations?: {
9053
+ [localeId: string]: CommonCantripTraditionNoteTranslation
9054
+ }
9055
+ }
9056
+
9057
+ export interface CommonCantripTraditionNoteTranslation {
9058
+ /**
9059
+ * A note, appended to the generated string in parenthesis.
9060
+ */
9061
+ note: string
9062
+ }
9063
+
9064
+ /**
9065
+ * Buy curses for a specific amount of AP.
9066
+ */
9067
+ export interface CursesOptions {
9068
+ /**
9069
+ * The AP value you can buy curses for.
9070
+ */
9071
+ ap_value: number
9072
+ }
9073
+
9074
+ /**
9075
+ * Buy skills for a specific amount of AP.
9076
+ */
9077
+ export interface SkillsOptions {
9078
+ /**
8785
9079
  * If specified, you may only choose from skills of the specified group.
8786
9080
  */
8787
9081
  group: SkillGroup_ID
8788
9082
 
9083
+ /**
9084
+ * The list of specific skills to distribute AP to.
9085
+ */
9086
+ specific?: Skill_ID[]
9087
+
8789
9088
  /**
8790
9089
  * The AP value you can buy skills for.
8791
9090
  */
@@ -8802,6 +9101,26 @@ export interface LiturgiesOptions {
8802
9101
  ap_value: number
8803
9102
  }
8804
9103
 
9104
+ export interface ProfessionVariantSpecialAbility {
9105
+ /**
9106
+ * If the selection is added to the base profession or if it removes a selection from the base profession with the same values.
9107
+ */
9108
+ action: VariantSpecialAbilityAction
9109
+
9110
+ /**
9111
+ * The special ability to add or remove.
9112
+ */
9113
+ value: ProfessionSpecialAbility
9114
+ }
9115
+
9116
+ export type VariantSpecialAbilityAction =
9117
+ | {
9118
+ kind: "Remove"
9119
+ }
9120
+ | {
9121
+ kind: "Override"
9122
+ }
9123
+
8805
9124
  export type ProfessionSpecialAbility =
8806
9125
  | {
8807
9126
  kind: "Constant"
@@ -8816,7 +9135,7 @@ export interface ConstantProfessionSpecialAbility {
8816
9135
  /**
8817
9136
  * The identifier of the special ability to grant.
8818
9137
  */
8819
- id: SpecialAbilityIdentifier
9138
+ id: ProfessionSpecialAbilityIdentifier
8820
9139
 
8821
9140
  /**
8822
9141
  * The level of the received special ability. If not specified and the special ability has levels, level 1 is used automatically.
@@ -8829,7 +9148,7 @@ export interface ConstantProfessionSpecialAbility {
8829
9148
  options?: RequirableSelectOptionIdentifier[]
8830
9149
  }
8831
9150
 
8832
- export type SpecialAbilityIdentifier =
9151
+ export type ProfessionSpecialAbilityIdentifier =
8833
9152
  | {
8834
9153
  kind: "AdvancedCombatSpecialAbility"
8835
9154
  AdvancedCombatSpecialAbility: AdvancedCombatSpecialAbility_ID
@@ -9034,6 +9353,10 @@ export type SpecialAbilityIdentifier =
9034
9353
  kind: "WeaponEnchantment"
9035
9354
  WeaponEnchantment: WeaponEnchantment_ID
9036
9355
  }
9356
+ | {
9357
+ kind: "Enhancement"
9358
+ Enhancement: Enhancement_ID
9359
+ }
9037
9360
 
9038
9361
  /**
9039
9362
  * Magical Special Abilities that are being unlocked by Magic Style Special Abilities.
@@ -10838,7 +11161,7 @@ export interface GenMeleeWeapon<Damage> {
10838
11161
  /**
10839
11162
  * The reach of the weapon.
10840
11163
  */
10841
- reach?: Reach_ID
11164
+ reach?: Reach_ID[]
10842
11165
 
10843
11166
  /**
10844
11167
  * The length of the weapon in cm/halffingers.
@@ -10916,6 +11239,11 @@ export type AttackModifier = number
10916
11239
  export type ParryModifier = number
10917
11240
 
10918
11241
  export interface Reach {
11242
+ /**
11243
+ * 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.
11244
+ */
11245
+ position: number
11246
+
10919
11247
  /**
10920
11248
  * All translations for the entry, identified by IETF language tag (BCP47).
10921
11249
  */
@@ -10981,6 +11309,23 @@ export interface MeleeDamage {
10981
11309
  flat?: number
10982
11310
  }
10983
11311
 
11312
+ export interface Dice {
11313
+ /**
11314
+ * Number of dice of the same type. Example: 2 in 2D6.
11315
+ */
11316
+ number: number
11317
+
11318
+ /**
11319
+ * Number of sides on every die. Example: 6 in 2D6.
11320
+ */
11321
+ sides: DieType
11322
+ }
11323
+
11324
+ /**
11325
+ * Number of sides on every die. Example: 6 in 2D6.
11326
+ */
11327
+ export type DieType = number
11328
+
10984
11329
  export type RangedWeapon = GenRangedWeapon<RangedDamage>
10985
11330
 
10986
11331
  export interface GenRangedWeapon<Damage> {
@@ -11002,7 +11347,7 @@ export interface GenRangedWeapon<Damage> {
11002
11347
  /**
11003
11348
  * The needed ammunition.
11004
11349
  */
11005
- ammunition?: Ammunition_ID
11350
+ ammunition?: AmmunitionishIdentifier
11006
11351
 
11007
11352
  /**
11008
11353
  * The length of the weapon in cm/halffingers.
@@ -11039,6 +11384,16 @@ export interface RangeBrackets {
11039
11384
  far: number
11040
11385
  }
11041
11386
 
11387
+ export type AmmunitionishIdentifier =
11388
+ | {
11389
+ kind: "Ammunition"
11390
+ Ammunition: Ammunition_ID
11391
+ }
11392
+ | {
11393
+ kind: "Weapon"
11394
+ Weapon: Weapon_ID
11395
+ }
11396
+
11042
11397
  export interface Ammunition {
11043
11398
  /**
11044
11399
  * The cost in silverthalers.
@@ -16591,6 +16946,11 @@ export interface FixedMagicalMelodyCost {
16591
16946
  * The (temporary) AE cost value.
16592
16947
  */
16593
16948
  value: number
16949
+
16950
+ /**
16951
+ * The interval at which to pay half the initial cost.
16952
+ */
16953
+ interval?: DurationUnitValue
16594
16954
  }
16595
16955
 
16596
16956
  export interface FirstPersonMagicalMelodyCost {
@@ -17380,6 +17740,10 @@ export type GeodeRitualDuration =
17380
17740
  export type GeodeRitualPrerequisites = PlainPrerequisites<GeodeRitualPrerequisiteGroup>
17381
17741
 
17382
17742
  export type GeodeRitualPrerequisiteGroup =
17743
+ | {
17744
+ kind: "Activatable"
17745
+ Activatable: ActivatablePrerequisite
17746
+ }
17383
17747
  | {
17384
17748
  kind: "Influence"
17385
17749
  Influence: InfluencePrerequisite
@@ -17768,199 +18132,218 @@ export interface LiturgicalChantRating {
17768
18132
 
17769
18133
  export type LiturgyIdentifier =
17770
18134
  | {
17771
- kind: "LiturgicalChant"
17772
- LiturgicalChant: LiturgicalChant_ID
18135
+ kind: "LiturgicalChant"
18136
+ LiturgicalChant: LiturgicalChant_ID
18137
+ }
18138
+ | {
18139
+ kind: "Ceremony"
18140
+ Ceremony: Ceremony_ID
18141
+ }
18142
+
18143
+ /**
18144
+ * 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.
18145
+ */
18146
+ export interface ProfessionName {
18147
+ /**
18148
+ * The name from the source publication. This is also used if a character has no specified gender or is neither male nor female.
18149
+ */
18150
+ default: string
18151
+
18152
+ /**
18153
+ * The male name, if different from the default name.
18154
+ */
18155
+ male?: string
18156
+
18157
+ /**
18158
+ * The female name, if different from the default name.
18159
+ */
18160
+ female?: string
18161
+ }
18162
+
18163
+ /**
18164
+ * Some professions may be found in a culture, but are not that common.
18165
+ */
18166
+ export type Rarity =
18167
+ | {
18168
+ kind: "Rare"
18169
+ }
18170
+ | {
18171
+ kind: "VeryRare"
18172
+ }
18173
+
18174
+ export type MagicCommonProfessionConstraint =
18175
+ | {
18176
+ kind: "Tradition"
18177
+ Tradition: MagicalTraditionConstraint
18178
+ }
18179
+ | {
18180
+ kind: "MagicDilettante"
17773
18181
  }
17774
18182
  | {
17775
- kind: "Ceremony"
17776
- Ceremony: Ceremony_ID
18183
+ kind: "Profession"
18184
+ Profession: ProfessionConstraint
17777
18185
  }
17778
18186
 
17779
- export interface ProfessionVariant {
17780
- /**
17781
- * The associated profession package.
17782
- */
17783
- profession_package: ProfessionPackage_ID
17784
-
18187
+ export interface MagicalTraditionConstraint {
17785
18188
  /**
17786
- * The AP value you have to pay for the package variant. Some variants may reduce the AP value of the base package.
18189
+ * The magical tradition’s identifier.
17787
18190
  */
17788
- ap_value?: number
18191
+ id: MagicalTradition_ID
17789
18192
 
17790
18193
  /**
17791
- * Which prerequisites must be met to buy the stat block? For example, a character might need the advantage Spellcaster or Blessed. Note: the AP cost for a profession package does not include these prerequisites.
18194
+ * Some professions are more common than others. There may be cultures where some professions are not represented at all.
17792
18195
  */
17793
- prerequisites?: ProfessionPrerequisites
18196
+ weighted_professions?: Weighted<Profession_ID>
17794
18197
 
17795
18198
  /**
17796
- * In some areas, the profession package grants a loose set of stats where the player must choose between different options for the profession package. The variant may override or remove those options.
18199
+ * Some traditions may be found in a culture, but are not that common.
17797
18200
  */
17798
- options?: ProfessionVariantPackageOptions
18201
+ rarity?: Rarity
18202
+ }
17799
18203
 
17800
- /**
17801
- * Any special abilities the profession receives from the package variant.
17802
- */
17803
- special_abilities?: ProfessionVariantSpecialAbility[]
18204
+ export type BlessedCommonProfessionConstraint =
18205
+ | {
18206
+ kind: "Tradition"
18207
+ Tradition: BlessedTraditionConstraint
18208
+ }
17804
18209
 
18210
+ export interface BlessedTraditionConstraint {
17805
18211
  /**
17806
- * Provides ratings for the combat techniques that the hero receives from the package variant.
18212
+ * The blessed tradition’s identifier.
17807
18213
  */
17808
- combat_techniques?: CombatTechniqueRating[]
18214
+ id: BlessedTradition_ID
17809
18215
 
17810
18216
  /**
17811
- * The skill ratings the package variant grants to the hero.
18217
+ * Some professions are more common than others. There may be cultures where some professions are not represented at all.
17812
18218
  */
17813
- skills?: SkillRating[]
18219
+ weighted_professions?: Weighted<Profession_ID>
17814
18220
 
17815
18221
  /**
17816
- * The skill ratings a magical profession variant receives for spells; these spells are considered activated. Spells from an unfamiliar Tradition, if any, are identified as such.
18222
+ * Some traditions may be found in a culture, but are not that common.
17817
18223
  */
17818
- spells?: MagicalSkillRating[]
18224
+ rarity?: Rarity
18225
+ }
17819
18226
 
18227
+ /**
18228
+ * Reference to a commonness-rated advantage or disadvantage. Commonness-rating terms used in the source books are strongly recommended, common, uncommon, suggested and unsuitable.
18229
+ */
18230
+ export interface CommonnessRatedAdvantageDisadvantage<Identifier> {
17820
18231
  /**
17821
- * Clerical profession variants receive these liturgical chants at the listed skill ratings. These liturgical chants are considered activated.
18232
+ * The advantage's or disadvantage's identifier.
17822
18233
  */
17823
- liturgical_chants?: LiturgicalChantRating[]
18234
+ id: Identifier
17824
18235
 
17825
18236
  /**
17826
18237
  * All translations for the entry, identified by IETF language tag (BCP47).
17827
18238
  */
17828
- translations: {
17829
- [localeId: string]: ProfessionVariantTranslation
18239
+ translations?: {
18240
+ [localeId: string]: CommonnessRatedAdvantageDisadvantageTranslation
17830
18241
  }
17831
18242
  }
17832
18243
 
17833
- /**
17834
- * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
17835
- */
17836
- export type ProfessionVariant_ID = string
17837
-
17838
- export interface ProfessionVariantTranslation {
18244
+ export interface CommonnessRatedAdvantageDisadvantageTranslation {
17839
18245
  /**
17840
- * The profession variant’s name.
18246
+ * The options the commonness rating applies to.
17841
18247
  */
17842
- name: ProfessionName
18248
+ options: string
18249
+ }
17843
18250
 
18251
+ export type CommonnessRatedSkill = Skill_ID
18252
+
18253
+ export interface CulturalPackageItem {
17844
18254
  /**
17845
- * A text that replaces the generated text for the profession variant.
18255
+ * The skill’s identifier.
17846
18256
  */
17847
- full_text?: string
18257
+ id: Skill_ID
17848
18258
 
17849
18259
  /**
17850
- * A text that is appended to the generated text for the profession variant.
18260
+ * The skill points for the respective skill you get for buying the cultural package.
17851
18261
  */
17852
- concluding_text?: string
18262
+ points: number
17853
18263
  }
17854
18264
 
17855
18265
  /**
17856
- * In some areas, the profession package grants a loose set of stats where the player must choose between different options for the profession package. The variant may override or remove those options.
18266
+ * Description and examples of the area knowledge.
17857
18267
  */
17858
- export interface ProfessionVariantPackageOptions {
17859
- skill_specialization?: VariantOptionAction<SkillSpecializationOptions>
17860
- languages_scripts?: VariantOptionAction<LanguagesScriptsOptions>
17861
- combat_techniques?: VariantOptionAction<CombatTechniquesOptions>
17862
- cantrips?: VariantOptionAction<CantripsOptions>
17863
- curses?: VariantOptionAction<CursesOptions>
17864
- skills?: VariantOptionAction<SkillsOptions>
17865
- liturgies?: VariantOptionAction<LiturgiesOptions>
17866
- }
17867
-
17868
- export type VariantOptionAction<T> =
17869
- | {
17870
- kind: "Remove"
17871
- }
17872
- | {
17873
- kind: "Override"
17874
- Override: T
17875
- }
18268
+ export interface AreaKnowledgeTranslation {
18269
+ /**
18270
+ * The full description without examples in parenthesis.
18271
+ */
18272
+ description: string
17876
18273
 
17877
- export interface ProfessionVariantSpecialAbility {
17878
18274
  /**
17879
- * If the selection is added to the base profession or if it removes a selection from the base profession with the same values.
18275
+ * A shorter version of the description, used in input fields and other UI elements where the space might be to small to use the full description.
17880
18276
  */
17881
- action: VariantSpecialAbilityAction
18277
+ abbreviated: string
17882
18278
 
17883
18279
  /**
17884
- * The special ability to add or remove.
18280
+ * Examples of areas, if applicable.
17885
18281
  */
17886
- value: ProfessionSpecialAbility
18282
+ examples?: AreaKnowledgeExample[]
17887
18283
  }
17888
18284
 
17889
- export type VariantSpecialAbilityAction =
17890
- | {
17891
- kind: "Remove"
17892
- }
17893
- | {
17894
- kind: "Override"
17895
- }
18285
+ export interface AreaKnowledgeExample {
18286
+ area: string
18287
+ }
17896
18288
 
17897
18289
  /**
17898
- * The name of the profession that may have sex-specific names. Useful if the term in generell is different (i.e. actor/actress) or if the language uses gendered nouns. The default name is also used in case neither the male nor female name strictly applies.
18290
+ * Structured description of common names.
17899
18291
  */
17900
- export interface ProfessionName {
18292
+ export interface CommonNames {
17901
18293
  /**
17902
- * The name from the source publication. This is also used if a character has no specified gender or is neither male nor female.
18294
+ * First names can be gender-neutral, but they can also be for a specific binary sex. They are sorted into groups.
17903
18295
  */
17904
- default: string
18296
+ first_name_groups?: CommonNameGroup[]
17905
18297
 
17906
18298
  /**
17907
- * The male name, if different from the default name.
18299
+ * Last names can be gender-neutral, like family names, but they can also be for a specific binary sex. They are sorted into groups.
17908
18300
  */
17909
- male?: string
18301
+ last_name_groups?: CommonNameGroup[]
17910
18302
 
17911
18303
  /**
17912
- * The female name, if different from the default name.
18304
+ * Special naming rules.
17913
18305
  */
17914
- female?: string
18306
+ naming_rules?: string
17915
18307
  }
17916
18308
 
17917
- /**
17918
- * A prerequisite that is either not verifyable in general – e.g. roleplay or background information – or the referenced entities were not made available for use yet – e.g. races –, but which should be displayed, because it is part of the prerequisite string from the sources.
17919
- */
17920
- export interface TextPrerequisite {
17921
- /**
17922
- * The method how the prerequisite should be verified. Either is passes all verification text or it denies all verification tests. The latter results in the associated entry to never be available for purchase.
17923
- */
17924
- verification: TextVerificationRule
17925
-
18309
+ export interface CommonNameGroup {
17926
18310
  /**
17927
- * If the text is a sentence or sentence-like fragment, this property ensures it is integrated into the prerequisite string correctly.
17928
- *
17929
- * A standalone sentence is connected to the previous prerequisite string with a period and a period is also added at the end of the sentence automatically, if it is not present. A connected sentence is connected to the previous prerequisite string with a semicolon and a period is not added to the end of the sentence. In this case, if there are prerequisites after this one, they will be connected using a semicolon again, unless a different punctuation mark is present at the end of the given text.
18311
+ * The group label.
17930
18312
  */
17931
- sentence_type?: SentenceType
18313
+ label: string
17932
18314
 
17933
18315
  /**
17934
- * If the text does not represent an actual prerequisite but a prerequisite for the use of certain aspects or the entry the prerequisite is associated with, or something like that, this property is set to `true`.
17935
- *
17936
- * If all prerequisites of an entry are marked as meta, the entry is considered to have no prerequisites and thus the string `none` must be rendered before the list of meta prerequisites.
17937
- *
17938
- * This is the only use case for this property.
18316
+ * The binary sex if the group is only for a certain binary sex.
17939
18317
  */
17940
- is_meta?: boolean
18318
+ sex?: BinarySex
17941
18319
 
17942
18320
  /**
17943
- * All translations for the entry, identified by IETF language tag (BCP47).
18321
+ * The names from the group.
17944
18322
  */
17945
- translations: {
17946
- [localeId: string]: TextPrerequisiteTranslation
17947
- }
18323
+ names: CommonName[]
17948
18324
  }
17949
18325
 
17950
- export interface TextPrerequisiteTranslation {
18326
+ export interface CommonName {
18327
+ name: string
18328
+
17951
18329
  /**
17952
- * The displayed text.
18330
+ * Additional information about the name, appended in parenthesis.
17953
18331
  */
17954
- text: string
18332
+ note?: string
17955
18333
  }
17956
18334
 
17957
- export type TextVerificationRule =
17958
- | {
17959
- kind: "Pass"
17960
- }
17961
- | {
17962
- kind: "Deny"
17963
- }
18335
+ /**
18336
+ * In some areas, the profession package grants a loose set of stats where the player must choose between different options for the profession package.
18337
+ */
18338
+ export interface ProfessionPackageOptions {
18339
+ skill_specialization?: SkillSpecializationOptions
18340
+ languages_scripts?: LanguagesScriptsOptions
18341
+ combat_techniques?: CombatTechniquesOptions
18342
+ cantrips?: CantripsOptions
18343
+ curses?: CursesOptions
18344
+ skills?: SkillsOptions
18345
+ liturgies?: LiturgiesOptions
18346
+ }
17964
18347
 
17965
18348
  export interface InfluenceEffect {
17966
18349
  /**
@@ -18479,352 +18862,285 @@ export type SexualCharacteristic =
18479
18862
  kind: "Vagina"
18480
18863
  }
18481
18864
 
18482
- export interface AlternativeName {
18483
- /**
18484
- * An alternative name of the disease.
18485
- */
18486
- name: string
18487
-
18488
- /**
18489
- * The region where this alternative name is used.
18490
- */
18491
- region?: string
18492
- }
18493
-
18494
- export interface Script {
18495
- /**
18496
- * The script’s adventure point value
18497
- */
18498
- ap_value?: number
18865
+ export type DerivedCharacteristicModifierOperation =
18866
+ | {
18867
+ kind: "Addition"
18868
+ }
18869
+ | {
18870
+ kind: "Subtraction"
18871
+ }
18872
+ | {
18873
+ kind: "Multiplication"
18874
+ }
18875
+ | {
18876
+ kind: "Division"
18877
+ }
18499
18878
 
18500
- /**
18501
- * A list of languages that use this script.
18502
- */
18503
- associated_languages: Language_ID[]
18879
+ export type DerivedCharacteristicPrerequisites = PlainPrerequisites<DerivedCharacteristicPrerequisiteGroup>
18504
18880
 
18505
- /**
18506
- * The continents this language is present on.
18507
- */
18508
- continent: AssociatedContinent[]
18881
+ export type DerivedCharacteristicPrerequisiteGroup =
18882
+ | {
18883
+ kind: "Rule"
18884
+ Rule: RulePrerequisite
18885
+ }
18886
+ | {
18887
+ kind: "BlessedTradition"
18888
+ BlessedTradition: BlessedTraditionPrerequisite
18889
+ }
18890
+ | {
18891
+ kind: "MagicalTradition"
18892
+ MagicalTradition: MagicalTraditionPrerequisite
18893
+ }
18509
18894
 
18895
+ export interface BlessedTraditionPrerequisite {
18510
18896
  /**
18511
- * References to where in which publications this entry has been defined. Entries may also be added or removed in later printings.
18897
+ * The blessed tradition prerequisite may only be satified if the blessed tradition is either church or shamanistic.
18512
18898
  */
18513
- src: PublicationRefs
18899
+ restriction?: BlessedTraditionPrerequisiteRestriction
18900
+
18901
+ display_option?: DisplayOption
18902
+ }
18903
+
18904
+ /**
18905
+ * The blessed tradition prerequisite may only be satified if the blessed tradition is either church or shamanistic.
18906
+ */
18907
+ export type BlessedTraditionPrerequisiteRestriction =
18908
+ | {
18909
+ kind: "Church"
18910
+ }
18911
+ | {
18912
+ kind: "Shamanistic"
18913
+ }
18514
18914
 
18915
+ export interface MagicalTraditionPrerequisite {
18515
18916
  /**
18516
- * All translations for the entry, identified by IETF language tag (BCP47).
18917
+ * The magical tradition prerequisite may only be satified if the magical tradition can learn rituals or can bind familiars.
18517
18918
  */
18518
- translations: {
18519
- [localeId: string]: ScriptTranslation
18520
- }
18919
+ restriction?: MagicalTraditionPrerequisiteRestriction
18920
+
18921
+ display_option?: DisplayOption
18521
18922
  }
18522
18923
 
18523
18924
  /**
18524
- * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
18925
+ * The magical tradition prerequisite may only be satified if the magical tradition can learn rituals or can bind familiars.
18525
18926
  */
18526
- export type Script_ID = string
18927
+ export type MagicalTraditionPrerequisiteRestriction =
18928
+ | {
18929
+ kind: "CanLearnRituals"
18930
+ }
18931
+ | {
18932
+ kind: "CanBindFamiliars"
18933
+ }
18527
18934
 
18528
- export interface ScriptTranslation {
18935
+ export interface CalculationTranslation {
18529
18936
  /**
18530
- * The script’s name.
18937
+ * The default calculation string.
18531
18938
  */
18532
- name: string
18939
+ default: string
18533
18940
 
18534
18941
  /**
18535
- * A list of alternative names.
18942
+ * The calculation string if only half of the primary attribute is used.
18536
18943
  */
18537
- alternative_names?: AlternativeName[]
18944
+ half_primary?: string
18538
18945
 
18539
18946
  /**
18540
- * The description of the alphabet.
18947
+ * The calculation string if no primary attribute is used.
18541
18948
  */
18542
- alphabet?: string
18543
-
18544
- errata?: Errata
18949
+ no_primary?: string
18545
18950
  }
18546
18951
 
18547
18952
  /**
18548
- * If the area knowledge has a fixed value or can be adjusted.
18953
+ * An advantage or disadvantage that is automatically applied to the character after selecting the race. This does only work for advantages or disadvantages with no further configuration such as level or special selection.
18549
18954
  */
18550
- export interface AreaKnowledge {
18955
+ export interface AutomaticAdvantageDisadvantage<Identifier> {
18551
18956
  /**
18552
- * `true` if the area knowledge has a fixed value, `false` if it can be adjusted.
18957
+ * The automatic advantage or disadvantage.
18553
18958
  */
18554
- is_fixed: boolean
18959
+ id: Identifier
18555
18960
  }
18556
18961
 
18557
- export interface SocialStatus {
18962
+ /**
18963
+ * Configuration for random weight generation.
18964
+ */
18965
+ export interface RandomWeightGeneration {
18558
18966
  /**
18559
- * The social status’ position. The higher the position, the more powerful the social status. This has to be a unique value.
18967
+ * The base value used for random weight. The height subtrahend; in case of `Height - 110 + 2D6` it is `110`.
18560
18968
  */
18561
- position: number
18969
+ base: number
18562
18970
 
18563
18971
  /**
18564
- * All translations for the entry, identified by IETF language tag (BCP47).
18972
+ * The dice used for random weight.
18565
18973
  */
18566
- translations: {
18567
- [localeId: string]: SocialStatusTranslation
18568
- }
18974
+ random: WeightDice[]
18569
18975
  }
18570
18976
 
18571
- /**
18572
- * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
18573
- */
18574
- export type SocialStatus_ID = string
18575
-
18576
- export interface SocialStatusTranslation {
18977
+ export interface WeightDice {
18577
18978
  /**
18578
- * The social status’ name.
18979
+ * Number of dice of the same type. Example: 2 in 2D6.
18579
18980
  */
18580
- name: string
18581
- }
18582
-
18583
- /**
18584
- * A list of professions that are typical for the culture, as well as professions that are rarely practiced or encountered in the culture. The list is either defined by group (as multiple lists) or plain (as a single list).
18585
- */
18586
- export type CommonProfessions =
18587
- | {
18588
- kind: "Plain"
18589
- Plain: PlainCommonProfessions
18590
- }
18591
- | {
18592
- kind: "Grouped"
18593
- Grouped: GroupedCommonProfessions
18594
- }
18595
-
18596
- export type PlainCommonProfessions = CommonProfessionConstraints<Profession_ID>
18981
+ number: number
18597
18982
 
18598
- /**
18599
- * A list of professions. The filter specifies how the list is applied to all mundane professions.
18600
- */
18601
- export interface CommonProfessionConstraints<Constraint> {
18602
18983
  /**
18603
- * The list of constraints.
18984
+ * Number of sides on every die. Example: 6 in 2D6.
18604
18985
  */
18605
- constraints: Constraint[]
18986
+ sides: DieType
18606
18987
 
18607
18988
  /**
18608
- * This defines how the list of constraints should be offset against the list of all mundane professions: Either only the professions are kept that intersect with the constraints or only the professions are kept that are different from the constraints.
18989
+ * The strategy how to offset the randomly generated values against the base value. Either they are all added or subtracted or even results are added and odd results are subtracted.
18609
18990
  */
18610
- operation: CommonProfessionConstraintsOperation
18991
+ offset_strategy: WeightDiceOffsetStrategy
18611
18992
  }
18612
18993
 
18613
18994
  /**
18614
- * This defines how the list of constraints should be offset against the list of all mundane professions: Either only the professions are kept that intersect with the constraints or only the professions are kept that are different from the constraints.
18995
+ * The strategy how to offset the randomly generated values against the base value. Either they are all added or subtracted or even results are added and odd results are subtracted.
18615
18996
  */
18616
- export type CommonProfessionConstraintsOperation =
18997
+ export type WeightDiceOffsetStrategy =
18617
18998
  | {
18618
- kind: "Intersection"
18999
+ kind: "Add"
18619
19000
  }
18620
19001
  | {
18621
- kind: "Difference"
19002
+ kind: "Subtract"
18622
19003
  }
18623
-
18624
- /**
18625
- * Lists of professions by group.
18626
- */
18627
- export interface GroupedCommonProfessions {
18628
- mundane?: CommonProfessionConstraints<MundaneCommonProfessionConstraint>
18629
- magic?: CommonProfessionConstraints<MagicCommonProfessionConstraint>
18630
- blessed?: CommonProfessionConstraints<BlessedCommonProfessionConstraint>
18631
- }
18632
-
18633
- export type MundaneCommonProfessionConstraint =
18634
19004
  | {
18635
- kind: "Profession"
18636
- Profession: ProfessionConstraint
19005
+ kind: "AddEvenSubtractOdd"
18637
19006
  }
18638
19007
 
18639
- export interface ProfessionConstraint {
19008
+ export interface RaceVariant {
18640
19009
  /**
18641
- * The profession’s identifier.
19010
+ * The associated race.
18642
19011
  */
18643
- id: Profession_ID
19012
+ race: Race_ID
18644
19013
 
18645
19014
  /**
18646
- * Some profession variants are more common than others. There may be cultures where some variants are not represented at all.
19015
+ * Describes how to raise or lower maximum attribute values during character creation.
18647
19016
  */
18648
- weighted_variants?: Weighted<ProfessionVariant_ID>
19017
+ attribute_adjustments: AttributeAdjustments
18649
19018
 
18650
19019
  /**
18651
- * Some professions may be found in a culture, but are not that common.
19020
+ * The list of common cultures.
18652
19021
  */
18653
- rarity?: Rarity
18654
- }
19022
+ common_cultures?: Culture_ID[]
18655
19023
 
18656
- /**
18657
- * Some professions or profession variants are more common than others. There may be cultures where some professions or profession variants are not represented at all.
18658
- */
18659
- export interface Weighted<ProfessionOrVariant> {
18660
19024
  /**
18661
- * The list of more common professions or profession variants.
19025
+ * A list of common advantages.
18662
19026
  */
18663
- elements: ProfessionOrVariant[]
19027
+ common_advantages?: CommonnessRatedAdvantageDisadvantage<Advantage_ID>[]
18664
19028
 
18665
19029
  /**
18666
- * The list of more common professions or profession variants.
19030
+ * A list of common disadvantages.
18667
19031
  */
18668
- weight: CommonnessWeight
18669
- }
18670
-
18671
- /**
18672
- * The “weight” difference compared to other professions or profession variants. Some professions or profession variants are simply more common (`Mostly`), but sometimes only specific elements are used (`Only`).
18673
- */
18674
- export type CommonnessWeight =
18675
- | {
18676
- kind: "Mostly"
18677
- }
18678
- | {
18679
- kind: "Only"
18680
- }
18681
-
18682
- /**
18683
- * Some professions may be found in a culture, but are not that common.
18684
- */
18685
- export type Rarity =
18686
- | {
18687
- kind: "Rare"
18688
- }
18689
- | {
18690
- kind: "VeryRare"
18691
- }
18692
-
18693
- export type MagicCommonProfessionConstraint =
18694
- | {
18695
- kind: "Tradition"
18696
- Tradition: MagicalTraditionConstraint
18697
- }
18698
- | {
18699
- kind: "MagicDilettante"
18700
- }
18701
- | {
18702
- kind: "Profession"
18703
- Profession: ProfessionConstraint
18704
- }
19032
+ common_disadvantages?: CommonnessRatedAdvantageDisadvantage<Disadvantage_ID>[]
18705
19033
 
18706
- export interface MagicalTraditionConstraint {
18707
19034
  /**
18708
- * The magical tradition’s identifier.
19035
+ * A list of uncommon advantages.
18709
19036
  */
18710
- id: MagicalTradition_ID
19037
+ uncommon_advantages?: CommonnessRatedAdvantageDisadvantage<Advantage_ID>[]
18711
19038
 
18712
19039
  /**
18713
- * Some professions are more common than others. There may be cultures where some professions are not represented at all.
19040
+ * A list of uncommon disadvantages.
18714
19041
  */
18715
- weighted_professions?: Weighted<Profession_ID>
19042
+ uncommon_disadvantages?: CommonnessRatedAdvantageDisadvantage<Disadvantage_ID>[]
18716
19043
 
18717
19044
  /**
18718
- * Some traditions may be found in a culture, but are not that common.
19045
+ * An array containing 20 (numeric) hair color identifiers. The array also represents the 20-sided die for a random hair color.
18719
19046
  */
18720
- rarity?: Rarity
18721
- }
18722
-
18723
- export type BlessedCommonProfessionConstraint =
18724
- | {
18725
- kind: "Tradition"
18726
- Tradition: BlessedTraditionConstraint
18727
- }
19047
+ hair_color: [HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID]
18728
19048
 
18729
- export interface BlessedTraditionConstraint {
18730
19049
  /**
18731
- * The blessed tradition’s identifier.
19050
+ * An array containing 20 (numeric) eye color identifiers. The array also represents the 20-sided die for a random eye color.
18732
19051
  */
18733
- id: BlessedTradition_ID
19052
+ eye_color: [EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID]
18734
19053
 
18735
19054
  /**
18736
- * Some professions are more common than others. There may be cultures where some professions are not represented at all.
19055
+ * Configuration for random height generation.
18737
19056
  */
18738
- weighted_professions?: Weighted<Profession_ID>
19057
+ height: RandomHeightGeneration
18739
19058
 
18740
19059
  /**
18741
- * Some traditions may be found in a culture, but are not that common.
19060
+ * All translations for the entry, identified by IETF language tag (BCP47).
18742
19061
  */
18743
- rarity?: Rarity
19062
+ translations: {
19063
+ [localeId: string]: RaceVariantTranslation
19064
+ }
18744
19065
  }
18745
19066
 
18746
- export type CommonnessRatedSkill = Skill_ID
19067
+ /**
19068
+ * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
19069
+ */
19070
+ export type RaceVariant_ID = string
18747
19071
 
18748
- export interface CulturalPackageItem {
19072
+ export interface RaceVariantTranslation {
18749
19073
  /**
18750
- * The skill’s identifier.
19074
+ * The race variant’s name. If this is the only variant for a base race and thus just provides the missing information without actually being able to select, fill in the name of the base race.
18751
19075
  */
18752
- id: Skill_ID
19076
+ name: string
18753
19077
 
18754
19078
  /**
18755
- * The skill points for the respective skill you get for buying the cultural package.
19079
+ * The respective common advantages text from the source book.
18756
19080
  */
18757
- points: number
18758
- }
19081
+ common_advantages?: string
18759
19082
 
18760
- /**
18761
- * Description and examples of the area knowledge.
18762
- */
18763
- export interface AreaKnowledgeTranslation {
18764
19083
  /**
18765
- * The full description without examples in parenthesis.
19084
+ * The respective common disadvantages text from the source book.
18766
19085
  */
18767
- description: string
19086
+ common_disadvantages?: string
18768
19087
 
18769
19088
  /**
18770
- * A shorter version of the description, used in input fields and other UI elements where the space might be to small to use the full description.
19089
+ * The respective uncommon advantages text from the source book.
18771
19090
  */
18772
- abbreviated: string
19091
+ uncommon_advantages?: string
18773
19092
 
18774
19093
  /**
18775
- * Examples of areas, if applicable.
19094
+ * The respective uncommon disadvantages text from the source book.
18776
19095
  */
18777
- examples?: AreaKnowledgeExample[]
18778
- }
18779
-
18780
- export interface AreaKnowledgeExample {
18781
- area: string
19096
+ uncommon_disadvantages?: string
18782
19097
  }
18783
19098
 
18784
19099
  /**
18785
- * Structured description of common names.
19100
+ * Describes how to raise or lower maximum attribute values during character creation.
18786
19101
  */
18787
- export interface CommonNames {
18788
- /**
18789
- * First names can be gender-neutral, but they can also be for a specific binary sex. They are sorted into groups.
18790
- */
18791
- first_name_groups?: CommonNameGroup[]
18792
-
19102
+ export interface AttributeAdjustments {
18793
19103
  /**
18794
- * Last names can be gender-neutral, like family names, but they can also be for a specific binary sex. They are sorted into groups.
19104
+ * The values by which the maximum of the respective attribute is modified.
18795
19105
  */
18796
- last_name_groups?: CommonNameGroup[]
19106
+ fixed?: FixedAttributeAdjustment[]
18797
19107
 
18798
19108
  /**
18799
- * Special naming rules.
19109
+ * An array of attribute maximum modifiers, where the attribute they apply to is selected from a list of options.
19110
+ *
19111
+ * The array only permits a single entry because no race specified more than one selectable attribute adjustment so far. But the schema allows for multiple entries to be future-proof.
18800
19112
  */
18801
- naming_rules?: string
19113
+ selectable?: [SelectableAttributeAdjustment]
18802
19114
  }
18803
19115
 
18804
- export interface CommonNameGroup {
19116
+ /**
19117
+ * A value by which the maximum of the respective attribute is modified.
19118
+ */
19119
+ export interface FixedAttributeAdjustment {
18805
19120
  /**
18806
- * The group label.
19121
+ * The attribute the modifier applies to.
18807
19122
  */
18808
- label: string
19123
+ id: Attribute_ID
18809
19124
 
18810
19125
  /**
18811
- * The binary sex if the group is only for a certain binary sex.
19126
+ * The value by which the specified attribute’s maximum is modified (negative values will lower the maximum).
18812
19127
  */
18813
- sex?: BinarySex
19128
+ value: number
19129
+ }
18814
19130
 
19131
+ /**
19132
+ * 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).
19133
+ */
19134
+ export interface SelectableAttributeAdjustment {
18815
19135
  /**
18816
- * The names from the group.
19136
+ * A list of attributes the player has to choose from.
18817
19137
  */
18818
- names: CommonName[]
18819
- }
18820
-
18821
- export interface CommonName {
18822
- name: string
19138
+ list: Attribute_ID[]
18823
19139
 
18824
19140
  /**
18825
- * Additional information about the name, appended in parenthesis.
19141
+ * The value by which the selected attribute’s maximum is modified (negative values will lower the maximum).
18826
19142
  */
18827
- note?: string
19143
+ value: number
18828
19144
  }
18829
19145
 
18830
19146
  export interface HairColor {
@@ -19061,46 +19377,6 @@ export type PrimaryAttributeCategory =
19061
19377
  kind: "Magical"
19062
19378
  }
19063
19379
 
19064
- export interface BlessedTraditionPrerequisite {
19065
- /**
19066
- * The blessed tradition prerequisite may only be satified if the blessed tradition is either church or shamanistic.
19067
- */
19068
- restriction?: BlessedTraditionPrerequisiteRestriction
19069
-
19070
- display_option?: DisplayOption
19071
- }
19072
-
19073
- /**
19074
- * The blessed tradition prerequisite may only be satified if the blessed tradition is either church or shamanistic.
19075
- */
19076
- export type BlessedTraditionPrerequisiteRestriction =
19077
- | {
19078
- kind: "Church"
19079
- }
19080
- | {
19081
- kind: "Shamanistic"
19082
- }
19083
-
19084
- export interface MagicalTraditionPrerequisite {
19085
- /**
19086
- * The magical tradition prerequisite may only be satified if the magical tradition can learn rituals or can bind familiars.
19087
- */
19088
- restriction?: MagicalTraditionPrerequisiteRestriction
19089
-
19090
- display_option?: DisplayOption
19091
- }
19092
-
19093
- /**
19094
- * The magical tradition prerequisite may only be satified if the magical tradition can learn rituals or can bind familiars.
19095
- */
19096
- export type MagicalTraditionPrerequisiteRestriction =
19097
- | {
19098
- kind: "CanLearnRituals"
19099
- }
19100
- | {
19101
- kind: "CanBindFamiliars"
19102
- }
19103
-
19104
19380
  export interface RatedMinimumNumberPrerequisite {
19105
19381
  /**
19106
19382
  * The minimum number of skills that need to be on the defined minimum skill rating.
@@ -20346,7 +20622,7 @@ export interface CeremonialItem {
20346
20622
  /**
20347
20623
  * The structure points of the item. Use an array if the item consists of multiple components that have individual structure points.
20348
20624
  */
20349
- structure_points: StructurePoints
20625
+ structure_points?: StructurePoints
20350
20626
 
20351
20627
  /**
20352
20628
  * The deity associated with the equipment item.
@@ -20879,278 +21155,59 @@ export type ReferenceListNodeSource =
20879
21155
  kind: "HealingHerbs"
20880
21156
  }
20881
21157
  | {
20882
- kind: "VisibilityModifier"
20883
- }
20884
- | {
20885
- kind: "Demons"
20886
- }
20887
- | {
20888
- kind: "Elementals"
20889
- }
20890
- | {
20891
- kind: "Animals"
20892
- }
20893
- | {
20894
- kind: "Familiars"
20895
- }
20896
- | {
20897
- kind: "AnimalSpecialAbilities"
20898
- }
20899
- | {
20900
- kind: "EquipmentPackages"
20901
- }
20902
- | {
20903
- kind: "Items"
20904
- }
20905
- | {
20906
- kind: "OptionalRules"
20907
- }
20908
- | {
20909
- kind: "ImprovementCost"
20910
- ImprovementCost: ReferenceListNodeImprovementCostSource
20911
- }
20912
-
20913
- export interface ReferenceListNodeImprovementCostSource {
20914
- /**
20915
- * Define if the cost for attributes or skills should be defined. The cost for attributes start with value 9, while the cost for skills start with 1 in addition to possible activation cost.
20916
- */
20917
- target: ReferenceListNodeImprovementCostSourceTarget
20918
-
20919
- /**
20920
- * The highest value the improvement cost are displayed for.
20921
- *
20922
- * The minimum maximum value should depend on what is the upper bound of the range of adventure point cost that are equal across multiple values (value increases for attributes are always 15 up to (and including) value 14, while value increases for skills are always 1 to 4, depending on the improvement cost, up to (and including) value 12), since those ranges should be combined into a single table row.
20923
- */
20924
- maximum_rating: number
20925
- }
20926
-
20927
- export type ReferenceListNodeImprovementCostSourceTarget =
20928
- | {
20929
- kind: "Attributes"
20930
- }
20931
- | {
20932
- kind: "Skills"
20933
- }
20934
-
20935
- export interface DerivedCharacteristic {
20936
- /**
20937
- * The position of the derived characteristic in lists. This has to be a unique value.
20938
- */
20939
- position: number
20940
-
20941
- /**
20942
- * Instructions for calculating the derived characteristic’s value.
20943
- */
20944
- calculation: DerivedCharacteristicCalculation
20945
-
20946
- prerequisites?: DerivedCharacteristicPrerequisites
20947
-
20948
- /**
20949
- * References to where in which publications this entry has been defined. Entries may also be added or removed in later printings.
20950
- */
20951
- src: PublicationRefs
20952
-
20953
- /**
20954
- * All translations for the entry, identified by IETF language tag (BCP47).
20955
- */
20956
- translations: {
20957
- [localeId: string]: DerivedCharacteristicTranslation
20958
- }
20959
- }
20960
-
20961
- /**
20962
- * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
20963
- */
20964
- export type DerivedCharacteristic_ID = string
20965
-
20966
- export interface DerivedCharacteristicTranslation {
20967
- /**
20968
- * The derived characteristic’s name.
20969
- */
20970
- name: string
20971
-
20972
- /**
20973
- * The derived characteristic’s abbreviation.
20974
- */
20975
- abbreviation: string
20976
-
20977
- /**
20978
- * The derived characteristic’s description.
20979
- */
20980
- description?: string
20981
-
20982
- /**
20983
- * Possible calculation strings for the final value.
20984
- */
20985
- calculation?: CalculationTranslation
20986
- }
20987
-
20988
- export interface DerivedCharacteristicCalculation {
20989
- /**
20990
- * The base value for the calculation.
20991
- */
20992
- base: DerivedCharacteristicBase
20993
-
20994
- /**
20995
- * A list of modifiers that are applied to the base value. The modifiers are applied in the order they appear in the list.
20996
- */
20997
- modifiers?: DerivedCharacteristicModifier[]
20998
-
20999
- /**
21000
- * If set, the derived characteristic can be improved by spending AP.
21001
- *
21002
- * If the derived characteristic’s permanent losses can be bought back, points will not be able to be purchased unless all permanent losses have been bought back.
21003
- */
21004
- purchasable?: DerivedCharacteristicPurchase
21005
-
21006
- /**
21007
- * If set, the derived characteristic can suffer permanent losses that reduce its maximum value. It may also be possible to buy back these permanent losses.
21008
- */
21009
- permanentLoss?: DerivedCharacteristicPermanentLoss
21010
- }
21011
-
21012
- export type DerivedCharacteristicBase = MathOperation<DerivedCharacteristicBaseValue>
21013
-
21014
- export type DerivedCharacteristicBaseValue =
21015
- | {
21016
- kind: "Constant"
21017
- Constant: number
21018
- }
21019
- | {
21020
- kind: "Attribute"
21021
- Attribute: Attribute_ID
21022
- }
21023
- | {
21024
- kind: "RaceBaseValue"
21025
- RaceBaseValue: DerivedCharacteristicRaceBaseValue
21026
- }
21027
- | {
21028
- kind: "PrimaryAttribute"
21029
- PrimaryAttribute: DerivedCharacteristicPrimaryAttributeValue
21030
- }
21031
-
21032
- export type DerivedCharacteristicRaceBaseValue =
21033
- | {
21034
- kind: "LifePoints"
21035
- }
21036
- | {
21037
- kind: "Spirit"
21038
- }
21039
- | {
21040
- kind: "Toughness"
21158
+ kind: "VisibilityModifier"
21041
21159
  }
21042
21160
  | {
21043
- kind: "Movement"
21161
+ kind: "Demons"
21044
21162
  }
21045
-
21046
- export type DerivedCharacteristicPrimaryAttributeValue =
21047
21163
  | {
21048
- kind: "Magical"
21164
+ kind: "Elementals"
21049
21165
  }
21050
21166
  | {
21051
- kind: "Blessed"
21167
+ kind: "Animals"
21052
21168
  }
21053
-
21054
- export interface DerivedCharacteristicModifier {
21055
- /**
21056
- * The entry that, when active, causes the modifier.
21057
- */
21058
- source: DerivedCharacteristicModifierPrerequisiteGroup
21059
-
21060
- /**
21061
- * The mathematical operation that modifies the base value. The previous result is on the left side.
21062
- */
21063
- operation: DerivedCharacteristicModifierOperation
21064
-
21065
- /**
21066
- * The value that is used in the modifier operation. If the source entry has levels, the value is multiplied by the source entry’s level.
21067
- */
21068
- value: number
21069
- }
21070
-
21071
- export type DerivedCharacteristicModifierPrerequisiteGroup =
21072
21169
  | {
21073
- kind: "Rule"
21074
- Rule: RulePrerequisite
21170
+ kind: "Familiars"
21075
21171
  }
21076
21172
  | {
21077
- kind: "Activatable"
21078
- Activatable: ActivatablePrerequisite
21173
+ kind: "AnimalSpecialAbilities"
21079
21174
  }
21080
-
21081
- export type DerivedCharacteristicModifierOperation =
21082
21175
  | {
21083
- kind: "Addition"
21176
+ kind: "EquipmentPackages"
21084
21177
  }
21085
21178
  | {
21086
- kind: "Subtraction"
21179
+ kind: "Items"
21087
21180
  }
21088
21181
  | {
21089
- kind: "Multiplication"
21182
+ kind: "OptionalRules"
21090
21183
  }
21091
21184
  | {
21092
- kind: "Division"
21185
+ kind: "ImprovementCost"
21186
+ ImprovementCost: ReferenceListNodeImprovementCostSource
21093
21187
  }
21094
21188
 
21095
- export interface DerivedCharacteristicPurchase {
21096
- /**
21097
- * The cost for improving the derived characteristic by one.
21098
- */
21099
- improvementCost: ImprovementCost
21100
-
21101
- /**
21102
- * The maximum value that can be achieved for the derived characteristic through improvements.
21103
- */
21104
- maximum: DerivedCharacteristicBase
21105
- }
21106
-
21107
- export interface DerivedCharacteristicPermanentLoss {
21189
+ export interface ReferenceListNodeImprovementCostSource {
21108
21190
  /**
21109
- * If set, permanent losses to the derived characteristic can be bought back for the specified cost.
21191
+ * Define if the cost for attributes or skills should be defined. The cost for attributes start with value 9, while the cost for skills start with 1 in addition to possible activation cost.
21110
21192
  */
21111
- canBeBoughtBack?: DerivedCharacteristicBuyBack
21112
- }
21193
+ target: ReferenceListNodeImprovementCostSourceTarget
21113
21194
 
21114
- export interface DerivedCharacteristicBuyBack {
21115
21195
  /**
21116
- * The AP cost for buying back one point.
21196
+ * The highest value the improvement cost are displayed for.
21197
+ *
21198
+ * The minimum maximum value should depend on what is the upper bound of the range of adventure point cost that are equal across multiple values (value increases for attributes are always 15 up to (and including) value 14, while value increases for skills are always 1 to 4, depending on the improvement cost, up to (and including) value 12), since those ranges should be combined into a single table row.
21117
21199
  */
21118
- cost: number
21200
+ maximum_rating: number
21119
21201
  }
21120
21202
 
21121
- export type DerivedCharacteristicPrerequisites = PlainPrerequisites<DerivedCharacteristicPrerequisiteGroup>
21122
-
21123
- export type DerivedCharacteristicPrerequisiteGroup =
21124
- | {
21125
- kind: "Rule"
21126
- Rule: RulePrerequisite
21127
- }
21203
+ export type ReferenceListNodeImprovementCostSourceTarget =
21128
21204
  | {
21129
- kind: "BlessedTradition"
21130
- BlessedTradition: BlessedTraditionPrerequisite
21205
+ kind: "Attributes"
21131
21206
  }
21132
21207
  | {
21133
- kind: "MagicalTradition"
21134
- MagicalTradition: MagicalTraditionPrerequisite
21208
+ kind: "Skills"
21135
21209
  }
21136
21210
 
21137
- export interface CalculationTranslation {
21138
- /**
21139
- * The default calculation string.
21140
- */
21141
- default: string
21142
-
21143
- /**
21144
- * The calculation string if only half of the primary attribute is used.
21145
- */
21146
- half_primary?: string
21147
-
21148
- /**
21149
- * The calculation string if no primary attribute is used.
21150
- */
21151
- no_primary?: string
21152
- }
21153
-
21154
21211
  export interface Disease {
21155
21212
  /**
21156
21213
  * The disease’s level.
@@ -21172,6 +21229,16 @@ export interface Disease {
21172
21229
  */
21173
21230
  trade_secret?: RecipeTradeSecret
21174
21231
 
21232
+ /**
21233
+ * Whether the disease is a childhood disease.
21234
+ */
21235
+ isChildhoodDisease: boolean
21236
+
21237
+ /**
21238
+ * Whether the disease is a magical disease.
21239
+ */
21240
+ isMagicalDisease: boolean
21241
+
21175
21242
  /**
21176
21243
  * References to where in which publications this entry has been defined. Entries may also be added or removed in later printings.
21177
21244
  */
@@ -21332,9 +21399,9 @@ export interface ElixirTranslationTranslation {
21332
21399
  brewing_process_prerequisites?: string
21333
21400
 
21334
21401
  /**
21335
- * The list of effects for each quality level. The first element represents QL 1, the second element QL 2, and so on.
21402
+ * The effect description may be either a plain text or a text that is divided by a list of effects for each quality level.
21336
21403
  */
21337
- quality_levels: [string, string, string, string, string, string]
21404
+ quality_levels: ElixirEffect
21338
21405
 
21339
21406
  errata?: Errata
21340
21407
  }
@@ -21376,6 +21443,33 @@ export type LaboratoryLevel =
21376
21443
  kind: "AlchemistsLaboratory"
21377
21444
  }
21378
21445
 
21446
+ /**
21447
+ * The effect description may be either a plain text or a text that is divided by a list of effects for each quality level.
21448
+ */
21449
+ export type ElixirEffect =
21450
+ | {
21451
+ kind: "Plain"
21452
+ Plain: ElixirPlainEffect
21453
+ }
21454
+ | {
21455
+ kind: "ForEachQualityLevel"
21456
+ ForEachQualityLevel: ElixirEffectForEachQualityLevel
21457
+ }
21458
+
21459
+ export interface ElixirPlainEffect {
21460
+ /**
21461
+ * The effect description.
21462
+ */
21463
+ text: string
21464
+ }
21465
+
21466
+ export interface ElixirEffectForEachQualityLevel {
21467
+ /**
21468
+ * The list of effects for each quality level. The first element represents QL 1, the second element QL 2, and so on.
21469
+ */
21470
+ qualityLevels: [string, string, string, string, string, string]
21471
+ }
21472
+
21379
21473
  export interface EquipmentOfBlessedOnes {
21380
21474
  /**
21381
21475
  * The cost in silverthalers.
@@ -22501,9 +22595,9 @@ export interface AnimalVenom {
22501
22595
  is_extractable: boolean
22502
22596
 
22503
22597
  /**
22504
- * AP value and prerequisites of the poison’s trade secret.
22598
+ * The complexity of the poison. Complex poisons define AP value and prerequisites of the poison’s trade secret.
22505
22599
  */
22506
- trade_secret?: RecipeTradeSecret
22600
+ complexity?: RecipeComplexity
22507
22601
  }
22508
22602
 
22509
22603
  export type AnimalVenomLevel =
@@ -22540,6 +22634,21 @@ export interface AnimalVenomLevelBySubTypeTranslation {
22540
22634
  name: string
22541
22635
  }
22542
22636
 
22637
+ /**
22638
+ * The complexity of crafting the recipe.
22639
+ */
22640
+ export type RecipeComplexity =
22641
+ | {
22642
+ kind: "Primitive"
22643
+ }
22644
+ | {
22645
+ kind: "Simple"
22646
+ }
22647
+ | {
22648
+ kind: "Complex"
22649
+ Complex: RecipeTradeSecret
22650
+ }
22651
+
22543
22652
  export interface AlchemicalPoison {
22544
22653
  /**
22545
22654
  * Effect type(s) of an alchemical poison.
@@ -22810,23 +22919,34 @@ export type PoisonStart =
22810
22919
  kind: "Immediate"
22811
22920
  }
22812
22921
  | {
22813
- kind: "Constant"
22814
- Constant: ConstantPoisonTime
22815
- }
22816
- | {
22817
- kind: "DiceBased"
22818
- DiceBased: DiceBasedPoisonTime
22922
+ kind: "ExpressionBased"
22923
+ ExpressionBased: ExpressionBasedPoisonTime
22819
22924
  }
22820
22925
  | {
22821
22926
  kind: "Indefinite"
22822
22927
  Indefinite: IndefinitePoisonTime
22823
22928
  }
22824
22929
 
22825
- export interface ConstantPoisonTime {
22826
- value: number
22930
+ export interface ExpressionBasedPoisonTime {
22931
+ value: ExpressionBasedPoisonTimeValue
22827
22932
  unit: PoisonTimeUnit
22828
22933
  }
22829
22934
 
22935
+ export type ExpressionBasedPoisonTimeValue = MathOperation<ExpressionBasedPoisonTimeExpressionValue>
22936
+
22937
+ export type ExpressionBasedPoisonTimeExpressionValue =
22938
+ | {
22939
+ kind: "Constant"
22940
+ Constant: number
22941
+ }
22942
+ | {
22943
+ kind: "Dice"
22944
+ Dice: Dice
22945
+ }
22946
+ | {
22947
+ kind: "CircleOfDamnation"
22948
+ }
22949
+
22830
22950
  export type PoisonTimeUnit =
22831
22951
  | {
22832
22952
  kind: "CombatRounds"
@@ -22841,17 +22961,6 @@ export type PoisonTimeUnit =
22841
22961
  kind: "Days"
22842
22962
  }
22843
22963
 
22844
- export interface DiceBasedPoisonTime {
22845
- dice: Dice
22846
-
22847
- /**
22848
- * The value to add to the result of the dice roll(s).
22849
- */
22850
- flat?: number
22851
-
22852
- unit: PoisonTimeUnit
22853
- }
22854
-
22855
22964
  export interface IndefinitePoisonTime {
22856
22965
  /**
22857
22966
  * All translations for the entry, identified by IETF language tag (BCP47).
@@ -22872,14 +22981,6 @@ export type PoisonDuration =
22872
22981
  | {
22873
22982
  kind: "Instant"
22874
22983
  }
22875
- | {
22876
- kind: "Constant"
22877
- Constant: ConstantPoisonTime
22878
- }
22879
- | {
22880
- kind: "DiceBased"
22881
- DiceBased: DiceBasedPoisonTime
22882
- }
22883
22984
  | {
22884
22985
  kind: "ExpressionBased"
22885
22986
  ExpressionBased: ExpressionBasedPoisonTime
@@ -22889,26 +22990,6 @@ export type PoisonDuration =
22889
22990
  Indefinite: IndefinitePoisonTime
22890
22991
  }
22891
22992
 
22892
- export interface ExpressionBasedPoisonTime {
22893
- value: ExpressionBasedPoisonTimeValue
22894
- unit: PoisonTimeUnit
22895
- }
22896
-
22897
- export type ExpressionBasedPoisonTimeValue = MathOperation<ExpressionBasedPoisonTimeExpressionValue>
22898
-
22899
- export type ExpressionBasedPoisonTimeExpressionValue =
22900
- | {
22901
- kind: "Constant"
22902
- Constant: number
22903
- }
22904
- | {
22905
- kind: "Dice"
22906
- Dice: Dice
22907
- }
22908
- | {
22909
- kind: "CircleOfDamnation"
22910
- }
22911
-
22912
22993
  export type PoisonCost =
22913
22994
  | {
22914
22995
  kind: "CannotBeExtracted"
@@ -23490,10 +23571,17 @@ export interface FamiliarsTrick {
23490
23571
  /**
23491
23572
  * The animal types this trick is available to. Either it is available to all or only a list of specific animal types.
23492
23573
  *
23493
- * If no animal types are given, the animal disease applies to all animal types.
23574
+ * If no animal types are given, the familiars trick applies to all animal types.
23494
23575
  */
23495
23576
  animal_types: AnimalType_ID[]
23496
23577
 
23578
+ /**
23579
+ * The magical traditions whose familiars can use this trick. Either it is available to all or only a list of specific traditions.
23580
+ *
23581
+ * If no traditions are given, the familiars trick is not restricted by the magical tradition at all.
23582
+ */
23583
+ traditions?: MagicalTradition_ID[]
23584
+
23497
23585
  /**
23498
23586
  * Measurable parameters of a familiar’s trick.
23499
23587
  */
@@ -23961,6 +24049,11 @@ export interface Talisman {
23961
24049
  */
23962
24050
  type?: TalismanType
23963
24051
 
24052
+ /**
24053
+ * The activation parameters.
24054
+ */
24055
+ activation?: TalismanActivation
24056
+
23964
24057
  /**
23965
24058
  * The AP value for the required trade secret, if possible.
23966
24059
  */
@@ -24015,11 +24108,6 @@ export interface TalismanTranslation {
24015
24108
  */
24016
24109
  effect: string
24017
24110
 
24018
- /**
24019
- * The activation parameters.
24020
- */
24021
- activation?: TalismanActivationTranslation
24022
-
24023
24111
  errata?: Errata
24024
24112
  }
24025
24113
 
@@ -24040,6 +24128,53 @@ export type TalismanType =
24040
24128
  kind: "PowerfulTalisman"
24041
24129
  }
24042
24130
 
24131
+ export interface TalismanActivation {
24132
+ /**
24133
+ * The cost to activate the talisman.
24134
+ */
24135
+ cost: TalismanActivationCost
24136
+
24137
+ /**
24138
+ * The duration of how long the talisman will be active.
24139
+ */
24140
+ duration: TalismanActivationDuration
24141
+ }
24142
+
24143
+ export interface TalismanActivationCost {
24144
+ /**
24145
+ * The (numeric) cost value.
24146
+ */
24147
+ value: number
24148
+
24149
+ /**
24150
+ * The unit in which to pay the cost.
24151
+ */
24152
+ unit: DerivedCharacteristic_ID
24153
+ }
24154
+
24155
+ export interface TalismanActivationDuration {
24156
+ /**
24157
+ * The (numeric) duration value.
24158
+ */
24159
+ value: TalismanActivationDurationExpression
24160
+
24161
+ /**
24162
+ * The unit of the duration.
24163
+ */
24164
+ unit: DurationUnit
24165
+ }
24166
+
24167
+ export type TalismanActivationDurationExpression = MathOperation<TalismanActivationDurationExpressionValue>
24168
+
24169
+ export type TalismanActivationDurationExpressionValue =
24170
+ | {
24171
+ kind: "Constant"
24172
+ Constant: number
24173
+ }
24174
+ | {
24175
+ kind: "QualityLevels"
24176
+ }
24177
+
24043
24178
  export type TalismanMeleeWeapon = GenMeleeWeapon<TalismanDamage>
24044
24179
 
24045
24180
  export type TalismanDamage = MathOperation<TalismanDamageOption>
@@ -24056,16 +24191,4 @@ export type TalismanDamageOption =
24056
24191
  kind: "QualityLevels"
24057
24192
  }
24058
24193
 
24059
- export type TalismanRangedWeapon = GenRangedWeapon<TalismanDamage>
24060
-
24061
- export interface TalismanActivationTranslation {
24062
- /**
24063
- * The KP cost.
24064
- */
24065
- cost: number
24066
-
24067
- /**
24068
- * The duration.
24069
- */
24070
- duration: string
24071
- }
24194
+ export type TalismanRangedWeapon = GenRangedWeapon<TalismanDamage>