optolith-database-schema 0.0.1

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 (169) hide show
  1. package/AUTHORS +1 -0
  2. package/CHANGELOG.md +27 -0
  3. package/CODEOWNERS +1 -0
  4. package/LICENSE +378 -0
  5. package/README.md +17 -0
  6. package/lib/main.d.ts +1 -0
  7. package/lib/main.js +1 -0
  8. package/lib/types/ArcaneBardTradition.d.ts +32 -0
  9. package/lib/types/ArcaneBardTradition.js +4 -0
  10. package/lib/types/ArcaneDancerTradition.d.ts +32 -0
  11. package/lib/types/ArcaneDancerTradition.js +4 -0
  12. package/lib/types/Aspect.d.ts +36 -0
  13. package/lib/types/Aspect.js +4 -0
  14. package/lib/types/Attribute.d.ts +42 -0
  15. package/lib/types/Attribute.js +5 -0
  16. package/lib/types/CombatTechnique_Close.d.ts +80 -0
  17. package/lib/types/CombatTechnique_Close.js +4 -0
  18. package/lib/types/CombatTechnique_Ranged.d.ts +62 -0
  19. package/lib/types/CombatTechnique_Ranged.js +4 -0
  20. package/lib/types/Condition.d.ts +51 -0
  21. package/lib/types/Condition.js +4 -0
  22. package/lib/types/Culture.d.ts +494 -0
  23. package/lib/types/Culture.js +4 -0
  24. package/lib/types/DerivedCharacteristic.d.ts +65 -0
  25. package/lib/types/DerivedCharacteristic.js +4 -0
  26. package/lib/types/Element.d.ts +30 -0
  27. package/lib/types/Element.js +4 -0
  28. package/lib/types/ExperienceLevel.d.ts +68 -0
  29. package/lib/types/ExperienceLevel.js +4 -0
  30. package/lib/types/EyeColor.d.ts +30 -0
  31. package/lib/types/EyeColor.js +4 -0
  32. package/lib/types/HairColor.d.ts +30 -0
  33. package/lib/types/HairColor.js +4 -0
  34. package/lib/types/Lessons_Curriculum.d.ts +297 -0
  35. package/lib/types/Lessons_Curriculum.js +4 -0
  36. package/lib/types/Lessons_Guideline.d.ts +36 -0
  37. package/lib/types/Lessons_Guideline.js +4 -0
  38. package/lib/types/Locale.d.ts +38 -0
  39. package/lib/types/Locale.js +4 -0
  40. package/lib/types/MetaCondition.d.ts +54 -0
  41. package/lib/types/MetaCondition.js +4 -0
  42. package/lib/types/Property.d.ts +36 -0
  43. package/lib/types/Property.js +4 -0
  44. package/lib/types/Race.d.ts +524 -0
  45. package/lib/types/Race.js +13 -0
  46. package/lib/types/Region.d.ts +30 -0
  47. package/lib/types/Region.js +4 -0
  48. package/lib/types/Service.d.ts +40 -0
  49. package/lib/types/Service.js +4 -0
  50. package/lib/types/SexPractice.d.ts +53 -0
  51. package/lib/types/SexPractice.js +4 -0
  52. package/lib/types/Skill.d.ts +169 -0
  53. package/lib/types/Skill.js +4 -0
  54. package/lib/types/SkillGroup.d.ts +40 -0
  55. package/lib/types/SkillGroup.js +4 -0
  56. package/lib/types/SkillModificationIncrement.d.ts +82 -0
  57. package/lib/types/SkillModificationIncrement.js +4 -0
  58. package/lib/types/SocialStatus.d.ts +30 -0
  59. package/lib/types/SocialStatus.js +4 -0
  60. package/lib/types/State.d.ts +40 -0
  61. package/lib/types/State.js +4 -0
  62. package/lib/types/TargetCategory.d.ts +36 -0
  63. package/lib/types/TargetCategory.js +4 -0
  64. package/lib/types/_ActivatableSkill.d.ts +919 -0
  65. package/lib/types/_ActivatableSkill.js +38 -0
  66. package/lib/types/_CommonnessRatedAdvantageDisadvantage.d.ts +12 -0
  67. package/lib/types/_CommonnessRatedAdvantageDisadvantage.js +1 -0
  68. package/lib/types/_ImprovementCost.d.ts +9 -0
  69. package/lib/types/_ImprovementCost.js +10 -0
  70. package/lib/types/_Prerequisite.d.ts +274 -0
  71. package/lib/types/_Prerequisite.js +4 -0
  72. package/lib/types/_Sex.d.ts +11 -0
  73. package/lib/types/_Sex.js +4 -0
  74. package/lib/types/_SkillCheck.d.ts +28 -0
  75. package/lib/types/_SkillCheck.js +1 -0
  76. package/lib/types/magicalActions/AnimistPower.d.ts +227 -0
  77. package/lib/types/magicalActions/AnimistPower.js +4 -0
  78. package/lib/types/magicalActions/AnimistPower_Tribe.d.ts +30 -0
  79. package/lib/types/magicalActions/AnimistPower_Tribe.js +4 -0
  80. package/lib/types/magicalActions/Curse.d.ts +228 -0
  81. package/lib/types/magicalActions/Curse.js +4 -0
  82. package/lib/types/magicalActions/DominationRitual.d.ts +181 -0
  83. package/lib/types/magicalActions/DominationRitual.js +4 -0
  84. package/lib/types/magicalActions/ElvenMagicalSong.d.ts +149 -0
  85. package/lib/types/magicalActions/ElvenMagicalSong.js +4 -0
  86. package/lib/types/magicalActions/GeodeRitual.d.ts +162 -0
  87. package/lib/types/magicalActions/GeodeRitual.js +4 -0
  88. package/lib/types/magicalActions/JesterTrick.d.ts +167 -0
  89. package/lib/types/magicalActions/JesterTrick.js +4 -0
  90. package/lib/types/magicalActions/MagicalDance.d.ts +184 -0
  91. package/lib/types/magicalActions/MagicalDance.js +4 -0
  92. package/lib/types/magicalActions/MagicalMelody.d.ts +132 -0
  93. package/lib/types/magicalActions/MagicalMelody.js +4 -0
  94. package/lib/types/magicalActions/MagicalRune.d.ts +241 -0
  95. package/lib/types/magicalActions/MagicalRune.js +4 -0
  96. package/lib/types/magicalActions/ZibiljaRitual.d.ts +101 -0
  97. package/lib/types/magicalActions/ZibiljaRitual.js +4 -0
  98. package/lib/types/magicalActions/_MusicTradition.d.ts +28 -0
  99. package/lib/types/magicalActions/_MusicTradition.js +1 -0
  100. package/lib/types/magicalActions/_SkillReference.d.ts +13 -0
  101. package/lib/types/magicalActions/_SkillReference.js +5 -0
  102. package/lib/types/rule/FocusRule.d.ts +53 -0
  103. package/lib/types/rule/FocusRule.js +4 -0
  104. package/lib/types/rule/FocusRule_Subject.d.ts +31 -0
  105. package/lib/types/rule/FocusRule_Subject.js +4 -0
  106. package/lib/types/rule/OptionalRule.d.ts +65 -0
  107. package/lib/types/rule/OptionalRule.js +4 -0
  108. package/lib/types/source/Publication.d.ts +4 -0
  109. package/lib/types/source/Publication.js +4 -0
  110. package/lib/types/source/_Erratum.d.ts +25 -0
  111. package/lib/types/source/_Erratum.js +4 -0
  112. package/lib/types/source/_PublicationRef.d.ts +146 -0
  113. package/lib/types/source/_PublicationRef.js +4 -0
  114. package/lib/validation/integrity.d.ts +16 -0
  115. package/lib/validation/integrity.js +3 -0
  116. package/package.json +37 -0
  117. package/schema/ArcaneBardTradition.schema.json +49 -0
  118. package/schema/ArcaneDancerTradition.schema.json +49 -0
  119. package/schema/Aspect.schema.json +50 -0
  120. package/schema/Attribute.schema.json +57 -0
  121. package/schema/CombatTechnique_Close.schema.json +127 -0
  122. package/schema/CombatTechnique_Ranged.schema.json +83 -0
  123. package/schema/Condition.schema.json +84 -0
  124. package/schema/Culture.schema.json +858 -0
  125. package/schema/DerivedCharacteristic.schema.json +90 -0
  126. package/schema/Element.schema.json +45 -0
  127. package/schema/ExperienceLevel.schema.json +84 -0
  128. package/schema/EyeColor.schema.json +45 -0
  129. package/schema/HairColor.schema.json +45 -0
  130. package/schema/Lessons_Curriculum.schema.json +500 -0
  131. package/schema/Lessons_Guideline.schema.json +51 -0
  132. package/schema/Locale.schema.json +45 -0
  133. package/schema/MetaCondition.schema.json +85 -0
  134. package/schema/Property.schema.json +49 -0
  135. package/schema/Race.schema.json +724 -0
  136. package/schema/Region.schema.json +45 -0
  137. package/schema/Service.schema.json +58 -0
  138. package/schema/SexPractice.schema.json +72 -0
  139. package/schema/Skill.schema.json +278 -0
  140. package/schema/SkillGroup.schema.json +56 -0
  141. package/schema/SkillModificationIncrement.schema.json +98 -0
  142. package/schema/SocialStatus.schema.json +45 -0
  143. package/schema/State.schema.json +58 -0
  144. package/schema/TargetCategory.schema.json +51 -0
  145. package/schema/_ActivatableSkill.schema.json +1534 -0
  146. package/schema/_CommonnessRatedAdvantageDisadvantage.schema.json +22 -0
  147. package/schema/_ImprovementCost.schema.json +15 -0
  148. package/schema/_Prerequisite.schema.json +519 -0
  149. package/schema/_Sex.schema.json +36 -0
  150. package/schema/_SkillCheck.schema.json +94 -0
  151. package/schema/magicalActions/AnimistPower.schema.json +411 -0
  152. package/schema/magicalActions/AnimistPower_Tribe.schema.json +45 -0
  153. package/schema/magicalActions/Curse.schema.json +378 -0
  154. package/schema/magicalActions/DominationRitual.schema.json +288 -0
  155. package/schema/magicalActions/ElvenMagicalSong.schema.json +194 -0
  156. package/schema/magicalActions/GeodeRitual.schema.json +303 -0
  157. package/schema/magicalActions/JesterTrick.schema.json +292 -0
  158. package/schema/magicalActions/MagicalDance.schema.json +328 -0
  159. package/schema/magicalActions/MagicalMelody.schema.json +254 -0
  160. package/schema/magicalActions/MagicalRune.schema.json +426 -0
  161. package/schema/magicalActions/ZibiljaRitual.schema.json +159 -0
  162. package/schema/magicalActions/_MusicTradition.schema.json +44 -0
  163. package/schema/magicalActions/_SkillReference.schema.json +26 -0
  164. package/schema/rule/FocusRule.schema.json +71 -0
  165. package/schema/rule/FocusRule_Subject.schema.json +46 -0
  166. package/schema/rule/OptionalRule.schema.json +96 -0
  167. package/schema/source/Publication.schema.json +165 -0
  168. package/schema/source/_Erratum.schema.json +37 -0
  169. package/schema/source/_PublicationRef.schema.json +242 -0
