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,919 @@
1
+ /**
2
+ * @title Activatable Skill
3
+ */
4
+ /**
5
+ *
6
+ */
7
+ export declare namespace Effect {
8
+ /**
9
+ * The effect description may be either a plain text or a text that is divided
10
+ * by a list of effects for each quality level. It may also be a list for each
11
+ * two quality levels.
12
+ */
13
+ export type T = {
14
+ tag: "Plain";
15
+ /**
16
+ * The effect description.
17
+ * @markdown
18
+ * @minLength 1
19
+ */
20
+ text: string;
21
+ } | {
22
+ tag: "ForEachQualityLevel";
23
+ /**
24
+ * The effect description before the list of effects for each quality
25
+ * level.
26
+ * @markdown
27
+ * @minLength 1
28
+ */
29
+ text_before: string;
30
+ /**
31
+ * The list of effects for each quality level.
32
+ */
33
+ quality_levels: [QualityLevel1, QualityLevel2, QualityLevel3, QualityLevel4, QualityLevel5, QualityLevel6];
34
+ /**
35
+ * The effect description after the list of effects for each quality
36
+ * level.
37
+ * @markdown
38
+ * @minLength 1
39
+ */
40
+ text_after?: string;
41
+ } | {
42
+ tag: "ForEachTwoQualityLevels";
43
+ /**
44
+ * The effect description before the list of effects for each quality
45
+ * level.
46
+ * @markdown
47
+ * @minLength 1
48
+ */
49
+ text_before: string;
50
+ /**
51
+ * The list of effects for each two quality levels.
52
+ */
53
+ quality_levels: [QualityLevel1To2, QualityLevel3To4, QualityLevel5To6];
54
+ /**
55
+ * The effect description after the list of effects for each quality
56
+ * level.
57
+ * @markdown
58
+ * @minLength 1
59
+ */
60
+ text_after?: string;
61
+ };
62
+ /**
63
+ * Effect at QL 1.
64
+ * @markdown
65
+ * @minLength 1
66
+ */
67
+ type QualityLevel1 = string;
68
+ /**
69
+ * Effect at QL 2.
70
+ * @markdown
71
+ * @minLength 1
72
+ */
73
+ type QualityLevel2 = string;
74
+ /**
75
+ * Effect at QL 3.
76
+ * @markdown
77
+ * @minLength 1
78
+ */
79
+ type QualityLevel3 = string;
80
+ /**
81
+ * Effect at QL 4.
82
+ * @markdown
83
+ * @minLength 1
84
+ */
85
+ type QualityLevel4 = string;
86
+ /**
87
+ * Effect at QL 5.
88
+ * @markdown
89
+ * @minLength 1
90
+ */
91
+ type QualityLevel5 = string;
92
+ /**
93
+ * Effect at QL 6.
94
+ * @markdown
95
+ * @minLength 1
96
+ */
97
+ type QualityLevel6 = string;
98
+ /**
99
+ * Effect at QL 1–2.
100
+ * @markdown
101
+ * @minLength 1
102
+ */
103
+ type QualityLevel1To2 = string;
104
+ /**
105
+ * Effect at QL 3–4.
106
+ * @markdown
107
+ * @minLength 1
108
+ */
109
+ type QualityLevel3To4 = string;
110
+ /**
111
+ * Effect at QL 5–6.
112
+ * @markdown
113
+ * @minLength 1
114
+ */
115
+ type QualityLevel5To6 = string;
116
+ export {};
117
+ }
118
+ export declare type PerformanceParameters = {
119
+ tag: "OneTime";
120
+ casting_time: CastingTime.T;
121
+ cost: Cost.OneTime.T;
122
+ range: Range.T;
123
+ duration: Duration.OneTime.T;
124
+ } | {
125
+ tag: "Sustained";
126
+ casting_time: CastingTime.T;
127
+ cost: Cost.Sustained.T;
128
+ range: Range.T;
129
+ duration?: Duration.Sustained.T;
130
+ };
131
+ export declare namespace CastingTime {
132
+ type T = {
133
+ /**
134
+ * The default casting time definition.
135
+ */
136
+ default: {
137
+ /**
138
+ * The initial skill modification identifier/level.
139
+ * @integer
140
+ * @minimum 1
141
+ * @maximum 6
142
+ */
143
+ initial_modification_level: number;
144
+ /**
145
+ * Is the casting time modifiable?
146
+ * @default true
147
+ */
148
+ is_modifiable: boolean;
149
+ };
150
+ /**
151
+ * The casting time during lovemaking. In Aventurian Intimacy, you may only
152
+ * use an activatable skill during lovemaking if it has a casting time used
153
+ * during lovemaking.
154
+ */
155
+ during_lovemaking?: {
156
+ /**
157
+ * The (unitless) duration value.
158
+ * @integer
159
+ * @minimum 1
160
+ */
161
+ value: number;
162
+ /**
163
+ * The unit of the `value`.
164
+ */
165
+ unit: CastingTimeDuringLovemakingUnit;
166
+ };
167
+ };
168
+ enum CastingTimeDuringLovemakingUnit {
169
+ SeductionActions = "SeductionActions",
170
+ Rounds = "Rounds"
171
+ }
172
+ enum SlowSkillCastingTimeUnit {
173
+ Minutes = "Minutes",
174
+ Hours = "Hours"
175
+ }
176
+ }
177
+ export declare namespace Cost {
178
+ namespace OneTime {
179
+ type T = {
180
+ tag: "Single";
181
+ value: Single;
182
+ } | {
183
+ tag: "Conjunction";
184
+ /**
185
+ * @minItems 2
186
+ */
187
+ list: Single[];
188
+ } | {
189
+ tag: "Disjunction";
190
+ /**
191
+ * @minItems 2
192
+ */
193
+ list: Single[];
194
+ } | {
195
+ tag: "Map";
196
+ map: Map;
197
+ };
198
+ type Single = {
199
+ tag: "Modifiable";
200
+ /**
201
+ * The initial skill modification identifier/level.
202
+ * @integer
203
+ * @minimum 1
204
+ * @maximum 6
205
+ */
206
+ initial_modification_level: number;
207
+ /**
208
+ * The part of the cost value that has to be spent permanently.
209
+ * @integer
210
+ * @minimum 1
211
+ */
212
+ permanent_value?: number;
213
+ } | {
214
+ tag: "NonModifiable";
215
+ /**
216
+ * If `true`, the non-modifiable value is a minimum value.
217
+ */
218
+ is_minimum?: boolean;
219
+ /**
220
+ * The AE cost value.
221
+ * @integer
222
+ * @minimum 1
223
+ */
224
+ value: number;
225
+ /**
226
+ * The part of the cost value that has to be spent permanently.
227
+ * @integer
228
+ * @minimum 1
229
+ */
230
+ permanent_value?: number;
231
+ per?: {
232
+ /**
233
+ * If defined, the minimum total AE that have to be spent casting the
234
+ * skill.
235
+ */
236
+ minimum_total?: number;
237
+ /**
238
+ * All translations for the entry, identified by IETF language tag
239
+ * (BCP47).
240
+ * @minProperties 1
241
+ */
242
+ translations: {
243
+ /**
244
+ * @patternProperties ^[a-z]{2}-[A-Z]{2}$
245
+ */
246
+ [localeId: string]: {
247
+ /**
248
+ * The full countable entity name.
249
+ * @minLength 1
250
+ */
251
+ default: string;
252
+ /**
253
+ * The compressed countable entity name.
254
+ * @minLength 1
255
+ */
256
+ compressed: string;
257
+ };
258
+ };
259
+ };
260
+ /**
261
+ * All translations for the entry, identified by IETF language tag
262
+ * (BCP47).
263
+ * @minProperties 1
264
+ */
265
+ translations?: {
266
+ /**
267
+ * @patternProperties ^[a-z]{2}-[A-Z]{2}$
268
+ * @minProperties 1
269
+ */
270
+ [localeId: string]: {
271
+ /**
272
+ * A note, appended to the generated string in parenthesis.
273
+ */
274
+ note?: {
275
+ /**
276
+ * The full note.
277
+ * @minLength 1
278
+ */
279
+ default: string;
280
+ /**
281
+ * A compressed note, if applicable. If not specified it should not
282
+ * be displayed in small location.
283
+ * @minLength 1
284
+ */
285
+ compressed?: string;
286
+ };
287
+ };
288
+ };
289
+ } | {
290
+ tag: "Indefinite";
291
+ /**
292
+ * All translations for the entry, identified by IETF language tag (BCP47).
293
+ * @minProperties 1
294
+ */
295
+ translations: {
296
+ /**
297
+ * @patternProperties ^[a-z]{2}-[A-Z]{2}$
298
+ */
299
+ [localeId: string]: {
300
+ /**
301
+ * A description of where the cost come from.
302
+ */
303
+ description: {
304
+ /**
305
+ * The full description of where the cost come from.
306
+ * @minLength 1
307
+ */
308
+ default: string;
309
+ /**
310
+ * A compressed description of where the cost come from for use in
311
+ * small areas (e.g. on character sheet).
312
+ * @minLength 1
313
+ */
314
+ compressed: string;
315
+ };
316
+ };
317
+ };
318
+ };
319
+ /**
320
+ * A content that is `2/4/8/16 AE for an item the size of a
321
+ * cup/chest/door/castle gate` may be respresented as the following map:
322
+ *
323
+ * ```yaml
324
+ * options:
325
+ * - value: 2
326
+ * label: "cup"
327
+ * - value: 4
328
+ * label: "chest"
329
+ * - value: 8
330
+ * label: "door"
331
+ * - value: 16
332
+ * label: "castle gate"
333
+ * for_append: "an item the size of a"
334
+ * ```
335
+ *
336
+ * This will generate the exact same string as seen above – given it is set
337
+ * for a spellwork and thus `AE` is used.
338
+ */
339
+ type Map = {
340
+ /**
341
+ * The possible costs and associated labels.
342
+ * @minItems 2
343
+ */
344
+ options: MapOption[];
345
+ /**
346
+ * Place a string between the `for` and the grouped map option labels.
347
+ */
348
+ list_prepend?: string;
349
+ /**
350
+ * Place a string after the grouped map option labels.
351
+ */
352
+ list_append?: string;
353
+ /**
354
+ * If the string from the book cannot be generated using the default
355
+ * generation technique, use this string. All options still need to be
356
+ * inserted propertly, since it may be used by in-game tools to provide a
357
+ * selection to players.
358
+ */
359
+ replacement?: string;
360
+ };
361
+ type MapOption = {
362
+ /**
363
+ * The full cost value for this option.
364
+ * @integer
365
+ * @minimum 1
366
+ */
367
+ value: number;
368
+ /**
369
+ * The part of the `value` that has to be paid permanently.
370
+ * @integer
371
+ * @minimum 0
372
+ */
373
+ permanent_value?: number;
374
+ /**
375
+ * The description of the option for cost string generation.
376
+ * @minLength 1
377
+ */
378
+ label: string;
379
+ /**
380
+ * The description of the option if used standalone. Only used if
381
+ * different from `label`.
382
+ * @minLength 1
383
+ */
384
+ label_standalone?: string;
385
+ };
386
+ }
387
+ namespace Sustained {
388
+ type T = {
389
+ tag: "Modifiable";
390
+ /**
391
+ * The initial skill modification identifier/level.
392
+ * @integer
393
+ * @minimum 1
394
+ * @maximum 6
395
+ */
396
+ initial_modification_level: number;
397
+ /**
398
+ * The sustain interval.
399
+ */
400
+ interval: Duration.UnitValue;
401
+ } | {
402
+ tag: "NonModifiable";
403
+ /**
404
+ * If `true`, the non-modifiable value is a minimum value.
405
+ */
406
+ is_minimum?: boolean;
407
+ /**
408
+ * The AE cost value.
409
+ * @integer
410
+ * @minimum 1
411
+ */
412
+ value: number;
413
+ /**
414
+ * The sustain interval.
415
+ */
416
+ interval: Duration.UnitValue;
417
+ };
418
+ }
419
+ }
420
+ export declare namespace Range {
421
+ type T = {
422
+ value: RangeValue;
423
+ /**
424
+ * All translations for the entry, identified by IETF language tag (BCP47).
425
+ * @minProperties 1
426
+ */
427
+ translations?: {
428
+ /**
429
+ * @patternProperties ^[a-z]{2}-[A-Z]{2}$
430
+ */
431
+ [localeId: string]: {
432
+ /**
433
+ * A note, appended to the generated string in parenthesis.
434
+ */
435
+ note: {
436
+ /**
437
+ * The full note.
438
+ * @minLength 1
439
+ */
440
+ default: string;
441
+ /**
442
+ * A compressed note, if applicable. If not specified it should not
443
+ * be displayed in small location.
444
+ * @minLength 1
445
+ */
446
+ compressed?: string;
447
+ };
448
+ };
449
+ };
450
+ };
451
+ type RangeValue = {
452
+ tag: "Modifiable";
453
+ /**
454
+ * The initial skill modification identifier/level.
455
+ * @integer
456
+ * @minimum 1
457
+ * @maximum 6
458
+ */
459
+ initial_modification_level: number;
460
+ } | {
461
+ tag: "Sight";
462
+ } | {
463
+ tag: "Self";
464
+ } | {
465
+ /**
466
+ * German: *dereumfassend*
467
+ */
468
+ tag: "Global";
469
+ } | {
470
+ tag: "Fixed";
471
+ /**
472
+ * The (unitless) range value.
473
+ * @integer
474
+ * @minimum 1
475
+ */
476
+ value: number;
477
+ /**
478
+ * The unit of the `value`.
479
+ */
480
+ unit: Unit;
481
+ } | {
482
+ tag: "CheckResultBased";
483
+ /**
484
+ * The base value that is derived from the check result.
485
+ */
486
+ base: Duration.CheckResultValue;
487
+ /**
488
+ * If defined, it modifies the base value.
489
+ */
490
+ modifier?: {
491
+ /**
492
+ * The arithmetic how to apply the `value` to the `base`.
493
+ */
494
+ arithmetic: Duration.CheckResultArithmetic;
495
+ /**
496
+ * The value that is applied to the `base` using the defined `arithmetic`.
497
+ * @integer
498
+ * @minimum 2
499
+ */
500
+ value: number;
501
+ };
502
+ /**
503
+ * The range unit.
504
+ */
505
+ unit: Unit;
506
+ };
507
+ enum Unit {
508
+ Steps = "Steps",
509
+ Miles = "Miles"
510
+ }
511
+ }
512
+ export declare namespace Duration {
513
+ namespace OneTime {
514
+ type T = {
515
+ tag: "Immediate";
516
+ /**
517
+ * Specified if the duration has a maximum time span.
518
+ */
519
+ maximum?: UnitValue;
520
+ /**
521
+ * All translations for the entry, identified by IETF language tag (BCP47).
522
+ * @minProperties 1
523
+ */
524
+ translations?: {
525
+ /**
526
+ * @patternProperties ^[a-z]{2}-[A-Z]{2}$
527
+ */
528
+ [localeId: string]: {
529
+ /**
530
+ * A replacement string.
531
+ */
532
+ replacement: {
533
+ /**
534
+ * The full replacement string. It must contain `$1`, which is
535
+ * going to be replaced with the generated duration string, so
536
+ * additional information can be provided without duplicating
537
+ * concrete numeric values.
538
+ * @minLength 1
539
+ * @pattern \$1
540
+ */
541
+ default: string;
542
+ /**
543
+ * A compressed replacement string for use in small areas (e.g. on
544
+ * character sheet). It must contain `$1`, which is going to be
545
+ * replaced with the generated duration string, so additional
546
+ * information can be provided without duplicating concrete
547
+ * numeric values.
548
+ * @minLength 1
549
+ * @pattern \$1
550
+ */
551
+ compressed: string;
552
+ };
553
+ };
554
+ };
555
+ } | {
556
+ tag: "Permanent";
557
+ /**
558
+ * All translations for the entry, identified by IETF language tag (BCP47).
559
+ * @minProperties 1
560
+ */
561
+ translations?: {
562
+ /**
563
+ * @patternProperties ^[a-z]{2}-[A-Z]{2}$
564
+ */
565
+ [localeId: string]: {
566
+ /**
567
+ * A replacement string.
568
+ */
569
+ replacement: {
570
+ /**
571
+ * The full replacement string. It must contain `$1`, which is
572
+ * going to be replaced with the generated duration string, so
573
+ * additional information can be provided without duplicating
574
+ * concrete numeric values.
575
+ * @minLength 1
576
+ * @pattern \$1
577
+ */
578
+ default: string;
579
+ /**
580
+ * A compressed replacement string for use in small areas (e.g. on
581
+ * character sheet). It must contain `$1`, which is going to be
582
+ * replaced with the generated duration string, so additional
583
+ * information can be provided without duplicating concrete
584
+ * numeric values.
585
+ * @minLength 1
586
+ * @pattern \$1
587
+ */
588
+ compressed: string;
589
+ };
590
+ };
591
+ };
592
+ } | {
593
+ tag: "Fixed";
594
+ /**
595
+ * If the duration is the maximum duration, so it may end earlier.
596
+ */
597
+ is_maximum?: boolean;
598
+ /**
599
+ * The (unitless) duration.
600
+ * @integer
601
+ * @minimum 2
602
+ */
603
+ value: number;
604
+ /**
605
+ * The duration unit.
606
+ */
607
+ unit: Duration.Unit;
608
+ /**
609
+ * All translations for the entry, identified by IETF language tag (BCP47).
610
+ * @minProperties 1
611
+ */
612
+ translations?: {
613
+ /**
614
+ * @patternProperties ^[a-z]{2}-[A-Z]{2}$
615
+ */
616
+ [localeId: string]: {
617
+ /**
618
+ * A replacement string.
619
+ */
620
+ replacement: {
621
+ /**
622
+ * The full replacement string. It must contain `$1`, which is
623
+ * going to be replaced with the generated duration string, so
624
+ * additional information can be provided without duplicating
625
+ * concrete numeric values.
626
+ * @minLength 1
627
+ * @pattern \$1
628
+ */
629
+ default: string;
630
+ /**
631
+ * A compressed replacement string for use in small areas (e.g. on
632
+ * character sheet). It must contain `$1`, which is going to be
633
+ * replaced with the generated duration string, so additional
634
+ * information can be provided without duplicating concrete
635
+ * numeric values.
636
+ * @minLength 1
637
+ * @pattern \$1
638
+ */
639
+ compressed: string;
640
+ };
641
+ };
642
+ };
643
+ } | {
644
+ tag: "CheckResultBased";
645
+ /**
646
+ * If the duration is the maximum duration, so it may end earlier.
647
+ */
648
+ is_maximum?: boolean;
649
+ /**
650
+ * The base value that is derived from the check result.
651
+ */
652
+ base: Duration.CheckResultValue;
653
+ /**
654
+ * If defined, it modifies the base value.
655
+ */
656
+ modifier?: {
657
+ /**
658
+ * The arithmetic how to apply the `value` to the `base`.
659
+ */
660
+ arithmetic: Duration.CheckResultArithmetic;
661
+ /**
662
+ * The value that is applied to the `base` using the defined
663
+ * `arithmetic`.
664
+ * @integer
665
+ * @minimum 2
666
+ */
667
+ value: number;
668
+ };
669
+ /**
670
+ * The duration unit.
671
+ */
672
+ unit: Duration.Unit;
673
+ /**
674
+ * All translations for the entry, identified by IETF language tag (BCP47).
675
+ * @minProperties 1
676
+ */
677
+ translations?: {
678
+ /**
679
+ * @patternProperties ^[a-z]{2}-[A-Z]{2}$
680
+ */
681
+ [localeId: string]: {
682
+ /**
683
+ * A replacement string.
684
+ */
685
+ replacement: {
686
+ /**
687
+ * The full replacement string. It must contain `$1`, which is
688
+ * going to be replaced with the generated duration string, so
689
+ * additional information can be provided without duplicating
690
+ * concrete numeric values.
691
+ * @minLength 1
692
+ * @pattern \$1
693
+ */
694
+ default: string;
695
+ /**
696
+ * A compressed replacement string for use in small areas (e.g. on
697
+ * character sheet). It must contain `$1`, which is going to be
698
+ * replaced with the generated duration string, so additional
699
+ * information can be provided without duplicating concrete
700
+ * numeric values.
701
+ * @minLength 1
702
+ * @pattern \$1
703
+ */
704
+ compressed: string;
705
+ };
706
+ };
707
+ };
708
+ } | {
709
+ tag: "Indefinite";
710
+ /**
711
+ * All translations for the entry, identified by IETF language tag (BCP47).
712
+ * @minProperties 1
713
+ */
714
+ translations: {
715
+ /**
716
+ * @patternProperties ^[a-z]{2}-[A-Z]{2}$
717
+ */
718
+ [localeId: string]: {
719
+ /**
720
+ * A description of the duration.
721
+ */
722
+ description: {
723
+ /**
724
+ * The full description of the duration.
725
+ * @minLength 1
726
+ */
727
+ default: string;
728
+ /**
729
+ * A compressed description of the duration for use in small areas
730
+ * (e.g. on character sheet).
731
+ * @minLength 1
732
+ */
733
+ compressed: string;
734
+ };
735
+ };
736
+ };
737
+ };
738
+ }
739
+ /**
740
+ * Defines the duration being based on a check result.
741
+ */
742
+ type CheckResultBased = {
743
+ /**
744
+ * The base value that is derived from the check result.
745
+ */
746
+ base: CheckResultValue;
747
+ /**
748
+ * If defined, it modifies the base value.
749
+ */
750
+ modifier?: {
751
+ /**
752
+ * The arithmetic how to apply the `value` to the `base`.
753
+ */
754
+ arithmetic: CheckResultArithmetic;
755
+ /**
756
+ * The value that is applied to the `base` using the defined `arithmetic`.
757
+ * @integer
758
+ * @minimum 2
759
+ */
760
+ value: number;
761
+ };
762
+ /**
763
+ * The duration unit.
764
+ */
765
+ unit: Unit;
766
+ };
767
+ /**
768
+ * Defines the duration being based on a check result.
769
+ */
770
+ type CheckResultBasedTagged = {
771
+ tag: "CheckResultBased";
772
+ /**
773
+ * The base value that is derived from the check result.
774
+ */
775
+ base: CheckResultValue;
776
+ /**
777
+ * If defined, it modifies the base value.
778
+ */
779
+ modifier?: {
780
+ /**
781
+ * The arithmetic how to apply the `value` to the `base`.
782
+ */
783
+ arithmetic: CheckResultArithmetic;
784
+ /**
785
+ * The value that is applied to the `base` using the defined `arithmetic`.
786
+ * @integer
787
+ * @minimum 2
788
+ */
789
+ value: number;
790
+ };
791
+ /**
792
+ * The duration unit.
793
+ */
794
+ unit: Unit;
795
+ };
796
+ type CheckResultBasedTaggedAnimistPower = {
797
+ tag: "CheckResultBased";
798
+ /**
799
+ * If the duration is the maximum duration, so it may end earlier.
800
+ */
801
+ is_maximum?: boolean;
802
+ /**
803
+ * The base value that is derived from the check result.
804
+ */
805
+ base: Duration.CheckResultValue;
806
+ /**
807
+ * If defined, it modifies the base value.
808
+ */
809
+ modifier?: {
810
+ /**
811
+ * The arithmetic how to apply the `value` to the `base`.
812
+ */
813
+ arithmetic: Duration.CheckResultArithmetic;
814
+ /**
815
+ * The value that is applied to the `base` using the defined
816
+ * `arithmetic`.
817
+ * @integer
818
+ * @minimum 2
819
+ */
820
+ value: number;
821
+ };
822
+ /**
823
+ * The duration unit.
824
+ */
825
+ unit: Duration.Unit;
826
+ };
827
+ /**
828
+ * Defines the derived (unitless) value.
829
+ */
830
+ type CheckResultValue = {
831
+ tag: "QualityLevels";
832
+ } | {
833
+ tag: "SkillPoints";
834
+ };
835
+ /**
836
+ * Defines how the the `value` is set off against the check result.
837
+ */
838
+ type CheckResultArithmetic = {
839
+ tag: "Multiply";
840
+ } | {
841
+ tag: "Divide";
842
+ };
843
+ namespace Sustained {
844
+ type T = {
845
+ /**
846
+ * The sustained skill can be active a maximum amount of time.
847
+ */
848
+ maximum: UnitValue;
849
+ };
850
+ }
851
+ enum Unit {
852
+ Seconds = "Seconds",
853
+ Minutes = "Minutes",
854
+ Hours = "Hours",
855
+ Days = "Days",
856
+ Weeks = "Weeks",
857
+ Months = "Months",
858
+ Years = "Years",
859
+ CombatRounds = "CombatRounds"
860
+ }
861
+ type UnitValue = {
862
+ /**
863
+ * The (unitless) duration value.
864
+ * @integer
865
+ * @minimum 1
866
+ */
867
+ value: number;
868
+ /**
869
+ * The unit of the `value`.
870
+ */
871
+ unit: Duration.Unit;
872
+ };
873
+ }
874
+ export declare namespace TargetCategory {
875
+ export type T = {
876
+ tag: "All";
877
+ } | {
878
+ tag: "Specific";
879
+ /**
880
+ * @minItems 1
881
+ */
882
+ list: {
883
+ id: Identifier;
884
+ /**
885
+ * All translations for the entry, identified by IETF language tag (BCP47).
886
+ * @minProperties 1
887
+ */
888
+ translations?: {
889
+ /**
890
+ * @patternProperties ^[a-z]{2}-[A-Z]{2}$
891
+ */
892
+ [localeId: string]: {
893
+ /**
894
+ * A note, appended to the generated string in parenthesis.
895
+ * @minLength 1
896
+ */
897
+ note: string;
898
+ };
899
+ };
900
+ }[];
901
+ };
902
+ type Identifier = {
903
+ tag: "Self";
904
+ } | {
905
+ tag: "Zone";
906
+ } | {
907
+ tag: "LiturgicalChantsAndCeremonies";
908
+ } | {
909
+ tag: "Predefined";
910
+ /**
911
+ * The target category reference identifier.
912
+ * @integer
913
+ * @minimum 1
914
+ * @maximum 24
915
+ */
916
+ id: number;
917
+ };
918
+ export {};
919
+ }