optolith-database-schema 0.4.0 → 0.5.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 (119) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/lib/config.d.ts +2 -0
  3. package/lib/config.js +2 -0
  4. package/lib/main.d.ts +1 -1
  5. package/lib/main.js +28 -19
  6. package/lib/types/Cantrip.d.ts +2 -3
  7. package/lib/types/Culture.d.ts +8 -11
  8. package/lib/types/Lessons_Curriculum.d.ts +5 -4
  9. package/lib/types/Lessons_Guideline.d.ts +1 -1
  10. package/lib/types/Patron.d.ts +28 -4
  11. package/lib/types/Profession.d.ts +7 -6
  12. package/lib/types/Race.d.ts +12 -14
  13. package/lib/types/TargetCategory.d.ts +2 -3
  14. package/lib/types/_Activatable.d.ts +22 -26
  15. package/lib/types/_ActivatableSelectOptionCategory.d.ts +1 -1
  16. package/lib/types/_ActivatableSkillCost.d.ts +28 -1
  17. package/lib/types/_ActivatableSkillDuration.d.ts +1 -1
  18. package/lib/types/_ActivatableSkillRange.d.ts +3 -0
  19. package/lib/types/_CommonnessRatedAdvantageDisadvantage.d.ts +2 -4
  20. package/lib/types/_DiseasePoison.d.ts +3 -3
  21. package/lib/types/_Identifier.d.ts +1175 -247
  22. package/lib/types/_Identifier.js +0 -228
  23. package/lib/types/_IdentifierGroup.d.ts +27 -0
  24. package/lib/types/_IdentifierGroup.js +1 -0
  25. package/lib/types/_Prerequisite.d.ts +38 -36
  26. package/lib/types/_ResponsiveText.d.ts +1 -1
  27. package/lib/types/_SimpleReferences.d.ts +50 -253
  28. package/lib/types/equipment/EquipmentPackage.d.ts +1 -1
  29. package/lib/types/equipment/item/Elixir.d.ts +75 -0
  30. package/lib/types/equipment/item/Elixir.js +5 -0
  31. package/lib/types/equipment/item/EquipmentOfBlessedOnes.d.ts +1 -1
  32. package/lib/types/equipment/item/Poison.d.ts +220 -47
  33. package/lib/types/equipment/item/Poison.js +10 -0
  34. package/lib/types/equipment/item/ToolOfTheTrade.d.ts +6 -2
  35. package/lib/types/equipment/item/_Herbary.d.ts +31 -0
  36. package/lib/types/equipment/item/_Herbary.js +22 -0
  37. package/lib/types/equipment/item/_MeleeWeapon.d.ts +2 -9
  38. package/lib/types/equipment/item/_RangedWeapon.d.ts +2 -3
  39. package/lib/types/magicalActions/AnimistPower.d.ts +0 -1
  40. package/lib/types/magicalActions/MagicalRune.d.ts +22 -3
  41. package/lib/types/magicalActions/_SkillReference.d.ts +3 -2
  42. package/lib/types/magicalActions/_SkillReference.js +5 -5
  43. package/lib/types/prerequisites/PrerequisiteGroups.d.ts +2 -20
  44. package/lib/types/prerequisites/single/ActivatablePrerequisite.d.ts +1 -62
  45. package/lib/types/prerequisites/single/AnimistPowerPrerequisite.d.ts +2 -3
  46. package/lib/types/prerequisites/single/CulturePrerequisite.d.ts +5 -2
  47. package/lib/types/prerequisites/single/EnhancementPrerequisite.d.ts +1 -1
  48. package/lib/types/prerequisites/single/InfluencePrerequisite.d.ts +2 -3
  49. package/lib/types/prerequisites/single/RacePrerequisite.d.ts +5 -2
  50. package/lib/types/prerequisites/single/RatedPrerequisite.d.ts +1 -18
  51. package/lib/types/prerequisites/single/RulePrerequisite.d.ts +1 -1
  52. package/lib/types/prerequisites/single/SocialStatusPrerequisite.d.ts +2 -4
  53. package/lib/types/prerequisites/single/StatePrerequisite.d.ts +2 -2
  54. package/lib/types/rule/CoreRule.d.ts +4 -7
  55. package/lib/types/source/_PublicationRef.d.ts +2 -3
  56. package/lib/types/specialAbility/BlessedTradition.d.ts +1 -1
  57. package/lib/types/specialAbility/CeremonialItemSpecialAbility.d.ts +1 -1
  58. package/lib/types/specialAbility/CombatStyleSpecialAbility.d.ts +2 -1
  59. package/lib/types/specialAbility/LiturgicalStyleSpecialAbility.d.ts +2 -1
  60. package/lib/types/specialAbility/MagicStyleSpecialAbility.d.ts +2 -1
  61. package/lib/types/specialAbility/MagicalTradition.d.ts +2 -3
  62. package/lib/types/specialAbility/PactGift.d.ts +1 -1
  63. package/lib/types/specialAbility/SkillStyleSpecialAbility.d.ts +2 -1
  64. package/lib/types/specialAbility/sub/_LanguageScript.d.ts +2 -4
  65. package/lib/validation/schema.js +1 -1
  66. package/package.json +2 -2
  67. package/schema/Cantrip.schema.json +1 -2
  68. package/schema/Culture.schema.json +51 -10
  69. package/schema/Lessons_Curriculum.schema.json +8 -12
  70. package/schema/Lessons_Guideline.schema.json +1 -1
  71. package/schema/Patron.schema.json +24 -6
  72. package/schema/Profession.schema.json +57 -15
  73. package/schema/Race.schema.json +121 -13
  74. package/schema/TargetCategory.schema.json +1 -2
  75. package/schema/_Activatable.schema.json +7 -183
  76. package/schema/_ActivatableSelectOptionCategory.schema.json +4 -4
  77. package/schema/_ActivatableSkillCost.schema.json +61 -0
  78. package/schema/_ActivatableSkillDuration.schema.json +1 -3
  79. package/schema/_ActivatableSkillRange.schema.json +19 -0
  80. package/schema/_DiseasePoison.schema.json +0 -2
  81. package/schema/_Identifier.schema.json +2099 -347
  82. package/schema/_IdentifierGroup.schema.json +601 -0
  83. package/schema/_Prerequisite.schema.json +1298 -1072
  84. package/schema/_ResponsiveText.schema.json +2 -2
  85. package/schema/_SimpleReferences.schema.json +54 -130
  86. package/schema/equipment/EquipmentPackage.schema.json +1 -1
  87. package/schema/equipment/item/Elixir.schema.json +123 -0
  88. package/schema/equipment/item/EquipmentOfBlessedOnes.schema.json +4 -1
  89. package/schema/equipment/item/Poison.schema.json +431 -68
  90. package/schema/equipment/item/ToolOfTheTrade.schema.json +15 -4
  91. package/schema/equipment/item/_Herbary.schema.json +42 -0
  92. package/schema/equipment/item/_MeleeWeapon.schema.json +1 -13
  93. package/schema/equipment/item/_RangedWeapon.schema.json +1 -2
  94. package/schema/magicalActions/AnimistPower.schema.json +0 -1
  95. package/schema/magicalActions/MagicalRune.schema.json +38 -3
  96. package/schema/magicalActions/_SkillReference.schema.json +15 -3
  97. package/schema/prerequisites/PrerequisiteGroups.schema.json +0 -96
  98. package/schema/prerequisites/single/ActivatablePrerequisite.schema.json +2 -87
  99. package/schema/prerequisites/single/AnimistPowerPrerequisite.schema.json +1 -2
  100. package/schema/prerequisites/single/CulturePrerequisite.schema.json +2 -1
  101. package/schema/prerequisites/single/EnhancementPrerequisite.schema.json +1 -1
  102. package/schema/prerequisites/single/InfluencePrerequisite.schema.json +1 -2
  103. package/schema/prerequisites/single/RacePrerequisite.schema.json +2 -1
  104. package/schema/prerequisites/single/RatedPrerequisite.schema.json +1 -28
  105. package/schema/prerequisites/single/RulePrerequisite.schema.json +1 -1
  106. package/schema/prerequisites/single/SocialStatusPrerequisite.schema.json +1 -3
  107. package/schema/prerequisites/single/StatePrerequisite.schema.json +1 -1
  108. package/schema/rule/CoreRule.schema.json +3 -5
  109. package/schema/source/_PublicationRef.schema.json +1 -2
  110. package/schema/specialAbility/BlessedTradition.schema.json +2 -2
  111. package/schema/specialAbility/CeremonialItemSpecialAbility.schema.json +0 -1
  112. package/schema/specialAbility/CombatStyleSpecialAbility.schema.json +511 -1
  113. package/schema/specialAbility/LiturgicalStyleSpecialAbility.schema.json +511 -1
  114. package/schema/specialAbility/MagicStyleSpecialAbility.schema.json +511 -1
  115. package/schema/specialAbility/MagicalTradition.schema.json +1 -2
  116. package/schema/specialAbility/PactGift.schema.json +1 -1
  117. package/schema/specialAbility/SkillStyleSpecialAbility.schema.json +511 -1
  118. package/schema/specialAbility/sub/_LanguageScript.schema.json +1 -3
  119. package/schema/_CommonnessRatedAdvantageDisadvantage.schema.json +0 -22
