optolith-database-schema 0.1.21 → 0.1.22
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 +7 -0
- package/lib/types/Profession.d.ts +730 -0
- package/lib/types/Profession.js +5 -0
- package/lib/types/_Identifier.d.ts +71 -0
- package/lib/types/_Identifier.js +71 -0
- package/package.json +1 -1
- package/schema/Profession.schema.json +1384 -0
- package/schema/_Identifier.schema.json +147 -0
|
@@ -0,0 +1,1384 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema",
|
|
3
|
+
"$id": "/Profession.schema.json",
|
|
4
|
+
"$ref": "#/definitions/Profession",
|
|
5
|
+
"definitions": {
|
|
6
|
+
"Profession": {
|
|
7
|
+
"title": "Profession",
|
|
8
|
+
"type": "object",
|
|
9
|
+
"properties": {
|
|
10
|
+
"id": {
|
|
11
|
+
"description": "The profession's identifier. An unique, increasing integer.",
|
|
12
|
+
"type": "integer",
|
|
13
|
+
"minimum": 1
|
|
14
|
+
},
|
|
15
|
+
"representations": {
|
|
16
|
+
"description": "A list of professions representing the same profession but with (slightly)\ndifferent stats. For example, there may be a profession in a regional\nsourcebook or in the core rules and a profession in an extension rulebook\nlike Magic of Aventuria, where the profession is basically called the same\nand almost has the same values, but the version from Magic of Aventuria\nfeatures a spell style special ability that does not exist in the core\nrules or regional sourcebook.\n\nThe profession representation may feature different values for different\nexplicitly mentioned experience levels. In most cases, there is only one\nstats package, which targets the experience level *Experienced*.",
|
|
17
|
+
"type": "array",
|
|
18
|
+
"items": {
|
|
19
|
+
"oneOf": [
|
|
20
|
+
{
|
|
21
|
+
"type": "object",
|
|
22
|
+
"properties": {
|
|
23
|
+
"tag": {
|
|
24
|
+
"const": "Experienced"
|
|
25
|
+
},
|
|
26
|
+
"id": {
|
|
27
|
+
"description": "The profession representation variant's identifier. An unique, increasing\ninteger.",
|
|
28
|
+
"type": "integer",
|
|
29
|
+
"minimum": 1
|
|
30
|
+
},
|
|
31
|
+
"package": {
|
|
32
|
+
"$ref": "#/definitions/ProfessionRepresentationVariant"
|
|
33
|
+
},
|
|
34
|
+
"src": {
|
|
35
|
+
"$ref": "./source/_PublicationRef.schema.json#/definitions/PublicationRefs"
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"required": [
|
|
39
|
+
"tag",
|
|
40
|
+
"id",
|
|
41
|
+
"package",
|
|
42
|
+
"src"
|
|
43
|
+
],
|
|
44
|
+
"additionalProperties": false
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"type": "object",
|
|
48
|
+
"properties": {
|
|
49
|
+
"tag": {
|
|
50
|
+
"const": "ByExperienceLevel"
|
|
51
|
+
},
|
|
52
|
+
"id": {
|
|
53
|
+
"description": "The profession representation variant's identifier. An unique, increasing\ninteger.",
|
|
54
|
+
"type": "integer",
|
|
55
|
+
"minimum": 1
|
|
56
|
+
},
|
|
57
|
+
"packages": {
|
|
58
|
+
"type": "array",
|
|
59
|
+
"items": {
|
|
60
|
+
"type": "object",
|
|
61
|
+
"properties": {
|
|
62
|
+
"experience_level_id": {
|
|
63
|
+
"description": "The experience level this profession targets. The experience level\nmust be unique for this representation.",
|
|
64
|
+
"type": "integer",
|
|
65
|
+
"maximum": 7,
|
|
66
|
+
"minimum": 1
|
|
67
|
+
},
|
|
68
|
+
"package": {
|
|
69
|
+
"$ref": "#/definitions/ProfessionRepresentationVariant"
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
"required": [
|
|
73
|
+
"experience_level_id",
|
|
74
|
+
"package"
|
|
75
|
+
],
|
|
76
|
+
"additionalProperties": false
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
"src": {
|
|
80
|
+
"$ref": "./source/_PublicationRef.schema.json#/definitions/PublicationRefs"
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
"required": [
|
|
84
|
+
"tag",
|
|
85
|
+
"id",
|
|
86
|
+
"packages",
|
|
87
|
+
"src"
|
|
88
|
+
],
|
|
89
|
+
"additionalProperties": false
|
|
90
|
+
}
|
|
91
|
+
]
|
|
92
|
+
},
|
|
93
|
+
"minItems": 1
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
"required": [
|
|
97
|
+
"id",
|
|
98
|
+
"representations"
|
|
99
|
+
],
|
|
100
|
+
"additionalProperties": false
|
|
101
|
+
},
|
|
102
|
+
"ProfessionRepresentationVariant": {
|
|
103
|
+
"title": "Profession Representation Variant",
|
|
104
|
+
"type": "object",
|
|
105
|
+
"properties": {
|
|
106
|
+
"ap_value": {
|
|
107
|
+
"description": "What does the professional package cost in adventure points?",
|
|
108
|
+
"type": "integer",
|
|
109
|
+
"minimum": 0
|
|
110
|
+
},
|
|
111
|
+
"prerequisites": {
|
|
112
|
+
"description": "Which prerequisites must be met to buy the stat block? For example, a\ncharacter might need the advantage Spellcaster or Blessed. Note: the AP\ncost for a profession package does not include these prerequisites.",
|
|
113
|
+
"$ref": "./_Prerequisite.schema.json#/definitions/ProfessionPrerequisites"
|
|
114
|
+
},
|
|
115
|
+
"options": {
|
|
116
|
+
"type": "object",
|
|
117
|
+
"properties": {
|
|
118
|
+
"skill_specialization": {
|
|
119
|
+
"$ref": "#/definitions/SkillSpecializationOptions"
|
|
120
|
+
},
|
|
121
|
+
"languages_scripts": {
|
|
122
|
+
"$ref": "#/definitions/LanguagesScriptsOptions"
|
|
123
|
+
},
|
|
124
|
+
"combat_techniques": {
|
|
125
|
+
"$ref": "#/definitions/CombatTechniquesOptions"
|
|
126
|
+
},
|
|
127
|
+
"cantrips": {
|
|
128
|
+
"$ref": "#/definitions/CantripsOptions"
|
|
129
|
+
},
|
|
130
|
+
"curses": {
|
|
131
|
+
"$ref": "#/definitions/CursesOptions"
|
|
132
|
+
},
|
|
133
|
+
"terrain_knowledge": {
|
|
134
|
+
"$ref": "#/definitions/TerrainKnowledgeOptions"
|
|
135
|
+
},
|
|
136
|
+
"skills": {
|
|
137
|
+
"$ref": "#/definitions/SkillsOptions"
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
"required": [],
|
|
141
|
+
"minProperties": 1,
|
|
142
|
+
"additionalProperties": false
|
|
143
|
+
},
|
|
144
|
+
"special_abilities": {
|
|
145
|
+
"description": "Any special abilities the profession receives from the package.",
|
|
146
|
+
"type": "array",
|
|
147
|
+
"items": {
|
|
148
|
+
"$ref": "#/definitions/SpecialAbility"
|
|
149
|
+
}
|
|
150
|
+
},
|
|
151
|
+
"combat_techniques": {
|
|
152
|
+
"description": "Provides ratings for the combat techniques that the hero receives from the\npackage.",
|
|
153
|
+
"type": "array",
|
|
154
|
+
"items": {
|
|
155
|
+
"$ref": "#/definitions/CombatTechnique"
|
|
156
|
+
}
|
|
157
|
+
},
|
|
158
|
+
"skills": {
|
|
159
|
+
"description": "The skill ratings the package grants to the hero.",
|
|
160
|
+
"type": "array",
|
|
161
|
+
"items": {
|
|
162
|
+
"$ref": "#/definitions/Skill"
|
|
163
|
+
}
|
|
164
|
+
},
|
|
165
|
+
"spells": {
|
|
166
|
+
"description": "The skill ratings a magical profession receives for spells; these spells\nare considered activated. Spells from an unfamiliar Tradition, if any, are\nidentified as such.",
|
|
167
|
+
"type": "array",
|
|
168
|
+
"items": {
|
|
169
|
+
"$ref": "#/definitions/Spell"
|
|
170
|
+
}
|
|
171
|
+
},
|
|
172
|
+
"liturgical_chants": {
|
|
173
|
+
"description": "Clerical professions receive these liturgical chants at the listed skill\nratings. These liturgical chants are considered activated.",
|
|
174
|
+
"type": "array",
|
|
175
|
+
"items": {
|
|
176
|
+
"$ref": "#/definitions/LiturgicalChant"
|
|
177
|
+
}
|
|
178
|
+
},
|
|
179
|
+
"suggested_advantages": {
|
|
180
|
+
"description": "Typical advantages for the profession.",
|
|
181
|
+
"type": "array",
|
|
182
|
+
"items": {
|
|
183
|
+
"$ref": "./_CommonnessRatedAdvantageDisadvantage.schema.json#/definitions/CommonnessRatedAdvantageDisadvantage"
|
|
184
|
+
},
|
|
185
|
+
"minItems": 1
|
|
186
|
+
},
|
|
187
|
+
"suggested_disadvantages": {
|
|
188
|
+
"description": "Typical disadvantages for the profession.",
|
|
189
|
+
"type": "array",
|
|
190
|
+
"items": {
|
|
191
|
+
"$ref": "./_CommonnessRatedAdvantageDisadvantage.schema.json#/definitions/CommonnessRatedAdvantageDisadvantage"
|
|
192
|
+
},
|
|
193
|
+
"minItems": 1
|
|
194
|
+
},
|
|
195
|
+
"unsuitable_advantages": {
|
|
196
|
+
"description": "These advantages do not fit well with this profession; to be checked with\nthe GM before taking any of them.",
|
|
197
|
+
"type": "array",
|
|
198
|
+
"items": {
|
|
199
|
+
"$ref": "./_CommonnessRatedAdvantageDisadvantage.schema.json#/definitions/CommonnessRatedAdvantageDisadvantage"
|
|
200
|
+
},
|
|
201
|
+
"minItems": 1
|
|
202
|
+
},
|
|
203
|
+
"unsuitable_disadvantages": {
|
|
204
|
+
"description": "These disadvantages do not fit well with this profession; to be checked\nwith the GM before taking any of them.",
|
|
205
|
+
"type": "array",
|
|
206
|
+
"items": {
|
|
207
|
+
"$ref": "./_CommonnessRatedAdvantageDisadvantage.schema.json#/definitions/CommonnessRatedAdvantageDisadvantage"
|
|
208
|
+
},
|
|
209
|
+
"minItems": 1
|
|
210
|
+
},
|
|
211
|
+
"variants": {
|
|
212
|
+
"description": "Provides examples of variants for the profession, which may include changes\nto AP values and additional or modified skill ratings, special abilities,\nor combat techniques, as compared to the basic profession. Usually picking\na variant is optional, but there are some rare exceptions where picking a\nvariant is required.",
|
|
213
|
+
"oneOf": [
|
|
214
|
+
{
|
|
215
|
+
"type": "object",
|
|
216
|
+
"properties": {
|
|
217
|
+
"tag": {
|
|
218
|
+
"const": "Required"
|
|
219
|
+
},
|
|
220
|
+
"list": {
|
|
221
|
+
"type": "array",
|
|
222
|
+
"items": {
|
|
223
|
+
"$ref": "#/definitions/ProfessionVariant"
|
|
224
|
+
},
|
|
225
|
+
"minItems": 2
|
|
226
|
+
}
|
|
227
|
+
},
|
|
228
|
+
"required": [
|
|
229
|
+
"tag",
|
|
230
|
+
"list"
|
|
231
|
+
],
|
|
232
|
+
"additionalProperties": false
|
|
233
|
+
},
|
|
234
|
+
{
|
|
235
|
+
"type": "object",
|
|
236
|
+
"properties": {
|
|
237
|
+
"tag": {
|
|
238
|
+
"const": "Optional"
|
|
239
|
+
},
|
|
240
|
+
"list": {
|
|
241
|
+
"type": "array",
|
|
242
|
+
"items": {
|
|
243
|
+
"$ref": "#/definitions/ProfessionVariant"
|
|
244
|
+
},
|
|
245
|
+
"minItems": 1
|
|
246
|
+
}
|
|
247
|
+
},
|
|
248
|
+
"required": [
|
|
249
|
+
"tag",
|
|
250
|
+
"list"
|
|
251
|
+
],
|
|
252
|
+
"additionalProperties": false
|
|
253
|
+
}
|
|
254
|
+
]
|
|
255
|
+
},
|
|
256
|
+
"translations": {
|
|
257
|
+
"description": "All translations for the entry, identified by IETF language tag (BCP47).",
|
|
258
|
+
"type": "object",
|
|
259
|
+
"patternProperties": {
|
|
260
|
+
"^[a-z]{2}-[A-Z]{2}$": {
|
|
261
|
+
"type": "object",
|
|
262
|
+
"properties": {
|
|
263
|
+
"name": {
|
|
264
|
+
"description": "Name of the basic profession.",
|
|
265
|
+
"type": "string",
|
|
266
|
+
"minLength": 1
|
|
267
|
+
},
|
|
268
|
+
"suggested_advantages": {
|
|
269
|
+
"description": "Typical advantages for the profession.",
|
|
270
|
+
"type": "string",
|
|
271
|
+
"minLength": 1
|
|
272
|
+
},
|
|
273
|
+
"suggested_disadvantages": {
|
|
274
|
+
"description": "Typical disadvantages for the profession.",
|
|
275
|
+
"type": "string",
|
|
276
|
+
"minLength": 1
|
|
277
|
+
},
|
|
278
|
+
"unsuitable_advantages": {
|
|
279
|
+
"description": "These advantages do not fit well with this profession; to be checked with\nthe GM before taking any of them.",
|
|
280
|
+
"type": "string",
|
|
281
|
+
"minLength": 1
|
|
282
|
+
},
|
|
283
|
+
"unsuitable_disadvantages": {
|
|
284
|
+
"description": "These disadvantages do not fit well with this profession; to be checked\nwith the GM before taking any of them.",
|
|
285
|
+
"type": "string",
|
|
286
|
+
"minLength": 1
|
|
287
|
+
},
|
|
288
|
+
"errata": {
|
|
289
|
+
"$ref": "./source/_Erratum.schema.json#/definitions/Errata"
|
|
290
|
+
}
|
|
291
|
+
},
|
|
292
|
+
"required": [
|
|
293
|
+
"name"
|
|
294
|
+
],
|
|
295
|
+
"additionalProperties": false
|
|
296
|
+
}
|
|
297
|
+
},
|
|
298
|
+
"minProperties": 1,
|
|
299
|
+
"additionalProperties": false
|
|
300
|
+
}
|
|
301
|
+
},
|
|
302
|
+
"required": [
|
|
303
|
+
"ap_value",
|
|
304
|
+
"translations"
|
|
305
|
+
],
|
|
306
|
+
"additionalProperties": false
|
|
307
|
+
},
|
|
308
|
+
"ProfessionVariant": {
|
|
309
|
+
"title": "Profession Variant",
|
|
310
|
+
"type": "object",
|
|
311
|
+
"properties": {
|
|
312
|
+
"id": {
|
|
313
|
+
"description": "The profession variant's identifier. An unique, increasing integer.",
|
|
314
|
+
"type": "integer",
|
|
315
|
+
"minimum": 1
|
|
316
|
+
},
|
|
317
|
+
"ap_value": {
|
|
318
|
+
"description": "The AP value you have to pay for the package variant.",
|
|
319
|
+
"type": "integer"
|
|
320
|
+
},
|
|
321
|
+
"prerequisites": {
|
|
322
|
+
"description": "Which prerequisites must be met to buy the stat block? For example, a\ncharacter might need the advantage Spellcaster or Blessed. Note: the AP\ncost for a profession package does not include these prerequisites.",
|
|
323
|
+
"$ref": "./_Prerequisite.schema.json#/definitions/ProfessionPrerequisites"
|
|
324
|
+
},
|
|
325
|
+
"options": {
|
|
326
|
+
"type": "object",
|
|
327
|
+
"properties": {
|
|
328
|
+
"skill_specialization": {
|
|
329
|
+
"oneOf": [
|
|
330
|
+
{
|
|
331
|
+
"type": "object",
|
|
332
|
+
"properties": {
|
|
333
|
+
"tag": {
|
|
334
|
+
"const": "Remove"
|
|
335
|
+
}
|
|
336
|
+
},
|
|
337
|
+
"required": [
|
|
338
|
+
"tag"
|
|
339
|
+
],
|
|
340
|
+
"additionalProperties": false
|
|
341
|
+
},
|
|
342
|
+
{
|
|
343
|
+
"type": "object",
|
|
344
|
+
"properties": {
|
|
345
|
+
"tag": {
|
|
346
|
+
"const": "Override"
|
|
347
|
+
},
|
|
348
|
+
"value": {
|
|
349
|
+
"$ref": "#/definitions/SkillSpecializationOptions"
|
|
350
|
+
}
|
|
351
|
+
},
|
|
352
|
+
"required": [
|
|
353
|
+
"tag",
|
|
354
|
+
"value"
|
|
355
|
+
],
|
|
356
|
+
"additionalProperties": false
|
|
357
|
+
}
|
|
358
|
+
]
|
|
359
|
+
},
|
|
360
|
+
"languages_scripts": {
|
|
361
|
+
"oneOf": [
|
|
362
|
+
{
|
|
363
|
+
"type": "object",
|
|
364
|
+
"properties": {
|
|
365
|
+
"tag": {
|
|
366
|
+
"const": "Remove"
|
|
367
|
+
}
|
|
368
|
+
},
|
|
369
|
+
"required": [
|
|
370
|
+
"tag"
|
|
371
|
+
],
|
|
372
|
+
"additionalProperties": false
|
|
373
|
+
},
|
|
374
|
+
{
|
|
375
|
+
"type": "object",
|
|
376
|
+
"properties": {
|
|
377
|
+
"tag": {
|
|
378
|
+
"const": "Override"
|
|
379
|
+
},
|
|
380
|
+
"value": {
|
|
381
|
+
"$ref": "#/definitions/LanguagesScriptsOptions"
|
|
382
|
+
}
|
|
383
|
+
},
|
|
384
|
+
"required": [
|
|
385
|
+
"tag",
|
|
386
|
+
"value"
|
|
387
|
+
],
|
|
388
|
+
"additionalProperties": false
|
|
389
|
+
}
|
|
390
|
+
]
|
|
391
|
+
},
|
|
392
|
+
"combat_techniques": {
|
|
393
|
+
"oneOf": [
|
|
394
|
+
{
|
|
395
|
+
"type": "object",
|
|
396
|
+
"properties": {
|
|
397
|
+
"tag": {
|
|
398
|
+
"const": "Remove"
|
|
399
|
+
}
|
|
400
|
+
},
|
|
401
|
+
"required": [
|
|
402
|
+
"tag"
|
|
403
|
+
],
|
|
404
|
+
"additionalProperties": false
|
|
405
|
+
},
|
|
406
|
+
{
|
|
407
|
+
"type": "object",
|
|
408
|
+
"properties": {
|
|
409
|
+
"tag": {
|
|
410
|
+
"const": "Override"
|
|
411
|
+
},
|
|
412
|
+
"value": {
|
|
413
|
+
"$ref": "#/definitions/CombatTechniquesOptions"
|
|
414
|
+
}
|
|
415
|
+
},
|
|
416
|
+
"required": [
|
|
417
|
+
"tag",
|
|
418
|
+
"value"
|
|
419
|
+
],
|
|
420
|
+
"additionalProperties": false
|
|
421
|
+
}
|
|
422
|
+
]
|
|
423
|
+
},
|
|
424
|
+
"cantrips": {
|
|
425
|
+
"oneOf": [
|
|
426
|
+
{
|
|
427
|
+
"type": "object",
|
|
428
|
+
"properties": {
|
|
429
|
+
"tag": {
|
|
430
|
+
"const": "Remove"
|
|
431
|
+
}
|
|
432
|
+
},
|
|
433
|
+
"required": [
|
|
434
|
+
"tag"
|
|
435
|
+
],
|
|
436
|
+
"additionalProperties": false
|
|
437
|
+
},
|
|
438
|
+
{
|
|
439
|
+
"type": "object",
|
|
440
|
+
"properties": {
|
|
441
|
+
"tag": {
|
|
442
|
+
"const": "Override"
|
|
443
|
+
},
|
|
444
|
+
"value": {
|
|
445
|
+
"$ref": "#/definitions/CantripsOptions"
|
|
446
|
+
}
|
|
447
|
+
},
|
|
448
|
+
"required": [
|
|
449
|
+
"tag",
|
|
450
|
+
"value"
|
|
451
|
+
],
|
|
452
|
+
"additionalProperties": false
|
|
453
|
+
}
|
|
454
|
+
]
|
|
455
|
+
},
|
|
456
|
+
"curses": {
|
|
457
|
+
"oneOf": [
|
|
458
|
+
{
|
|
459
|
+
"type": "object",
|
|
460
|
+
"properties": {
|
|
461
|
+
"tag": {
|
|
462
|
+
"const": "Remove"
|
|
463
|
+
}
|
|
464
|
+
},
|
|
465
|
+
"required": [
|
|
466
|
+
"tag"
|
|
467
|
+
],
|
|
468
|
+
"additionalProperties": false
|
|
469
|
+
},
|
|
470
|
+
{
|
|
471
|
+
"type": "object",
|
|
472
|
+
"properties": {
|
|
473
|
+
"tag": {
|
|
474
|
+
"const": "Override"
|
|
475
|
+
},
|
|
476
|
+
"value": {
|
|
477
|
+
"$ref": "#/definitions/CursesOptions"
|
|
478
|
+
}
|
|
479
|
+
},
|
|
480
|
+
"required": [
|
|
481
|
+
"tag",
|
|
482
|
+
"value"
|
|
483
|
+
],
|
|
484
|
+
"additionalProperties": false
|
|
485
|
+
}
|
|
486
|
+
]
|
|
487
|
+
},
|
|
488
|
+
"terrain_knowledge": {
|
|
489
|
+
"oneOf": [
|
|
490
|
+
{
|
|
491
|
+
"type": "object",
|
|
492
|
+
"properties": {
|
|
493
|
+
"tag": {
|
|
494
|
+
"const": "Remove"
|
|
495
|
+
}
|
|
496
|
+
},
|
|
497
|
+
"required": [
|
|
498
|
+
"tag"
|
|
499
|
+
],
|
|
500
|
+
"additionalProperties": false
|
|
501
|
+
},
|
|
502
|
+
{
|
|
503
|
+
"type": "object",
|
|
504
|
+
"properties": {
|
|
505
|
+
"tag": {
|
|
506
|
+
"const": "Override"
|
|
507
|
+
},
|
|
508
|
+
"value": {
|
|
509
|
+
"$ref": "#/definitions/TerrainKnowledgeOptions"
|
|
510
|
+
}
|
|
511
|
+
},
|
|
512
|
+
"required": [
|
|
513
|
+
"tag",
|
|
514
|
+
"value"
|
|
515
|
+
],
|
|
516
|
+
"additionalProperties": false
|
|
517
|
+
}
|
|
518
|
+
]
|
|
519
|
+
},
|
|
520
|
+
"skills": {
|
|
521
|
+
"oneOf": [
|
|
522
|
+
{
|
|
523
|
+
"type": "object",
|
|
524
|
+
"properties": {
|
|
525
|
+
"tag": {
|
|
526
|
+
"const": "Remove"
|
|
527
|
+
}
|
|
528
|
+
},
|
|
529
|
+
"required": [
|
|
530
|
+
"tag"
|
|
531
|
+
],
|
|
532
|
+
"additionalProperties": false
|
|
533
|
+
},
|
|
534
|
+
{
|
|
535
|
+
"type": "object",
|
|
536
|
+
"properties": {
|
|
537
|
+
"tag": {
|
|
538
|
+
"const": "Override"
|
|
539
|
+
},
|
|
540
|
+
"value": {
|
|
541
|
+
"$ref": "#/definitions/SkillsOptions"
|
|
542
|
+
}
|
|
543
|
+
},
|
|
544
|
+
"required": [
|
|
545
|
+
"tag",
|
|
546
|
+
"value"
|
|
547
|
+
],
|
|
548
|
+
"additionalProperties": false
|
|
549
|
+
}
|
|
550
|
+
]
|
|
551
|
+
}
|
|
552
|
+
},
|
|
553
|
+
"required": [],
|
|
554
|
+
"minProperties": 1,
|
|
555
|
+
"additionalProperties": false
|
|
556
|
+
},
|
|
557
|
+
"special_abilities": {
|
|
558
|
+
"description": "Any special abilities the profession receives from the package variant.",
|
|
559
|
+
"type": "array",
|
|
560
|
+
"items": {
|
|
561
|
+
"$ref": "#/definitions/VariantSpecialAbility"
|
|
562
|
+
}
|
|
563
|
+
},
|
|
564
|
+
"combat_techniques": {
|
|
565
|
+
"description": "Provides ratings for the combat techniques that the hero receives from the\npackage variant.",
|
|
566
|
+
"type": "array",
|
|
567
|
+
"items": {
|
|
568
|
+
"$ref": "#/definitions/VariantCombatTechnique"
|
|
569
|
+
}
|
|
570
|
+
},
|
|
571
|
+
"skills": {
|
|
572
|
+
"description": "The skill ratings the package variant grants to the hero.",
|
|
573
|
+
"type": "array",
|
|
574
|
+
"items": {
|
|
575
|
+
"$ref": "#/definitions/VariantSkill"
|
|
576
|
+
}
|
|
577
|
+
},
|
|
578
|
+
"spells": {
|
|
579
|
+
"description": "The skill ratings a magical profession variant receives for spells; these\nspells are considered activated. Spells from an unfamiliar Tradition, if\nany, are identified as such.",
|
|
580
|
+
"type": "array",
|
|
581
|
+
"items": {
|
|
582
|
+
"$ref": "#/definitions/VariantSpell"
|
|
583
|
+
}
|
|
584
|
+
},
|
|
585
|
+
"liturgical_chants": {
|
|
586
|
+
"description": "Clerical professions receive these liturgical chants at the listed skill\nratings. These liturgical chants are considered activated.",
|
|
587
|
+
"type": "array",
|
|
588
|
+
"items": {
|
|
589
|
+
"$ref": "#/definitions/VariantLiturgicalChant"
|
|
590
|
+
}
|
|
591
|
+
},
|
|
592
|
+
"translations": {
|
|
593
|
+
"description": "All translations for the entry, identified by IETF language tag (BCP47).",
|
|
594
|
+
"type": "object",
|
|
595
|
+
"patternProperties": {
|
|
596
|
+
"^[a-z]{2}-[A-Z]{2}$": {
|
|
597
|
+
"type": "object",
|
|
598
|
+
"properties": {
|
|
599
|
+
"name": {
|
|
600
|
+
"description": "Name of the profession variant.",
|
|
601
|
+
"type": "string",
|
|
602
|
+
"minLength": 1
|
|
603
|
+
}
|
|
604
|
+
},
|
|
605
|
+
"required": [
|
|
606
|
+
"name"
|
|
607
|
+
],
|
|
608
|
+
"additionalProperties": false
|
|
609
|
+
}
|
|
610
|
+
},
|
|
611
|
+
"minProperties": 1,
|
|
612
|
+
"additionalProperties": false
|
|
613
|
+
}
|
|
614
|
+
},
|
|
615
|
+
"required": [
|
|
616
|
+
"id",
|
|
617
|
+
"ap_value",
|
|
618
|
+
"translations"
|
|
619
|
+
],
|
|
620
|
+
"additionalProperties": false
|
|
621
|
+
},
|
|
622
|
+
"SpecialAbility": {
|
|
623
|
+
"oneOf": [
|
|
624
|
+
{
|
|
625
|
+
"type": "object",
|
|
626
|
+
"properties": {
|
|
627
|
+
"tag": {
|
|
628
|
+
"const": "Fixed"
|
|
629
|
+
},
|
|
630
|
+
"id": {
|
|
631
|
+
"description": "The identifier of the combat technique to provide the rating for.",
|
|
632
|
+
"$ref": "./_Identifier.schema.json#/definitions/SpecialAbilityIdentifier"
|
|
633
|
+
},
|
|
634
|
+
"level": {
|
|
635
|
+
"description": "The level of the received special ability.",
|
|
636
|
+
"type": "integer",
|
|
637
|
+
"minimum": 1
|
|
638
|
+
},
|
|
639
|
+
"options": {
|
|
640
|
+
"description": "Received select options. Order is important. Typically, you only need the\nfirst array index, though.",
|
|
641
|
+
"type": "array",
|
|
642
|
+
"items": {
|
|
643
|
+
"$ref": "./_Identifier.schema.json#/definitions/RequirableSelectOptionIdentifier"
|
|
644
|
+
},
|
|
645
|
+
"minItems": 1
|
|
646
|
+
}
|
|
647
|
+
},
|
|
648
|
+
"required": [
|
|
649
|
+
"tag",
|
|
650
|
+
"id"
|
|
651
|
+
],
|
|
652
|
+
"additionalProperties": false
|
|
653
|
+
},
|
|
654
|
+
{
|
|
655
|
+
"type": "object",
|
|
656
|
+
"properties": {
|
|
657
|
+
"tag": {
|
|
658
|
+
"const": "Selection"
|
|
659
|
+
},
|
|
660
|
+
"options": {
|
|
661
|
+
"type": "array",
|
|
662
|
+
"items": {
|
|
663
|
+
"type": "object",
|
|
664
|
+
"properties": {
|
|
665
|
+
"id": {
|
|
666
|
+
"description": "The identifier of the combat technique to provide the rating for.",
|
|
667
|
+
"$ref": "./_Identifier.schema.json#/definitions/SpecialAbilityIdentifier"
|
|
668
|
+
},
|
|
669
|
+
"level": {
|
|
670
|
+
"description": "The level of the received special ability.",
|
|
671
|
+
"type": "integer",
|
|
672
|
+
"minimum": 1
|
|
673
|
+
},
|
|
674
|
+
"options": {
|
|
675
|
+
"description": "Received select options. Order is important. Typically, you only need the\nfirst array index, though.",
|
|
676
|
+
"type": "array",
|
|
677
|
+
"items": {
|
|
678
|
+
"$ref": "./_Identifier.schema.json#/definitions/RequirableSelectOptionIdentifier"
|
|
679
|
+
},
|
|
680
|
+
"minItems": 1
|
|
681
|
+
}
|
|
682
|
+
},
|
|
683
|
+
"required": [
|
|
684
|
+
"id"
|
|
685
|
+
],
|
|
686
|
+
"additionalProperties": false
|
|
687
|
+
},
|
|
688
|
+
"minItems": 2
|
|
689
|
+
}
|
|
690
|
+
},
|
|
691
|
+
"required": [
|
|
692
|
+
"tag",
|
|
693
|
+
"options"
|
|
694
|
+
],
|
|
695
|
+
"additionalProperties": false
|
|
696
|
+
}
|
|
697
|
+
]
|
|
698
|
+
},
|
|
699
|
+
"VariantSpecialAbility": {
|
|
700
|
+
"oneOf": [
|
|
701
|
+
{
|
|
702
|
+
"type": "object",
|
|
703
|
+
"properties": {
|
|
704
|
+
"tag": {
|
|
705
|
+
"const": "Fixed"
|
|
706
|
+
},
|
|
707
|
+
"id": {
|
|
708
|
+
"description": "The identifier of the combat technique to provide the rating for.",
|
|
709
|
+
"$ref": "./_Identifier.schema.json#/definitions/SpecialAbilityIdentifier"
|
|
710
|
+
},
|
|
711
|
+
"active": {
|
|
712
|
+
"description": "if set to `false`, if the entry is granted by the basic package, it is\nremoved.",
|
|
713
|
+
"const": false
|
|
714
|
+
},
|
|
715
|
+
"level": {
|
|
716
|
+
"description": "The level of the received special ability.",
|
|
717
|
+
"type": "integer",
|
|
718
|
+
"minimum": 1
|
|
719
|
+
},
|
|
720
|
+
"options": {
|
|
721
|
+
"description": "Received select options. Order is important. Typically, you only need the\nfirst array index, though.",
|
|
722
|
+
"type": "array",
|
|
723
|
+
"items": {
|
|
724
|
+
"$ref": "./_Identifier.schema.json#/definitions/RequirableSelectOptionIdentifier"
|
|
725
|
+
},
|
|
726
|
+
"minItems": 1
|
|
727
|
+
}
|
|
728
|
+
},
|
|
729
|
+
"required": [
|
|
730
|
+
"tag",
|
|
731
|
+
"id"
|
|
732
|
+
],
|
|
733
|
+
"additionalProperties": false
|
|
734
|
+
},
|
|
735
|
+
{
|
|
736
|
+
"type": "object",
|
|
737
|
+
"properties": {
|
|
738
|
+
"tag": {
|
|
739
|
+
"const": "Selection"
|
|
740
|
+
},
|
|
741
|
+
"active": {
|
|
742
|
+
"description": "if set to `false`, if the selection is granted by the basic package, it\nis removed.",
|
|
743
|
+
"const": false
|
|
744
|
+
},
|
|
745
|
+
"options": {
|
|
746
|
+
"type": "array",
|
|
747
|
+
"items": {
|
|
748
|
+
"type": "object",
|
|
749
|
+
"properties": {
|
|
750
|
+
"id": {
|
|
751
|
+
"description": "The identifier of the combat technique to provide the rating for.",
|
|
752
|
+
"$ref": "./_Identifier.schema.json#/definitions/SpecialAbilityIdentifier"
|
|
753
|
+
},
|
|
754
|
+
"level": {
|
|
755
|
+
"description": "The level of the received special ability.",
|
|
756
|
+
"type": "integer",
|
|
757
|
+
"minimum": 1
|
|
758
|
+
},
|
|
759
|
+
"options": {
|
|
760
|
+
"description": "Received select options. Order is important. Typically, you only need the\nfirst array index, though.",
|
|
761
|
+
"type": "array",
|
|
762
|
+
"items": {
|
|
763
|
+
"$ref": "./_Identifier.schema.json#/definitions/RequirableSelectOptionIdentifier"
|
|
764
|
+
},
|
|
765
|
+
"minItems": 1
|
|
766
|
+
}
|
|
767
|
+
},
|
|
768
|
+
"required": [
|
|
769
|
+
"id"
|
|
770
|
+
],
|
|
771
|
+
"additionalProperties": false
|
|
772
|
+
},
|
|
773
|
+
"minItems": 2
|
|
774
|
+
}
|
|
775
|
+
},
|
|
776
|
+
"required": [
|
|
777
|
+
"tag",
|
|
778
|
+
"options"
|
|
779
|
+
],
|
|
780
|
+
"additionalProperties": false
|
|
781
|
+
}
|
|
782
|
+
]
|
|
783
|
+
},
|
|
784
|
+
"CombatTechnique": {
|
|
785
|
+
"type": "object",
|
|
786
|
+
"properties": {
|
|
787
|
+
"id": {
|
|
788
|
+
"description": "The identifier of the combat technique to provide the rating for.",
|
|
789
|
+
"$ref": "./_Identifier.schema.json#/definitions/CombatTechniqueIdentifier"
|
|
790
|
+
},
|
|
791
|
+
"rating": {
|
|
792
|
+
"description": "The rating provided for the combat technique.",
|
|
793
|
+
"type": "integer",
|
|
794
|
+
"minimum": 7
|
|
795
|
+
}
|
|
796
|
+
},
|
|
797
|
+
"required": [
|
|
798
|
+
"id",
|
|
799
|
+
"rating"
|
|
800
|
+
],
|
|
801
|
+
"additionalProperties": false
|
|
802
|
+
},
|
|
803
|
+
"VariantCombatTechnique": {
|
|
804
|
+
"type": "object",
|
|
805
|
+
"properties": {
|
|
806
|
+
"id": {
|
|
807
|
+
"description": "The identifier of the combat technique to provide the rating for.",
|
|
808
|
+
"$ref": "./_Identifier.schema.json#/definitions/CombatTechniqueIdentifier"
|
|
809
|
+
},
|
|
810
|
+
"rating": {
|
|
811
|
+
"description": "The rating provided for the combat technique. It overrides the basic\npackage's rating.",
|
|
812
|
+
"type": "integer",
|
|
813
|
+
"minimum": 6
|
|
814
|
+
}
|
|
815
|
+
},
|
|
816
|
+
"required": [
|
|
817
|
+
"id",
|
|
818
|
+
"rating"
|
|
819
|
+
],
|
|
820
|
+
"additionalProperties": false
|
|
821
|
+
},
|
|
822
|
+
"Skill": {
|
|
823
|
+
"type": "object",
|
|
824
|
+
"properties": {
|
|
825
|
+
"id": {
|
|
826
|
+
"description": "The identifier of the skill to provide the rating for.",
|
|
827
|
+
"type": "integer",
|
|
828
|
+
"maximum": 59,
|
|
829
|
+
"minimum": 1
|
|
830
|
+
},
|
|
831
|
+
"rating": {
|
|
832
|
+
"description": "The rating provided for the skill.",
|
|
833
|
+
"type": "integer",
|
|
834
|
+
"minimum": 1
|
|
835
|
+
}
|
|
836
|
+
},
|
|
837
|
+
"required": [
|
|
838
|
+
"id",
|
|
839
|
+
"rating"
|
|
840
|
+
],
|
|
841
|
+
"additionalProperties": false
|
|
842
|
+
},
|
|
843
|
+
"VariantSkill": {
|
|
844
|
+
"type": "object",
|
|
845
|
+
"properties": {
|
|
846
|
+
"id": {
|
|
847
|
+
"description": "The identifier of the skill to provide the rating for.",
|
|
848
|
+
"type": "integer",
|
|
849
|
+
"maximum": 59,
|
|
850
|
+
"minimum": 1
|
|
851
|
+
},
|
|
852
|
+
"rating": {
|
|
853
|
+
"description": "The rating provided for the skill. It overrides the basic package's rating.",
|
|
854
|
+
"type": "integer",
|
|
855
|
+
"minimum": 0
|
|
856
|
+
}
|
|
857
|
+
},
|
|
858
|
+
"required": [
|
|
859
|
+
"id",
|
|
860
|
+
"rating"
|
|
861
|
+
],
|
|
862
|
+
"additionalProperties": false
|
|
863
|
+
},
|
|
864
|
+
"Spell": {
|
|
865
|
+
"oneOf": [
|
|
866
|
+
{
|
|
867
|
+
"type": "object",
|
|
868
|
+
"properties": {
|
|
869
|
+
"tag": {
|
|
870
|
+
"const": "Fixed"
|
|
871
|
+
},
|
|
872
|
+
"id": {
|
|
873
|
+
"description": "The identifier of the spell to provide the rating for.",
|
|
874
|
+
"$ref": "#/definitions/SpellIdentifier"
|
|
875
|
+
},
|
|
876
|
+
"rating": {
|
|
877
|
+
"description": "The rating provided for the spell.",
|
|
878
|
+
"type": "integer",
|
|
879
|
+
"minimum": 1
|
|
880
|
+
}
|
|
881
|
+
},
|
|
882
|
+
"required": [
|
|
883
|
+
"tag",
|
|
884
|
+
"id",
|
|
885
|
+
"rating"
|
|
886
|
+
],
|
|
887
|
+
"additionalProperties": false
|
|
888
|
+
},
|
|
889
|
+
{
|
|
890
|
+
"type": "object",
|
|
891
|
+
"properties": {
|
|
892
|
+
"tag": {
|
|
893
|
+
"const": "Selection"
|
|
894
|
+
},
|
|
895
|
+
"id": {
|
|
896
|
+
"description": "The identifiers of the spells to choose from to provide the rating for.",
|
|
897
|
+
"type": "array",
|
|
898
|
+
"items": {
|
|
899
|
+
"$ref": "#/definitions/SpellIdentifier"
|
|
900
|
+
},
|
|
901
|
+
"minItems": 2
|
|
902
|
+
},
|
|
903
|
+
"rating": {
|
|
904
|
+
"description": "The rating provided for the selected spell.",
|
|
905
|
+
"type": "integer",
|
|
906
|
+
"minimum": 1
|
|
907
|
+
}
|
|
908
|
+
},
|
|
909
|
+
"required": [
|
|
910
|
+
"tag",
|
|
911
|
+
"id",
|
|
912
|
+
"rating"
|
|
913
|
+
],
|
|
914
|
+
"additionalProperties": false
|
|
915
|
+
}
|
|
916
|
+
]
|
|
917
|
+
},
|
|
918
|
+
"VariantSpell": {
|
|
919
|
+
"oneOf": [
|
|
920
|
+
{
|
|
921
|
+
"type": "object",
|
|
922
|
+
"properties": {
|
|
923
|
+
"tag": {
|
|
924
|
+
"const": "Fixed"
|
|
925
|
+
},
|
|
926
|
+
"id": {
|
|
927
|
+
"description": "The identifier of the spell to provide the rating for.",
|
|
928
|
+
"$ref": "#/definitions/SpellIdentifier"
|
|
929
|
+
},
|
|
930
|
+
"rating": {
|
|
931
|
+
"description": "The rating provided for the spell. It overrides the basic package's\nrating.",
|
|
932
|
+
"type": "integer",
|
|
933
|
+
"minimum": 0
|
|
934
|
+
}
|
|
935
|
+
},
|
|
936
|
+
"required": [
|
|
937
|
+
"tag",
|
|
938
|
+
"id",
|
|
939
|
+
"rating"
|
|
940
|
+
],
|
|
941
|
+
"additionalProperties": false
|
|
942
|
+
},
|
|
943
|
+
{
|
|
944
|
+
"type": "object",
|
|
945
|
+
"properties": {
|
|
946
|
+
"tag": {
|
|
947
|
+
"const": "Selection"
|
|
948
|
+
},
|
|
949
|
+
"id": {
|
|
950
|
+
"description": "The identifiers of the spells to choose from to provide the rating for.",
|
|
951
|
+
"type": "array",
|
|
952
|
+
"items": {
|
|
953
|
+
"$ref": "#/definitions/SpellIdentifier"
|
|
954
|
+
},
|
|
955
|
+
"minItems": 2
|
|
956
|
+
},
|
|
957
|
+
"rating": {
|
|
958
|
+
"description": "The rating provided for the selected spell. It overrides the basic\npackage's rating.",
|
|
959
|
+
"type": "integer",
|
|
960
|
+
"minimum": 0
|
|
961
|
+
}
|
|
962
|
+
},
|
|
963
|
+
"required": [
|
|
964
|
+
"tag",
|
|
965
|
+
"id",
|
|
966
|
+
"rating"
|
|
967
|
+
],
|
|
968
|
+
"additionalProperties": false
|
|
969
|
+
}
|
|
970
|
+
]
|
|
971
|
+
},
|
|
972
|
+
"SpellIdentifier": {
|
|
973
|
+
"oneOf": [
|
|
974
|
+
{
|
|
975
|
+
"type": "object",
|
|
976
|
+
"properties": {
|
|
977
|
+
"tag": {
|
|
978
|
+
"const": "Spellwork"
|
|
979
|
+
},
|
|
980
|
+
"id": {
|
|
981
|
+
"description": "The identifier of the spell to provide the rating for.",
|
|
982
|
+
"$ref": "./_Identifier.schema.json#/definitions/SpellworkIdentifier"
|
|
983
|
+
},
|
|
984
|
+
"tradition": {
|
|
985
|
+
"description": "If the spell is not part of the magical tradition required by the\npackage, this references the magical tradition it is part of. It can also\nbe used to define the target magical tradition of a spell if multiple\nmagical traditions are required and the spell is available to multiple\nof them.",
|
|
986
|
+
"type": "object",
|
|
987
|
+
"properties": {
|
|
988
|
+
"id": {
|
|
989
|
+
"description": "The unfamiliar or ambiguous magical tradition's identifier.",
|
|
990
|
+
"type": "number"
|
|
991
|
+
}
|
|
992
|
+
},
|
|
993
|
+
"required": [
|
|
994
|
+
"id"
|
|
995
|
+
],
|
|
996
|
+
"additionalProperties": false
|
|
997
|
+
}
|
|
998
|
+
},
|
|
999
|
+
"required": [
|
|
1000
|
+
"tag",
|
|
1001
|
+
"id"
|
|
1002
|
+
],
|
|
1003
|
+
"additionalProperties": false
|
|
1004
|
+
},
|
|
1005
|
+
{
|
|
1006
|
+
"type": "object",
|
|
1007
|
+
"properties": {
|
|
1008
|
+
"tag": {
|
|
1009
|
+
"const": "MagicalAction"
|
|
1010
|
+
},
|
|
1011
|
+
"id": {
|
|
1012
|
+
"description": "The identifier of the magical action to provide the rating for.",
|
|
1013
|
+
"$ref": "./_Identifier.schema.json#/definitions/MagicalActionIdentifier"
|
|
1014
|
+
}
|
|
1015
|
+
},
|
|
1016
|
+
"required": [
|
|
1017
|
+
"tag",
|
|
1018
|
+
"id"
|
|
1019
|
+
],
|
|
1020
|
+
"additionalProperties": false
|
|
1021
|
+
}
|
|
1022
|
+
]
|
|
1023
|
+
},
|
|
1024
|
+
"LiturgicalChant": {
|
|
1025
|
+
"oneOf": [
|
|
1026
|
+
{
|
|
1027
|
+
"type": "object",
|
|
1028
|
+
"properties": {
|
|
1029
|
+
"tag": {
|
|
1030
|
+
"const": "Fixed"
|
|
1031
|
+
},
|
|
1032
|
+
"id": {
|
|
1033
|
+
"description": "The identifier of the liturgical chant to provide the rating for.",
|
|
1034
|
+
"$ref": "./_Identifier.schema.json#/definitions/LiturgyIdentifier"
|
|
1035
|
+
},
|
|
1036
|
+
"rating": {
|
|
1037
|
+
"description": "The rating provided for the liturgical chant.",
|
|
1038
|
+
"type": "integer",
|
|
1039
|
+
"minimum": 1
|
|
1040
|
+
}
|
|
1041
|
+
},
|
|
1042
|
+
"required": [
|
|
1043
|
+
"tag",
|
|
1044
|
+
"id",
|
|
1045
|
+
"rating"
|
|
1046
|
+
],
|
|
1047
|
+
"additionalProperties": false
|
|
1048
|
+
},
|
|
1049
|
+
{
|
|
1050
|
+
"type": "object",
|
|
1051
|
+
"properties": {
|
|
1052
|
+
"tag": {
|
|
1053
|
+
"const": "Selection"
|
|
1054
|
+
},
|
|
1055
|
+
"id": {
|
|
1056
|
+
"description": "The identifiers of the liturgical chants to choose from to provide the\nrating for.",
|
|
1057
|
+
"type": "array",
|
|
1058
|
+
"items": {
|
|
1059
|
+
"$ref": "./_Identifier.schema.json#/definitions/LiturgyIdentifier"
|
|
1060
|
+
},
|
|
1061
|
+
"minItems": 2
|
|
1062
|
+
},
|
|
1063
|
+
"rating": {
|
|
1064
|
+
"description": "The rating provided for the selected liturgical chant.",
|
|
1065
|
+
"type": "integer",
|
|
1066
|
+
"minimum": 1
|
|
1067
|
+
}
|
|
1068
|
+
},
|
|
1069
|
+
"required": [
|
|
1070
|
+
"tag",
|
|
1071
|
+
"id",
|
|
1072
|
+
"rating"
|
|
1073
|
+
],
|
|
1074
|
+
"additionalProperties": false
|
|
1075
|
+
}
|
|
1076
|
+
]
|
|
1077
|
+
},
|
|
1078
|
+
"VariantLiturgicalChant": {
|
|
1079
|
+
"oneOf": [
|
|
1080
|
+
{
|
|
1081
|
+
"type": "object",
|
|
1082
|
+
"properties": {
|
|
1083
|
+
"tag": {
|
|
1084
|
+
"const": "Fixed"
|
|
1085
|
+
},
|
|
1086
|
+
"id": {
|
|
1087
|
+
"description": "The identifier of the liturgical chant to provide the rating for.",
|
|
1088
|
+
"$ref": "./_Identifier.schema.json#/definitions/LiturgyIdentifier"
|
|
1089
|
+
},
|
|
1090
|
+
"rating": {
|
|
1091
|
+
"description": "The rating provided for the liturgical chant. It overrides the basic\npackage's rating.",
|
|
1092
|
+
"type": "integer",
|
|
1093
|
+
"minimum": 0
|
|
1094
|
+
}
|
|
1095
|
+
},
|
|
1096
|
+
"required": [
|
|
1097
|
+
"tag",
|
|
1098
|
+
"id",
|
|
1099
|
+
"rating"
|
|
1100
|
+
],
|
|
1101
|
+
"additionalProperties": false
|
|
1102
|
+
},
|
|
1103
|
+
{
|
|
1104
|
+
"type": "object",
|
|
1105
|
+
"properties": {
|
|
1106
|
+
"tag": {
|
|
1107
|
+
"const": "Selection"
|
|
1108
|
+
},
|
|
1109
|
+
"id": {
|
|
1110
|
+
"description": "The identifiers of the liturgical chants to choose from to provide the\nrating for.",
|
|
1111
|
+
"type": "array",
|
|
1112
|
+
"items": {
|
|
1113
|
+
"$ref": "./_Identifier.schema.json#/definitions/LiturgyIdentifier"
|
|
1114
|
+
},
|
|
1115
|
+
"minItems": 2
|
|
1116
|
+
},
|
|
1117
|
+
"rating": {
|
|
1118
|
+
"description": "The rating provided for the selected liturgical chant. It overrides the\nbasic package's rating.",
|
|
1119
|
+
"type": "integer",
|
|
1120
|
+
"minimum": 0
|
|
1121
|
+
}
|
|
1122
|
+
},
|
|
1123
|
+
"required": [
|
|
1124
|
+
"tag",
|
|
1125
|
+
"id",
|
|
1126
|
+
"rating"
|
|
1127
|
+
],
|
|
1128
|
+
"additionalProperties": false
|
|
1129
|
+
}
|
|
1130
|
+
]
|
|
1131
|
+
},
|
|
1132
|
+
"SkillSpecializationOptions": {
|
|
1133
|
+
"description": "Select an application from a skill or from one of a list of skills where you\nget a skill specialization for. You can also specify a skill groups from\nwhich you can choose a skill.",
|
|
1134
|
+
"oneOf": [
|
|
1135
|
+
{
|
|
1136
|
+
"type": "object",
|
|
1137
|
+
"properties": {
|
|
1138
|
+
"tag": {
|
|
1139
|
+
"const": "Single"
|
|
1140
|
+
},
|
|
1141
|
+
"id": {
|
|
1142
|
+
"description": "The referenced skill's identifier.",
|
|
1143
|
+
"type": "integer",
|
|
1144
|
+
"minimum": 1
|
|
1145
|
+
}
|
|
1146
|
+
},
|
|
1147
|
+
"required": [
|
|
1148
|
+
"tag",
|
|
1149
|
+
"id"
|
|
1150
|
+
],
|
|
1151
|
+
"additionalProperties": false
|
|
1152
|
+
},
|
|
1153
|
+
{
|
|
1154
|
+
"type": "object",
|
|
1155
|
+
"properties": {
|
|
1156
|
+
"tag": {
|
|
1157
|
+
"const": "Selection"
|
|
1158
|
+
},
|
|
1159
|
+
"options": {
|
|
1160
|
+
"description": "Possible skills to get a skill specialization for.",
|
|
1161
|
+
"type": "array",
|
|
1162
|
+
"items": {
|
|
1163
|
+
"type": "object",
|
|
1164
|
+
"properties": {
|
|
1165
|
+
"id": {
|
|
1166
|
+
"description": "The referenced skill's identifier.",
|
|
1167
|
+
"type": "integer",
|
|
1168
|
+
"minimum": 1
|
|
1169
|
+
}
|
|
1170
|
+
},
|
|
1171
|
+
"required": [
|
|
1172
|
+
"id"
|
|
1173
|
+
],
|
|
1174
|
+
"additionalProperties": false
|
|
1175
|
+
},
|
|
1176
|
+
"minItems": 2
|
|
1177
|
+
}
|
|
1178
|
+
},
|
|
1179
|
+
"required": [
|
|
1180
|
+
"tag",
|
|
1181
|
+
"options"
|
|
1182
|
+
],
|
|
1183
|
+
"additionalProperties": false
|
|
1184
|
+
},
|
|
1185
|
+
{
|
|
1186
|
+
"type": "object",
|
|
1187
|
+
"properties": {
|
|
1188
|
+
"tag": {
|
|
1189
|
+
"const": "Group"
|
|
1190
|
+
},
|
|
1191
|
+
"id": {
|
|
1192
|
+
"description": "The referenced skill group's identifier.",
|
|
1193
|
+
"type": "integer",
|
|
1194
|
+
"maximum": 5,
|
|
1195
|
+
"minimum": 1
|
|
1196
|
+
}
|
|
1197
|
+
},
|
|
1198
|
+
"required": [
|
|
1199
|
+
"tag",
|
|
1200
|
+
"id"
|
|
1201
|
+
],
|
|
1202
|
+
"additionalProperties": false
|
|
1203
|
+
}
|
|
1204
|
+
]
|
|
1205
|
+
},
|
|
1206
|
+
"LanguagesScriptsOptions": {
|
|
1207
|
+
"description": "Buy languages and scripts for a specific amount of AP.",
|
|
1208
|
+
"type": "object",
|
|
1209
|
+
"properties": {
|
|
1210
|
+
"ap_value": {
|
|
1211
|
+
"description": "The AP value you can buy languages and scripts for.",
|
|
1212
|
+
"type": "integer",
|
|
1213
|
+
"minimum": 2,
|
|
1214
|
+
"multipleOf": 2
|
|
1215
|
+
}
|
|
1216
|
+
},
|
|
1217
|
+
"required": [
|
|
1218
|
+
"ap_value"
|
|
1219
|
+
],
|
|
1220
|
+
"additionalProperties": false
|
|
1221
|
+
},
|
|
1222
|
+
"CombatTechniquesOptions": {
|
|
1223
|
+
"description": "Select one or more combat techniques you get a CtR bonus for.",
|
|
1224
|
+
"type": "object",
|
|
1225
|
+
"properties": {
|
|
1226
|
+
"fixed": {
|
|
1227
|
+
"description": "Specify the number of combat techniques that can be selected so that they\nget increased to a specific CtR. There can be multiple selections with\ndifferent CtRs.",
|
|
1228
|
+
"type": "array",
|
|
1229
|
+
"items": {
|
|
1230
|
+
"type": "object",
|
|
1231
|
+
"properties": {
|
|
1232
|
+
"number": {
|
|
1233
|
+
"description": "The number of selectable combat techniques.",
|
|
1234
|
+
"type": "integer",
|
|
1235
|
+
"minimum": 1
|
|
1236
|
+
},
|
|
1237
|
+
"rating": {
|
|
1238
|
+
"description": "The rating provided for the selected combat technique(s).",
|
|
1239
|
+
"type": "integer",
|
|
1240
|
+
"minimum": 7
|
|
1241
|
+
}
|
|
1242
|
+
},
|
|
1243
|
+
"required": [
|
|
1244
|
+
"number",
|
|
1245
|
+
"rating"
|
|
1246
|
+
],
|
|
1247
|
+
"additionalProperties": false
|
|
1248
|
+
},
|
|
1249
|
+
"minItems": 1
|
|
1250
|
+
},
|
|
1251
|
+
"rest_rating": {
|
|
1252
|
+
"description": "Define if after the fixed selections the remaining unselected combat\ntechniques will receive a certain rating as well.",
|
|
1253
|
+
"type": "integer",
|
|
1254
|
+
"minimum": 7
|
|
1255
|
+
},
|
|
1256
|
+
"options": {
|
|
1257
|
+
"description": "The list of combat techniques to choose from.",
|
|
1258
|
+
"type": "array",
|
|
1259
|
+
"items": {
|
|
1260
|
+
"type": "object",
|
|
1261
|
+
"properties": {
|
|
1262
|
+
"id": {
|
|
1263
|
+
"description": "The combat technique's identifier.",
|
|
1264
|
+
"$ref": "./_Identifier.schema.json#/definitions/CombatTechniqueIdentifier"
|
|
1265
|
+
}
|
|
1266
|
+
},
|
|
1267
|
+
"required": [
|
|
1268
|
+
"id"
|
|
1269
|
+
],
|
|
1270
|
+
"additionalProperties": false
|
|
1271
|
+
},
|
|
1272
|
+
"minItems": 2
|
|
1273
|
+
}
|
|
1274
|
+
},
|
|
1275
|
+
"required": [
|
|
1276
|
+
"fixed",
|
|
1277
|
+
"options"
|
|
1278
|
+
],
|
|
1279
|
+
"additionalProperties": false
|
|
1280
|
+
},
|
|
1281
|
+
"CantripsOptions": {
|
|
1282
|
+
"description": "Select one or more cantrips you receive.",
|
|
1283
|
+
"type": "object",
|
|
1284
|
+
"properties": {
|
|
1285
|
+
"number": {
|
|
1286
|
+
"description": "The number of selectable cantrips.",
|
|
1287
|
+
"type": "integer",
|
|
1288
|
+
"minimum": 1
|
|
1289
|
+
},
|
|
1290
|
+
"options": {
|
|
1291
|
+
"description": "The list of cantrips to choose from.",
|
|
1292
|
+
"type": "array",
|
|
1293
|
+
"items": {
|
|
1294
|
+
"type": "object",
|
|
1295
|
+
"properties": {
|
|
1296
|
+
"id": {
|
|
1297
|
+
"description": "The cantrip's identifier.",
|
|
1298
|
+
"type": "integer",
|
|
1299
|
+
"minimum": 1
|
|
1300
|
+
}
|
|
1301
|
+
},
|
|
1302
|
+
"required": [
|
|
1303
|
+
"id"
|
|
1304
|
+
],
|
|
1305
|
+
"additionalProperties": false
|
|
1306
|
+
},
|
|
1307
|
+
"minItems": 2
|
|
1308
|
+
}
|
|
1309
|
+
},
|
|
1310
|
+
"required": [
|
|
1311
|
+
"number",
|
|
1312
|
+
"options"
|
|
1313
|
+
],
|
|
1314
|
+
"additionalProperties": false
|
|
1315
|
+
},
|
|
1316
|
+
"CursesOptions": {
|
|
1317
|
+
"description": "Buy curses for a specific amount of AP.",
|
|
1318
|
+
"type": "object",
|
|
1319
|
+
"properties": {
|
|
1320
|
+
"ap_value": {
|
|
1321
|
+
"description": "The AP value you can buy curses for.",
|
|
1322
|
+
"type": "integer",
|
|
1323
|
+
"minimum": 2,
|
|
1324
|
+
"multipleOf": 2
|
|
1325
|
+
}
|
|
1326
|
+
},
|
|
1327
|
+
"required": [
|
|
1328
|
+
"ap_value"
|
|
1329
|
+
],
|
|
1330
|
+
"additionalProperties": false
|
|
1331
|
+
},
|
|
1332
|
+
"TerrainKnowledgeOptions": {
|
|
1333
|
+
"description": "Select one of a list of possible terrain knowledges",
|
|
1334
|
+
"type": "object",
|
|
1335
|
+
"properties": {
|
|
1336
|
+
"options": {
|
|
1337
|
+
"description": "The list of possible terrain knowledges.",
|
|
1338
|
+
"type": "array",
|
|
1339
|
+
"items": {
|
|
1340
|
+
"type": "object",
|
|
1341
|
+
"properties": {
|
|
1342
|
+
"id": {
|
|
1343
|
+
"description": "The terrain knowledge option's identifier.",
|
|
1344
|
+
"type": "integer",
|
|
1345
|
+
"maximum": 10,
|
|
1346
|
+
"minimum": 1
|
|
1347
|
+
}
|
|
1348
|
+
},
|
|
1349
|
+
"required": [
|
|
1350
|
+
"id"
|
|
1351
|
+
],
|
|
1352
|
+
"additionalProperties": false
|
|
1353
|
+
},
|
|
1354
|
+
"minItems": 2
|
|
1355
|
+
}
|
|
1356
|
+
},
|
|
1357
|
+
"required": [
|
|
1358
|
+
"options"
|
|
1359
|
+
],
|
|
1360
|
+
"additionalProperties": false
|
|
1361
|
+
},
|
|
1362
|
+
"SkillsOptions": {
|
|
1363
|
+
"description": "Buy skills for a specific amount of AP.",
|
|
1364
|
+
"type": "object",
|
|
1365
|
+
"properties": {
|
|
1366
|
+
"group_id": {
|
|
1367
|
+
"description": "If specified, you may only choose from skills of the specified group.",
|
|
1368
|
+
"type": "integer",
|
|
1369
|
+
"maximum": 1,
|
|
1370
|
+
"minimum": 1
|
|
1371
|
+
},
|
|
1372
|
+
"ap_value": {
|
|
1373
|
+
"description": "The AP value you can buy skills for.",
|
|
1374
|
+
"type": "integer",
|
|
1375
|
+
"minimum": 1
|
|
1376
|
+
}
|
|
1377
|
+
},
|
|
1378
|
+
"required": [
|
|
1379
|
+
"ap_value"
|
|
1380
|
+
],
|
|
1381
|
+
"additionalProperties": false
|
|
1382
|
+
}
|
|
1383
|
+
}
|
|
1384
|
+
}
|