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,378 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema",
3
+ "$id": "magicalActions/Curse.schema.json",
4
+ "$ref": "#/definitions/Curse",
5
+ "definitions": {
6
+ "Curse": {
7
+ "title": "Curse",
8
+ "type": "object",
9
+ "properties": {
10
+ "id": {
11
+ "description": "The curse'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
+ "check_penalty": {
20
+ "description": "In some cases, the target's Spirit or Toughness is applied as a penalty.",
21
+ "$ref": "../_SkillCheck.schema.json#/definitions/SkillCheckPenalty"
22
+ },
23
+ "parameters": {
24
+ "description": "Measurable parameters of a curse.",
25
+ "$ref": "#/definitions/PerformanceParameters"
26
+ },
27
+ "property_id": {
28
+ "description": "The property's identifier.",
29
+ "type": "integer",
30
+ "minimum": 1
31
+ },
32
+ "src": {
33
+ "$ref": "../source/_PublicationRef.schema.json#/definitions/PublicationRefs"
34
+ },
35
+ "translations": {
36
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
37
+ "type": "object",
38
+ "patternProperties": {
39
+ "^[a-z]{2}-[A-Z]{2}$": {
40
+ "type": "object",
41
+ "properties": {
42
+ "name": {
43
+ "description": "The name of the curse.",
44
+ "type": "string",
45
+ "minLength": 1
46
+ },
47
+ "effect": {
48
+ "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.",
49
+ "$ref": "../_ActivatableSkill.schema.json#/definitions/Effect/T"
50
+ },
51
+ "cost": {
52
+ "type": "object",
53
+ "properties": {
54
+ "full": {
55
+ "type": "string"
56
+ },
57
+ "abbr": {
58
+ "type": "string"
59
+ }
60
+ },
61
+ "required": [
62
+ "full",
63
+ "abbr"
64
+ ],
65
+ "additionalProperties": false
66
+ },
67
+ "duration": {
68
+ "type": "object",
69
+ "properties": {
70
+ "full": {
71
+ "type": "string"
72
+ },
73
+ "abbr": {
74
+ "type": "string"
75
+ }
76
+ },
77
+ "required": [
78
+ "full",
79
+ "abbr"
80
+ ],
81
+ "additionalProperties": false
82
+ },
83
+ "errata": {
84
+ "$ref": "../source/_Erratum.schema.json#/definitions/Errata"
85
+ }
86
+ },
87
+ "required": [
88
+ "name",
89
+ "effect",
90
+ "cost",
91
+ "duration"
92
+ ],
93
+ "additionalProperties": false
94
+ }
95
+ },
96
+ "minProperties": 1,
97
+ "additionalProperties": false
98
+ }
99
+ },
100
+ "required": [
101
+ "id",
102
+ "check",
103
+ "parameters",
104
+ "property_id",
105
+ "src",
106
+ "translations"
107
+ ],
108
+ "additionalProperties": false
109
+ },
110
+ "PerformanceParameters": {
111
+ "description": "Measurable parameters of a curse.",
112
+ "type": "object",
113
+ "properties": {
114
+ "cost": {
115
+ "description": "The AE cost.",
116
+ "oneOf": [
117
+ {
118
+ "type": "object",
119
+ "properties": {
120
+ "tag": {
121
+ "const": "Fixed"
122
+ },
123
+ "value": {
124
+ "description": "The (temporary) AE cost value.",
125
+ "type": "integer",
126
+ "minimum": 1
127
+ },
128
+ "translations": {
129
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
130
+ "type": "object",
131
+ "patternProperties": {
132
+ "^[a-z]{2}-[A-Z]{2}$": {
133
+ "type": "object",
134
+ "properties": {
135
+ "per": {
136
+ "description": "The cost have to be per a specific countable entity, e.g. `8 KP\nper person`",
137
+ "type": "object",
138
+ "properties": {
139
+ "default": {
140
+ "description": "The full countable entity name.",
141
+ "type": "string",
142
+ "minLength": 1
143
+ },
144
+ "compressed": {
145
+ "description": "The compressed countable entity name.",
146
+ "type": "string",
147
+ "minLength": 1
148
+ }
149
+ },
150
+ "required": [
151
+ "default",
152
+ "compressed"
153
+ ],
154
+ "additionalProperties": false
155
+ },
156
+ "note": {
157
+ "description": "A note, appended to the generated string in parenthesis.",
158
+ "type": "object",
159
+ "properties": {
160
+ "default": {
161
+ "description": "The full note.",
162
+ "type": "string",
163
+ "minLength": 1
164
+ },
165
+ "compressed": {
166
+ "description": "A compressed note, if applicable. If not specified it should not\nbe displayed in small location.",
167
+ "type": "string",
168
+ "minLength": 1
169
+ }
170
+ },
171
+ "required": [
172
+ "default"
173
+ ],
174
+ "additionalProperties": false
175
+ }
176
+ },
177
+ "required": [],
178
+ "minProperties": 1,
179
+ "additionalProperties": false
180
+ }
181
+ },
182
+ "minProperties": 1,
183
+ "additionalProperties": false
184
+ }
185
+ },
186
+ "required": [
187
+ "tag",
188
+ "value"
189
+ ],
190
+ "additionalProperties": false
191
+ },
192
+ {
193
+ "type": "object",
194
+ "properties": {
195
+ "tag": {
196
+ "const": "Indefinite"
197
+ },
198
+ "translations": {
199
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
200
+ "type": "object",
201
+ "patternProperties": {
202
+ "^[a-z]{2}-[A-Z]{2}$": {
203
+ "type": "object",
204
+ "properties": {
205
+ "description": {
206
+ "description": "A description of where the cost come from.",
207
+ "type": "object",
208
+ "properties": {
209
+ "default": {
210
+ "description": "The full description of where the cost come from.",
211
+ "type": "string",
212
+ "minLength": 1
213
+ },
214
+ "compressed": {
215
+ "description": "A compressed description of where the cost come from for use in\nsmall areas (e.g. on character sheet).",
216
+ "type": "string",
217
+ "minLength": 1
218
+ }
219
+ },
220
+ "required": [
221
+ "default",
222
+ "compressed"
223
+ ],
224
+ "additionalProperties": false
225
+ }
226
+ },
227
+ "required": [
228
+ "description"
229
+ ],
230
+ "additionalProperties": false
231
+ }
232
+ },
233
+ "minProperties": 1,
234
+ "additionalProperties": false
235
+ }
236
+ },
237
+ "required": [
238
+ "tag",
239
+ "translations"
240
+ ],
241
+ "additionalProperties": false
242
+ }
243
+ ]
244
+ },
245
+ "duration": {
246
+ "description": "The duration.",
247
+ "oneOf": [
248
+ {
249
+ "type": "object",
250
+ "properties": {
251
+ "tag": {
252
+ "const": "Immediate"
253
+ }
254
+ },
255
+ "required": [
256
+ "tag"
257
+ ],
258
+ "additionalProperties": false
259
+ },
260
+ {
261
+ "type": "object",
262
+ "properties": {
263
+ "tag": {
264
+ "const": "Fixed"
265
+ },
266
+ "value": {
267
+ "description": "The (unitless) duration value.",
268
+ "type": "integer",
269
+ "minimum": 1
270
+ },
271
+ "unit": {
272
+ "description": "The unit of the `value`.",
273
+ "$ref": "../_ActivatableSkill.schema.json#/definitions/Duration/Unit"
274
+ }
275
+ },
276
+ "required": [
277
+ "tag",
278
+ "value",
279
+ "unit"
280
+ ],
281
+ "additionalProperties": false
282
+ },
283
+ {
284
+ "$ref": "../_ActivatableSkill.schema.json#/definitions/Duration/CheckResultBasedTagged"
285
+ },
286
+ {
287
+ "type": "object",
288
+ "properties": {
289
+ "tag": {
290
+ "const": "Indefinite"
291
+ },
292
+ "maximum": {
293
+ "description": "Specified if the duration has a maximum time span.",
294
+ "oneOf": [
295
+ {
296
+ "type": "object",
297
+ "properties": {
298
+ "tag": {
299
+ "const": "Fixed"
300
+ },
301
+ "value": {
302
+ "description": "The (unitless) maximum duration value.",
303
+ "type": "integer",
304
+ "minimum": 1
305
+ },
306
+ "unit": {
307
+ "description": "The unit of the `value`.",
308
+ "$ref": "../_ActivatableSkill.schema.json#/definitions/Duration/Unit"
309
+ }
310
+ },
311
+ "required": [
312
+ "tag",
313
+ "value",
314
+ "unit"
315
+ ],
316
+ "additionalProperties": false
317
+ },
318
+ {
319
+ "$ref": "../_ActivatableSkill.schema.json#/definitions/Duration/CheckResultBasedTagged"
320
+ }
321
+ ]
322
+ },
323
+ "translations": {
324
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
325
+ "type": "object",
326
+ "patternProperties": {
327
+ "^[a-z]{2}-[A-Z]{2}$": {
328
+ "type": "object",
329
+ "properties": {
330
+ "description": {
331
+ "description": "A description of the duration.",
332
+ "type": "object",
333
+ "properties": {
334
+ "default": {
335
+ "description": "The full description of the duration.",
336
+ "type": "string",
337
+ "minLength": 1
338
+ },
339
+ "compressed": {
340
+ "description": "A compressed description of the duration for use in small areas\n(e.g. on character sheet).",
341
+ "type": "string",
342
+ "minLength": 1
343
+ }
344
+ },
345
+ "required": [
346
+ "default",
347
+ "compressed"
348
+ ],
349
+ "additionalProperties": false
350
+ }
351
+ },
352
+ "required": [
353
+ "description"
354
+ ],
355
+ "additionalProperties": false
356
+ }
357
+ },
358
+ "minProperties": 1,
359
+ "additionalProperties": false
360
+ }
361
+ },
362
+ "required": [
363
+ "tag",
364
+ "translations"
365
+ ],
366
+ "additionalProperties": false
367
+ }
368
+ ]
369
+ }
370
+ },
371
+ "required": [
372
+ "cost",
373
+ "duration"
374
+ ],
375
+ "additionalProperties": false
376
+ }
377
+ }
378
+ }
@@ -0,0 +1,288 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema",
3
+ "$id": "magicalActions/DominationRitual.schema.json",
4
+ "$ref": "#/definitions/DominationRitual",
5
+ "definitions": {
6
+ "DominationRitual": {
7
+ "title": "Domination Ritual",
8
+ "type": "object",
9
+ "properties": {
10
+ "id": {
11
+ "description": "The domination ritual'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
+ "check_penalty": {
20
+ "description": "In some cases, the target's Spirit or Toughness is applied as a penalty.",
21
+ "$ref": "../_SkillCheck.schema.json#/definitions/SkillCheckPenalty"
22
+ },
23
+ "parameters": {
24
+ "description": "Measurable parameters of a curse.",
25
+ "$ref": "#/definitions/PerformanceParameters"
26
+ },
27
+ "property_id": {
28
+ "description": "The property's identifier.",
29
+ "type": "integer",
30
+ "minimum": 1
31
+ },
32
+ "src": {
33
+ "$ref": "../source/_PublicationRef.schema.json#/definitions/PublicationRefs"
34
+ },
35
+ "translations": {
36
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
37
+ "type": "object",
38
+ "patternProperties": {
39
+ "^[a-z]{2}-[A-Z]{2}$": {
40
+ "type": "object",
41
+ "properties": {
42
+ "name": {
43
+ "description": "The name of the domination ritual.",
44
+ "type": "string",
45
+ "minLength": 1
46
+ },
47
+ "effect": {
48
+ "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.",
49
+ "$ref": "../_ActivatableSkill.schema.json#/definitions/Effect/T"
50
+ },
51
+ "cost": {
52
+ "type": "object",
53
+ "properties": {
54
+ "full": {
55
+ "type": "string"
56
+ },
57
+ "abbr": {
58
+ "type": "string"
59
+ }
60
+ },
61
+ "required": [
62
+ "full",
63
+ "abbr"
64
+ ],
65
+ "additionalProperties": false
66
+ },
67
+ "duration": {
68
+ "type": "object",
69
+ "properties": {
70
+ "full": {
71
+ "type": "string"
72
+ },
73
+ "abbr": {
74
+ "type": "string"
75
+ }
76
+ },
77
+ "required": [
78
+ "full",
79
+ "abbr"
80
+ ],
81
+ "additionalProperties": false
82
+ },
83
+ "errata": {
84
+ "$ref": "../source/_Erratum.schema.json#/definitions/Errata"
85
+ }
86
+ },
87
+ "required": [
88
+ "name",
89
+ "effect",
90
+ "cost",
91
+ "duration"
92
+ ],
93
+ "additionalProperties": false
94
+ }
95
+ },
96
+ "minProperties": 1,
97
+ "additionalProperties": false
98
+ }
99
+ },
100
+ "required": [
101
+ "id",
102
+ "check",
103
+ "parameters",
104
+ "property_id",
105
+ "src",
106
+ "translations"
107
+ ],
108
+ "additionalProperties": false
109
+ },
110
+ "PerformanceParameters": {
111
+ "description": "Measurable parameters of a curse.",
112
+ "type": "object",
113
+ "properties": {
114
+ "cost": {
115
+ "description": "The AE cost.",
116
+ "type": "object",
117
+ "properties": {
118
+ "initial_modification_level": {
119
+ "description": "The initial skill modification identifier/level.",
120
+ "type": "integer",
121
+ "maximum": 6,
122
+ "minimum": 1
123
+ },
124
+ "translations": {
125
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
126
+ "type": "object",
127
+ "patternProperties": {
128
+ "^[a-z]{2}-[A-Z]{2}$": {
129
+ "type": "object",
130
+ "properties": {
131
+ "additional": {
132
+ "description": "AE cost in addition to the normal AE cost.",
133
+ "type": "object",
134
+ "properties": {
135
+ "default": {
136
+ "description": "The full description of where the cost come from.",
137
+ "type": "string",
138
+ "minLength": 1
139
+ },
140
+ "compressed": {
141
+ "description": "A compressed description of where the cost come from for use in\nsmall areas (e.g. on character sheet).",
142
+ "type": "string",
143
+ "minLength": 1
144
+ }
145
+ },
146
+ "required": [
147
+ "default",
148
+ "compressed"
149
+ ],
150
+ "additionalProperties": false
151
+ }
152
+ },
153
+ "required": [],
154
+ "minProperties": 1,
155
+ "additionalProperties": false
156
+ }
157
+ },
158
+ "minProperties": 1,
159
+ "additionalProperties": false
160
+ }
161
+ },
162
+ "required": [
163
+ "initial_modification_level"
164
+ ],
165
+ "additionalProperties": false
166
+ },
167
+ "duration": {
168
+ "description": "The duration.",
169
+ "oneOf": [
170
+ {
171
+ "type": "object",
172
+ "properties": {
173
+ "tag": {
174
+ "const": "Fixed"
175
+ },
176
+ "value": {
177
+ "description": "The (unitless) duration value.",
178
+ "type": "integer",
179
+ "minimum": 1
180
+ },
181
+ "unit": {
182
+ "description": "The unit of the `value`.",
183
+ "$ref": "../_ActivatableSkill.schema.json#/definitions/Duration/Unit"
184
+ }
185
+ },
186
+ "required": [
187
+ "tag",
188
+ "value",
189
+ "unit"
190
+ ],
191
+ "additionalProperties": false
192
+ },
193
+ {
194
+ "$ref": "../_ActivatableSkill.schema.json#/definitions/Duration/CheckResultBasedTagged"
195
+ },
196
+ {
197
+ "type": "object",
198
+ "properties": {
199
+ "tag": {
200
+ "const": "Indefinite"
201
+ },
202
+ "maximum": {
203
+ "description": "Specified if the duration has a maximum time span.",
204
+ "oneOf": [
205
+ {
206
+ "type": "object",
207
+ "properties": {
208
+ "tag": {
209
+ "const": "Fixed"
210
+ },
211
+ "value": {
212
+ "description": "The (unitless) maximum duration value.",
213
+ "type": "integer",
214
+ "minimum": 1
215
+ },
216
+ "unit": {
217
+ "description": "The unit of the `value`.",
218
+ "$ref": "../_ActivatableSkill.schema.json#/definitions/Duration/Unit"
219
+ }
220
+ },
221
+ "required": [
222
+ "tag",
223
+ "value",
224
+ "unit"
225
+ ],
226
+ "additionalProperties": false
227
+ },
228
+ {
229
+ "$ref": "../_ActivatableSkill.schema.json#/definitions/Duration/CheckResultBasedTagged"
230
+ }
231
+ ]
232
+ },
233
+ "translations": {
234
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
235
+ "type": "object",
236
+ "patternProperties": {
237
+ "^[a-z]{2}-[A-Z]{2}$": {
238
+ "type": "object",
239
+ "properties": {
240
+ "description": {
241
+ "description": "A description of the duration.",
242
+ "type": "object",
243
+ "properties": {
244
+ "default": {
245
+ "description": "The full description of the duration.",
246
+ "type": "string",
247
+ "minLength": 1
248
+ },
249
+ "compressed": {
250
+ "description": "A compressed description of the duration for use in small areas\n(e.g. on character sheet).",
251
+ "type": "string",
252
+ "minLength": 1
253
+ }
254
+ },
255
+ "required": [
256
+ "default",
257
+ "compressed"
258
+ ],
259
+ "additionalProperties": false
260
+ }
261
+ },
262
+ "required": [
263
+ "description"
264
+ ],
265
+ "additionalProperties": false
266
+ }
267
+ },
268
+ "minProperties": 1,
269
+ "additionalProperties": false
270
+ }
271
+ },
272
+ "required": [
273
+ "tag",
274
+ "translations"
275
+ ],
276
+ "additionalProperties": false
277
+ }
278
+ ]
279
+ }
280
+ },
281
+ "required": [
282
+ "cost",
283
+ "duration"
284
+ ],
285
+ "additionalProperties": false
286
+ }
287
+ }
288
+ }