@@ -4,9 +4,11 @@
4
4
  import { Errata } from "../../source/_Erratum.js";
5
5
  import { PublicationRefs } from "../../source/_PublicationRef.js";
6
6
  import { AlternativeName } from "../../_AlternativeNames.js";
7
+ import { Dice } from "../../_Dice.js";
7
8
  import { Reduceable, Resistance } from "../../_DiseasePoison.js";
8
9
  import { LocaleMap } from "../../_LocaleMap.js";
9
10
  import { NonEmptyMarkdown, NonEmptyString } from "../../_NonEmptyString.js";
11
+ import { EffectType, LaboratoryLevel, RecipeTradeSecret } from "./_Herbary.js";
10
12
  /**
11
13
  * @title Poison
12
14
  */
@@ -17,12 +19,6 @@ export declare type Poison = {
17
19
  * @minimum 1
18
20
  */
19
21
  id: number;
20
- /**
21
- * The poison's level.
22
- * @integer
23
- * @minimum 1
24
- */
25
- level: PoisonLevel;
26
22
  /**
27
23
  * The poison's application type(s).
28
24
  * @minItems 1
@@ -37,6 +33,14 @@ export declare type Poison = {
37
33
  * Use Spirit or Toughness as a modifier for the poison.
38
34
  */
39
35
  resistance: Resistance;
36
+ /**
37
+ * When the poison takes effect.
38
+ */
39
+ start: PoisonStart;
40
+ /**
41
+ * The normal and degraded poison's duration.
42
+ */
43
+ duration: Reduceable<PoisonDuration>;
40
44
  /**
41
45
  * The raw (ingredients) value, in silverthalers.
42
46
  * @integer
@@ -55,87 +59,265 @@ export declare type Poison = {
55
59
  */
56
60
  translations: LocaleMap<PoisonTranslation>;
57
61
  };
