optolith-database-schema 0.1.17 → 0.1.20

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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,33 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ### [0.1.20](https://github.com/elyukai/optolith-database-schema/compare/v0.1.19...v0.1.20) (2022-03-22)
6
+
7
+
8
+ ### Features
9
+
10
+ * services can be for multiple creature types ([1853485](https://github.com/elyukai/optolith-database-schema/commit/1853485aea88c38339b5ad5d3396aef7dc263888))
11
+
12
+ ### [0.1.19](https://github.com/elyukai/optolith-database-schema/compare/v0.1.18...v0.1.19) (2022-03-21)
13
+
14
+
15
+ ### Features
16
+
17
+ * add maximum and radius options to ranges ([2b7b579](https://github.com/elyukai/optolith-database-schema/commit/2b7b579e1ee3b82bb7d779e19c373935816ff8d8))
18
+
19
+ ### [0.1.18](https://github.com/elyukai/optolith-database-schema/compare/v0.1.17...v0.1.18) (2022-03-21)
20
+
21
+
22
+ ### Features
23
+
24
+ * animist powers can have prerequisites ([3fa06f4](https://github.com/elyukai/optolith-database-schema/commit/3fa06f41cbf84a0fbe54d51b5c2adb78d8c74129))
25
+ * derived animist power costs can have notes ([3ca4f3e](https://github.com/elyukai/optolith-database-schema/commit/3ca4f3edb30847fdf1878a8ed56943930be30d9d))
26
+
27
+
28
+ ### Bug Fixes
29
+
30
+ * wrong discriminator for race prerequisite ([dea373f](https://github.com/elyukai/optolith-database-schema/commit/dea373f141a1a64f95dc8f33a3ecbfb0f7d51993))
31
+
5
32
  ### [0.1.17](https://github.com/elyukai/optolith-database-schema/compare/v0.1.16...v0.1.17) (2022-03-21)
6
33
 
7
34
 
@@ -4,7 +4,7 @@
4
4
  import { Errata } from "./source/_Erratum.js";
5
5
  import { PublicationRefs } from "./source/_PublicationRef.js";
6
6
  /**
7
- * @title Service of Summoned Creatures
7
+ * @title Service of Summoned Creatures and Monstrosities
8
8
  */
9
9
  export declare type Service = {
10
10
  /**
@@ -13,6 +13,16 @@ export declare type Service = {
13
13
  * @minimum 1
14
14
  */
15
15
  id: number;
16
+ /**
17
+ * Defines for which creature type(s) the service is available.
18
+ * @minItems 1
19
+ * @uniqueItems
20
+ */
21
+ availability: ({
22
+ tag: "SummonedCreatures";
23
+ } | {
24
+ tag: "Monstrosities";
25
+ })[];
16
26
  src: PublicationRefs;
17
27
  /**
18
28
  * All translations for the entry, identified by IETF language tag (BCP47).
@@ -532,6 +532,10 @@ export declare namespace Range {
532
532
  };
533
533
  type RangeValue = {
534
534
  tag: "Modifiable";
535
+ /**
536
+ * If `true`, the range is a maximum range.
537
+ */
538
+ is_maximum?: true;
535
539
  /**
536
540
  * The initial skill modification identifier/level.
537
541
  * @integer
@@ -539,6 +543,10 @@ export declare namespace Range {
539
543
  * @maximum 6
540
544
  */
541
545
  initial_modification_level: number;
546
+ /**
547
+ * If `true`, the range is a radius.
548
+ */
549
+ is_radius?: true;
542
550
  } | {
543
551
  tag: "Sight";
544
552
  } | {
@@ -550,6 +558,10 @@ export declare namespace Range {
550
558
  tag: "Global";
551
559
  } | {
552
560
  tag: "Fixed";
561
+ /**
562
+ * If `true`, the range is a maximum range.
563
+ */
564
+ is_maximum?: true;
553
565
  /**
554
566
  * The (unitless) range value.
555
567
  * @integer
@@ -560,8 +572,16 @@ export declare namespace Range {
560
572
  * The unit of the `value`.
561
573
  */
562
574
  unit: Unit;
575
+ /**
576
+ * If `true`, the range is a radius.
577
+ */
578
+ is_radius?: true;
563
579
  } | {
564
580
  tag: "CheckResultBased";
581
+ /**
582
+ * If `true`, the range is a maximum range.
583
+ */
584
+ is_maximum?: true;
565
585
  /**
566
586
  * The base value that is derived from the check result.
567
587
  */
@@ -585,6 +605,10 @@ export declare namespace Range {
585
605
  * The range unit.
586
606
  */
587
607
  unit: Unit;
608
+ /**
609
+ * If `true`, the range is a radius.
610
+ */
611
+ is_radius?: true;
588
612
  };
589
613
  enum Unit {
590
614
  Steps = "Steps",
@@ -5,6 +5,7 @@ import { Errata } from "../source/_Erratum.js";
5
5
  import { PublicationRefs } from "../source/_PublicationRef.js";
6
6
  import { Duration, Effect } from "../_ActivatableSkill.js";
7
7
  import { ImprovementCost } from "../_ImprovementCost.js";
8
+ import { AnimistPowerPrerequisites } from "../_Prerequisite.js";
8
9
  import { SkillCheck } from "../_SkillCheck.js";
9
10
  /**
10
11
  * @title Animist Power
@@ -63,6 +64,7 @@ export declare type AnimistPower = {
63
64
  } | {
64
65
  tag: "ByPrimaryPatron";
65
66
  };
67
+ prerequisites?: AnimistPowerPrerequisites;
66
68
  /**
67
69
  * The animist power can have multiple levels. Each level is skilled
68
70
  * separately. A previous level must be on at least 10 so that the next higher
@@ -180,6 +182,35 @@ declare type PerformanceParameters = {
180
182
  * interval.
181
183
  */
182
184
  interval?: Duration.UnitValue;
185
+ /**
186
+ * All translations for the entry, identified by IETF language tag
187
+ * (BCP47).
188
+ * @minProperties 1
189
+ */
190
+ translations?: {
191
+ /**
192
+ * @patternProperties ^[a-z]{2}-[A-Z]{2}$
193
+ * @minProperties 1
194
+ */
195
+ [localeId: string]: {
196
+ /**
197
+ * A note, appended to the generated string in parenthesis.
198
+ */
199
+ note?: {
200
+ /**
201
+ * The full note.
202
+ * @minLength 1
203
+ */
204
+ default: string;
205
+ /**
206
+ * A compressed note, if applicable. If not specified it should not
207
+ * be displayed in small location.
208
+ * @minLength 1
209
+ */
210
+ compressed?: string;
211
+ };
212
+ };
213
+ };
183
214
  };
184
215
  /**
185
216
  * The duration.
@@ -227,6 +258,35 @@ declare type PerformanceParameters = {
227
258
  * Half of the AE cost `value` has to be paid each interval.
228
259
  */
229
260
  interval: Duration.UnitValue;
261
+ /**
262
+ * All translations for the entry, identified by IETF language tag
263
+ * (BCP47).
264
+ * @minProperties 1
265
+ */
266
+ translations?: {
267
+ /**
268
+ * @patternProperties ^[a-z]{2}-[A-Z]{2}$
269
+ * @minProperties 1
270
+ */
271
+ [localeId: string]: {
272
+ /**
273
+ * A note, appended to the generated string in parenthesis.
274
+ */
275
+ note?: {
276
+ /**
277
+ * The full note.
278
+ * @minLength 1
279
+ */
280
+ default: string;
281
+ /**
282
+ * A compressed note, if applicable. If not specified it should not
283
+ * be displayed in small location.
284
+ * @minLength 1
285
+ */
286
+ compressed?: string;
287
+ };
288
+ };
289
+ };
230
290
  };
231
291
  };
232
292
  export declare const validateSchema: import("../../validation/schema.js").TypeValidator<AnimistPower>;
@@ -7,7 +7,7 @@ import { DisplayOption } from "../DisplayOption.js";
7
7
  * @title Race Prerequisite
8
8
  */
9
9
  export declare type RacePrerequisite = {
10
- tag: "Culture";
10
+ tag: "Race";
11
11
  id: OneOrManyNumericIdentifiers;
12
12
  active: boolean;
13
13
  display_option?: DisplayOption;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "optolith-database-schema",
3
- "version": "0.1.17",
3
+ "version": "0.1.20",
4
4
  "description": "Definitions and utilities for the flat-file database of Optolith, a character creation tool for the Pen and Paper RPG “The Dark Eye 5”, and its external integrations into other software.",
5
5
  "keywords": [
6
6
  "tde",
@@ -4,7 +4,7 @@
4
4
  "$ref": "#/definitions/Service",
5
5
  "definitions": {
6
6
  "Service": {
7
- "title": "Service of Summoned Creatures",
7
+ "title": "Service of Summoned Creatures and Monstrosities",
8
8
  "type": "object",
9
9
  "properties": {
10
10
  "id": {
@@ -12,6 +12,40 @@
12
12
  "type": "integer",
13
13
  "minimum": 1
14
14
  },
15
+ "availability": {
16
+ "description": "Defines for which creature type(s) the service is available.",
17
+ "type": "array",
18
+ "items": {
19
+ "oneOf": [
20
+ {
21
+ "type": "object",
22
+ "properties": {
23
+ "tag": {
24
+ "const": "SummonedCreatures"
25
+ }
26
+ },
27
+ "required": [
28
+ "tag"
29
+ ],
30
+ "additionalProperties": false
31
+ },
32
+ {
33
+ "type": "object",
34
+ "properties": {
35
+ "tag": {
36
+ "const": "Monstrosities"
37
+ }
38
+ },
39
+ "required": [
40
+ "tag"
41
+ ],
42
+ "additionalProperties": false
43
+ }
44
+ ]
45
+ },
46
+ "minItems": 1,
47
+ "uniqueItems": true
48
+ },
15
49
  "src": {
16
50
  "$ref": "./source/_PublicationRef.schema.json#/definitions/PublicationRefs"
17
51
  },
@@ -49,6 +83,7 @@
49
83
  },
50
84
  "required": [
51
85
  "id",
86
+ "availability",
52
87
  "src",
53
88
  "translations"
54
89
  ],
@@ -922,11 +922,19 @@
922
922
  "tag": {
923
923
  "const": "Modifiable"
924
924
  },
925
+ "is_maximum": {
926
+ "description": "If `true`, the range is a maximum range.",
927
+ "const": true
928
+ },
925
929
  "initial_modification_level": {
926
930
  "description": "The initial skill modification identifier/level.",
927
931
  "type": "integer",
928
932
  "maximum": 6,
929
933
  "minimum": 1
934
+ },
935
+ "is_radius": {
936
+ "description": "If `true`, the range is a radius.",
937
+ "const": true
930
938
  }
931
939
  },
932
940
  "required": [
@@ -978,6 +986,10 @@
978
986
  "tag": {
979
987
  "const": "Fixed"
980
988
  },
989
+ "is_maximum": {
990
+ "description": "If `true`, the range is a maximum range.",
991
+ "const": true
992
+ },
981
993
  "value": {
982
994
  "description": "The (unitless) range value.",
983
995
  "type": "integer",
@@ -986,6 +998,10 @@
986
998
  "unit": {
987
999
  "description": "The unit of the `value`.",
988
1000
  "$ref": "#/definitions/Range/Unit"
1001
+ },
1002
+ "is_radius": {
1003
+ "description": "If `true`, the range is a radius.",
1004
+ "const": true
989
1005
  }
990
1006
  },
991
1007
  "required": [
@@ -1001,6 +1017,10 @@
1001
1017
  "tag": {
1002
1018
  "const": "CheckResultBased"
1003
1019
  },
1020
+ "is_maximum": {
1021
+ "description": "If `true`, the range is a maximum range.",
1022
+ "const": true
1023
+ },
1004
1024
  "base": {
1005
1025
  "description": "The base value that is derived from the check result.",
1006
1026
  "$ref": "#/definitions/Duration/CheckResultValue"
@@ -1028,6 +1048,10 @@
1028
1048
  "unit": {
1029
1049
  "description": "The range unit.",
1030
1050
  "$ref": "#/definitions/Range/Unit"
1051
+ },
1052
+ "is_radius": {
1053
+ "description": "If `true`, the range is a radius.",
1054
+ "const": true
1031
1055
  }
1032
1056
  },
1033
1057
  "required": [
@@ -109,6 +109,9 @@
109
109
  }
110
110
  ]
111
111
  },
112
+ "prerequisites": {
113
+ "$ref": "../_Prerequisite.schema.json#/definitions/AnimistPowerPrerequisites"
114
+ },
112
115
  "levels": {
113
116
  "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
117
  "type": "array",
@@ -287,6 +290,42 @@
287
290
  "interval": {
288
291
  "description": "If defined, half of the AE cost `value` has to be paid each\ninterval.",
289
292
  "$ref": "../_ActivatableSkill.schema.json#/definitions/Duration/UnitValue"
293
+ },
294
+ "translations": {
295
+ "description": "All translations for the entry, identified by IETF language tag\n(BCP47).",
296
+ "type": "object",
297
+ "patternProperties": {
298
+ "^[a-z]{2}-[A-Z]{2}$": {
299
+ "type": "object",
300
+ "properties": {
301
+ "note": {
302
+ "description": "A note, appended to the generated string in parenthesis.",
303
+ "type": "object",
304
+ "properties": {
305
+ "default": {
306
+ "description": "The full note.",
307
+ "type": "string",
308
+ "minLength": 1
309
+ },
310
+ "compressed": {
311
+ "description": "A compressed note, if applicable. If not specified it should not\nbe displayed in small location.",
312
+ "type": "string",
313
+ "minLength": 1
314
+ }
315
+ },
316
+ "required": [
317
+ "default"
318
+ ],
319
+ "additionalProperties": false
320
+ }
321
+ },
322
+ "required": [],
323
+ "minProperties": 1,
324
+ "additionalProperties": false
325
+ }
326
+ },
327
+ "minProperties": 1,
328
+ "additionalProperties": false
290
329
  }
291
330
  },
292
331
  "required": [
@@ -392,6 +431,42 @@
392
431
  "interval": {
393
432
  "description": "Half of the AE cost `value` has to be paid each interval.",
394
433
  "$ref": "../_ActivatableSkill.schema.json#/definitions/Duration/UnitValue"
434
+ },
435
+ "translations": {
436
+ "description": "All translations for the entry, identified by IETF language tag\n(BCP47).",
437
+ "type": "object",
438
+ "patternProperties": {
439
+ "^[a-z]{2}-[A-Z]{2}$": {
440
+ "type": "object",
441
+ "properties": {
442
+ "note": {
443
+ "description": "A note, appended to the generated string in parenthesis.",
444
+ "type": "object",
445
+ "properties": {
446
+ "default": {
447
+ "description": "The full note.",
448
+ "type": "string",
449
+ "minLength": 1
450
+ },
451
+ "compressed": {
452
+ "description": "A compressed note, if applicable. If not specified it should not\nbe displayed in small location.",
453
+ "type": "string",
454
+ "minLength": 1
455
+ }
456
+ },
457
+ "required": [
458
+ "default"
459
+ ],
460
+ "additionalProperties": false
461
+ }
462
+ },
463
+ "required": [],
464
+ "minProperties": 1,
465
+ "additionalProperties": false
466
+ }
467
+ },
468
+ "minProperties": 1,
469
+ "additionalProperties": false
395
470
  }
396
471
  },
397
472
  "required": [
@@ -8,7 +8,7 @@
8
8
  "type": "object",
9
9
  "properties": {
10
10
  "tag": {
11
- "const": "Culture"
11
+ "const": "Race"
12
12
  },
13
13
  "id": {
14
14
  "$ref": "../../_Identifier.schema.json#/definitions/OneOrManyNumericIdentifiers"