optolith-database-schema 0.3.0 → 0.4.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 (129) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/lib/config.d.ts +4 -4
  3. package/lib/config.js +4 -4
  4. package/lib/types/Blessing.d.ts +3 -0
  5. package/lib/types/Cantrip.d.ts +3 -0
  6. package/lib/types/Culture.d.ts +18 -22
  7. package/lib/types/Culture.js +38 -0
  8. package/lib/types/Lessons_Curriculum.d.ts +4 -0
  9. package/lib/types/Patron.d.ts +12 -18
  10. package/lib/types/Patron.js +20 -0
  11. package/lib/types/Profession.d.ts +8 -11
  12. package/lib/types/Profession.js +6 -0
  13. package/lib/types/Race.d.ts +5 -7
  14. package/lib/types/Race.js +11 -0
  15. package/lib/types/Service.d.ts +4 -5
  16. package/lib/types/Service.js +5 -0
  17. package/lib/types/Skill.d.ts +10 -14
  18. package/lib/types/Skill.js +19 -0
  19. package/lib/types/Talisman.d.ts +7 -11
  20. package/lib/types/Talisman.js +8 -0
  21. package/lib/types/_Activatable.d.ts +41 -25
  22. package/lib/types/_Activatable.js +44 -1
  23. package/lib/types/_ActivatableSelectOptionCategory.d.ts +21 -18
  24. package/lib/types/_ActivatableSelectOptionCategory.js +8 -1
  25. package/lib/types/_ActivatableSkillCheckResultBased.d.ts +8 -10
  26. package/lib/types/_ActivatableSkillCheckResultBased.js +16 -1
  27. package/lib/types/_ActivatableSkillRange.d.ts +8 -4
  28. package/lib/types/_ActivatableSkillTargetCategory.d.ts +4 -0
  29. package/lib/types/_DiseasePoison.d.ts +5 -7
  30. package/lib/types/_DiseasePoison.js +11 -1
  31. package/lib/types/_Sex.d.ts +4 -5
  32. package/lib/types/_Sex.js +8 -1
  33. package/lib/types/_SkillCheck.d.ts +6 -9
  34. package/lib/types/_SkillCheck.js +11 -1
  35. package/lib/types/_Spellwork.d.ts +1 -0
  36. package/lib/types/equipment/item/Armor.d.ts +4 -4
  37. package/lib/types/equipment/item/BandageOrRemedy.d.ts +33 -3
  38. package/lib/types/equipment/item/CeremonialItem.d.ts +38 -3
  39. package/lib/types/equipment/item/EquipmentOfBlessedOnes.d.ts +1 -14
  40. package/lib/types/equipment/item/IlluminationLightSource.d.ts +62 -0
  41. package/lib/types/equipment/item/IlluminationLightSource.js +9 -0
  42. package/lib/types/equipment/item/{HealingHerb.d.ts → IlluminationRefillsOrSupplies.d.ts} +2 -2
  43. package/lib/types/equipment/item/{HealingHerb.js → IlluminationRefillsOrSupplies.js} +1 -1
  44. package/lib/types/equipment/item/LuxuryGood.d.ts +33 -3
  45. package/lib/types/equipment/item/MusicalInstrument.d.ts +3 -8
  46. package/lib/types/equipment/item/Poison.d.ts +11 -9
  47. package/lib/types/equipment/item/Poison.js +7 -0
  48. package/lib/types/equipment/item/ToolOfTheTrade.d.ts +1 -1
  49. package/lib/types/equipment/item/Weapon.d.ts +1 -1
  50. package/lib/types/equipment/item/_Item.d.ts +9 -3
  51. package/lib/types/equipment/item/_MeleeWeapon.d.ts +2 -0
  52. package/lib/types/equipment/item/_RangedWeapon.d.ts +2 -0
  53. package/lib/types/magicalActions/AnimistPower.d.ts +2 -0
  54. package/lib/types/magicalActions/Curse.d.ts +1 -0
  55. package/lib/types/magicalActions/GeodeRitual.d.ts +2 -0
  56. package/lib/types/magicalActions/JesterTrick.d.ts +3 -0
  57. package/lib/types/magicalActions/_MusicTradition.d.ts +8 -10
  58. package/lib/types/magicalActions/_MusicTradition.js +10 -1
  59. package/lib/types/prerequisites/DisplayOption.d.ts +1 -0
  60. package/lib/types/prerequisites/PrerequisiteGroups.d.ts +1 -0
  61. package/lib/types/prerequisites/single/PrimaryAttributePrerequisite.d.ts +4 -5
  62. package/lib/types/prerequisites/single/PrimaryAttributePrerequisite.js +5 -1
  63. package/lib/types/prerequisites/single/TextPrerequisite.d.ts +4 -5
  64. package/lib/types/prerequisites/single/TextPrerequisite.js +5 -1
  65. package/lib/types/prerequisites/single/TraditionPrerequisite.d.ts +8 -10
  66. package/lib/types/prerequisites/single/TraditionPrerequisite.js +18 -1
  67. package/lib/types/rule/CoreRule.d.ts +63 -5
  68. package/lib/types/rule/CoreRule.js +5 -0
  69. package/lib/types/rule/_Rule.d.ts +1 -0
  70. package/lib/types/source/Publication.d.ts +6 -9
  71. package/lib/types/source/Publication.js +10 -0
  72. package/lib/types/source/_PublicationRef.d.ts +2 -0
  73. package/lib/types/specialAbility/BlessedTradition.d.ts +3 -0
  74. package/lib/types/specialAbility/PactGift.d.ts +8 -10
  75. package/lib/types/specialAbility/PactGift.js +10 -0
  76. package/package.json +2 -2
  77. package/schema/Blessing.schema.json +24 -3
  78. package/schema/Cantrip.schema.json +24 -3
  79. package/schema/Culture.schema.json +21 -113
  80. package/schema/Lessons_Curriculum.schema.json +32 -4
  81. package/schema/Patron.schema.json +10 -98
  82. package/schema/Profession.schema.json +70 -47
  83. package/schema/Race.schema.json +4 -37
  84. package/schema/Service.schema.json +3 -25
  85. package/schema/Skill.schema.json +8 -74
  86. package/schema/Talisman.schema.json +6 -61
  87. package/schema/_Activatable.schema.json +183 -146
  88. package/schema/_ActivatableSelectOptionCategory.schema.json +97 -49
  89. package/schema/_ActivatableSkillCheckResultBased.schema.json +6 -50
  90. package/schema/_ActivatableSkillRange.schema.json +24 -4
  91. package/schema/_ActivatableSkillTargetCategory.schema.json +32 -4
  92. package/schema/_DiseasePoison.schema.json +4 -37
  93. package/schema/_Sex.schema.json +3 -25
  94. package/schema/_SkillCheck.schema.json +5 -49
  95. package/schema/_Spellwork.schema.json +8 -1
  96. package/schema/equipment/item/Armor.schema.json +26 -5
  97. package/schema/equipment/item/BandageOrRemedy.schema.json +44 -1
  98. package/schema/equipment/item/CeremonialItem.schema.json +50 -1
  99. package/schema/equipment/item/EquipmentOfBlessedOnes.schema.json +0 -13
  100. package/schema/equipment/item/IlluminationLightSource.schema.json +122 -0
  101. package/schema/equipment/item/IlluminationRefillsOrSupplies.schema.json +10 -0
  102. package/schema/equipment/item/LuxuryGood.schema.json +44 -1
  103. package/schema/equipment/item/MusicalInstrument.schema.json +4 -9
  104. package/schema/equipment/item/Poison.schema.json +45 -54
  105. package/schema/equipment/item/ToolOfTheTrade.schema.json +0 -1
  106. package/schema/equipment/item/Weapon.schema.json +1 -1
  107. package/schema/equipment/item/_Item.schema.json +52 -10
  108. package/schema/equipment/item/_MeleeWeapon.schema.json +16 -2
  109. package/schema/equipment/item/_RangedWeapon.schema.json +16 -2
  110. package/schema/magicalActions/AnimistPower.schema.json +16 -2
  111. package/schema/magicalActions/Curse.schema.json +8 -1
  112. package/schema/magicalActions/GeodeRitual.schema.json +16 -2
  113. package/schema/magicalActions/JesterTrick.schema.json +24 -3
  114. package/schema/magicalActions/_MusicTradition.schema.json +6 -50
  115. package/schema/prerequisites/DisplayOption.schema.json +8 -1
  116. package/schema/prerequisites/PrerequisiteGroups.schema.json +8 -1
  117. package/schema/prerequisites/single/PrimaryAttributePrerequisite.schema.json +3 -25
  118. package/schema/prerequisites/single/TextPrerequisite.schema.json +3 -25
  119. package/schema/prerequisites/single/TraditionPrerequisite.schema.json +6 -50
  120. package/schema/rule/CoreRule.schema.json +475 -84
  121. package/schema/rule/_Rule.schema.json +8 -1
  122. package/schema/source/Publication.schema.json +5 -49
  123. package/schema/source/_PublicationRef.schema.json +16 -2
  124. package/schema/specialAbility/BlessedTradition.schema.json +24 -3
  125. package/schema/specialAbility/PactGift.schema.json +6 -50
  126. package/lib/types/equipment/item/Illumination.d.ts +0 -6
  127. package/lib/types/equipment/item/Illumination.js +0 -5
  128. package/schema/equipment/item/HealingHerb.schema.json +0 -10
  129. package/schema/equipment/item/Illumination.schema.json +0 -10