58
- export declare type PoisonLevel = {
59
- tag: "QualityLevel";
60
- quality_level: {};
61
- } | {
62
- tag: "Fixed";
63
- fixed: FixedPoisonLevel;
64
- };
65
- export declare type FixedPoisonLevel = {
66
- /**
67
- * @integer
68
- * @minimum 1
69
- */
70
- value: number;
71
- };
72
62
  export declare enum PoisonApplicationType {
73
63
  Weapon = "Weapon",
74
64
  Ingestion = "Ingestion",
75
65
  Inhalation = "Inhalation",
76
66
  Contact = "Contact"
77
67
  }
68
+ export declare type PoisonStart = {
69
+ tag: "Immediate";
70
+ immediate: {};
71
+ } | {
72
+ tag: "Constant";
73
+ constant: ConstantPoisonTime;
74
+ } | {
75
+ tag: "DiceBased";
76
+ dice_based: DiceBasedPoisonTime;
77
+ };
78
+ export declare type PoisonDuration = {
79
+ tag: "Constant";
80
+ constant: ConstantPoisonTime;
81
+ } | {
82
+ tag: "DiceBased";
83
+ dice_based: DiceBasedPoisonTime;
84
+ };
85
+ export declare type ConstantPoisonTime = {
86
+ value: number;
87
+ unit: PoisonTimeUnit;
88
+ };
89
+ export declare type DiceBasedPoisonTime = {
90
+ dice: Dice;
91
+ unit: PoisonTimeUnit;
92
+ };
93
+ export declare enum PoisonTimeUnit {
94
+ CombatRounds = "CombatRounds",
95
+ Minutes = "Minutes",
96
+ Hours = "Hours"
97
+ }
78
98
  export declare type PoisonSourceType = {
79
99
  tag: "AnimalVenom";
80
- animal_venom: {};
100
+ animal_venom: AnimalVenom;
81
101
  } | {
82
102
  tag: "AlchemicalPoison";
83
- alchemical_poison: {};
103
+ alchemical_poison: AlchemicalPoison;
84
104
  } | {
85
105
  tag: "MineralPoison";
86
- mineral_poison: {};
106
+ mineral_poison: MineralPoison;
87
107
  } | {
88
108
  tag: "PlantPoison";
89
109
  plant_poison: PlantPoison;
110
+ } | {
111
+ tag: "DemonicPoison";
112
+ demonic_poison: DemonicPoison;
113
+ };
114
+ export declare type AnimalVenom = {
115
+ /**
116
+ * The poison’s level.
117
+ * @integer
118
+ * @minimum 1
119
+ * @maximum 6
120
+ */
121
+ level: number;
122
+ };
123
+ export declare type AlchemicalPoison = {
124
+ /**
125
+ * Effect type(s) of an alchemical poison.
126
+ * @minItems 1
127
+ * @uniqueItems
128
+ */
129
+ effect_types: EffectType[];
130
+ /**
131
+ * The cost per ingredient level in silverthalers.
132
+ */
133
+ cost_per_ingredient_level: number;
134
+ /**
135
+ * The laboratory level needed to brew the elixir.
136
+ */
137
+ laboratory: LaboratoryLevel;
138
+ /**
139
+ * The brewing difficulty, which represents the challenge of creating an
140
+ * elixir.
141
+ * @integer
142
+ */
143
+ brewing_difficulty: number;
144
+ /**
145
+ * AP value and prerequisites of the elixir recipe’s trade secret.
146
+ */
147
+ trade_secret: RecipeTradeSecret;
148
+ /**
149
+ * Additional information if the poison is an intoxicant.
150
+ */
151
+ intoxicant?: Intoxicant;
152
+ /**
153
+ * All translations for the entry, identified by IETF language tag (BCP47).
154
+ */
155
+ translations: LocaleMap<AlchemicalPoisonTranslation>;
156
+ };
157
+ export declare type AlchemicalPoisonTranslation = {
158
+ /**
159
+ * A list of common ingredients.
160
+ * @minItems 1
161
+ * @uniqueItems
162
+ */
163
+ common_ingredients: NonEmptyString[];
164
+ /**
165
+ * Prerequsites for the brewing process, if any.
166
+ */
167
+ brewing_process_prerequisites?: NonEmptyMarkdown;
168
+ };
169
+ export declare type MineralPoison = {
170
+ /**
171
+ * The poison’s level.
172
+ * @integer
173
+ * @minimum 1
174
+ * @maximum 6
175
+ */
176
+ level: number;
90
177
  };