@@ -0,0 +1,411 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema",
3
+ "$id": "magicalActions/AnimistPower.schema.json",
4
+ "$ref": "#/definitions/AnimistPower",
5
+ "definitions": {
6
+ "AnimistPower": {
7
+ "title": "Animist Power",
8
+ "type": "object",
9
+ "properties": {
10
+ "id": {
11
+ "description": "The animist power's identifier. An unique, increasing integer.",
12
+ "type": "integer",
13
+ "minimum": 1
14
+ },
15
+ "check": {
16
+ "description": "Lists the linked three attributes used to make a skill check.",
17
+ "$ref": "../_SkillCheck.schema.json#/definitions/SkillCheck"
18
+ },
19
+ "parameters": {
20
+ "description": "Measurable parameters of a animist power.",
21
+ "$ref": "#/definitions/PerformanceParameters"
22
+ },
23
+ "property_id": {
24
+ "description": "The property's identifier.",
25
+ "type": "integer",
26
+ "minimum": 1
27
+ },
28
+ "tribe_tradition": {
29
+ "description": "The tribe traditions the animist power is available to. It may be available\nto all or only specific tribes.",
30
+ "oneOf": [
31
+ {
32
+ "type": "object",
33
+ "properties": {
34
+ "tag": {
35
+ "const": "General"
36
+ }
37
+ },
38
+ "required": [
39
+ "tag"
40
+ ],
41
+ "additionalProperties": false
42
+ },
43
+ {
44
+ "type": "object",
45
+ "properties": {
46
+ "tag": {
47
+ "const": "Specific"
48
+ },
49
+ "list": {
50
+ "description": "The specific tribe traditions this animist power is available to.",
51
+ "type": "array",
52
+ "items": {
53
+ "type": "object",
54
+ "properties": {
55
+ "id": {
56
+ "description": "The tribe's identifier.",
57
+ "type": "integer",
58
+ "maximum": 6,
59
+ "minimum": 1
60
+ }
61
+ },
62
+ "required": [
63
+ "id"
64
+ ],
65
+ "additionalProperties": false
66
+ },
67
+ "minItems": 1,
68
+ "uniqueItems": true
69
+ }
70
+ },
71
+ "required": [
72
+ "tag",
73
+ "list"
74
+ ],
75
+ "additionalProperties": false
76
+ }
77
+ ]
78
+ },
79
+ "improvement_cost": {
80
+ "description": "States which column is used to improve the skill. It is a fixed value or\ndepends on the primary patron.",
81
+ "oneOf": [
82
+ {
83
+ "type": "object",
84
+ "properties": {
85
+ "tag": {
86
+ "const": "Flat"
87
+ },
88
+ "value": {
89
+ "$ref": "../_ImprovementCost.schema.json#/definitions/ImprovementCost"
90
+ }
91
+ },
92
+ "required": [
93
+ "tag",
94
+ "value"
95
+ ],
96
+ "additionalProperties": false
97
+ },
98
+ {
99
+ "type": "object",
100
+ "properties": {
101
+ "tag": {
102
+ "const": "ByPrimaryPatron"
103
+ }
104
+ },
105
+ "required": [
106
+ "tag"
107
+ ],
108
+ "additionalProperties": false
109
+ }
110
+ ]
111
+ },
112
+ "levels": {
113
+ "description": "The animist power can have multiple levels. Each level is skilled\nseparately. A previous level must be on at least 10 so that the next higher\nlevel can be activated and skilled. A higher level cannot be skilled higher\nthan a lower level. Each level also adds an effect text to the text of the\nfirst level.",
114
+ "type": "array",
115
+ "items": {
116
+ "type": "object",
117
+ "properties": {
118
+ "level": {
119
+ "description": "The level number.",
120
+ "type": "integer",
121
+ "minimum": 2
122
+ },
123
+ "src": {
124
+ "description": "The source references, if different than the references for level 1.",
125
+ "$ref": "../source/_PublicationRef.schema.json#/definitions/PublicationRefs"
126
+ },
127
+ "translations": {
128
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
129
+ "type": "object",
130
+ "patternProperties": {
131
+ "^[a-z]{2}-[A-Z]{2}$": {
132
+ "type": "object",
133
+ "properties": {
134
+ "effect": {
135
+ "description": "An additional effect description for this level.",
136
+ "type": "string",
137
+ "minLength": 1
138
+ }
139
+ },
140
+ "required": [
141
+ "effect"
142
+ ],
143
+ "additionalProperties": false
144
+ }
145
+ },
146
+ "minProperties": 1,
147
+ "additionalProperties": false
148
+ }
149
+ },
150
+ "required": [
151
+ "level",
152
+ "translations"
153
+ ],
154
+ "additionalProperties": false
155
+ },
156
+ "minItems": 1
157
+ },
158
+ "src": {
159
+ "$ref": "../source/_PublicationRef.schema.json#/definitions/PublicationRefs"
160
+ },
161
+ "translations": {
162
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
163
+ "type": "object",
164
+ "patternProperties": {
165
+ "^[a-z]{2}-[A-Z]{2}$": {
166
+ "type": "object",
167
+ "properties": {
168
+ "name": {
169
+ "description": "The name of the animist power.",
170
+ "type": "string",
171
+ "minLength": 1
172
+ },
173
+ "name_in_library": {
174
+ "description": "The full name of the entry as stated in the sources. Only use when\n`name` needs to be different from full name for text generation\npurposes.",
175
+ "type": "string",
176
+ "minLength": 1
177
+ },
178
+ "effect": {
179
+ "description": "The effect description may be either a plain text or a text that is\ndivided by a list of effects for each quality level. It may also be a\nlist for each two quality levels.",
180
+ "$ref": "../_ActivatableSkill.schema.json#/definitions/Effect/T"
181
+ },
182
+ "cost": {
183
+ "type": "object",
184
+ "properties": {
185
+ "full": {
186
+ "type": "string"
187
+ },
188
+ "abbr": {
189
+ "type": "string"
190
+ }
191
+ },
192
+ "required": [
193
+ "full",
194
+ "abbr"
195
+ ],
196
+ "additionalProperties": false
197
+ },
198
+ "duration": {
199
+ "type": "object",
200
+ "properties": {
201
+ "full": {
202
+ "type": "string"
203
+ },
204
+ "abbr": {
205
+ "type": "string"
206
+ }
207
+ },
208
+ "required": [
209
+ "full",
210
+ "abbr"
211
+ ],
212
+ "additionalProperties": false
213
+ },
214
+ "errata": {
215
+ "$ref": "../source/_Erratum.schema.json#/definitions/Errata"
216
+ }
217
+ },
218
+ "required": [
219
+ "name",
220
+ "effect",
221
+ "cost",
222
+ "duration"
223
+ ],
224
+ "additionalProperties": false
225
+ }
226
+ },
227
+ "minProperties": 1,
228
+ "additionalProperties": false
229
+ }
230
+ },
231
+ "required": [
232
+ "id",
233
+ "check",
234
+ "parameters",
235
+ "property_id",
236
+ "tribe_tradition",
237
+ "improvement_cost",
238
+ "src",
239
+ "translations"
240
+ ],
241
+ "additionalProperties": false
242
+ },
243
+ "PerformanceParameters": {
244
+ "description": "Measurable parameters of a animist power.",
245
+ "oneOf": [
246
+ {
247
+ "type": "object",
248
+ "properties": {
249
+ "tag": {
250
+ "const": "OneTime"
251
+ },
252
+ "cost": {
253
+ "description": "The AE cost value, either a flat value or defined dynamically by the\nprimary patron.",
254
+ "oneOf": [
255
+ {
256
+ "type": "object",
257
+ "properties": {
258
+ "tag": {
259
+ "const": "Fixed"
260
+ },
261
+ "value": {
262
+ "description": "The AE cost value.",
263
+ "type": "integer",
264
+ "minimum": 1
265
+ },
266
+ "interval": {
267
+ "description": "If defined, half of the AE cost `value` has to be paid each\ninterval.",
268
+ "$ref": "../_ActivatableSkill.schema.json#/definitions/Duration/UnitValue"
269
+ }
270
+ },
271
+ "required": [
272
+ "tag",
273
+ "value"
274
+ ],
275
+ "additionalProperties": false
276
+ },
277
+ {
278
+ "type": "object",
279
+ "properties": {
280
+ "tag": {
281
+ "const": "ByPrimaryPatron"
282
+ },
283
+ "interval": {
284
+ "description": "If defined, half of the AE cost `value` has to be paid each\ninterval.",
285
+ "$ref": "../_ActivatableSkill.schema.json#/definitions/Duration/UnitValue"
286
+ }
287
+ },
288
+ "required": [
289
+ "tag"
290
+ ],
291
+ "additionalProperties": false
292
+ }
293
+ ]
294
+ },
295
+ "duration": {
296
+ "description": "The duration.",
297
+ "oneOf": [
298
+ {
299
+ "type": "object",
300
+ "properties": {
301
+ "tag": {
302
+ "const": "Immediate"
303
+ }
304
+ },
305
+ "required": [
306
+ "tag"
307
+ ],
308
+ "additionalProperties": false
309
+ },
310
+ {
311
+ "type": "object",
312
+ "properties": {
313
+ "tag": {
314
+ "const": "Fixed"
315
+ },
316
+ "is_maximum": {
317
+ "description": "If the duration is the maximum duration, so it may end earlier.",
318
+ "type": "boolean"
319
+ },
320
+ "value": {
321
+ "description": "The (unitless) duration.",
322
+ "type": "integer",
323
+ "minimum": 2
324
+ },
325
+ "unit": {
326
+ "description": "The duration unit.",
327
+ "$ref": "../_ActivatableSkill.schema.json#/definitions/Duration/Unit"
328
+ }
329
+ },
330
+ "required": [
331
+ "tag",
332
+ "value",
333
+ "unit"
334
+ ],
335
+ "additionalProperties": false
336
+ },
337
+ {
338
+ "$ref": "../_ActivatableSkill.schema.json#/definitions/Duration/CheckResultBasedTaggedAnimistPower"
339
+ }
340
+ ]
341
+ }
342
+ },
343
+ "required": [
344
+ "tag",
345
+ "cost",
346
+ "duration"
347
+ ],
348
+ "additionalProperties": false
349
+ },
350
+ {
351
+ "type": "object",
352
+ "properties": {
353
+ "tag": {
354
+ "const": "Sustained"
355
+ },
356
+ "cost": {
357
+ "description": "The AE cost value, either a flat value or defined dynamically by the\nprimary patron.",
358
+ "oneOf": [
359
+ {
360
+ "type": "object",
361
+ "properties": {
362
+ "tag": {
363
+ "const": "Fixed"
364
+ },
365
+ "value": {
366
+ "description": "The AE cost value.",
367
+ "type": "integer",
368
+ "minimum": 1
369
+ },
370
+ "interval": {
371
+ "description": "Half of the AE cost `value` has to be paid each interval.",
372
+ "$ref": "../_ActivatableSkill.schema.json#/definitions/Duration/UnitValue"
373
+ }
374
+ },
375
+ "required": [
376
+ "tag",
377
+ "value",
378
+ "interval"
379
+ ],
380
+ "additionalProperties": false
381
+ },
382
+ {
383
+ "type": "object",
384
+ "properties": {
385
+ "tag": {
386
+ "const": "ByPrimaryPatron"
387
+ },
388
+ "interval": {
389
+ "description": "Half of the AE cost `value` has to be paid each interval.",
390
+ "$ref": "../_ActivatableSkill.schema.json#/definitions/Duration/UnitValue"
391
+ }
392
+ },
393
+ "required": [
394
+ "tag",
395
+ "interval"
396
+ ],
397
+ "additionalProperties": false
398
+ }
399
+ ]
400
+ }
401
+ },
402
+ "required": [
403
+ "tag",
404
+ "cost"
405
+ ],
406
+ "additionalProperties": false
407
+ }
408
+ ]
409
+ }
410
+ }
411
+ }
@@ -0,0 +1,45 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema",
3
+ "$id": "magicalActions/AnimistPower_Tribe.schema.json",
4
+ "$ref": "#/definitions/Tribe",
5
+ "definitions": {
6
+ "Tribe": {
7
+ "title": "Tribe",
8
+ "type": "object",
9
+ "properties": {
10
+ "id": {
11
+ "description": "The tribe's identifier. An unique, increasing integer.",
12
+ "type": "integer",
13
+ "minimum": 1
14
+ },
15
+ "translations": {
16
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
17
+ "type": "object",
18
+ "patternProperties": {
19
+ "^[a-z]{2}-[A-Z]{2}$": {
20
+ "type": "object",
21
+ "properties": {
22
+ "name": {
23
+ "description": "The tribe name.",
24
+ "type": "string",
25
+ "minLength": 1
26
+ }
27
+ },
28
+ "required": [
29
+ "name"
30
+ ],
31
+ "additionalProperties": false
32
+ }
33
+ },
34
+ "minProperties": 1,
35
+ "additionalProperties": false
36
+ }
37
+ },
38
+ "required": [
39
+ "id",
40
+ "translations"
41
+ ],
42
+ "additionalProperties": false
43
+ }
44
+ }
45
+ }