optolith-database-schema 0.0.1 → 0.0.4

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 (44) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/lib/types/Blessing.d.ts +124 -0
  3. package/lib/types/Blessing.js +4 -0
  4. package/lib/types/Cantrip.d.ts +220 -0
  5. package/lib/types/Cantrip.js +4 -0
  6. package/lib/types/Ceremony.d.ts +144 -0
  7. package/lib/types/Ceremony.js +4 -0
  8. package/lib/types/LiturgicalChant.d.ts +144 -0
  9. package/lib/types/LiturgicalChant.js +4 -0
  10. package/lib/types/PactCategory.d.ts +90 -0
  11. package/lib/types/PactCategory.js +4 -0
  12. package/lib/types/Ritual.d.ts +134 -0
  13. package/lib/types/Ritual.js +4 -0
  14. package/lib/types/{SkillModificationIncrement.d.ts → SkillModificationLevel.d.ts} +58 -31
  15. package/lib/types/SkillModificationLevel.js +8 -0
  16. package/lib/types/Spell.d.ts +134 -0
  17. package/lib/types/Spell.js +4 -0
  18. package/lib/types/_ActivatableSkill.d.ts +86 -37
  19. package/lib/types/_ActivatableSkill.js +0 -5
  20. package/lib/types/_Enhancements.d.ts +66 -0
  21. package/lib/types/_Enhancements.js +4 -0
  22. package/lib/types/_Identifier.d.ts +80 -0
  23. package/lib/types/_Identifier.js +1 -0
  24. package/lib/types/_Prerequisite.d.ts +93 -1
  25. package/lib/types/_Prerequisite.js +183 -1
  26. package/lib/types/magicalActions/GeodeRitual.d.ts +3 -2
  27. package/lib/types/magicalActions/ZibiljaRitual.d.ts +2 -2
  28. package/package.json +2 -2
  29. package/schema/Blessing.schema.json +227 -0
  30. package/schema/Cantrip.schema.json +427 -0
  31. package/schema/Ceremony.schema.json +233 -0
  32. package/schema/LiturgicalChant.schema.json +233 -0
  33. package/schema/PactCategory.schema.json +138 -0
  34. package/schema/Ritual.schema.json +219 -0
  35. package/schema/SkillModificationLevel.schema.json +138 -0
  36. package/schema/Spell.schema.json +219 -0
  37. package/schema/_ActivatableSkill.schema.json +227 -41
  38. package/schema/_Enhancements.schema.json +82 -0
  39. package/schema/_Identifier.schema.json +185 -0
  40. package/schema/_Prerequisite.schema.json +199 -1
  41. package/schema/magicalActions/GeodeRitual.schema.json +1 -1
  42. package/schema/magicalActions/ZibiljaRitual.schema.json +1 -1
  43. package/lib/types/SkillModificationIncrement.js +0 -4
  44. package/schema/SkillModificationIncrement.schema.json +0 -98
@@ -165,7 +165,7 @@
165
165
  "minLength": 1
166
166
  }
167
167
  },