91
178
  export declare type PlantPoison = {
92
179
  /**
93
- * The plant poison category and dependent additional values.
180
+ * Effect type(s) of a plant poison.
181
+ * @minItems 1
182
+ * @uniqueItems
183
+ */
184
+ effect_types: EffectType[];
185
+ /**
186
+ * The poison’s level.
187
+ * @integer
188
+ * @minimum 1
189
+ * @maximum 6
190
+ */
191
+ level: number;
192
+ /**
193
+ * Additional information if the poison is an intoxicant.
94
194
  */
95
- category: PlantPoisonCategory;
195
+ intoxicant?: Intoxicant;
96
196
  };
97
- export declare type PlantPoisonCategory = {
98
- tag: "Default";
99
- default: {};
197
+ export declare type DemonicPoison = {
198
+ /**
199
+ * The poison’s level.
200
+ */
201
+ level: DemonicPoisonLevel;
202
+ /**
203
+ * All translations for the entry, identified by IETF language tag (BCP47).
204
+ */
205
+ translations?: LocaleMap<DemonicPoisonTranslation>;
206
+ };
207
+ export declare type DemonicPoisonLevel = {
208
+ tag: "QualityLevel";
209
+ quality_level: QualityLevelDemonicPoisonLevel;
100
210
  } | {
101
- tag: "Intoxicant";
102
- intoxicant: Intoxicant;
211
+ tag: "Constant";
212
+ constant: ConstantDemonicPoisonLevel;
213
+ };
214
+ export declare type QualityLevelDemonicPoisonLevel = {
215
+ source: QualityLevelDemonicPoisonLevelSource;
216
+ };
217
+ export declare enum QualityLevelDemonicPoisonLevelSource {
218
+ Spellwork = "Spellwork"
219
+ }
220
+ export declare type ConstantDemonicPoisonLevel = {
221
+ /**
222
+ * The poison’s level.
223
+ * @integer
224
+ * @minimum 1
225
+ * @maximum 6
226
+ */
227
+ value: number;
228
+ };
229
+ /**
230
+ * @minProperties 1
231
+ */
232
+ export declare type DemonicPoisonTranslation = {
233
+ /**
234
+ * A note, if any.
235
+ */
236
+ note?: NonEmptyMarkdown;
103
237
  };
104
238
  export declare type Intoxicant = {
105
239
  /**
106
- * Whether the use of the intoxicant is legal or not.
240
+ * Whether the use of the intoxicant is legal or not, usually from the
241
+ * perspective of most middle-Aventurian an northern-Aventurian nations.
107
242
  */
108
243
  legality: IntoxicantLegality;
244
+ /**
245
+ * The chance of getting addicted after an ingestion in addition to the
246
+ * maximum interval at which it, while addicted, must be ingested to not
247
+ * suffer from withdrawal symptoms.
248
+ */
249
+ addiction?: IntoxicantAddiction;
109
250
  /**
110
251
  * All translations for the entry, identified by IETF language tag
111
252
  * (BCP47).
112
253
  */
113
254
  translations: LocaleMap<IntoxicantTranslation>;
114
255
  };
256
+ /**
257
+ * Whether the use of the intoxicant is legal or not, usually from the
258
+ * perspective of most middle-Aventurian an northern-Aventurian nations.
259
+ */
115
260
  export declare type IntoxicantLegality = {
116
261
  is_legal: boolean;
117
262
  };
263
+ /**
264
+ * The chance of getting addicted after an ingestion in addition to the maximum
265
+ * interval at which it, while addicted, must be ingested to not suffer from
266
+ * withdrawal symptoms.
267
+ */
268
+ export declare type IntoxicantAddiction = {
269
+ /**
270
+ * The chance of getting addicted after an ingestion.
271
+ */
272
+ chance: number;
273
+ /**
274
+ * The maximum interval at which it, while addicted, must be ingested to not
275
+ * suffer from withdrawal symptoms.
276
+ */
277
+ interval: IntoxicantAddictionInterval;
278
+ };
279
+ /**
280
+ * The maximum interval at which it, while addicted, must be ingested to not
281
+ * suffer from withdrawal symptoms.
282
+ */
283
+ export declare type IntoxicantAddictionInterval = {
284
+ tag: "Constant";
285
+ constant: ConstantIntoxicantAddictionInterval;
286
+ } | {
287
+ tag: "DiceBased";
288
+ dice_based: DiceBasedIntoxicantAddictionInterval;
289
+ };
290
+ export declare type ConstantIntoxicantAddictionInterval = {
291
+ /**
292
+ * The interval value in days.
293
+ */
294
+ value: number;
295
+ };
296
+ export declare type DiceBasedIntoxicantAddictionInterval = {
297
+ /**
298
+ * The dice that define the interval value in days.
299
+ */
300
+ dice: Dice;
301
+ };
118
302
  export declare type IntoxicantTranslation = {
119
303
  /**
120
304
  * How to ingest the intoxicant.
121
305
  */
122
306
  ingestion: NonEmptyString;
123
307
  /**
124
- * The intoxicants side effects, if any.
308
+ * The intoxicants side effects that always happen, no matter whether the
309
+ * intoxicant has the default or the reduced effect.
125
310
  */
126
311
  side_effect?: NonEmptyMarkdown;
127
312
  /**
128
- * What happens if the intoxicant has been overdosed.
313
+ * What happens if the intoxicant has been overdosed, that is, it has been
314
+ * ingested another time within the duration.
129
315
  */
130
316
  overdose: NonEmptyMarkdown;
131
317
  /**
132
- *
318
+ * Special information about the intoxicant.
133
319
  */
134
320
  special?: NonEmptyMarkdown;
135
- /**
136
- *
137
- */
138
- addiction?: NonEmptyMarkdown;
139
321
  };
140
322
  export declare type PoisonTranslation = {
141
323
  /**
@@ -151,15 +333,6 @@ export declare type PoisonTranslation = {
151
333
  * The normal and degraded poison's effects.
152
334
  */
153
335
  effect: Reduceable;
154
- /**
155
- * When the poison takes effect.
156
- * @minLength 1
157
- */
158
- start: string;
159
- /**
160
- * The normal and degraded poison's duration.
161
- */
162
- duration: Reduceable;
163
336
  errata?: Errata;
164
337
  };
165
338
  export declare const validateSchema: import("../../../validation/schema.js").TypeValidator<Poison>;
@@ -9,4 +9,14 @@ export var PoisonApplicationType;
9
9
  PoisonApplicationType["Inhalation"] = "Inhalation";
10
10
  PoisonApplicationType["Contact"] = "Contact";
11
11
  })(PoisonApplicationType || (PoisonApplicationType = {}));
