optolith-database-schema 0.5.4 → 0.7.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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,50 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ## [0.7.0](https://github.com/elyukai/optolith-database-schema/compare/v0.6.0...v0.7.0) (2022-12-25)
6
+
7
+
8
+ ### ⚠ BREAKING CHANGES
9
+
10
+ * `restricted_to_traditions` should only apply to magical traditions
11
+ * familiar's tricks may have life point cost
12
+
13
+ ### Features
14
+
15
+ * familiar's tricks may have life point cost ([d428bd3](https://github.com/elyukai/optolith-database-schema/commit/d428bd3384a3d707f95f842198d86d6d6e5a7a6c))
16
+ * sustained familiar's tricks may not have a sustaining interval ([178374d](https://github.com/elyukai/optolith-database-schema/commit/178374df2742aae7f7efd6bfdd13d61402e16b88))
17
+
18
+
19
+ ### Bug Fixes
20
+
21
+ * missing item cost variants ([608fd16](https://github.com/elyukai/optolith-database-schema/commit/608fd16379484de96d2b6d49ea01f570ead946dd))
22
+ * wrong tag-complementing property for subject identifier ([036a219](https://github.com/elyukai/optolith-database-schema/commit/036a2192f2aff4698d4df25315a9c46babf6881f))
23
+
24
+
25
+ * `restricted_to_traditions` should only apply to magical traditions ([a182e6c](https://github.com/elyukai/optolith-database-schema/commit/a182e6ccf9bdf5da327b48ff43e88375517da90f))
26
+
27
+ ## [0.6.0](https://github.com/elyukai/optolith-database-schema/compare/v0.5.4...v0.6.0) (2022-12-10)
28
+
29
+
30
+ ### ⚠ BREAKING CHANGES
31
+
32
+ * rename common ingredients to typical ingredients
33
+
34
+ ### Features
35
+
36
+ * prerequisite disjunctions may have a display option ([36e9ceb](https://github.com/elyukai/optolith-database-schema/commit/36e9ceb26b52f673e13ea2323cb9a3283dc21586))
37
+ * weapons can be restricted to traditions during character creation ([5e085d2](https://github.com/elyukai/optolith-database-schema/commit/5e085d2258e6232e829f9e21cc7823d14ef42322))
38
+
39
+
40
+ ### Bug Fixes
41
+
42
+ * duration variant key convention ([dc1a05e](https://github.com/elyukai/optolith-database-schema/commit/dc1a05ed27e3f97b2cfc2ccfdbe4c20160b0b711))
43
+ * fixed cost countable translation might not be compressable ([561b4ad](https://github.com/elyukai/optolith-database-schema/commit/561b4ad0f9b938539826f734f8c84d45cc1c4543))
44
+ * missing equipment packages source references ([ff3ae6c](https://github.com/elyukai/optolith-database-schema/commit/ff3ae6cbb52902e00ea13179a88bb9abd19d6663))
45
+
46
+
47
+ * rename common ingredients to typical ingredients ([aa7fb6e](https://github.com/elyukai/optolith-database-schema/commit/aa7fb6ed41a756d65637520095b58b6226f410c9))
48
+
5
49
  ### [0.5.4](https://github.com/elyukai/optolith-database-schema/compare/v0.5.3...v0.5.4) (2022-12-03)
6
50
 
7
51
 
@@ -35,12 +35,12 @@ export declare type DerivedCharacteristicTranslation = {
35
35
  /**
36
36
  * Possible calculation strings for the final value.
37
37
  */
38
- calculation?: Calculation;
38
+ calculation?: CalculationTranslation;
39
39
  };
40
40
  /**
41
41
  * Possible calculation strings for the final value.
42
42
  */
43
- export declare type Calculation = {
43
+ export declare type CalculationTranslation = {
44
44
  /**
45
45
  * The default calculation string.
46
46
  * @minLength 1
@@ -5,7 +5,7 @@ import { Errata } from "./source/_Erratum.js";
5
5
  import { PublicationRefs } from "./source/_PublicationRef.js";
6
6
  import { DurationUnit, DurationUnitValue } from "./_ActivatableSkillDuration.js";
7
7
  import { LocaleMap } from "./_LocaleMap.js";
8
- import { ResponsiveText, ResponsiveTextReplace } from "./_ResponsiveText.js";
8
+ import { ResponsiveText, ResponsiveTextOptional, ResponsiveTextReplace } from "./_ResponsiveText.js";
9
9
  import { AnimalTypeReference, PropertyReference } from "./_SimpleReferences.js";
10
10
  /**
11
11
  * @title Familiar's Trick
@@ -126,7 +126,13 @@ export declare type FixedOneTimeCost = {
126
126
  * @integer
127
127
  * @minimum 1
128
128
  */
129
- value: number;
129
+ ae_value: number;
130
+ /**
131
+ * The LP cost value.
132
+ * @integer
133
+ * @minimum 1
134
+ */
135
+ lp_value?: number;
130
136
  /**
131
137
  * The interval in which you have to pay the AE cost again.
132
138
  */
@@ -142,7 +148,7 @@ export declare type FixedOneTimeCostTranslation = {
142
148
  * The cost have to be per a specific countable entity, e.g. `8 KP
143
149
  * per person`.
144
150
  */
145
- per?: ResponsiveText;
151
+ per?: ResponsiveTextOptional;
146
152
  };
147
153
  export declare type AllOneTimeCost = {
148
154
  /**
@@ -167,6 +173,7 @@ export declare type IndefiniteOneTimeCostTranslation = {
167
173
  };
168
174
  export declare type OneTimeDuration = {
169
175
  tag: "Immediate";
176
+ immediate: {};
170
177
  } | {
171
178
  tag: "Fixed";
172
179
  fixed: FixedOneTimeDuration;
@@ -222,7 +229,13 @@ export declare type OneTimeIntervalCost = {
222
229
  * @integer
223
230
  * @minimum 1
224
231
  */
225
- value: number;
232
+ ae_value: number;
233
+ /**
234
+ * The LP cost value.
235
+ * @integer
236
+ * @minimum 1
237
+ */
238
+ lp_value?: number;
226
239
  /**
227
240
  * The duration granted/added by paying the given AE cost.
228
241
  */
@@ -237,10 +250,16 @@ export declare type SustainedCost = {
237
250
  * @integer
238
251
  * @minimum 1
239
252
  */
240
- value: number;
253
+ ae_value: number;
241
254
  /**
242
- * The interval in which you have to pay the AE cost again.
255
+ * The LP cost value.
256
+ * @integer
257
+ * @minimum 1
243
258
  */
244
- interval: DurationUnitValue;
259
+ lp_value?: number;
260
+ /**
261
+ * The interval in which you have to pay the AE cost again, if any.
262
+ */
263
+ interval?: DurationUnitValue;
245
264
  };
246
265
  export declare const validateSchema: import("../validation/schema.js").TypeValidator<FamiliarsTrick>;
@@ -41,7 +41,7 @@ export declare type SubjectIdentifier = {
41
41
  * @integer
42
42
  * @minimum 1
43
43
  */
44
- focus_rule: number;
44
+ subject: number;
45
45
  };
46
46
  export declare type OptionalRuleIdentifier = {
47
47
  tag: "OptionalRule";
@@ -2,6 +2,7 @@ import * as Identifier from "./_Identifier.js";
2
2
  export declare type ActivatableIdentifier = Identifier.AdvantageIdentifier | Identifier.DisadvantageIdentifier | Identifier.GeneralSpecialAbilityIdentifier | Identifier.FatePointSpecialAbilityIdentifier | Identifier.CombatSpecialAbilityIdentifier | Identifier.MagicalSpecialAbilityIdentifier | Identifier.StaffEnchantmentIdentifier | Identifier.FamiliarSpecialAbilityIdentifier | Identifier.KarmaSpecialAbilityIdentifier | Identifier.ProtectiveWardingCircleSpecialAbilityIdentifier | Identifier.CombatStyleSpecialAbilityIdentifier | Identifier.AdvancedCombatSpecialAbilityIdentifier | Identifier.CommandSpecialAbilityIdentifier | Identifier.MagicStyleSpecialAbilityIdentifier | Identifier.AdvancedMagicalSpecialAbilityIdentifier | Identifier.SpellSwordEnchantmentIdentifier | Identifier.DaggerRitualIdentifier | Identifier.InstrumentEnchantmentIdentifier | Identifier.AttireEnchantmentIdentifier | Identifier.OrbEnchantmentIdentifier | Identifier.WandEnchantmentIdentifier | Identifier.BrawlingSpecialAbilityIdentifier | Identifier.AncestorGlyphIdentifier | Identifier.CeremonialItemSpecialAbilityIdentifier | Identifier.SermonIdentifier | Identifier.LiturgicalStyleSpecialAbilityIdentifier | Identifier.AdvancedKarmaSpecialAbilityIdentifier | Identifier.VisionIdentifier | Identifier.MagicalTraditionIdentifier | Identifier.BlessedTraditionIdentifier | Identifier.PactGiftIdentifier | Identifier.SikaryanDrainSpecialAbilityIdentifier | Identifier.LycantropicGiftIdentifier | Identifier.SkillStyleSpecialAbilityIdentifier | Identifier.AdvancedSkillSpecialAbilityIdentifier | Identifier.ArcaneOrbEnchantmentIdentifier | Identifier.CauldronEnchantmentIdentifier | Identifier.FoolsHatEnchantmentIdentifier | Identifier.ToyEnchantmentIdentifier | Identifier.BowlEnchantmentIdentifier | Identifier.FatePointSexSpecialAbilityIdentifier | Identifier.SexSpecialAbilityIdentifier | Identifier.WeaponEnchantmentIdentifier | Identifier.SickleRitualIdentifier | Identifier.RingEnchantmentIdentifier | Identifier.ChronicleEnchantmentIdentifier;
3
3
  export declare type SpecialAbilityIdentifier = Identifier.GeneralSpecialAbilityIdentifier | Identifier.FatePointSpecialAbilityIdentifier | Identifier.CombatSpecialAbilityIdentifier | Identifier.MagicalSpecialAbilityIdentifier | Identifier.StaffEnchantmentIdentifier | Identifier.FamiliarSpecialAbilityIdentifier | Identifier.KarmaSpecialAbilityIdentifier | Identifier.ProtectiveWardingCircleSpecialAbilityIdentifier | Identifier.CombatStyleSpecialAbilityIdentifier | Identifier.AdvancedCombatSpecialAbilityIdentifier | Identifier.CommandSpecialAbilityIdentifier | Identifier.MagicStyleSpecialAbilityIdentifier | Identifier.AdvancedMagicalSpecialAbilityIdentifier | Identifier.SpellSwordEnchantmentIdentifier | Identifier.DaggerRitualIdentifier | Identifier.InstrumentEnchantmentIdentifier | Identifier.AttireEnchantmentIdentifier | Identifier.OrbEnchantmentIdentifier | Identifier.WandEnchantmentIdentifier | Identifier.BrawlingSpecialAbilityIdentifier | Identifier.AncestorGlyphIdentifier | Identifier.CeremonialItemSpecialAbilityIdentifier | Identifier.SermonIdentifier | Identifier.LiturgicalStyleSpecialAbilityIdentifier | Identifier.AdvancedKarmaSpecialAbilityIdentifier | Identifier.VisionIdentifier | Identifier.MagicalTraditionIdentifier | Identifier.BlessedTraditionIdentifier | Identifier.PactGiftIdentifier | Identifier.SikaryanDrainSpecialAbilityIdentifier | Identifier.LycantropicGiftIdentifier | Identifier.SkillStyleSpecialAbilityIdentifier | Identifier.AdvancedSkillSpecialAbilityIdentifier | Identifier.ArcaneOrbEnchantmentIdentifier | Identifier.CauldronEnchantmentIdentifier | Identifier.FoolsHatEnchantmentIdentifier | Identifier.ToyEnchantmentIdentifier | Identifier.BowlEnchantmentIdentifier | Identifier.FatePointSexSpecialAbilityIdentifier | Identifier.SexSpecialAbilityIdentifier | Identifier.WeaponEnchantmentIdentifier | Identifier.SickleRitualIdentifier | Identifier.RingEnchantmentIdentifier | Identifier.ChronicleEnchantmentIdentifier;
4
4
  export declare type CombatRelatedSpecialAbilityIdentifier = Identifier.CombatSpecialAbilityIdentifier | Identifier.CombatStyleSpecialAbilityIdentifier | Identifier.AdvancedCombatSpecialAbilityIdentifier | Identifier.CommandSpecialAbilityIdentifier;
5
+ export declare type TraditionIdentifier = Identifier.MagicalTraditionIdentifier | Identifier.BlessedTraditionIdentifier;
5
6
  export declare type RatedIdentifier = Identifier.AttributeIdentifier | SkillIdentifier | Identifier.CloseCombatTechniqueIdentifier | Identifier.RangedCombatTechniqueIdentifier | Identifier.SpellIdentifier | Identifier.RitualIdentifier | Identifier.LiturgicalChantIdentifier | Identifier.CeremonyIdentifier;
6
7
  export declare type SkillIdentifier = Identifier.SkillIdentifier | Identifier.SpellIdentifier | Identifier.RitualIdentifier | Identifier.LiturgicalChantIdentifier | Identifier.CeremonyIdentifier;
7
8
  export declare type AdvancedSpecialAbilityRestrictedOptionIdentifier = Identifier.GeneralIdentifier | Identifier.SkillIdentifier | Identifier.ElementIdentifier;
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * @title Prerequisites
3
3
  */
4
+ import { DisplayOption } from "./prerequisites/DisplayOption.js";
4
5
  import { AdvantageDisadvantagePrerequisiteGroup, AnimistPowerPrerequisiteGroup, ArcaneTraditionPrerequisiteGroup, DerivedCharacteristicPrerequisiteGroup, EnhancementPrerequisiteGroup, GeneralPrerequisiteGroup, GeodeRitualPrerequisiteGroup, InfluencePrerequisiteGroup, LanguagePrerequisiteGroup, LiturgyPrerequisiteGroup, PersonalityTraitPrerequisiteGroup, ProfessionPrerequisiteGroup, PublicationPrerequisiteGroup, SpellworkPrerequisiteGroup } from "./prerequisites/PrerequisiteGroups.js";
5
6
  import { LocaleMap } from "./_LocaleMap.js";
6
7
  import { NonEmptyString } from "./_NonEmptyString.js";
@@ -24,6 +25,7 @@ export declare type PrerequisitesDisjunction<T> = {
24
25
  * @minItems 2
25
26
  */
26
27
  list: T[];
28
+ display_option?: DisplayOption;
27
29
  };
28
30
  export declare type PrerequisitesElement<T> = {
29
31
  tag: "Single";
@@ -1,5 +1,5 @@
1
1
  import { AdvantageIdentifier, AnimalTypeIdentifier, AnimistTribeIdentifier, ArmorIdentifier, AspectIdentifier, AttributeIdentifier, BlessedTraditionIdentifier, BlessingIdentifier, CantripIdentifier, CeremonyIdentifier, CloseCombatTechniqueIdentifier, CultureIdentifier, CurriculumIdentifier, DisadvantageIdentifier, ElementIdentifier, EyeColorIdentifier, GuidelineIdentifier, HairColorIdentifier, LanguageIdentifier, LiturgicalChantIdentifier, MagicalTraditionIdentifier, PactCategoryIdentifier, PactDomainIdentifier, PatronCategoryIdentifier, PatronIdentifier, PersonalityTraitIdentifier, ProfessionIdentifier, ProfessionVariantIdentifier, PropertyIdentifier, RaceIdentifier, RangedCombatTechniqueIdentifier, RitualIdentifier, ScriptIdentifier, SkillGroupIdentifier, SkillIdentifier, SocialStatusIdentifier, SpellIdentifier, SubjectIdentifier, TargetCategoryIdentifier, WeaponIdentifier } from "./_Identifier.js";
2
- import { CombatTechniqueIdentifier, SpellworkIdentifier } from "./_IdentifierGroup.js";
2
+ import { CombatTechniqueIdentifier, SpellworkIdentifier, TraditionIdentifier } from "./_IdentifierGroup.js";
3
3
  export declare type FocusRuleSubjectReference = {
4
4
  id: SubjectIdentifier;
5
5
  };
@@ -129,3 +129,6 @@ export declare type WeaponReference = {
129
129
  export declare type ArmorReference = {
130
130
  id: ArmorIdentifier;
131
131
  };
132
+ export declare type TraditionReference = {
133
+ id: TraditionIdentifier;
134
+ };
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * @main EquipmentPackage
3
3
  */
4
+ import { PublicationRefs } from "../source/_PublicationRef.js";
4
5
  import { EquipmentIdentifier } from "../_IdentifierGroup.js";
5
6
  import { LocaleMap } from "../_LocaleMap.js";
6
7
  import { NonEmptyString } from "../_NonEmptyString.js";
@@ -21,6 +22,7 @@ export declare type EquipmentPackage = {
21
22
  * @minItems 2
22
23
  */
23
24
  items: EquipmentPackageItem[];
25
+ src: PublicationRefs;
24
26
  /**
25
27
  * All translations for the entry, identified by IETF language tag (BCP47).
26
28
  */
@@ -49,11 +49,11 @@ export declare type ElixirTranslation = {
49
49
  */
50
50
  alternative_names?: AlternativeName[];
51
51
  /**
52
- * A list of common ingredients.
52
+ * A list of typical ingredients.
53
53
  * @minItems 1
54
54
  * @uniqueItems
55
55
  */
56
- common_ingredients: NonEmptyString[];
56
+ typical_ingredients: NonEmptyString[];
57
57
  /**
58
58
  * Prerequsites for the brewing process, if any.
59
59
  */
@@ -156,11 +156,11 @@ export declare type AlchemicalPoison = {
156
156
  };
157
157
  export declare type AlchemicalPoisonTranslation = {
158
158
  /**
159
- * A list of common ingredients.
159
+ * A list of typical ingredients.
160
160
  * @minItems 1
161
161
  * @uniqueItems
162
162
  */
163
- common_ingredients: NonEmptyString[];
163
+ typical_ingredients: NonEmptyString[];
164
164
  /**
165
165
  * Prerequsites for the brewing process, if any.
166
166
  */
@@ -5,7 +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 { BlessedTraditionReference, CultureReference, RaceReference } from "../../_SimpleReferences.js";
8
+ import { BlessedTraditionReference, CultureReference, MagicalTraditionReference, RaceReference } from "../../_SimpleReferences.js";
9
9
  import { Complexity, Cost, StructurePoints, Weight } from "./_Item.js";
10
10
  import { MeleeWeapon } from "./_MeleeWeapon.js";
11
11
  import { RangedWeapon } from "./_RangedWeapon.js";
@@ -43,6 +43,12 @@ export declare type Weapon = {
43
43
  * characters of a specific race or culture.
44
44
  */
45
45
  restricted_to_cultures?: RestrictedToCultures;
46
+ /**
47
+ * Define if during character creation this weapon can only be bought by
48
+ * characters of specific magical or blessed traditions.
49
+ * @minItems 1
50
+ */
51
+ restricted_to_traditions?: MagicalTraditionReference[];
46
52
  src: PublicationRefs;
47
53
  /**
48
54
  * All translations for the entry, identified by IETF language tag (BCP47).
@@ -93,6 +99,12 @@ export declare type SecondaryWeapon = {
93
99
  * characters of a specific race or culture.
94
100
  */
95
101
  restricted_to_cultures?: RestrictedToCultures;
102
+ /**
103
+ * Define if during character creation this weapon can only be bought by
104
+ * characters of specific magical or blessed traditions.
105
+ * @minItems 1
106
+ */
107
+ restricted_to_traditions?: MagicalTraditionReference[];
96
108
  /**
97
109
  * All translations for the entry, identified by IETF language tag (BCP47).
98
110
  */
@@ -88,11 +88,8 @@ export declare type Cost = {
88
88
  tag: "Various";
89
89
  various: {};
90
90
  } | {
91
- tag: "";
92
- "": {};
93
- } | {
94
- tag: "";
95
- "": {};
91
+ tag: "Invaluable";
92
+ invaluable: {};
96
93
  } | {
97
94
  tag: "Fixed";
98
95
  fixed: FixedCost;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "optolith-database-schema",
3
- "version": "0.5.4",
3
+ "version": "0.7.0",
4
4
  "description": "Definitions and utilities for the flat-file database of Optolith, a character creation tool for the Pen and Paper RPG “The Dark Eye 5”, and its external integrations into other software.",
5
5
  "keywords": [
6
6
  "tde",
@@ -52,7 +52,7 @@
52
52
  },
53
53
  "calculation": {
54
54
  "description": "Possible calculation strings for the final value.",
55
- "$ref": "#/$defs/Calculation"
55
+ "$ref": "#/$defs/CalculationTranslation"
56
56
  }
57
57
  },
58
58
  "required": [
@@ -61,7 +61,7 @@
61
61
  ],
62
62
  "additionalProperties": false
63
63
  },
64
- "Calculation": {
64
+ "CalculationTranslation": {
65
65
  "description": "Possible calculation strings for the final value.",
66
66
  "type": "object",
67
67
  "properties": {
@@ -307,11 +307,16 @@
307
307
  "FixedOneTimeCost": {
308
308
  "type": "object",
309
309
  "properties": {
310
- "value": {
310
+ "ae_value": {
311
311
  "description": "The AE cost value.",
312
312
  "type": "integer",
313
313
  "minimum": 1
314
314
  },
315
+ "lp_value": {
316
+ "description": "The LP cost value.",
317
+ "type": "integer",
318
+ "minimum": 1
319
+ },
315
320
  "interval": {
316
321
  "description": "The interval in which you have to pay the AE cost again.",
317
322
  "$ref": "./_ActivatableSkillDuration.schema.json#/$defs/DurationUnitValue"
@@ -329,7 +334,7 @@
329
334
  }
330
335
  },
331
336
  "required": [
332
- "value"
337
+ "ae_value"
333
338
  ],
334
339
  "additionalProperties": false
335
340
  },
@@ -338,7 +343,7 @@
338
343
  "properties": {
339
344
  "per": {
340
345
  "description": "The cost have to be per a specific countable entity, e.g. `8 KP\nper person`.",
341
- "$ref": "./_ResponsiveText.schema.json#/$defs/ResponsiveText"
346
+ "$ref": "./_ResponsiveText.schema.json#/$defs/ResponsiveTextOptional"
342
347
  }
343
348
  },
344
349
  "required": [],
@@ -396,10 +401,17 @@
396
401
  "properties": {
397
402
  "tag": {
398
403
  "const": "Immediate"
404
+ },
405
+ "immediate": {
406
+ "type": "object",
407
+ "properties": {},
408
+ "required": [],
409
+ "additionalProperties": false
399
410
  }
400
411
  },
401
412
  "required": [
402
- "tag"
413
+ "tag",
414
+ "immediate"
403
415
  ],
404
416
  "additionalProperties": false
405
417
  },
@@ -530,18 +542,23 @@
530
542
  "OneTimeIntervalCost": {
531
543
  "type": "object",
532
544
  "properties": {
533
- "value": {
545
+ "ae_value": {
534
546
  "description": "The AE cost value.",
535
547
  "type": "integer",
536
548
  "minimum": 1
537
549
  },
550
+ "lp_value": {
551
+ "description": "The LP cost value.",
552
+ "type": "integer",
553
+ "minimum": 1
554
+ },
538
555
  "interval": {
539
556
  "description": "The duration granted/added by paying the given AE cost.",
540
557
  "$ref": "./_ActivatableSkillDuration.schema.json#/$defs/DurationUnitValue"
541
558
  }
542
559
  },
543
560
  "required": [
544
- "value",
561
+ "ae_value",
545
562
  "interval"
546
563
  ],
547
564
  "additionalProperties": false
@@ -561,19 +578,23 @@
561
578
  "SustainedCost": {
562
579
  "type": "object",
563
580
  "properties": {
564
- "value": {
581
+ "ae_value": {
565
582
  "description": "The AE cost value.",
566
583
  "type": "integer",
567
584
  "minimum": 1
568
585
  },
586
+ "lp_value": {
587
+ "description": "The LP cost value.",
588
+ "type": "integer",
589
+ "minimum": 1
590
+ },
569
591
  "interval": {
570
- "description": "The interval in which you have to pay the AE cost again.",
592
+ "description": "The interval in which you have to pay the AE cost again, if any.",
571
593
  "$ref": "./_ActivatableSkillDuration.schema.json#/$defs/DurationUnitValue"
572
594
  }
573
595
  },
574
596
  "required": [
575
- "value",
576
- "interval"
597
+ "ae_value"
577
598
  ],
578
599
  "additionalProperties": false
579
600
  }
@@ -80,7 +80,7 @@
80
80
  "tag": {
81
81
  "const": "Subject"
82
82
  },
83
- "focus_rule": {
83
+ "subject": {
84
84
  "description": "The focus rule subject’s identifier.",
85
85
  "type": "integer",
86
86
  "minimum": 1
@@ -88,7 +88,7 @@
88
88
  },
89
89
  "required": [
90
90
  "tag",
91
- "focus_rule"
91
+ "subject"
92
92
  ],
93
93
  "additionalProperties": false
94
94
  },
@@ -296,6 +296,16 @@
296
296
  }
297
297
  ]
298
298
  },
299
+ "TraditionIdentifier": {
300
+ "oneOf": [
301
+ {
302
+ "$ref": "./_Identifier.schema.json#/$defs/MagicalTraditionIdentifier"
303
+ },
304
+ {
305
+ "$ref": "./_Identifier.schema.json#/$defs/BlessedTraditionIdentifier"
306
+ }
307
+ ]
308
+ },
299
309
  "RatedIdentifier": {
300
310
  "oneOf": [
301
311
  {
@@ -37,6 +37,9 @@
37
37
  "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/DerivedCharacteristicPrerequisiteGroup"
38
38
  },
39
39
  "minItems": 2
40
+ },
41
+ "display_option": {
42
+ "$ref": "./prerequisites/DisplayOption.schema.json#/$defs/DisplayOption"
40
43
  }
41
44
  },
42
45
  "required": [
@@ -132,6 +135,9 @@
132
135
  "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/PublicationPrerequisiteGroup"
133
136
  },
134
137
  "minItems": 2
138
+ },
139
+ "display_option": {
140
+ "$ref": "./prerequisites/DisplayOption.schema.json#/$defs/DisplayOption"
135
141
  }
136
142
  },
137
143
  "required": [
@@ -227,6 +233,9 @@
227
233
  "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/GeneralPrerequisiteGroup"
228
234
  },
229
235
  "minItems": 2
236
+ },
237
+ "display_option": {
238
+ "$ref": "./prerequisites/DisplayOption.schema.json#/$defs/DisplayOption"
230
239
  }
231
240
  },
232
241
  "required": [
@@ -329,6 +338,9 @@
329
338
  "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/GeneralPrerequisiteGroup"
330
339
  },
331
340
  "minItems": 2
341
+ },
342
+ "display_option": {
343
+ "$ref": "./prerequisites/DisplayOption.schema.json#/$defs/DisplayOption"
332
344
  }
333
345
  },
334
346
  "required": [
@@ -431,6 +443,9 @@
431
443
  "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/ProfessionPrerequisiteGroup"
432
444
  },
433
445
  "minItems": 2
446
+ },
447
+ "display_option": {
448
+ "$ref": "./prerequisites/DisplayOption.schema.json#/$defs/DisplayOption"
434
449
  }
435
450
  },
436
451
  "required": [
@@ -533,6 +548,9 @@
533
548
  "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/AdvantageDisadvantagePrerequisiteGroup"
534
549
  },
535
550
  "minItems": 2
551
+ },
552
+ "display_option": {
553
+ "$ref": "./prerequisites/DisplayOption.schema.json#/$defs/DisplayOption"
536
554
  }
537
555
  },
538
556
  "required": [
@@ -635,6 +653,9 @@
635
653
  "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/ArcaneTraditionPrerequisiteGroup"
636
654
  },
637
655
  "minItems": 2
656
+ },
657
+ "display_option": {
658
+ "$ref": "./prerequisites/DisplayOption.schema.json#/$defs/DisplayOption"
638
659
  }
639
660
  },
640
661
  "required": [
@@ -730,6 +751,9 @@
730
751
  "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/PersonalityTraitPrerequisiteGroup"
731
752
  },
732
753
  "minItems": 2
754
+ },
755
+ "display_option": {
756
+ "$ref": "./prerequisites/DisplayOption.schema.json#/$defs/DisplayOption"
733
757
  }
734
758
  },
735
759
  "required": [
@@ -825,6 +849,9 @@
825
849
  "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/SpellworkPrerequisiteGroup"
826
850
  },
827
851
  "minItems": 2
852
+ },
853
+ "display_option": {
854
+ "$ref": "./prerequisites/DisplayOption.schema.json#/$defs/DisplayOption"
828
855
  }
829
856
  },
830
857
  "required": [
@@ -920,6 +947,9 @@
920
947
  "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/LiturgyPrerequisiteGroup"
921
948
  },
922
949
  "minItems": 2
950
+ },
951
+ "display_option": {
952
+ "$ref": "./prerequisites/DisplayOption.schema.json#/$defs/DisplayOption"
923
953
  }
924
954
  },
925
955
  "required": [
@@ -1015,6 +1045,9 @@
1015
1045
  "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/InfluencePrerequisiteGroup"
1016
1046
  },
1017
1047
  "minItems": 2
1048
+ },
1049
+ "display_option": {
1050
+ "$ref": "./prerequisites/DisplayOption.schema.json#/$defs/DisplayOption"
1018
1051
  }
1019
1052
  },
1020
1053
  "required": [
@@ -1117,6 +1150,9 @@
1117
1150
  "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/LanguagePrerequisiteGroup"
1118
1151
  },
1119
1152
  "minItems": 2
1153
+ },
1154
+ "display_option": {
1155
+ "$ref": "./prerequisites/DisplayOption.schema.json#/$defs/DisplayOption"
1120
1156
  }
1121
1157
  },
1122
1158
  "required": [
@@ -1219,6 +1255,9 @@
1219
1255
  "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/AnimistPowerPrerequisiteGroup"
1220
1256
  },
1221
1257
  "minItems": 2
1258
+ },
1259
+ "display_option": {
1260
+ "$ref": "./prerequisites/DisplayOption.schema.json#/$defs/DisplayOption"
1222
1261
  }
1223
1262
  },
1224
1263
  "required": [
@@ -1314,6 +1353,9 @@
1314
1353
  "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/GeodeRitualPrerequisiteGroup"
1315
1354
  },
1316
1355
  "minItems": 2
1356
+ },
1357
+ "display_option": {
1358
+ "$ref": "./prerequisites/DisplayOption.schema.json#/$defs/DisplayOption"
1317
1359
  }
1318
1360
  },
1319
1361
  "required": [
@@ -1409,6 +1451,9 @@
1409
1451
  "$ref": "./prerequisites/PrerequisiteGroups.schema.json#/$defs/EnhancementPrerequisiteGroup"
1410
1452
  },
1411
1453
  "minItems": 2
1454
+ },
1455
+ "display_option": {
1456
+ "$ref": "./prerequisites/DisplayOption.schema.json#/$defs/DisplayOption"
1412
1457
  }
1413
1458
  },
1414
1459
  "required": [
@@ -505,6 +505,18 @@
505
505
  "id"
506
506
  ],
507
507
  "additionalProperties": false
508
+ },
509
+ "TraditionReference": {
510
+ "type": "object",
511
+ "properties": {
512
+ "id": {
513
+ "$ref": "./_IdentifierGroup.schema.json#/$defs/TraditionIdentifier"
514
+ }
515
+ },
516
+ "required": [
517
+ "id"
518
+ ],
519
+ "additionalProperties": false
508
520
  }
509
521
  }
