optolith-database-schema 0.8.0 → 0.9.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 (41) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/lib/config.d.ts +2 -0
  3. package/lib/config.js +2 -0
  4. package/lib/types/_Activatable.d.ts +2 -1
  5. package/lib/types/_ActivatableSkillCastingTime.d.ts +9 -1
  6. package/lib/types/_ActivatableSkillCost.d.ts +5 -0
  7. package/lib/types/_Identifier.d.ts +9 -0
  8. package/lib/types/_IdentifierGroup.d.ts +3 -3
  9. package/lib/types/_SkillCheck.d.ts +3 -1
  10. package/lib/types/_SkillCheck.js +2 -0
  11. package/lib/types/magicalActions/MagicalRune.d.ts +82 -16
  12. package/lib/types/specialAbility/MagicalSign.d.ts +38 -0
  13. package/lib/types/specialAbility/MagicalSign.js +5 -0
  14. package/lib/types/specialAbility/MagicalTradition.d.ts +2 -2
  15. package/lib/types/specialAbility/ProtectiveWardingCircleSpecialAbility.d.ts +6 -0
  16. package/lib/types/specialAbility/sub/Language.d.ts +1 -1
  17. package/lib/types/traditionArtifacts/DaggerRitual.d.ts +1 -1
  18. package/lib/types/traditionArtifacts/StaffEnchantment.d.ts +1 -1
  19. package/lib/types/traditionArtifacts/ToyEnchantment.d.ts +1 -1
  20. package/lib/types/traditionArtifacts/WandEnchantment.d.ts +0 -5
  21. package/lib/types/traditionArtifacts/WeaponEnchantment.d.ts +2 -1
  22. package/package.json +1 -1
  23. package/schema/_ActivatableSkillCastingTime.schema.json +6 -6
  24. package/schema/_ActivatableSkillCost.schema.json +4 -0
  25. package/schema/_Identifier.schema.json +18 -0
  26. package/schema/_IdentifierGroup.schema.json +9 -0
  27. package/schema/_SkillCheck.schema.json +3 -1
  28. package/schema/magicalActions/MagicalRune.schema.json +213 -21
  29. package/schema/specialAbility/CombatStyleSpecialAbility.schema.json +42 -27
  30. package/schema/specialAbility/LiturgicalStyleSpecialAbility.schema.json +42 -27
  31. package/schema/specialAbility/MagicStyleSpecialAbility.schema.json +42 -27
  32. package/schema/specialAbility/MagicalSign.schema.json +72 -0
  33. package/schema/specialAbility/MagicalTradition.schema.json +0 -2
  34. package/schema/specialAbility/ProtectiveWardingCircleSpecialAbility.schema.json +6 -0
  35. package/schema/specialAbility/SkillStyleSpecialAbility.schema.json +42 -27
  36. package/schema/specialAbility/sub/Language.schema.json +0 -1
  37. package/schema/traditionArtifacts/DaggerRitual.schema.json +0 -1
  38. package/schema/traditionArtifacts/StaffEnchantment.schema.json +0 -1
  39. package/schema/traditionArtifacts/ToyEnchantment.schema.json +0 -1
  40. package/schema/traditionArtifacts/WandEnchantment.schema.json +1 -9
  41. package/schema/traditionArtifacts/WeaponEnchantment.schema.json +8 -1
@@ -12,8 +12,12 @@
12
12
  "type": "integer",
13
13
  "minimum": 1
14
14
  },