12
+ export var PoisonTimeUnit;
13
+ (function (PoisonTimeUnit) {
14
+ PoisonTimeUnit["CombatRounds"] = "CombatRounds";
15
+ PoisonTimeUnit["Minutes"] = "Minutes";
16
+ PoisonTimeUnit["Hours"] = "Hours";
17
+ })(PoisonTimeUnit || (PoisonTimeUnit = {}));
18
+ export var QualityLevelDemonicPoisonLevelSource;
19
+ (function (QualityLevelDemonicPoisonLevelSource) {
20
+ QualityLevelDemonicPoisonLevelSource["Spellwork"] = "Spellwork";
21
+ })(QualityLevelDemonicPoisonLevelSource || (QualityLevelDemonicPoisonLevelSource = {}));
12
22
  export const validateSchema = validateSchemaCreator(import.meta.url);
@@ -5,6 +5,7 @@ import { Errata } from "../../source/_Erratum.js";
5
5
  import { PublicationRefs } from "../../source/_PublicationRef.js";
6
6
  import { LocaleMap } from "../../_LocaleMap.js";
7
7
  import { NonEmptyMarkdown, NonEmptyString } from "../../_NonEmptyString.js";
8
+ import { LaboratoryLevel } from "./_Herbary.js";
8
9
  import { Complexity, Cost, StructurePoints, Weight } from "./_Item.js";
