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,500 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema",
3
+ "$id": "Lessons_Curriculum.schema.json",
4
+ "$ref": "#/definitions/Curriculum",
5
+ "definitions": {
6
+ "Curriculum": {
7
+ "title": "Curriculum",
8
+ "description": "This is a curriculum of a specified academy, containing the guideline,\nelective and restricted spellworks as well as the lesson packages of that\nacademy.",
9
+ "type": "object",
10
+ "properties": {
11
+ "id": {
12
+ "description": "The curriculum's identifier. An unique, increasing integer.",
13
+ "type": "integer",
14
+ "minimum": 1
15
+ },
16
+ "guideline_id": {
17
+ "description": "The institution's guideline's identifier.",
18
+ "type": "integer",
19
+ "maximum": 6,
20
+ "minimum": 1
21
+ },
22
+ "elective_spellworks": {
23
+ "description": "The academy's elective spellworks package.",
24
+ "$ref": "#/definitions/ElectiveSpellworks"
25
+ },
26
+ "restricted_spellworks": {
27
+ "description": "The academy's restricted spellworks package.",
28
+ "$ref": "#/definitions/RestrictedSpellworks"
29
+ },
30
+ "lesson_packages": {
31
+ "description": "A list of available lesson packages.",
32
+ "$ref": "#/definitions/LessonPackages"
33
+ },
34
+ "src": {
35
+ "$ref": "./source/_PublicationRef.schema.json#/definitions/PublicationRefs"
36
+ },
37
+ "translations": {
38
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
39
+ "type": "object",
40
+ "patternProperties": {
41
+ "^[a-z]{2}-[A-Z]{2}$": {
42
+ "type": "object",
43
+ "properties": {
44
+ "name": {
45
+ "description": "The name of the academy.",
46
+ "type": "string",
47
+ "minLength": 1
48
+ },
49
+ "errata": {
50
+ "$ref": "./source/_Erratum.schema.json#/definitions/Errata"
51
+ }
52
+ },
53
+ "required": [
54
+ "name"
55
+ ],
56
+ "additionalProperties": false
57
+ }
58
+ },
59
+ "minProperties": 1,
60
+ "additionalProperties": false
61
+ }
62
+ },
63
+ "required": [
64
+ "id",
65
+ "guideline_id",
66
+ "lesson_packages",
67
+ "src",
68
+ "translations"
69
+ ],
70
+ "additionalProperties": false
71
+ },
72
+ "ElectiveSpellworks": {
73
+ "description": "The academy's elective spellworks package.",
74
+ "oneOf": [
75
+ {
76
+ "type": "object",
77
+ "properties": {
78
+ "tag": {
79
+ "const": "DefinedByGameMaster"
80
+ }
81
+ },
82
+ "required": [
83
+ "tag"
84
+ ],
85
+ "additionalProperties": false
86
+ },
87
+ {
88
+ "type": "object",
89
+ "properties": {
90
+ "tag": {
91
+ "const": "Explicit"
92
+ },
93
+ "list": {
94
+ "type": "array",
95
+ "items": {
96
+ "$ref": "#/definitions/ElectiveSpellwork"
97
+ },
98
+ "minItems": 1
99
+ }
100
+ },
101
+ "required": [
102
+ "tag",
103
+ "list"
104
+ ],
105
+ "additionalProperties": false
106
+ }
107
+ ]
108
+ },
109
+ "ElectiveSpellwork": {
110
+ "type": "object",
111
+ "properties": {
112
+ "id": {
113
+ "$ref": "#/definitions/SpellworkId"
114
+ },
115
+ "restriction": {
116
+ "description": "The elective spellwork may only take effect if a certain condition is met.\nThe condition may be related to professions or profession variants, but it\nis designed so that it can work without a specific profession, as multiple\nmay belong to an institute, but with referencing other entities instead.",
117
+ "$ref": "#/definitions/ElectiveSpellworkRestriction"
118
+ }
119
+ },
120
+ "required": [
121
+ "id"
122
+ ],
123
+ "additionalProperties": false
124
+ },
125
+ "ElectiveSpellworkRestriction": {
126
+ "description": "The elective spellwork may only take effect if a certain condition is met.\nThe condition may be related to professions or profession variants, but it is\ndesigned so that it can work without a specific profession, as multiple may\nbelong to an institute, but with referencing other entities instead.",
127
+ "type": "object",
128
+ "properties": {
129
+ "tag": {
130
+ "const": "Element"
131
+ },
132
+ "id": {
133
+ "description": "The element's identifier.",
134
+ "type": "integer",
135
+ "maximum": 6,
136
+ "minimum": 1
137
+ }
138
+ },
139
+ "required": [
140
+ "tag",
141
+ "id"
142
+ ],
143
+ "additionalProperties": false
144
+ },
145
+ "RestrictedSpellworks": {
146
+ "description": "The academy's restricted spellworks package.",
147
+ "type": "array",
148
+ "items": {
149
+ "$ref": "#/definitions/RestrictedSpellwork"
150
+ },
151
+ "minItems": 1
152
+ },
153
+ "RestrictedSpellwork": {
154
+ "description": "The academy's restricted spellworks package.",
155
+ "oneOf": [
156
+ {
157
+ "type": "object",
158
+ "properties": {
159
+ "tag": {
160
+ "const": "Property"
161
+ },
162
+ "id": {
163
+ "description": "The identifier of the property that spellworks are disallowed from.",
164
+ "type": "integer",
165
+ "minimum": 1
166
+ },
167
+ "exclude": {
168
+ "description": "Exclude specific spellworks from the restriction.",
169
+ "type": "array",
170
+ "items": {
171
+ "$ref": "#/definitions/SpellworkId"
172
+ },
173
+ "minItems": 1
174
+ },
175
+ "maximum": {
176
+ "description": "Spellworks from this property up to a certain number are allowed.\nSpellworks excluded from this restriction definition using `exclude` do\nnot contribute to the maximum.",
177
+ "type": "number"
178
+ }
179
+ },
180
+ "required": [
181
+ "tag",
182
+ "id"
183
+ ],
184
+ "additionalProperties": false
185
+ },
186
+ {
187
+ "$ref": "#/definitions/SpellworkId"
188
+ },
189
+ {
190
+ "type": "object",
191
+ "properties": {
192
+ "tag": {
193
+ "const": "DemonSummoning"
194
+ }
195
+ },
196
+ "required": [
197
+ "tag"
198
+ ],
199
+ "additionalProperties": false
200
+ },
201
+ {
202
+ "type": "object",
203
+ "properties": {
204
+ "tag": {
205
+ "const": "Borbaradian"
206
+ }
207
+ },
208
+ "required": [
209
+ "tag"
210
+ ],
211
+ "additionalProperties": false
212
+ },
213
+ {
214
+ "type": "object",
215
+ "properties": {
216
+ "tag": {
217
+ "const": "DamageIntelligent"
218
+ }
219
+ },
220
+ "required": [
221
+ "tag"
222
+ ],
223
+ "additionalProperties": false
224
+ }
225
+ ]
226
+ },
227
+ "LessonPackages": {
228
+ "description": "A list of available lesson packages.",
229
+ "type": "array",
230
+ "items": [
231
+ {
232
+ "$ref": "#/definitions/LessonPackage"
233
+ },
234
+ {
235
+ "$ref": "#/definitions/LessonPackage"
236
+ }
237
+ ],
238
+ "minItems": 2,
239
+ "maxItems": 2,
240
+ "additionalItems": false
241
+ },
242
+ "LessonPackage": {
243
+ "title": "Lesson Package",
244
+ "type": "object",
245
+ "properties": {
246
+ "id": {
247
+ "description": "The lesson package's identifier. An unique, increasing integer.",
248
+ "type": "integer",
249
+ "minimum": 1
250
+ },
251
+ "spellwork_changes": {
252
+ "description": "The spell values difference of the lesson package. This field reflects the\nchanges (difference) to the field of the same name in the profession\npackage. If a spell gets to SR 0 because of this, it will be removed\ncompletely.",
253
+ "type": "array",
254
+ "items": {
255
+ "type": "object",
256
+ "properties": {
257
+ "base": {
258
+ "$ref": "#/definitions/SpellworkAdjustment"
259
+ },
260
+ "replacement": {
261
+ "$ref": "#/definitions/SpellworkAdjustment"
262
+ }
263
+ },
264
+ "required": [
265
+ "base",
266
+ "replacement"
267
+ ],
268
+ "additionalProperties": false
269
+ },
270
+ "minItems": 1
271
+ },
272
+ "skills": {
273
+ "type": "array",
274
+ "items": {
275
+ "$ref": "#/definitions/SkillAdjustment"
276
+ }
277
+ },
278
+ "translations": {
279
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
280
+ "type": "object",
281
+ "patternProperties": {
282
+ "^[a-z]{2}-[A-Z]{2}$": {
283
+ "type": "object",
284
+ "properties": {
285
+ "name": {
286
+ "description": "The name of the lesson package.",
287
+ "type": "string",
288
+ "minLength": 1
289
+ },
290
+ "spellwork_changes": {
291
+ "description": "The spell values difference of the lesson package. Use this field to\nspecify a text that is displayed instead of the generated\n`spellwork_changes` list. The field is displayed even if no list is\npresent.",
292
+ "type": "string",
293
+ "minLength": 1
294
+ }
295
+ },
296
+ "required": [
297
+ "name"
298
+ ],
299
+ "additionalProperties": false
300
+ }
301
+ },
302
+ "minProperties": 1,
303
+ "additionalProperties": false
304
+ }
305
+ },
306
+ "required": [
307
+ "id",
308
+ "translations"
309
+ ],
310
+ "minProperties": 3,
311
+ "additionalProperties": false
312
+ },
313
+ "SkillAdjustment": {
314
+ "oneOf": [
315
+ {
316
+ "type": "object",
317
+ "properties": {
318
+ "tag": {
319
+ "const": "MeleeCombatTechnique"
320
+ },
321
+ "id": {
322
+ "description": "The melee combat technique's identifier.",
323
+ "type": "integer",
324
+ "minimum": 1
325
+ },
326
+ "points": {
327
+ "description": "The combat technique points that will be added to the current combat\ntechnique rating.",
328
+ "type": "integer",
329
+ "maximum": 6,
330
+ "minimum": -6
331
+ }
332
+ },
333
+ "required": [
334
+ "tag",
335
+ "id",
336
+ "points"
337
+ ],
338
+ "additionalProperties": false
339
+ },
340
+ {
341
+ "type": "object",
342
+ "properties": {
343
+ "tag": {
344
+ "const": "RangedCombatTechnique"
345
+ },
346
+ "id": {
347
+ "description": "The ranged combat technique's identifier.",
348
+ "type": "integer",
349
+ "minimum": 1
350
+ },
351
+ "points": {
352
+ "description": "The combat technique points that will be added to the current combat\ntechnique rating.",
353
+ "type": "integer",
354
+ "maximum": 6,
355
+ "minimum": -6
356
+ }
357
+ },
358
+ "required": [
359
+ "tag",
360
+ "id",
361
+ "points"
362
+ ],
363
+ "additionalProperties": false
364
+ },
365
+ {
366
+ "type": "object",
367
+ "properties": {
368
+ "tag": {
369
+ "const": "Skill"
370
+ },
371
+ "id": {
372
+ "description": "The skill's identifier.",
373
+ "type": "integer",
374
+ "minimum": 1
375
+ },
376
+ "points": {
377
+ "description": "The skill points that will be added to the current skill rating.",
378
+ "type": "integer",
379
+ "maximum": 8,
380
+ "minimum": -8
381
+ }
382
+ },
383
+ "required": [
384
+ "tag",
385
+ "id",
386
+ "points"
387
+ ],
388
+ "additionalProperties": false
389
+ },
390
+ {
391
+ "$ref": "#/definitions/SpellworkAdjustment"
392
+ }
393
+ ]
394
+ },
395
+ "SpellworkAdjustment": {
396
+ "oneOf": [
397
+ {
398
+ "type": "object",
399
+ "properties": {
400
+ "tag": {
401
+ "const": "Spell"
402
+ },
403
+ "id": {
404
+ "description": "The spell's identifier.",
405
+ "type": "integer",
406
+ "minimum": 1
407
+ },
408
+ "points": {
409
+ "description": "The skill points that will be added to the current skill rating. If a\nspell gets to a skill rating of 0 because of this, it will be removed\ncompletely.",
410
+ "type": "integer",
411
+ "maximum": 10,
412
+ "minimum": -10
413
+ },
414
+ "tradition_id": {
415
+ "description": "The target tradition's identifier. If the target spell is not from the\nGuild Mage tradition, specify the tradition identifier here.",
416
+ "type": "integer",
417
+ "minimum": 2
418
+ }
419
+ },
420
+ "required": [
421
+ "tag",
422
+ "id",
423
+ "points"
424
+ ],
425
+ "additionalProperties": false
426
+ },
427
+ {
428
+ "type": "object",
429
+ "properties": {
430
+ "tag": {
431
+ "const": "Ritual"
432
+ },
433
+ "id": {
434
+ "description": "The ritual's identifier.",
435
+ "type": "integer",
436
+ "minimum": 1
437
+ },
438
+ "points": {
439
+ "description": "The skill points that will be added to the current skill rating. If a\nritual gets to a skill rating of 0 because of this, it will be removed\ncompletely.",
440
+ "type": "integer",
441
+ "maximum": 10,
442
+ "minimum": -10
443
+ },
444
+ "tradition_id": {
445
+ "description": "The target tradition's identifier. If the target ritual is not from the\nGuild Mage tradition, specify the tradition identifier here.",
446
+ "type": "integer",
447
+ "minimum": 2
448
+ }
449
+ },
450
+ "required": [
451
+ "tag",
452
+ "id",
453
+ "points"
454
+ ],
455
+ "additionalProperties": false
456
+ }
457
+ ]
458
+ },
459
+ "SpellworkId": {
460
+ "oneOf": [
461
+ {
462
+ "type": "object",
463
+ "properties": {
464
+ "tag": {
465
+ "const": "Spell"
466
+ },
467
+ "id": {
468
+ "description": "The spell's identifier.",
469
+ "type": "integer",
470
+ "minimum": 1
471
+ }
472
+ },
473
+ "required": [
474
+ "tag",
475
+ "id"
476
+ ],
477
+ "additionalProperties": false
478
+ },
479
+ {
480
+ "type": "object",
481
+ "properties": {
482
+ "tag": {
483
+ "const": "Ritual"
484
+ },
485
+ "id": {
486
+ "description": "The ritual's identifier.",
487
+ "type": "integer",
488
+ "minimum": 1
489
+ }
490
+ },
491
+ "required": [
492
+ "tag",
493
+ "id"
494
+ ],
495
+ "additionalProperties": false
496
+ }
497
+ ]
498
+ }
499
+ }
500
+ }
@@ -0,0 +1,51 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema",
3
+ "$id": "Lessons_Guideline.schema.json",
4
+ "$ref": "#/definitions/Guideline",
5
+ "definitions": {
6
+ "Guideline": {
7
+ "title": "Guideline",
8
+ "type": "object",
9
+ "properties": {
10
+ "id": {
11
+ "description": "The region's identifier. An unique, increasing integer.",
12
+ "type": "integer",
13
+ "minimum": 1
14
+ },
15
+ "spellwork_changes_allowed": {
16
+ "description": "Maximum number of spells that can be exchanged.",
17
+ "type": "integer",
18
+ "minimum": 0
19
+ },
20
+ "translations": {
21
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
22
+ "type": "object",
23
+ "patternProperties": {
24
+ "^[a-z]{2}-[A-Z]{2}$": {
25
+ "type": "object",
26
+ "properties": {
27
+ "name": {
28
+ "description": "The guideline name.",
29
+ "type": "string",
30
+ "minLength": 1
31
+ }
32
+ },
33
+ "required": [
34
+ "name"
35
+ ],
36
+ "additionalProperties": false
37
+ }
38
+ },
39
+ "minProperties": 1,
40
+ "additionalProperties": false
41
+ }
42
+ },
43
+ "required": [
44
+ "id",
45
+ "spellwork_changes_allowed",
46
+ "translations"
47
+ ],
48
+ "additionalProperties": false
49
+ }
50
+ }
51
+ }
@@ -0,0 +1,45 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema",
3
+ "$id": "Locale.schema.json",
4
+ "$ref": "#/definitions/Locales",
5
+ "definitions": {
6
+ "Locales": {
7
+ "title": "Supported locales",
8
+ "type": "array",
9
+ "items": {
10
+ "$ref": "#/definitions/Locale"
11
+ }
12
+ },
13
+ "Locale": {
14
+ "title": "Supported locale",
15
+ "type": "object",
16
+ "properties": {
17
+ "id": {
18
+ "description": "The locale's identifier. An IETF language tag (BCP47).",
19
+ "type": "string",
20
+ "pattern": "^[a-z]{2}-[A-Z]{2}$"
21
+ },
22
+ "name": {
23
+ "description": "Name of the language in it's language.",
24
+ "type": "string",
25
+ "minLength": 1
26
+ },
27
+ "region": {
28
+ "description": "Region in which the language is spoken in it's language.",
29
+ "type": "string",
30
+ "minLength": 1
31
+ },
32
+ "is_missing_implementation": {
33
+ "description": "The language is not (fully) implemented and thus needs to be excluded from\nstable releases.",
34
+ "type": "boolean"
35
+ }
36
+ },
37
+ "required": [
38
+ "id",
39
+ "name",
40
+ "region"
41
+ ],
42
+ "additionalProperties": false
43
+ }
44
+ }
45
+ }
@@ -0,0 +1,85 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema",
3
+ "$id": "MetaCondition.schema.json",
4
+ "$ref": "#/definitions/MetaCondition",
5
+ "definitions": {
6
+ "MetaCondition": {
7
+ "title": "Meta Condition",
8
+ "description": "Meta Conditions are rule elements that work like conditions in the sense that\nthey have four levels with different effects, but which are not explicitly\nlisted as conditions.",
9
+ "type": "object",
10
+ "properties": {
11
+ "id": {
12
+ "description": "The meta condition's identifier. An unique, increasing integer.",
13
+ "type": "integer",
14
+ "minimum": 1
15
+ },
16
+ "src": {
17
+ "$ref": "./source/_PublicationRef.schema.json#/definitions/PublicationRefs"
18
+ },
19
+ "translations": {
20
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
21
+ "type": "object",
22
+ "patternProperties": {
23
+ "^[a-z]{2}-[A-Z]{2}$": {
24
+ "type": "object",
25
+ "properties": {
26
+ "name": {
27
+ "description": "The meta condition's name.",
28
+ "type": "string",
29
+ "minLength": 1
30
+ },
31
+ "rules": {
32
+ "description": "Additional rules for the meta condition, if applicable.",
33
+ "type": "string",
34
+ "minLength": 1
35
+ },
36
+ "effects": {
37
+ "description": "The effects for level 1 to 4.",
38
+ "type": "array",
39
+ "items": [
40
+ {
41
+ "$ref": "#/definitions/Effect"
42
+ },
43
+ {
44
+ "$ref": "#/definitions/Effect"
45
+ },
46
+ {
47
+ "$ref": "#/definitions/Effect"
48
+ },
49
+ {
50
+ "$ref": "#/definitions/Effect"
51
+ }
52
+ ],
53
+ "minItems": 4,
54
+ "maxItems": 4,
55
+ "additionalItems": false
56
+ },
57
+ "errata": {
58
+ "$ref": "./source/_Erratum.schema.json#/definitions/Errata"
59
+ }
60
+ },
61
+ "required": [
62
+ "name",
63
+ "effects"
64
+ ],
65
+ "additionalProperties": false
66
+ }
67
+ },
68
+ "minProperties": 1,
69
+ "additionalProperties": false
70
+ }
71
+ },
72
+ "required": [
73
+ "id",
74
+ "src",
75
+ "translations"
76
+ ],
77
+ "additionalProperties": false
78
+ },
79
+ "Effect": {
80
+ "description": "The effect on a level.",
81
+ "type": "string",
82
+ "minLength": 1
83
+ }
84
+ }
85
+ }