15
- "option": {
16
- "$ref": "#/$defs/MagicalRuneOption"
15
+ "options": {
16
+ "description": "The options the magical rune has, if any.\n\nIf there are multiple options, the magical rune may be activated for each\noption, that is, multiple times.",
17
+ "type": "array",
18
+ "items": {
19
+ "$ref": "#/$defs/MagicalRuneOption"
20
+ }
17
21
  },
18
22
  "check": {
19
23
  "description": "Lists the linked three attributes used to make a skill check.",
@@ -33,7 +37,7 @@
33
37
  },
34
38
  "improvement_cost": {
35
39
  "description": "States which column is used to improve the skill.",
36
- "$ref": "../_ImprovementCost.schema.json#/$defs/ImprovementCost"
40
+ "$ref": "#/$defs/MagicalRuneImprovementCost"
37
41
  },
38
42
  "src": {
39
43
  "$ref": "../source/_PublicationRef.schema.json#/$defs/PublicationRefs"
@@ -68,6 +72,10 @@
68
72
  "description": "The name of the magical rune.\n\nIf the rune has an option, the option’s name will/should not be included in\nthe name as well as its surrounding parenthesis. It will/should be combined\non demand.",
69
73
  "$ref": "../_NonEmptyString.schema.json#/$defs/NonEmptyString"
70
74
  },
75
+ "name_in_library": {
76
+ "description": "The full name of the entry as stated in the sources. Only use when `name`\nneeds to be different from full name for text generation purposes.",
77
+ "$ref": "../_NonEmptyString.schema.json#/$defs/NonEmptyString"
78
+ },
71
79
  "native_name": {
72
80
  "description": "The native name of the magical rune.",
73
81
  "$ref": "../_NonEmptyString.schema.json#/$defs/NonEmptyString"
@@ -182,7 +190,6 @@
182
190
  },
183
191
  "required": [
184
192
  "name",
185
- "native_name",
186
193
  "effect",
187
194
  "cost",
188
195
  "crafting_time",
@@ -196,33 +203,33 @@
196
203
  "type": "object",
197
204
  "properties": {
198
205
  "tag": {
199
- "const": "CloseCombatTechnique"
206
+ "const": "CombatTechnique"
200
207
  },
201
- "close_combat_technique": {
202
- "$ref": "#/$defs/MagicalRuneCloseCombatTechniqueCheckPenalty"
208
+ "combat_technique": {
209
+ "$ref": "#/$defs/MagicalRuneCombatTechniqueCheckPenalty"
203
210
  }
204
211
  },
205
212
  "required": [
206
213
  "tag",
207
- "close_combat_technique"
214
+ "combat_technique"
208
215
  ],
209
216
  "additionalProperties": false
210
217
  }
211
218
  ]
212
219
  },