9
10
  export declare type ToolOfTheTrade = {
10
11
  /**
@@ -25,15 +26,18 @@ export declare type ToolOfTheTrade = {
25
26
  */
26
27
  structure_points?: StructurePoints;
27
28
  /**
28
- * If the item is a laboratory.
29
+ * Additional information if the item is a laboratory.
29
30
  */
30
- is_laboratory: boolean;
31
+ laboratory?: Laboratory;
31
32
  src: PublicationRefs;
32
33
  /**
33
34
  * All translations for the entry, identified by IETF language tag (BCP47).
34
35
  */
35
36
  translations: LocaleMap<ToolOfTheTradeTranslation>;
36
37
  };
38
+ export declare type Laboratory = {
39
+ level: LaboratoryLevel;
40
+ };
37
41
  export declare type ToolOfTheTradeTranslation = {
38
42
  /**
39
43
  * The name of the item.
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Herbary-related types.
3
+ */
4
+ import { PlainGeneralPrerequisites } from "../../_Prerequisite.js";
5
+ /**
6
+ * Effect type categories of a plant or recipe.
7
+ */
8
+ export declare enum EffectType {
9
+ Healing = "Healing",
10
+ Poison = "Poison",
11
+ PhysicalEffect = "PhysicalEffect",
12
+ PsychicEffect = "PsychicEffect",
13
+ Beneficial = "Beneficial",
14
+ Defensive = "Defensive",
15
+ Supernatural = "Supernatural"
16
+ }
17
+ export declare enum LaboratoryLevel {
18
+ ArchaicLaboratory = "ArchaicLaboratory",
19
+ WitchKitchen = "WitchKitchen",
20
+ AlchemistsLaboratory = "AlchemistsLaboratory"
21
+ }
22
+ export declare type RecipeTradeSecret = {
23
+ /**
24
+ * The AP value of the trade secret.
25
+ */
26
+ ap_value: number;
27
+ /**
28
+ * The prerequisites of the trade secret, if any.
29
+ */
30
+ prerequisites?: PlainGeneralPrerequisites;
31
+ };
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Herbary-related types.
3
+ */
4
+ /**
5
+ * Effect type categories of a plant or recipe.
6
+ */
7
+ export var EffectType;
8
+ (function (EffectType) {
9
+ EffectType["Healing"] = "Healing";
10
+ EffectType["Poison"] = "Poison";
11
+ EffectType["PhysicalEffect"] = "PhysicalEffect";
12
+ EffectType["PsychicEffect"] = "PsychicEffect";
13
+ EffectType["Beneficial"] = "Beneficial";
14
+ EffectType["Defensive"] = "Defensive";
15
+ EffectType["Supernatural"] = "Supernatural";
16
+ })(EffectType || (EffectType = {}));
17
+ export var LaboratoryLevel;
18
+ (function (LaboratoryLevel) {
19
+ LaboratoryLevel["ArchaicLaboratory"] = "ArchaicLaboratory";
20
+ LaboratoryLevel["WitchKitchen"] = "WitchKitchen";
21
+ LaboratoryLevel["AlchemistsLaboratory"] = "AlchemistsLaboratory";
22
+ })(LaboratoryLevel || (LaboratoryLevel = {}));
@@ -2,6 +2,7 @@
2
2
  * Auxiliary types for melee weapons.
3
3
  */
4
4
  import { Dice } from "../../_Dice.js";
5
+ import { ReachIdentifier } from "../../_Identifier.js";
5
6
  import { CloseCombatTechniqueReference } from "../../_SimpleReferences.js";
6
7
  import { Length, PrimaryAttributeDamageThreshold } from "./_Weapon.js";
7
8
  /**
@@ -17,15 +18,7 @@ export declare type ParryModifier = number;
17
18
  /**
18
19
  * The reach of the weapon.
19
20
  */
20
- export declare type Reach = {
21
- /**
22
- * The identifier of the weapon's reach.
23
- * @integer
24
- * @minimum 1
25
- * @maximum 4
26
- */
27
- id: number;
28
- };
21
+ export declare type Reach = ReachIdentifier;
29
22
  /**
30
23
  * The damage of a weapon consists of a random part using dice and an optional
31
24
  * flat part.
@@ -2,6 +2,7 @@
2
2
  * Auxiliary types for ranged weapons.
3
3
  */
4
4
  import { Dice } from "../../_Dice.js";
5
+ import { AmmunitionIdentifier } from "../../_Identifier.js";
5
6
  import { RangedCombatTechniqueReference } from "../../_SimpleReferences.js";
6
7
  import { Length } from "./_Weapon.js";
7
8
  /**
@@ -75,10 +76,8 @@ export declare type RangedWeapon = {
75
76
  export declare type AmmunitionReference = {
76
77
  /**
77
78
  * The item's identifier.
78
- * @integer
79
- * @minimum 1
80
79
  */
81
- id: number;
80
+ id: AmmunitionIdentifier;
82
81
  };