@@ -95,122 +95,181 @@ export declare type ReferenceListNode = {
95
95
  };
96
96
  export declare type ReferenceListNodeSource = {
97
97
  tag: "Attributes";
98
+ attributes: {};
98
99
  } | {
99
100
  tag: "QualityLevels";
101
+ quality_levels: {};
100
102
  } | {
101
103
  tag: "Conditions";
104
+ conditions: {};
102
105
  } | {
103
106
  tag: "States";
107
+ states: {};
104
108
  } | {
105
109
  tag: "ExperienceLevels";
110
+ experience_levels: {};
106
111
  } | {
107
112
  tag: "Races";
113
+ races: {};
108
114
  } | {
109
115
  tag: "Cultures";
116
+ cultures: {};
110
117
  } | {
111
118
  tag: "Professions";
119
+ professions: {};
112
120
  } | {
113
121
  tag: "Advantages";
122
+ advantages: {};
114
123
  } | {
115
124
  tag: "Disadvantages";
125
+ disadvantages: {};
116
126
  } | {
117
127
  tag: "CombatTechniques";
128
+ combat_techniques: {};
118
129
  } | {
119
130
  tag: "SpecialAbilities";
131
+ special_abilities: {};
120
132
  } | {
121
133
  tag: "PrimaryAttributes";
134
+ primary_attributes: {};
122
135
  } | {
123
136
  tag: "DerivedCharacteristics";
137
+ derived_characteristics: {};
124
138
  } | {
125
139
  tag: "StartingAge";
140
+ starting_age: {};
126
141
  } | {
127
142
  tag: "Archetypes";
143
+ archetypes: {};
128
144
  } | {
129
145
  tag: "RequirementsForRoutineChecks";
146
+ requirements_for_routine_checks: {};
130
147
  } | {
131
148
  tag: "GeneralSpecialAbilities";
149
+ general_special_abilities: {};
132
150
  } | {
133
151
  tag: "FatePointSpecialAbilities";
152
+ fate_point_special_abilities: {};
134
153
  } | {
135
154
  tag: "LanguagesAndScripts";
155
+ languages_and_scripts: {};
136
156
  } | {
137
157
  tag: "CloseCombatBotch";
158
+ close_combat_botch: {};
138
159
  } | {
139
160
  tag: "DefenseBotch";
161
+ defense_botch: {};
140
162
  } | {
141
163
  tag: "MeleeCombatTechniques";
164
+ melee_combat_techniques: {};
142
165
  } | {
143
166
  tag: "RangedCombatBotch";
167
+ ranged_combat_botch: {};
144
168
  } | {
145
169
  tag: "RangedCombatDefenseBotch";
170
+ ranged_combat_defense_botch: {};
146
171
  } | {
147
172
  tag: "RangedCombatTechniques";
173
+ ranged_combat_techniques: {};
148
174
  } | {
149
175
  tag: "CombatSpecialAbilities";
176
+ combat_special_abilities: {};
150
177
  } | {
151
178
  tag: "Properties";
179
+ properties: {};
152
180
  } | {
153
181
  tag: "SpellBotch";
182
+ spell_botch: {};
154
183
  } | {
155
184
  tag: "Services";
185
+ services: {};
156
186
  } | {
157
187
  tag: "ProtectiveAndWardingCircles";
188
+ protective_and_warding_circles: {};
158
189
  } | {
159
190
  tag: "Elixirs";
191
+ elixirs: {};
160
192
  } | {
161
193
  tag: "StaffEnchantments";
194
+ staff_enchantments: {};
162
195
  } | {
163
196
  tag: "FamiliarsTricks";
197
+ familiars_tricks: {};
164
198
  } | {
165
199
  tag: "Curses";
200
+ curses: {};
166
201
  } | {
167
202
  tag: "ElvenMagicalSongs";
203
+ elven_magical_songs: {};
168
204
  } | {
169
205
  tag: "MagicalSpecialAbilities";
206
+ magical_special_abilities: {};
170
207
  } | {
171
208
  tag: "Cantrips";
209
+ cantrips: {};
172
210
  } | {
173
211
  tag: "Spells";
212
+ spells: {};
174
213
  } | {
175
214
  tag: "Rituals";
215
+ rituals: {};
176
216
  } | {
177
217
  tag: "Aspects";
218
+ aspects: {};
178
219
  } | {
179
220
  tag: "LiturgyBotch";
221
+ liturgy_botch: {};
180
222
  } | {
181
223
  tag: "KarmaSpecialAbilities";
224
+ karma_special_abilities: {};
182
225
  } | {
183
226
  tag: "Blessings";
227
+ blessings: {};
184
228
  } | {
185
229
  tag: "LiturgicalChants";
230
+ liturgical_chants: {};
186
231
  } | {
187
232
  tag: "Ceremonies";
233
+ ceremonies: {};
188
234
  } | {
189
235
  tag: "SocialStatuses";
236
+ social_statuses: {};
190
237
  } | {
191
238
  tag: "Poisons";
239
+ poisons: {};
192
240
  } | {
193
241
  tag: "Diseases";
242
+ diseases: {};
194
243
  } | {
195
244
  tag: "HealingHerbs";
245
+ healing_herbs: {};
196
246
  } | {
197
247
  tag: "VisibilityModifier";
248
+ visibility_modifier: {};
198
249
  } | {
199
250
  tag: "Demons";
251
+ demons: {};
200
252
  } | {
201
253
  tag: "Elementals";
254
+ elementals: {};
202
255
  } | {
203
256
  tag: "Animals";
257
+ animals: {};
204
258
  } | {
205
259
  tag: "Familiars";
260
+ familiars: {};
206
261
  } | {
207
262
  tag: "AnimalSpecialAbilities";
263
+ animal_special_abilities: {};
208
264
  } | {
209
265
  tag: "EquipmentPackages";
266
+ equipment_packages: {};
210
267
  } | {
211
268
  tag: "Items";
269
+ items: {};
212
270
  } | {
213
271
  tag: "OptionalRules";
272
+ optional_rules: {};
214
273
  } | {
215
274
  tag: "ImprovementCost";
216
275
  improvement_cost: ReferenceListNodeImprovementCostSource;
@@ -236,11 +295,10 @@ export declare type ReferenceListNodeImprovementCostSource = {
236
295
  */
237
296
  maximum_rating: number;
238
297
  };
239
- export declare type ReferenceListNodeImprovementCostSourceTarget = {
240
- tag: "Attributes";
241
- } | {
242
- tag: "Skills";
243
- };
298
+ export declare enum ReferenceListNodeImprovementCostSourceTarget {
299
+ Attributes = "Attributes",
300
+ Skills = "Skills"
301
+ }
244
302
  export declare type ReferenceListNodeTranslation = {
245
303
  /**
246
304
  * Markdown-formatted text.
@@ -2,4 +2,9 @@
2
2
  * @main CoreRule
3
3
  */
4
4
  import { validateSchemaCreator } from "../../validation/schema.js";
5
+ export var ReferenceListNodeImprovementCostSourceTarget;
6
+ (function (ReferenceListNodeImprovementCostSourceTarget) {
7
+ ReferenceListNodeImprovementCostSourceTarget["Attributes"] = "Attributes";
8
+ ReferenceListNodeImprovementCostSourceTarget["Skills"] = "Skills";
9
+ })(ReferenceListNodeImprovementCostSourceTarget || (ReferenceListNodeImprovementCostSourceTarget = {}));
5
10
  export const validateSchema = validateSchemaCreator(import.meta.url);
@@ -6,6 +6,7 @@
6
6
  */
7
7
  export declare type Relevance = {
8
8
  tag: "Extraneous";
9
+ extraneous: {};
9
10
  } | {
10
11
  tag: "Linked";
11
12
  linked: LinkedRelevance;
@@ -65,13 +65,10 @@ export declare type PublicationTranslation = {
65
65
  /**
66
66
  * The publication category.
67
67
  */
68
- export declare type Category = {
69
- tag: "CoreRules";
70
- } | {
71
- tag: "ExpansionRules";
72
- } | {
73
- tag: "Sourcebook";
74
- } | {
75
- tag: "RegionalSourcebook";
76
- };
68
+ export declare enum Category {
69
+ CoreRules = "CoreRules",
70
+ ExpansionRules = "ExpansionRules",
71
+ Sourcebook = "Sourcebook",
72
+ RegionalSourcebook = "RegionalSourcebook"
73
+ }
77
74
  export declare const validateSchema: import("../../validation/schema.js").TypeValidator<Publication>;
@@ -2,4 +2,14 @@
2
2
  * @main Publication
3
3
  */
4
4
  import { validateSchemaCreator } from "../../validation/schema.js";
5
+ /**
6
+ * The publication category.
7
+ */
8
+ export var Category;
9
+ (function (Category) {
10
+ Category["CoreRules"] = "CoreRules";
11
+ Category["ExpansionRules"] = "ExpansionRules";
12
+ Category["Sourcebook"] = "Sourcebook";
13
+ Category["RegionalSourcebook"] = "RegionalSourcebook";
14
+ })(Category || (Category = {}));
5
15
  export const validateSchema = validateSchemaCreator(import.meta.url);
@@ -137,8 +137,10 @@ export declare type PageRange = {
137
137
  */
138
138
  export declare type Page = {
139
139
  tag: "InsideCoverFront";
140
+ inside_cover_front: {};
140
141
  } | {
141
142
  tag: "InsideCoverBack";
143
+ inside_cover_back: {};
142
144
  } | {
143
145
  tag: "Numbered";
144
146
  numbered: NumberedPage;
@@ -93,10 +93,13 @@ export declare type SixRestrictedBlessings = [
93
93
  ];
94
94
  export declare type FavoredCombatTechniques = {
95
95
  tag: "All";
96
+ all: {};
96
97
  } | {
97
98
  tag: "AllClose";
99
+ all_close: {};
98
100
  } | {
99
101
  tag: "AllUsedInHunting";
102
+ all_used_in_hunting: {};
100
103
  } | {
101
104
  tag: "Specific";
102
105
  specific: SpecificFavoredCombatTechniques;
@@ -72,11 +72,10 @@ export declare type AutomaticEntry = {
72
72
  */
73
73
  target: AutomaticEntryTarget;
74
74
  };
75
- export declare type AutomaticEntryAction = {
76
- tag: "Add";
77
- } | {
78
- tag: "Remove";
79
- };
75
+ export declare enum AutomaticEntryAction {
76
+ Add = "Add",
77
+ Remove = "Remove"
78
+ }
80
79
  export declare type AutomaticEntryTarget = {
81
80
  tag: "Selection";
82
81
  selection: AutomaticEntryTargetSelection;
@@ -87,11 +86,10 @@ export declare type AutomaticEntryTarget = {
87
86
  export declare type AutomaticEntryTargetSelection = {
88
87
  list: AutomaticEntryTargetSelectionList;
89
88
  };
90
- export declare type AutomaticEntryTargetSelectionList = {
91
- tag: "MagicalTraditions";
92
- } | {
93
- tag: "MagicalDilettanteTraditions";
94
- };
89
+ export declare enum AutomaticEntryTargetSelectionList {
90
+ MagicalTraditions = "MagicalTraditions",
91
+ MagicalDilettanteTraditions = "MagicalDilettanteTraditions"
92
+ }
95
93
  export declare type FixedAutomaticEntryTarget = {
96
94
  id: ActivatableIdentifier;
97
95
  };
@@ -2,4 +2,14 @@
2
2
  * @main PactGift
3
3
  */
4
4
  import { validateSchemaCreator } from "../../validation/schema.js";
5
+ export var AutomaticEntryAction;
6
+ (function (AutomaticEntryAction) {
7
+ AutomaticEntryAction["Add"] = "Add";
8
+ AutomaticEntryAction["Remove"] = "Remove";
9
+ })(AutomaticEntryAction || (AutomaticEntryAction = {}));
10
+ export var AutomaticEntryTargetSelectionList;
11
+ (function (AutomaticEntryTargetSelectionList) {
12
+ AutomaticEntryTargetSelectionList["MagicalTraditions"] = "MagicalTraditions";
13
+ AutomaticEntryTargetSelectionList["MagicalDilettanteTraditions"] = "MagicalDilettanteTraditions";
14
+ })(AutomaticEntryTargetSelectionList || (AutomaticEntryTargetSelectionList = {}));
5
15
  export const validateSchema = validateSchemaCreator(import.meta.url);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "optolith-database-schema",
3
- "version": "0.3.0",
3
+ "version": "0.4.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",
@@ -28,7 +28,7 @@
28
28
  },
29
29
  "devDependencies": {
30
30
  "@types/node": "^18.0.0",
31
- "optolith-tsjsonschemamd": "^0.5.15",
31
+ "optolith-tsjsonschemamd": "^0.5.16",
32
32
  "standard-version": "^9.5.0",
33
33
  "typescript": "^4.7.4"
34
34
  },
@@ -103,10 +103,17 @@
103
103
  "properties": {
104
104
  "tag": {
105
105
  "const": "Self"
106
+ },
107
+ "self": {
108
+ "type": "object",
109
+ "properties": {},
110
+ "required": [],
111
+ "additionalProperties": false
106
112
  }
107
113
  },
108
114
  "required": [
109
- "tag"
115
+ "tag",
116
+ "self"
110
117
  ],
111
118
  "additionalProperties": false
112
119
  },
@@ -115,10 +122,17 @@
115
122
  "properties": {
116
123
  "tag": {
117
124
  "const": "Touch"
125
+ },
126
+ "touch": {
127
+ "type": "object",
128
+ "properties": {},
129
+ "required": [],
130
+ "additionalProperties": false
118
131
  }
119
132
  },
120
133
  "required": [
121
- "tag"
134
+ "tag",
135
+ "touch"
122
136
  ],
123
137
  "additionalProperties": false
124
138
  },
@@ -147,10 +161,17 @@
147
161
  "properties": {
148
162
  "tag": {
149
163
  "const": "Immediate"
164
+ },
165
+ "immediate": {
166
+ "type": "object",
167
+ "properties": {},
168
+ "required": [],
169
+ "additionalProperties": false
150
170
  }
151
171
  },
152
172
  "required": [
153
- "tag"
173
+ "tag",
174
+ "immediate"
154
175
  ],
155
176
  "additionalProperties": false
156
177
  },
@@ -262,10 +262,17 @@
262
262
  "properties": {
263
263
  "tag": {
264
264
  "const": "Self"
265
+ },
266
+ "self": {
267
+ "type": "object",
268
+ "properties": {},
269
+ "required": [],
270
+ "additionalProperties": false
265
271
  }
266
272
  },
267
273
  "required": [
268
- "tag"
274
+ "tag",
275
+ "self"
269
276
  ],
270
277
  "additionalProperties": false
271
278
  },
@@ -274,10 +281,17 @@
274
281
  "properties": {
275
282
  "tag": {
276
283
  "const": "Touch"
284
+ },
285
+ "touch": {
286
+ "type": "object",
287
+ "properties": {},
288
+ "required": [],
289
+ "additionalProperties": false
277
290
  }
278
291
  },
279
292
  "required": [
280
- "tag"
293
+ "tag",
294
+ "touch"
281
295
  ],
282
296
  "additionalProperties": false
283
297
  },
@@ -306,10 +320,17 @@
306
320
  "properties": {
307
321
  "tag": {
308
322
  "const": "Immediate"
323
+ },
324
+ "immediate": {
325
+ "type": "object",
326
+ "properties": {},
327
+ "required": [],
328
+ "additionalProperties": false
309
329
  }
310
330
  },
311
331
  "required": [
312
- "tag"
332
+ "tag",
333
+ "immediate"
313
334
  ],
314
335
  "additionalProperties": false
315
336
  },
@@ -144,89 +144,23 @@
144
144
  },
145
145
  "Weight": {
146
146
  "description": "The \"weight\" difference compared to other professions or profession variants.\nSome professions or profession variants are simply more common (Mostly), but\nsometimes only specific elements are used (Only).",
147
- "oneOf": [
148
- {
149
- "type": "object",
150
- "properties": {
151
- "tag": {
152
- "const": "Mostly"
153
- }
154
- },
155
- "required": [
156
- "tag"
157
- ],
158
- "additionalProperties": false
159
- },
160
- {
161
- "type": "object",
162
- "properties": {
163
- "tag": {
164
- "const": "Only"
165
- }
166
- },
167
- "required": [
168
- "tag"
169
- ],
170
- "additionalProperties": false
171
- }
147
+ "enum": [
148
+ "Mostly",
149
+ "Only"
172
150
  ]
173
151
  },
174
152
  "CommonProfessionConstraintsOperation": {
175
153
  "description": "This defines how the list of constraints should be offset against the\nlist of all mundane professions: Either only the professions are kept\nthat intersect with the constraints (include) or only the professions\nare kept that are different from the constraints (exclude).",
176
- "oneOf": [
177
- {
178
- "type": "object",
179
- "properties": {
180
- "tag": {
181
- "const": "Intersection"
182
- }
183
- },
184
- "required": [
185
- "tag"
186
- ],
187
- "additionalProperties": false
188
- },
189
- {
190
- "type": "object",
191
- "properties": {
192
- "tag": {
193
- "const": "Difference"
194
- }
195
- },
196
- "required": [
197
- "tag"
198
- ],
199
- "additionalProperties": false
200
- }
154
+ "enum": [
155
+ "Intersection",
156
+ "Difference"
201
157
  ]
202
158
  },
203
159
  "Rarity": {
204
160
  "description": "Some professions may be found in a culture, but are not that common.",
205
- "oneOf": [
206
- {
207
- "type": "object",
208
- "properties": {
209
- "tag": {
210
- "const": "Rare"
211
- }
212
- },
213
- "required": [
214
- "tag"
215
- ],
216
- "additionalProperties": false
217
- },
218
- {
219
- "type": "object",
220
- "properties": {
221
- "tag": {
222
- "const": "VeryRare"
223
- }
224
- },
225
- "required": [
226
- "tag"
227
- ],
228
- "additionalProperties": false
229
- }
161
+ "enum": [
162
+ "Rare",
163
+ "VeryRare"
230
164
  ]
231
165
  },
232
166
  "ProfessionConstraint": {
@@ -272,43 +206,10 @@
272
206
  },
273
207
  "MundaneProfessionSubgroupConstraint": {
274
208
  "description": "Some professions may be found in a culture, but are not that common.",
275
- "oneOf": [
276
- {
277
- "type": "object",
278
- "properties": {
279
- "tag": {
280
- "const": "Profane"
281
- }
282
- },
283
- "required": [
284
- "tag"
285
- ],
286
- "additionalProperties": false
287
- },
288
- {
289
- "type": "object",
290
- "properties": {
291
- "tag": {
292
- "const": "Fighter"
293
- }
294
- },
295
- "required": [
296
- "tag"
297
- ],
298
- "additionalProperties": false
299
- },
300
- {
301
- "type": "object",
302
- "properties": {
303
- "tag": {
304
- "const": "Religious"
305
- }
306
- },
307
- "required": [
308
- "tag"
309
- ],
310
- "additionalProperties": false
311
- }
209
+ "enum": [
210
+ "Profane",
211
+ "Fighter",
212
+ "Religious"
312
213
  ]
313
214
  },
314
215
  "TraditionConstraint": {
@@ -411,10 +312,17 @@
411
312
  "properties": {
412
313
  "tag": {
413
314
  "const": "MagicDilettante"
315
+ },
316
+ "magic_dilettante": {
317
+ "type": "object",
318
+ "properties": {},
319
+ "required": [],
320
+ "additionalProperties": false
414
321
  }
415
322
  },
416
323
  "required": [
417
- "tag"
324
+ "tag",
325
+ "magic_dilettante"
418
326
  ],
419
327
  "additionalProperties": false
420
328
  },