213
- "MagicalRuneCloseCombatTechniqueCheckPenalty": {
220
+ "MagicalRuneCombatTechniqueCheckPenalty": {
214
221
  "type": "object",
215
222
  "properties": {
216
223
  "map": {
217
- "description": "A map from close combat techniques to their modifiers.",
224
+ "description": "A map from combat techniques to their modifiers.",
218
225
  "type": "array",
219
226
  "items": {
220
- "$ref": "#/$defs/MagicalRuneCloseCombatTechniqueCheckPenaltyMapping"
227
+ "$ref": "#/$defs/MagicalRuneCombatTechniqueCheckPenaltyMapping"
221
228
  },
222
229
  "minItems": 1
223
230
  },
224
231
  "rest": {
225
- "$ref": "#/$defs/MagicalRuneCloseCombatTechniqueCheckPenaltyRest"
232
+ "$ref": "#/$defs/MagicalRuneCombatTechniqueCheckPenaltyRest"
226
233
  }
227
234
  },
228
235
  "required": [
@@ -231,29 +238,29 @@
231
238
  ],
232
239
  "additionalProperties": false
233
240
  },
234
- "MagicalRuneCloseCombatTechniqueCheckPenaltyMapping": {
241
+ "MagicalRuneCombatTechniqueCheckPenaltyMapping": {
235
242
  "type": "object",
236
243
  "properties": {
237
- "combat_technique_id": {
238
- "description": "The close combat technique's identifier.",
239
- "$ref": "../_Identifier.schema.json#/$defs/CloseCombatTechniqueIdentifier"
244
+ "id": {
245
+ "description": "The combat technique's identifier.",
246
+ "$ref": "../_IdentifierGroup.schema.json#/$defs/CombatTechniqueIdentifier"
240
247
  },
241
248
  "modifier": {
242
- "description": "The check modifier for the specified close combat technique.",
249
+ "description": "The check modifier for the specified combat technique.",
243
250
  "type": "integer"
244
251
  }
245
252
  },
246
253
  "required": [
247
- "combat_technique_id",
254
+ "id",
248
255
  "modifier"
249
256
  ],
250
257
  "additionalProperties": false
251
258
  },
252
- "MagicalRuneCloseCombatTechniqueCheckPenaltyRest": {
259
+ "MagicalRuneCombatTechniqueCheckPenaltyRest": {
253
260
  "type": "object",
254
261
  "properties": {
255
262
  "modifier": {
256
- "description": "The check modifier for close combat techniques not specified in `map`.",
263
+ "description": "The check modifier for combat techniques not specified in `map`.",
257
264
  "type": "integer"
258
265
  }
259
266
  },
@@ -287,6 +294,61 @@
287
294
  "additionalProperties": false
288
295
  },
289
296
  "MagicalRuneCost": {
297
+ "oneOf": [
298
+ {
299
+ "type": "object",
300
+ "properties": {
301
+ "tag": {
302
+ "const": "Single"
303
+ },
304
+ "single": {
305
+ "$ref": "#/$defs/SingleMagicalRuneCost"
306
+ }
307
+ },
308
+ "required": [
309
+ "tag",
310
+ "single"
311
+ ],
312
+ "additionalProperties": false
313
+ },
314
+ {
315
+ "type": "object",
316
+ "properties": {
317
+ "tag": {
318
+ "const": "Disjunction"
319
+ },
320
+ "disjunction": {
321
+ "$ref": "#/$defs/MagicalRuneCostDisjunction"
322
+ }
323
+ },
324
+ "required": [
325
+ "tag",
326
+ "disjunction"
327
+ ],
328
+ "additionalProperties": false
329
+ },
330
+ {
331
+ "type": "object",
332
+ "properties": {
333
+ "tag": {
334
+ "const": "DerivedFromOption"
335
+ },
336
+ "derived_from_option": {
337
+ "type": "object",
338
+ "properties": {},
339
+ "required": [],
340
+ "additionalProperties": false
341
+ }
342
+ },
343
+ "required": [
344
+ "tag",
345
+ "derived_from_option"
346
+ ],
347
+ "additionalProperties": false
348
+ }
349
+ ]
350
+ },
351
+ "MagicalRuneOptionCost": {
290
352
  "oneOf": [
291
353
  {
292
354
  "type": "object",
@@ -442,9 +504,76 @@
442
504
  ],
443
505
  "additionalProperties": false
444
506
  },
507
+ "MagicalRuneImprovementCost": {
508
+ "oneOf": [
509
+ {
510
+ "type": "object",
511
+ "properties": {
512
+ "tag": {
513
+ "const": "Constant"
514
+ },
515
+ "constant": {
516
+ "$ref": "#/$defs/ConstantMagicalRuneImprovementCost"
517
+ }
518
+ },
519
+ "required": [
520
+ "tag",
521
+ "constant"
522
+ ],
523
+ "additionalProperties": false
524
+ },
525
+ {
526
+ "type": "object",
527
+ "properties": {
528
+ "tag": {
529
+ "const": "DerivedFromOption"
530
+ },
531
+ "derived_from_option": {
532
+ "type": "object",
533
+ "properties": {},
534
+ "required": [],
535
+ "additionalProperties": false
536
+ }
537
+ },
538
+ "required": [
539
+ "tag",
540
+ "derived_from_option"
541
+ ],
542
+ "additionalProperties": false
543
+ }
544
+ ]
545
+ },
546
+ "ConstantMagicalRuneImprovementCost": {
547
+ "type": "object",
548
+ "properties": {
549
+ "value": {
550
+ "$ref": "../_ImprovementCost.schema.json#/$defs/ImprovementCost"
551
+ }
552
+ },
553
+ "required": [
554
+ "value"
555
+ ],
556
+ "additionalProperties": false
557
+ },
445
558
  "MagicalRuneOption": {
446
559
  "type": "object",
447
560
  "properties": {
561
+ "id": {
562
+ "description": "The magical rune option’s identifier. An unique, increasing integer.",
563
+ "type": "integer",
564
+ "minimum": 1
565
+ },
566
+ "cost": {
567
+ "description": "The option-specific AE cost.",
568
+ "$ref": "#/$defs/MagicalRuneOptionCost"
569
+ },
570
+ "improvement_cost": {
571
+ "description": "The option-specific improvement cost.",
572
+ "$ref": "../_ImprovementCost.schema.json#/$defs/ImprovementCost"
573
+ },
574
+ "suboption": {
575
+ "$ref": "#/$defs/MagicalRuneSuboption"
576
+ },
448
577
  "translations": {
449
578
  "description": "All translations for the entry, identified by IETF language tag (BCP47).",
450
579
  "type": "object",
@@ -458,20 +587,83 @@
458
587
  }
459
588
  },
460
589
  "required": [
590
+ "id",
591
+ "cost",
592
+ "improvement_cost",
593
+ "suboption",
461
594
  "translations"
462
595
  ],
463
596
  "additionalProperties": false
464
597
  },
598
+ "MagicalRuneSuboption": {
599
+ "oneOf": [
600
+ {
601
+ "type": "object",
602
+ "properties": {
603
+ "tag": {
604
+ "const": "Custom"
605
+ },
606
+ "custom": {
607
+ "$ref": "#/$defs/CustomMagicalRuneSuboption"
608
+ }
609
+ },
610
+ "required": [
611
+ "tag",
612
+ "custom"
613
+ ],
614
+ "additionalProperties": false
615
+ }
616
+ ]
617
+ },
618
+ "CustomMagicalRuneSuboption": {
619
+ "type": "object",
620
+ "properties": {
621
+ "translations": {
622
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
623
+ "type": "object",
624
+ "patternProperties": {
625
+ "^[a-z]{2}-[A-Z]{2}$": {
626
+ "$ref": "#/$defs/CustomMagicalRuneSuboptionTranslation"
627
+ }
628
+ },
629
+ "minProperties": 1,
630
+ "additionalProperties": false
631
+ }
632
+ },
633
+ "required": [
634
+ "translations"
635
+ ],
636
+ "additionalProperties": false
637
+ },
638
+ "CustomMagicalRuneSuboptionTranslation": {
639
+ "type": "object",
640
+ "properties": {
641
+ "examples": {
642
+ "description": "One or more examples for the suboption.",
643
+ "type": "array",
644
+ "items": {
645
+ "$ref": "../_NonEmptyString.schema.json#/$defs/NonEmptyString"
646
+ }
647
+ }
648
+ },
649
+ "required": [],
650
+ "additionalProperties": false
651
+ },
465
652
  "MagicalRuneOptionTranslation": {
466
653
  "type": "object",
467
654
  "properties": {
468
655
  "name": {
469
656
  "description": "The name of the option.\n\nThe surrounding parenthesis will/should not be included, they will/should\nbe generated.",
470
657
  "$ref": "../_NonEmptyString.schema.json#/$defs/NonEmptyString"
658
+ },
659
+ "native_name": {
660
+ "description": "The native name of the magical rune option.",
661
+ "$ref": "../_NonEmptyString.schema.json#/$defs/NonEmptyString"
471
662
  }
472
663
  },
473
664
  "required": [
474
- "name"
665
+ "name",
666
+ "native_name"
475
667
  ],
476
668
  "additionalProperties": false
477
669
  }
@@ -108,16 +108,21 @@
108
108
  "type": "object",
109
109
  "properties": {
110
110
  "options": {
111
- "type": "object",
112
- "properties": {
113
- "id": {
114
- "$ref": "../_Identifier.schema.json#/$defs/AdvancedCombatSpecialAbilityIdentifier"
115
- }
111
+ "description": "The possible advanced special abilities.",
112
+ "type": "array",
113
+ "items": {
114
+ "type": "object",
115
+ "properties": {
116
+ "id": {
117
+ "$ref": "../_Identifier.schema.json#/$defs/AdvancedCombatSpecialAbilityIdentifier"
118
+ }
119
+ },
120
+ "required": [
121
+ "id"
122
+ ],
123
+ "additionalProperties": false
116
124
  },
117
- "required": [
118
- "id"
119
- ],
120
- "additionalProperties": false
125
+ "minItems": 2
121
126
  },
122
127
  "is_selection_required_on_purchase": {
123
128
  "description": "Do have to choose the advanced special ability when buying the style\nspecial ability? Otherwise the decision can be made later.",
@@ -276,16 +281,21 @@
276
281
  "type": "object",
277
282
  "properties": {
278
283
  "options": {
279
- "type": "object",
280
- "properties": {
281
- "id": {
282
- "$ref": "../_Identifier.schema.json#/$defs/AdvancedCombatSpecialAbilityIdentifier"
283
- }
284
+ "description": "The possible advanced special abilities.",
285
+ "type": "array",
286
+ "items": {
287
+ "type": "object",
288
+ "properties": {
289
+ "id": {
290
+ "$ref": "../_Identifier.schema.json#/$defs/AdvancedCombatSpecialAbilityIdentifier"
291
+ }
292
+ },
293
+ "required": [
294
+ "id"
295
+ ],
296
+ "additionalProperties": false
284
297
  },
285
- "required": [
286
- "id"
287
- ],
288
- "additionalProperties": false
298
+ "minItems": 2
289
299
  },
290
300
  "is_selection_required_on_purchase": {
291
301
  "description": "Do have to choose the advanced special ability when buying the style\nspecial ability? Otherwise the decision can be made later.",
@@ -444,16 +454,21 @@
444
454
  "type": "object",
445
455
  "properties": {
446
456
  "options": {
447
- "type": "object",
448
- "properties": {
449
- "id": {
450
- "$ref": "../_Identifier.schema.json#/$defs/AdvancedCombatSpecialAbilityIdentifier"
451
- }
457
+ "description": "The possible advanced special abilities.",
458
+ "type": "array",
459
+ "items": {
460
+ "type": "object",
461
+ "properties": {
462
+ "id": {
463
+ "$ref": "../_Identifier.schema.json#/$defs/AdvancedCombatSpecialAbilityIdentifier"
464
+ }
465
+ },
466
+ "required": [
467
+ "id"
468
+ ],
469
+ "additionalProperties": false
452
470
  },
453
- "required": [
454
- "id"
455
- ],
456
- "additionalProperties": false
471
+ "minItems": 2
457
472
  },
458
473
  "is_selection_required_on_purchase": {
459
474
  "description": "Do have to choose the advanced special ability when buying the style\nspecial ability? Otherwise the decision can be made later.",
@@ -101,16 +101,21 @@
101
101
  "type": "object",
102
102
  "properties": {
103
103
  "options": {
104
- "type": "object",
105
- "properties": {
106
- "id": {
107
- "$ref": "../_Identifier.schema.json#/$defs/AdvancedKarmaSpecialAbilityIdentifier"
108
- }
104
+ "description": "The possible advanced special abilities.",
105
+ "type": "array",
106
+ "items": {
107
+ "type": "object",
108
+ "properties": {
109
+ "id": {
110
+ "$ref": "../_Identifier.schema.json#/$defs/AdvancedKarmaSpecialAbilityIdentifier"
111
+ }
112
+ },
113
+ "required": [
114
+ "id"
115
+ ],
116
+ "additionalProperties": false
109
117
  },
110
- "required": [
111
- "id"
112
- ],
113
- "additionalProperties": false
118
+ "minItems": 2
114
119
  },
115
120
  "is_selection_required_on_purchase": {
116
121
  "description": "Do have to choose the advanced special ability when buying the style\nspecial ability? Otherwise the decision can be made later.",
@@ -269,16 +274,21 @@
269
274
  "type": "object",
270
275
  "properties": {
271
276
  "options": {
272
- "type": "object",
273
- "properties": {
274
- "id": {
275
- "$ref": "../_Identifier.schema.json#/$defs/AdvancedKarmaSpecialAbilityIdentifier"
276
- }
277
+ "description": "The possible advanced special abilities.",
278
+ "type": "array",
279
+ "items": {
280
+ "type": "object",
281
+ "properties": {
282
+ "id": {
283
+ "$ref": "../_Identifier.schema.json#/$defs/AdvancedKarmaSpecialAbilityIdentifier"
284
+ }
285
+ },
286
+ "required": [
287
+ "id"
288
+ ],
289
+ "additionalProperties": false
277
290
  },
278
- "required": [
279
- "id"
280
- ],
281
- "additionalProperties": false
291
+ "minItems": 2
282
292
  },
283
293
  "is_selection_required_on_purchase": {
284
294
  "description": "Do have to choose the advanced special ability when buying the style\nspecial ability? Otherwise the decision can be made later.",
@@ -437,16 +447,21 @@
437
447
  "type": "object",
438
448
  "properties": {
439
449
  "options": {
440
- "type": "object",
441
- "properties": {
442
- "id": {
443
- "$ref": "../_Identifier.schema.json#/$defs/AdvancedKarmaSpecialAbilityIdentifier"
444
- }
450
+ "description": "The possible advanced special abilities.",
451
+ "type": "array",
452
+ "items": {
453
+ "type": "object",
454
+ "properties": {
455
+ "id": {
456
+ "$ref": "../_Identifier.schema.json#/$defs/AdvancedKarmaSpecialAbilityIdentifier"
457
+ }
458
+ },
459
+ "required": [
460
+ "id"
461
+ ],
462
+ "additionalProperties": false
445
463
  },
446
- "required": [
447
- "id"
448
- ],
449
- "additionalProperties": false
464
+ "minItems": 2
450
465
  },
451
466
  "is_selection_required_on_purchase": {
452
467
  "description": "Do have to choose the advanced special ability when buying the style\nspecial ability? Otherwise the decision can be made later.",
@@ -101,16 +101,21 @@
101
101
  "type": "object",
102
102
  "properties": {
103
103
  "options": {
104
- "type": "object",
105
- "properties": {
106
- "id": {
107
- "$ref": "../_Identifier.schema.json#/$defs/AdvancedMagicalSpecialAbilityIdentifier"
108
- }
104
+ "description": "The possible advanced special abilities.",
105
+ "type": "array",
106
+ "items": {
107
+ "type": "object",
108
+ "properties": {
109
+ "id": {
110
+ "$ref": "../_Identifier.schema.json#/$defs/AdvancedMagicalSpecialAbilityIdentifier"
111
+ }
112
+ },
113
+ "required": [
114
+ "id"
115
+ ],
116
+ "additionalProperties": false
109
117
  },
110
- "required": [
111
- "id"
112
- ],
113
- "additionalProperties": false
118
+ "minItems": 2
114
119
  },
115
120
  "is_selection_required_on_purchase": {
116
121
  "description": "Do have to choose the advanced special ability when buying the style\nspecial ability? Otherwise the decision can be made later.",
@@ -269,16 +274,21 @@
269
274
  "type": "object",
270
275
  "properties": {
271
276
  "options": {
272
- "type": "object",
273
- "properties": {
274
- "id": {
275
- "$ref": "../_Identifier.schema.json#/$defs/AdvancedMagicalSpecialAbilityIdentifier"
276
- }
277
+ "description": "The possible advanced special abilities.",
278
+ "type": "array",
279
+ "items": {
280
+ "type": "object",
281
+ "properties": {
282
+ "id": {
283
+ "$ref": "../_Identifier.schema.json#/$defs/AdvancedMagicalSpecialAbilityIdentifier"
284
+ }
285
+ },
286
+ "required": [
287
+ "id"
288
+ ],
289
+ "additionalProperties": false
277
290
  },
278
- "required": [
279
- "id"
280
- ],
281
- "additionalProperties": false
291
+ "minItems": 2
282
292
  },
283
293
  "is_selection_required_on_purchase": {
284
294
  "description": "Do have to choose the advanced special ability when buying the style\nspecial ability? Otherwise the decision can be made later.",
@@ -437,16 +447,21 @@
437
447
  "type": "object",
438
448
  "properties": {
439
449
  "options": {
440
- "type": "object",
441
- "properties": {
442
- "id": {
443
- "$ref": "../_Identifier.schema.json#/$defs/AdvancedMagicalSpecialAbilityIdentifier"
444
- }
450
+ "description": "The possible advanced special abilities.",
451
+ "type": "array",
452
+ "items": {
453
+ "type": "object",
454
+ "properties": {
455
+ "id": {
456
+ "$ref": "../_Identifier.schema.json#/$defs/AdvancedMagicalSpecialAbilityIdentifier"
457
+ }
458
+ },
459
+ "required": [
460
+ "id"
461
+ ],
462
+ "additionalProperties": false
445
463
  },
446
- "required": [
447
- "id"
448
- ],
449
- "additionalProperties": false
464
+ "minItems": 2
450
465
  },
451
466
  "is_selection_required_on_purchase": {
452
467
  "description": "Do have to choose the advanced special ability when buying the style\nspecial ability? Otherwise the decision can be made later.",