168
- "PerformanceParameters": {
168
+ "FastPerformanceParameters": {
169
169
  "oneOf": [
170
170
  {
171
171
  "type": "object",
@@ -174,7 +174,7 @@
174
174
  "const": "OneTime"
175
175
  },
176
176
  "casting_time": {
177
- "$ref": "#/definitions/CastingTime/T"
177
+ "$ref": "#/definitions/CastingTime/Fast"
178
178
  },
179
179
  "cost": {
180
180
  "$ref": "#/definitions/Cost/OneTime/T"
@@ -202,7 +202,66 @@
202
202
  "const": "Sustained"
203
203
  },
204
204
  "casting_time": {
205
- "$ref": "#/definitions/CastingTime/T"
205
+ "$ref": "#/definitions/CastingTime/Fast"
206
+ },
207
+ "cost": {
208
+ "$ref": "#/definitions/Cost/Sustained/T"
209
+ },
210
+ "range": {
211
+ "$ref": "#/definitions/Range/T"
212
+ },
213
+ "duration": {
214
+ "$ref": "#/definitions/Duration/Sustained/T"
215
+ }
216
+ },
217
+ "required": [
218
+ "tag",
219
+ "casting_time",
220
+ "cost",
221
+ "range"
222
+ ],
223
+ "additionalProperties": false
224
+ }
225
+ ]
226
+ },
227
+ "SlowPerformanceParameters": {
228
+ "oneOf": [
229
+ {
230
+ "type": "object",
231
+ "properties": {
232
+ "tag": {
233
+ "const": "OneTime"
234
+ },
235
+ "casting_time": {
236
+ "$ref": "#/definitions/CastingTime/Slow"
237
+ },
238
+ "cost": {
239
+ "$ref": "#/definitions/Cost/OneTime/T"
240
+ },
241
+ "range": {
242
+ "$ref": "#/definitions/Range/T"
243
+ },
244
+ "duration": {
245
+ "$ref": "#/definitions/Duration/OneTime/T"
246
+ }
247
+ },
248
+ "required": [
249
+ "tag",
250
+ "casting_time",
251
+ "cost",
252
+ "range",
253
+ "duration"
254
+ ],
255
+ "additionalProperties": false
256
+ },
257
+ {
258
+ "type": "object",
259
+ "properties": {
260
+ "tag": {
261
+ "const": "Sustained"
262
+ },
263
+ "casting_time": {
264
+ "$ref": "#/definitions/CastingTime/Slow"
206
265
  },
207
266
  "cost": {
208
267
  "$ref": "#/definitions/Cost/Sustained/T"
@@ -225,36 +284,138 @@
225
284
  ]
226
285
  },
227
286
  "CastingTime": {
228
- "T": {
287
+ "FastSkillCastingTime": {
288
+ "type": "object",
289
+ "properties": {
290
+ "tag": {
291
+ "const": "NonModifiable"
292
+ },
293
+ "value": {
294
+ "description": "The casting time value in actions.",
295
+ "type": "integer",
296
+ "minimum": 1
297
+ }
298
+ },
299
+ "required": [
300
+ "tag",
301
+ "value"
302
+ ],
303
+ "additionalProperties": false
304
+ },
305
+ "SlowSkillCastingTime": {
306
+ "type": "object",
307
+ "properties": {
308
+ "tag": {
309
+ "const": "NonModifiable"
310
+ },
311
+ "value": {
312
+ "description": "The (unitless) casting time value.",
313
+ "type": "integer",
314
+ "minimum": 1
315
+ },
316
+ "unit": {
317
+ "$ref": "./SkillModificationLevel.schema.json#/definitions/SlowSkillCastingTimeUnit"
318
+ }
319
+ },
320
+ "required": [
321
+ "tag",
322
+ "value",
323
+ "unit"
324
+ ],
325
+ "additionalProperties": false
326
+ },
327
+ "Fast": {
229
328
  "type": "object",
230
329
  "properties": {
231
330
  "default": {
232
331
  "description": "The default casting time definition.",
332
+ "oneOf": [
333
+ {
334
+ "type": "object",
335
+ "properties": {
336
+ "tag": {
337
+ "const": "Modifiable"
338
+ },
339
+ "initial_modification_level": {
340
+ "description": "The initial skill modification identifier/level.",
341
+ "type": "integer",
342
+ "maximum": 6,
343
+ "minimum": 1
344
+ }
345
+ },
346
+ "required": [
347
+ "tag",
348
+ "initial_modification_level"
349
+ ],
350
+ "additionalProperties": false
351
+ },
352
+ {
353
+ "$ref": "#/definitions/CastingTime/FastSkillCastingTime"
354
+ }
355
+ ]
356
+ },
357
+ "during_lovemaking": {
358
+ "description": "The casting time during lovemaking. In Aventurian Intimacy, you may only\nuse an activatable skill during lovemaking if it has a casting time used\nduring lovemaking.",
233
359
  "type": "object",
234
360
  "properties": {
235
- "initial_modification_level": {
236
- "description": "The initial skill modification identifier/level.",
361
+ "value": {
362
+ "description": "The (unitless) casting time value.",
237
363
  "type": "integer",
238
- "maximum": 6,
239
364
  "minimum": 1
240
365
  },
241
- "is_modifiable": {
242
- "description": "Is the casting time modifiable?",
243
- "type": "boolean"
366
+ "unit": {
367
+ "description": "The unit of the `value`.",
368
+ "$ref": "#/definitions/CastingTime/CastingTimeDuringLovemakingUnit"
244
369
  }
245
370
  },
246
371
  "required": [
247
- "initial_modification_level",
248
- "is_modifiable"
372
+ "value",
373
+ "unit"
249
374
  ],
250
375
  "additionalProperties": false
376
+ }
377
+ },
378
+ "required": [
379
+ "default"
380
+ ],
381
+ "additionalProperties": false
382
+ },
383
+ "Slow": {
384
+ "type": "object",
385
+ "properties": {
386
+ "default": {
387
+ "description": "The default casting time definition.",
388
+ "oneOf": [
389
+ {
390
+ "type": "object",
391
+ "properties": {
392
+ "tag": {
393
+ "const": "Modifiable"
394
+ },
395
+ "initial_modification_level": {
396
+ "description": "The initial skill modification identifier/level.",
397
+ "type": "integer",
398
+ "maximum": 6,
399
+ "minimum": 1
400
+ }
401
+ },
402
+ "required": [
403
+ "tag",
404
+ "initial_modification_level"
405
+ ],
406
+ "additionalProperties": false
407
+ },
408
+ {
409
+ "$ref": "#/definitions/CastingTime/SlowSkillCastingTime"
410
+ }
411
+ ]
251
412
  },
252
413
  "during_lovemaking": {
253
414
  "description": "The casting time during lovemaking. In Aventurian Intimacy, you may only\nuse an activatable skill during lovemaking if it has a casting time used\nduring lovemaking.",
254
415
  "type": "object",
255
416
  "properties": {
256
417
  "value": {
257
- "description": "The (unitless) duration value.",
418
+ "description": "The (unitless) casting time value.",
258
419
  "type": "integer",
259
420
  "minimum": 1
260
421
  },
@@ -280,12 +441,6 @@
280
441
  "SeductionActions",
281
442
  "Rounds"
282
443
  ]
283
- },
284
- "SlowSkillCastingTimeUnit": {
285
- "enum": [
286
- "Minutes",
287
- "Hours"
288
- ]
289
444
  }
290
445
  },
291
446
  "Cost": {
@@ -561,17 +716,32 @@
561
716
  },
562
717
  "minItems": 2
563
718
  },
564
- "list_prepend": {
565
- "description": "Place a string between the `for` and the grouped map option labels.",
566
- "type": "string"
567
- },
568
- "list_append": {
569
- "description": "Place a string after the grouped map option labels.",
570
- "type": "string"
571
- },
572
- "replacement": {
573
- "description": "If the string from the book cannot be generated using the default\ngeneration technique, use this string. All options still need to be\ninserted propertly, since it may be used by in-game tools to provide a\nselection to players.",
574
- "type": "string"
719
+ "translations": {
720
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
721
+ "type": "object",
722
+ "patternProperties": {
723
+ "^[a-z]{2}-[A-Z]{2}$": {
724
+ "type": "object",
725
+ "properties": {
726
+ "list_prepend": {
727
+ "description": "Place a string between the `for` and the grouped map option labels.",
728
+ "type": "string"
729
+ },
730
+ "list_append": {
731
+ "description": "Place a string after the grouped map option labels.",
732
+ "type": "string"
733
+ },
734
+ "replacement": {
735
+ "description": "If the string from the book cannot be generated using the default\ngeneration technique, use this string. All options still need to be\ninserted propertly, since it may be used by in-game tools to provide a\nselection to players.",
736
+ "type": "string"
737
+ }
738
+ },
739
+ "required": [],
740
+ "additionalProperties": false
741
+ }
742
+ },
743
+ "minProperties": 1,
744
+ "additionalProperties": false
575
745
  }
576
746
  },
577
747
  "required": [
@@ -592,20 +762,36 @@
592
762
  "type": "integer",
593
763
  "minimum": 0
594
764
  },
595
- "label": {
596
- "description": "The description of the option for cost string generation.",
597
- "type": "string",
598
- "minLength": 1
599
- },
600
- "label_standalone": {
601
- "description": "The description of the option if used standalone. Only used if\ndifferent from `label`.",
602
- "type": "string",
603
- "minLength": 1
765
+ "translations": {
766
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
767
+ "type": "object",
768
+ "patternProperties": {
769
+ "^[a-z]{2}-[A-Z]{2}$": {
770
+ "type": "object",
771
+ "properties": {
772
+ "label": {
773
+ "description": "The description of the option for cost string generation.",
774
+ "type": "string",
775
+ "minLength": 1
776
+ },
777
+ "label_standalone": {
778
+ "description": "The description of the option if used standalone. Only used if\ndifferent from `label`.",
779
+ "type": "string",
780
+ "minLength": 1
781
+ }
782
+ },
783
+ "required": [
784
+ "label"
785
+ ],
786
+ "additionalProperties": false
787
+ }
788
+ },
789
+ "minProperties": 1,
790
+ "additionalProperties": false
604
791
  }
605
792
  },
606
793
  "required": [
607
- "value",
608
- "label"
794
+ "value"
609
795
  ],
610
796
  "additionalProperties": false
611
797
  }
@@ -0,0 +1,82 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema",
3
+ "$id": "_Enhancements.schema.json",
4
+ "definitions": {
5
+ "Enhancements": {
6
+ "description": "A list of enhancements.",
7
+ "type": "array",
8
+ "items": {
9
+ "$ref": "#/definitions/Enhancement"
10
+ },
11
+ "minItems": 3,
12
+ "maxItems": 5
13
+ },
14
+ "Enhancement": {
15
+ "title": "Enhancement",
16
+ "type": "object",
17
+ "properties": {
18
+ "id": {
19
+ "description": "The enhancement's identifier. An unique, increasing integer.",
20
+ "type": "integer",
21
+ "minimum": 1
22
+ },
23
+ "skill_rating": {
24
+ "description": "The skill rating required to learn this enhancement.",
25
+ "type": "integer",
26
+ "maximum": 16,
27
+ "minimum": 8
28
+ },
29
+ "adventure_points_modifier": {
30
+ "description": "The value to multiply with the numeric representation of the associated\nskill's improvement cost to form the final AP cost of this enhancement.",
31
+ "type": "integer",
32
+ "minimum": 1
33
+ },
34
+ "prerequisites": {
35
+ "$ref": "./_Prerequisite.schema.json#/definitions/GroupCollection/Enhancement"
36
+ },
37
+ "src": {
38
+ "description": "Only defined if different than the associated skill.",
39
+ "$ref": "./source/_PublicationRef.schema.json#/definitions/PublicationRefs"
40
+ },
41
+ "translations": {
42
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
43
+ "type": "object",
44
+ "patternProperties": {
45
+ "^[a-z]{2}-[A-Z]{2}$": {
46
+ "type": "object",
47
+ "properties": {
48
+ "name": {
49
+ "description": "The name of the enhancement.",
50
+ "type": "string",
51
+ "minLength": 1
52
+ },
53
+ "effect": {
54
+ "description": "The effect description.",
55
+ "type": "string",
56
+ "minLength": 1
57
+ },
58
+ "errata": {
59
+ "$ref": "./source/_Erratum.schema.json#/definitions/Errata"
60
+ }
61
+ },
62
+ "required": [
63
+ "name",
64
+ "effect"
65
+ ],
66
+ "additionalProperties": false
67
+ }
68
+ },
69
+ "minProperties": 1,
70
+ "additionalProperties": false
71
+ }
72
+ },
73
+ "required": [
74
+ "id",
75
+ "skill_rating",
76
+ "adventure_points_modifier",
77
+ "translations"
78
+ ],
79
+ "additionalProperties": false
80
+ }
81
+ }
82
+ }
@@ -0,0 +1,185 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema",
3
+ "$id": "_Identifier.schema.json",
4
+ "definitions": {
5
+ "Identifier": {
6
+ "Tagged": {
7
+ "Attribute": {
8
+ "type": "object",
9
+ "properties": {
10
+ "tag": {
11
+ "const": "Attribute"
12
+ },
13
+ "value": {
14
+ "description": "The attribute's numeric identifier.",
15
+ "type": "integer",
16
+ "maximum": 8,
17
+ "minimum": 1
18
+ }
19
+ },
20
+ "required": [
21
+ "tag",
22
+ "value"
23
+ ],
24
+ "additionalProperties": false
25
+ },
26
+ "Skill": {
27
+ "type": "object",
28
+ "properties": {
29
+ "tag": {
30
+ "const": "Skill"
31
+ },
32
+ "value": {
33
+ "description": "The skill's numeric identifier.",
34
+ "type": "integer",
35
+ "minimum": 1
36
+ }
37
+ },
38
+ "required": [
39
+ "tag",
40
+ "value"
41
+ ],
42
+ "additionalProperties": false
43
+ },
44
+ "CloseCombatTechnique": {
45
+ "type": "object",
46
+ "properties": {
47
+ "tag": {
48
+ "const": "CloseCombatTechnique"
49
+ },
50
+ "value": {
51
+ "description": "The close combat technique's numeric identifier.",
52
+ "type": "integer",
53
+ "minimum": 1
54
+ }
55
+ },
56
+ "required": [
57
+ "tag",
58
+ "value"
59
+ ],
60
+ "additionalProperties": false
61
+ },
62
+ "RangedCombatTechnique": {
63
+ "type": "object",
64
+ "properties": {
65
+ "tag": {
66
+ "const": "RangedCombatTechnique"
67
+ },
68
+ "value": {
69
+ "description": "The ranged combat technique's numeric identifier.",
70
+ "type": "integer",
71
+ "minimum": 1
72
+ }
73
+ },
74
+ "required": [
75
+ "tag",
76
+ "value"
77
+ ],
78
+ "additionalProperties": false
79
+ },
80
+ "Spell": {
81
+ "type": "object",
82
+ "properties": {
83
+ "tag": {
84
+ "const": "Spell"
85
+ },
86
+ "value": {
87
+ "description": "The spell's numeric identifier.",
88
+ "type": "integer",
89
+ "minimum": 1
90
+ }
91
+ },
92
+ "required": [
93
+ "tag",
94
+ "value"
95
+ ],
96
+ "additionalProperties": false
97
+ },
98
+ "Ritual": {
99
+ "type": "object",
100
+ "properties": {
101
+ "tag": {
102
+ "const": "Ritual"
103
+ },
104
+ "value": {
105
+ "description": "The ritual's numeric identifier.",
106
+ "type": "integer",
107
+ "minimum": 1
108
+ }
109
+ },
110
+ "required": [
111
+ "tag",
112
+ "value"
113
+ ],
114
+ "additionalProperties": false
115
+ },
116
+ "LiturgicalChant": {
117
+ "type": "object",
118
+ "properties": {
119
+ "tag": {
120
+ "const": "LiturgicalChant"
121
+ },
122
+ "value": {
123
+ "description": "The liturgical chant's numeric identifier.",
124
+ "type": "integer",
125
+ "minimum": 1
126
+ }
127
+ },
128
+ "required": [
129
+ "tag",
130
+ "value"
131
+ ],
132
+ "additionalProperties": false
133
+ },
134
+ "Ceremony": {
135
+ "type": "object",
136
+ "properties": {
137
+ "tag": {
138
+ "const": "Ceremony"
139
+ },
140
+ "value": {
141
+ "description": "The ceremony's numeric identifier.",
142
+ "type": "integer",
143
+ "minimum": 1
144
+ }
145
+ },
146
+ "required": [
147
+ "tag",
148
+ "value"
149
+ ],
150
+ "additionalProperties": false
151
+ }
152
+ },
153
+ "Group": {
154
+ "Rated": {
155
+ "oneOf": [
156
+ {
157
+ "$ref": "#/definitions/Identifier/Tagged/Attribute"
158
+ },
159
+ {
160
+ "$ref": "#/definitions/Identifier/Tagged/Skill"
161
+ },
162
+ {
163
+ "$ref": "#/definitions/Identifier/Tagged/CloseCombatTechnique"
164
+ },
165
+ {
166
+ "$ref": "#/definitions/Identifier/Tagged/RangedCombatTechnique"
167
+ },
168
+ {
169
+ "$ref": "#/definitions/Identifier/Tagged/Spell"
170
+ },
171
+ {
172
+ "$ref": "#/definitions/Identifier/Tagged/Ritual"
173
+ },
174
+ {
175
+ "$ref": "#/definitions/Identifier/Tagged/LiturgicalChant"
176
+ },
177
+ {
178
+ "$ref": "#/definitions/Identifier/Tagged/Ceremony"
179
+ }
180
+ ]
181
+ }
182
+ }
183
+ }
184
+ }
185
+ }