510
522
  }
@@ -20,6 +20,9 @@
20
20
  },
21
21
  "minItems": 2
22
22
  },
23
+ "src": {
24
+ "$ref": "../source/_PublicationRef.schema.json#/$defs/PublicationRefs"
25
+ },
23
26
  "translations": {
24
27
  "description": "All translations for the entry, identified by IETF language tag (BCP47).",
25
28
  "type": "object",
@@ -35,6 +38,7 @@
35
38
  "required": [
36
39
  "id",
37
40
  "items",
41
+ "src",
38
42
  "translations"
39
43
  ],
40
44
  "additionalProperties": false
@@ -68,8 +68,8 @@
68
68
  },
69
69
  "minItems": 1
70
70
  },
71
- "common_ingredients": {
72
- "description": "A list of common ingredients.",
71
+ "typical_ingredients": {
72
+ "description": "A list of typical ingredients.",
73
73
  "type": "array",
74
74
  "items": {
75
75
  "$ref": "../../_NonEmptyString.schema.json#/$defs/NonEmptyString"
@@ -114,7 +114,7 @@
114
114
  },
115
115
  "required": [
116
116
  "name",
117
- "common_ingredients",
117
+ "typical_ingredients",
118
118
  "quality_levels"
119
119
  ],
120
120
  "additionalProperties": false
@@ -382,8 +382,8 @@
382
382
  "AlchemicalPoisonTranslation": {
383
383
  "type": "object",
384
384
  "properties": {
385
- "common_ingredients": {
386
- "description": "A list of common ingredients.",
385
+ "typical_ingredients": {
386
+ "description": "A list of typical ingredients.",
387
387
  "type": "array",
388
388
  "items": {
389
389
  "$ref": "../../_NonEmptyString.schema.json#/$defs/NonEmptyString"
@@ -397,7 +397,7 @@
397
397
  }
398
398
  },
399
399
  "required": [
400
- "common_ingredients"
400
+ "typical_ingredients"
401
401
  ],
402
402
  "additionalProperties": false
403
403
  },
@@ -38,6 +38,14 @@
38
38
  "description": "Define if during character creation this weapon can only be bought by\ncharacters of a specific race or culture.",
39
39
  "$ref": "#/$defs/RestrictedToCultures"
40
40
  },
41
+ "restricted_to_traditions": {
42
+ "description": "Define if during character creation this weapon can only be bought by\ncharacters of specific magical or blessed traditions.",
43
+ "type": "array",
44
+ "items": {
45
+ "$ref": "../../_SimpleReferences.schema.json#/$defs/MagicalTraditionReference"
46
+ },
47
+ "minItems": 1
48
+ },
41
49
  "src": {
42
50
  "$ref": "../../source/_PublicationRef.schema.json#/$defs/PublicationRefs"
43
51
  },
@@ -118,6 +126,14 @@
118
126
  "description": "Define if during character creation this weapon can only be bought by\ncharacters of a specific race or culture.",
119
127
  "$ref": "#/$defs/RestrictedToCultures"
120
128
  },
129
+ "restricted_to_traditions": {
130
+ "description": "Define if during character creation this weapon can only be bought by\ncharacters of specific magical or blessed traditions.",
131
+ "type": "array",
132
+ "items": {
133
+ "$ref": "../../_SimpleReferences.schema.json#/$defs/MagicalTraditionReference"
134
+ },
135
+ "minItems": 1
136
+ },
121
137
  "translations": {
122
138
  "description": "All translations for the entry, identified by IETF language tag (BCP47).",
123
139
  "type": "object",
@@ -182,9 +182,9 @@
182
182
  "type": "object",
183
183
  "properties": {
184
184
  "tag": {
185
- "const": ""
185
+ "const": "Invaluable"
186
186
  },
187
- "": {
187
+ "invaluable": {
188
188
  "type": "object",
189
189
  "properties": {},
190
190
  "required": [],
@@ -193,26 +193,7 @@
193
193
  },
194
194
  "required": [
195
195
  "tag",
196
- ""
197
- ],
198
- "additionalProperties": false
199
- },
200
- {
201
- "type": "object",
202
- "properties": {
203
- "tag": {
204
- "const": ""
205
- },
206
- "": {
207
- "type": "object",
208
- "properties": {},
209
- "required": [],
210
- "additionalProperties": false
211
- }
212
- },
213
- "required": [
214
- "tag",
215
- ""
196
+ "invaluable"
216
197
  ],
217
198
  "additionalProperties": false
218
199
  },