83
82
  export declare type Range = {
84
83
  /**
@@ -41,7 +41,6 @@ export declare type AnimistPower = {
41
41
  *
42
42
  * If no tribe tradition is given, the animist power is generally available to
43
43
  * all tribe traditions.
44
- * @minItems 1
45
44
  * @uniqueItems
46
45
  */
47
46
  tribe_tradition: AnimistTribeReference[];
@@ -5,6 +5,7 @@ import { Errata } from "../source/_Erratum.js";
5
5
  import { PublicationRefs } from "../source/_PublicationRef.js";
6
6
  import { CheckResultBasedDuration } from "../_ActivatableSkillDuration.js";
7
7
  import { Effect } from "../_ActivatableSkillEffect.js";
8
+ import { CloseCombatTechniqueIdentifier } from "../_Identifier.js";
8
9
  import { ImprovementCost } from "../_ImprovementCost.js";
9
10
  import { LocaleMap } from "../_LocaleMap.js";
10
11
  import { NonEmptyString } from "../_NonEmptyString.js";
@@ -21,6 +22,7 @@ export declare type MagicalRune = {
21
22
  * @minimum 1
22
23
  */
23
24
  id: number;
25
+ option?: MagicalRuneOption;
24
26
  /**
25
27
  * Lists the linked three attributes used to make a skill check.
26
28
  */
@@ -50,6 +52,10 @@ export declare type MagicalRune = {
50
52
  export declare type MagicalRuneTranslation = {
51
53
  /**
52
54
  * The name of the magical rune.
55
+ *
56
+ * If the rune has an option, the option’s name will/should not be included in
57
+ * the name as well as its surrounding parenthesis. It will/should be combined
58
+ * on demand.
53
59
  */
54
60
  name: NonEmptyString;
55
61
  /**
@@ -112,10 +118,8 @@ export declare type MagicalRuneCloseCombatTechniqueCheckPenalty = {
112
118
  export declare type MagicalRuneCloseCombatTechniqueCheckPenaltyMapping = {
113
119
  /**
114
120
  * The close combat technique's identifier.
115
- * @integer
116
- * @minimum 1
117
121
  */
118
- combat_technique_id: number;
122
+ combat_technique_id: CloseCombatTechniqueIdentifier;
119
123
  /**
120
124
  * The check modifier for the specified close combat technique.
121
125
  * @integer
@@ -205,4 +209,19 @@ export declare type MagicalRuneDuration = {
205
209
  */
206
210
  fast: CheckResultBasedDuration;
207
211
  };
212
+ export declare type MagicalRuneOption = {
213
+ /**
214
+ * All translations for the entry, identified by IETF language tag (BCP47).
215
+ */
216
+ translations: LocaleMap<MagicalRuneOptionTranslation>;
217
+ };
218
+ export declare type MagicalRuneOptionTranslation = {
219
+ /**
220
+ * The name of the option.
221
+ *
222
+ * The surrounding parenthesis will/should not be included, they will/should
223
+ * be generated.
224
+ */
225
+ name: NonEmptyString;
226
+ };
208
227
  export declare const validateSchema: import("../../validation/schema.js").TypeValidator<MagicalRune>;
@@ -1,3 +1,4 @@
1
+ import { SkillIdentifier } from "../_Identifier.js";
1
2
  /**
2
3
  * A reference to a skill used for performing melodies.
3
4
  */
@@ -5,9 +6,9 @@ export declare type MusicalSkillReference = {
5
6
  /**
6
7
  * The skill's identifier.
7
8
  */
8
- id: SkillIdentifier;
9
+ id: SkillIdentifier<SkillIdentifierValue>;
9
10
  };
10
- export declare enum SkillIdentifier {
11
+ export declare enum SkillIdentifierValue {
11
12
  Singing = 9,
12
13
  Music = 56
13
14
  }
@@ -1,5 +1,5 @@
1
- export var SkillIdentifier;
2
- (function (SkillIdentifier) {
3
- SkillIdentifier[SkillIdentifier["Singing"] = 9] = "Singing";
4
- SkillIdentifier[SkillIdentifier["Music"] = 56] = "Music";
5
- })(SkillIdentifier || (SkillIdentifier = {}));
1
+ export var SkillIdentifierValue;
2
+ (function (SkillIdentifierValue) {
3
+ SkillIdentifierValue[SkillIdentifierValue["Singing"] = 9] = "Singing";
4
+ SkillIdentifierValue[SkillIdentifierValue["Music"] = 56] = "Music";
5
+ })(SkillIdentifierValue || (SkillIdentifierValue = {}));
@@ -1,4 +1,4 @@
1
- import { ActivatableOptionSetPrerequisite, ActivatablePrerequisite, ActivatableSetPrerequisite } from "./single/ActivatablePrerequisite.js";
1
+ import { ActivatablePrerequisite } from "./single/ActivatablePrerequisite.js";
2
2
  import { AnimistPowerPrerequisite } from "./single/AnimistPowerPrerequisite.js";
3
3
  import { CulturePrerequisite } from "./single/CulturePrerequisite.js";
4
4
  import { ExternalEnhancementPrerequisite, InternalEnhancementPrerequisite } from "./single/EnhancementPrerequisite.js";
@@ -7,7 +7,7 @@ import { PactPrerequisite } from "./single/PactPrerequisite.js";
7
7
  import { PrimaryAttributePrerequisite } from "./single/PrimaryAttributePrerequisite.js";
8
8
  import { PublicationPrerequisite } from "./single/PublicationPrerequisite.js";
9
9
  import { RacePrerequisite } from "./single/RacePrerequisite.js";
10
- import { RatedMinimumNumberPrerequisite, RatedPrerequisite, RatedSetPrerequisite } from "./single/RatedPrerequisite.js";
10
+ import { RatedMinimumNumberPrerequisite, RatedPrerequisite } from "./single/RatedPrerequisite.js";
11
11
  import { RulePrerequisite } from "./single/RulePrerequisite.js";
12
12
  import { SexPrerequisite } from "./single/SexPrerequisite.js";
13
13
  import { SocialStatusPrerequisite } from "./single/SocialStatusPrerequisite.js";
@@ -49,12 +49,6 @@ export declare type GeneralPrerequisiteGroup = {
49
49
  } | {
50
50
  tag: "Activatable";
51
51
  activatable: ActivatablePrerequisite;
52
- } | {
53
- tag: "ActivatableSet";
54
- activatable_set: ActivatableSetPrerequisite;
55
- } | {
56
- tag: "ActivatableOptionSet";
57
- activatable_option_set: ActivatableOptionSetPrerequisite;
58
52
  } | {
59
53
  tag: "BlessedTradition";
60
54
  blessed_tradition: BlessedTraditionPrerequisite;
@@ -64,9 +58,6 @@ export declare type GeneralPrerequisiteGroup = {
64
58
  } | {
65
59
  tag: "Rated";
66
60
  rated: RatedPrerequisite;
67
- } | {
68
- tag: "RatedSet";
69
- rated_set: RatedSetPrerequisite;
70
61
  } | {
71
62
  tag: "RatedMinimumNumber";
72
63
  rated_minimum_number: RatedMinimumNumberPrerequisite;
@@ -123,12 +114,6 @@ export declare type AdvantageDisadvantagePrerequisiteGroup = {
123
114
  } | {
124
115
  tag: "Activatable";
125
116
  activatable: ActivatablePrerequisite;
126
- } | {
127
- tag: "ActivatableSet";
128
- activatable_set: ActivatableSetPrerequisite;
129
- } | {
130
- tag: "ActivatableOptionSet";
131
- activatable_option_set: ActivatableOptionSetPrerequisite;
132
117
  } | {
133
118
  tag: "BlessedTradition";
134
119
  blessed_tradition: BlessedTraditionPrerequisite;
@@ -138,9 +123,6 @@ export declare type AdvantageDisadvantagePrerequisiteGroup = {
138
123
  } | {
139
124
  tag: "Rated";
140
125
  rated: RatedPrerequisite;
141
- } | {
142
- tag: "RatedSet";
143
- rated_set: RatedSetPrerequisite;
144
126
  } | {
145
127
  tag: "RatedMinimumNumber";
146
128
  rated_minimum_number: RatedMinimumNumberPrerequisite;