optolith-database-schema 0.41.0 → 0.42.0

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,24 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.
4
4
 
5
+ ## [0.42.0](https://github.com/elyukai/optolith-database-schema/compare/v0.41.0...v0.42.0) (2026-03-23)
6
+
7
+
8
+ ### ⚠ BREAKING CHANGES
9
+
10
+ * adjust translations for 0.41.0 schema changes
11
+ * do not confuse rules tab with rules term in entry texts
12
+ * require hair and eye color specifications
13
+
14
+ ### Features
15
+
16
+ * add familiars trick magical tradition restriction ([5c8a164](https://github.com/elyukai/optolith-database-schema/commit/5c8a164428d3e2a706bf07f106e1c7aecc8cb1af)), closes [#126](https://github.com/elyukai/optolith-database-schema/issues/126) [#106](https://github.com/elyukai/optolith-database-schema/issues/106)
17
+ * adjust translations for 0.41.0 schema changes ([849fca4](https://github.com/elyukai/optolith-database-schema/commit/849fca45dbfcd48e8fa99a30ee375d37738c55f3))
18
+ * do not confuse rules tab with rules term in entry texts ([7d8bcd8](https://github.com/elyukai/optolith-database-schema/commit/7d8bcd89baebcea6db20c442cb26aa48ea9268cc))
19
+ * hair color label and hair color count ([750ddb1](https://github.com/elyukai/optolith-database-schema/commit/750ddb154824ab1e2de557084655297aa19e86fd)), closes [#116](https://github.com/elyukai/optolith-database-schema/issues/116)
20
+ * require hair and eye color specifications ([99466ed](https://github.com/elyukai/optolith-database-schema/commit/99466ed0eec6676c0a8a0259bfc7480988284f41))
21
+ * skill rating as check-result-based base value ([bd931ff](https://github.com/elyukai/optolith-database-schema/commit/bd931ffcb671e7b34a79d8d3f6b11da586a21859)), closes [#125](https://github.com/elyukai/optolith-database-schema/issues/125)
22
+
5
23
  ## [0.41.0](https://github.com/elyukai/optolith-database-schema/compare/v0.40.0...v0.41.0) (2026-03-21)
6
24
 
7
25
 
package/gen/types.d.ts CHANGED
@@ -1222,7 +1222,7 @@ export interface Locale {
1222
1222
  "Personal Data": string
1223
1223
  "Character Sheet": string
1224
1224
  "Pact": string
1225
- "Rules": string
1225
+ "Rule Set": string
1226
1226
  "Race, Culture & Profession": string
1227
1227
  "Race": string
1228
1228
  "Culture": string
@@ -1887,6 +1887,7 @@ export interface Locale {
1887
1887
  "CD": string
1888
1888
  "Object": string
1889
1889
  "Effect": string
1890
+ "Rules": string
1890
1891
  "Casting Time": string
1891
1892
  "Ritual Time": string
1892
1893
  "Liturgical Time": string
@@ -2484,6 +2485,8 @@ export interface Locale {
2484
2485
  ".input {$value :number} {{{$value}%}}": string & { __params: { "value": number } }
2485
2486
  "Animal Types": string
2486
2487
  "Communicability to Intelligent Creatures": string
2488
+ "childhood disease": string
2489
+ "magical disease": string
2487
2490
  "Can be combined with": string
2488
2491
  "Skill": string
2489
2492
  "{$defaultDuration}, but no more than {$maximumDuration}": string & { __params: { "defaultDuration": StringableTranslationParameter; "maximumDuration": StringableTranslationParameter } }
@@ -2503,10 +2506,7 @@ export interface Locale {
2503
2506
  "All AE": string
2504
2507
  "All AE, at least {$value} AE": string & { __params: { "value": StringableTranslationParameter } }
2505
2508
  "depends on spent AE": string
2506
- "Life Point Base Value": string
2507
- "Spirit Base Value": string
2508
- "Toughness Base Value": string
2509
- "Movement Base Value": string
2509
+ "{$derivedCharacteristic} Base Value": string & { __params: { "derivedCharacteristic": StringableTranslationParameter } }
2510
2510
  "Attribute Adjustments": string
2511
2511
  "one attribute of your choice": string
2512
2512
  "Common Cultures": string
@@ -2546,12 +2546,13 @@ export interface Locale {
2546
2546
  "no Skill Specialization for a {$skillOfGroup}": string & { __params: { "skillOfGroup": StringableTranslationParameter } }
2547
2547
  ".input {$count :number} {{{$count} of the following combat techniques {$rating}}}": string & { __params: { "count": number; "rating": StringableTranslationParameter } }
2548
2548
  ".input {$count :number} {{{$previous}, {$count} others {$rating}}}": string & { __params: { "count": number; "previous": StringableTranslationParameter; "rating": StringableTranslationParameter } }
2549
- "{$previous}, all others {$rating}": string & { __params: { "previous": StringableTranslationParameter; "rating": StringableTranslationParameter } }
2549
+ "{$previous}, the others {$rating}": string & { __params: { "previous": StringableTranslationParameter; "rating": StringableTranslationParameter } }
2550
2550
  "Curses totaling {$apValue} AP": string & { __params: { "apValue": StringableTranslationParameter } }
2551
2551
  "no Curses totaling {$apValue} AP": string & { __params: { "apValue": StringableTranslationParameter } }
2552
2552
  "Liturgies totaling {$apValue} AP": string & { __params: { "apValue": StringableTranslationParameter } }
2553
2553
  "no Liturgies totaling {$apValue} AP": string & { __params: { "apValue": StringableTranslationParameter } }
2554
2554
  "{$apValue} AP to improve other {$skillsOfGroup}": string & { __params: { "apValue": StringableTranslationParameter; "skillsOfGroup": StringableTranslationParameter } }
2555
+ "{$apValue} AP to distribute among the following skills: {$list}": string & { __params: { "apValue": StringableTranslationParameter; "list": StringableTranslationParameter } }
2555
2556
  "no AP to improve other {$skillsOfGroup}": string & { __params: { "skillsOfGroup": StringableTranslationParameter } }
2556
2557
  ".input {$count :number} {{{$count} cantrips}}": string & { __params: { "count": number } }
2557
2558
  "{$count} from the following list": string & { __params: { "count": StringableTranslationParameter } }
@@ -2562,6 +2563,9 @@ export interface Locale {
2562
2563
  "Enhancements": string
2563
2564
  "SR {$value}": string & { __params: { "value": StringableTranslationParameter } }
2564
2565
  ".input {$hiddenCount :number} {{Prerequisites}}": string & { __params: { "hiddenCount": number } }
2566
+ "Spell Enhancement {$spell}": string & { __params: { "spell": StringableTranslationParameter } }
2567
+ "Ritual Enhancement {$ritual}": string & { __params: { "ritual": StringableTranslationParameter } }
2568
+ "Liturgical Enhancement {$liturgicalChantOrCeremony}": string & { __params: { "liturgicalChantOrCeremony": StringableTranslationParameter } }
2565
2569
  "Profession Package": string
2566
2570
  "Optional Rule": string
2567
2571
  }
@@ -4387,6 +4391,11 @@ export interface Race {
4387
4391
  */
4388
4392
  strongly_recommended_disadvantages?: CommonnessRatedAdvantageDisadvantage<Disadvantage_ID>[]
4389
4393
 
4394
+ /**
4395
+ * How many different hair colors a race may have. By default, they have a single one that is for their whole body, but a race may have multiple if their hair color is different for different body parts. Additionally, if the hair color is labelled differently (e.g. scale color), there might be multiple colors for different body parts as well. This should only be set if the hair color count is higher than 1.
4396
+ */
4397
+ hairColorCount?: number
4398
+
4390
4399
  /**
4391
4400
  * Configuration for random weight generation.
4392
4401
  */
@@ -4460,6 +4469,11 @@ export interface RaceTranslation {
4460
4469
  */
4461
4470
  strongly_recommended_disadvantages?: string
4462
4471
 
4472
+ /**
4473
+ * The label for hair colors if it is not a hair color in that sense: Some races may have different labels for hair color such as scale color.
4474
+ */
4475
+ hairColorLabel?: string
4476
+
4463
4477
  errata?: Errata
4464
4478
  }
4465
4479
 
@@ -6083,6 +6097,9 @@ export type CheckResultValue =
6083
6097
  | {
6084
6098
  kind: "SkillPoints"
6085
6099
  }
6100
+ | {
6101
+ kind: "SkillRating"
6102
+ }
6086
6103
 
6087
6104
  export interface CheckResultBasedModifier {
6088
6105
  /**
@@ -19027,12 +19044,12 @@ export interface RaceVariant {
19027
19044
  /**
19028
19045
  * An array containing 20 (numeric) hair color identifiers. The array also represents the 20-sided die for a random hair color.
19029
19046
  */
19030
- hair_color?: [HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID]
19047
+ hair_color: [HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID, HairColor_ID]
19031
19048
 
19032
19049
  /**
19033
19050
  * An array containing 20 (numeric) eye color identifiers. The array also represents the 20-sided die for a random eye color.
19034
19051
  */
19035
- eye_color?: [EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID]
19052
+ eye_color: [EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID, EyeColor_ID]
19036
19053
 
19037
19054
  /**
19038
19055
  * Configuration for random height generation.
@@ -23554,10 +23571,17 @@ export interface FamiliarsTrick {
23554
23571
  /**
23555
23572
  * The animal types this trick is available to. Either it is available to all or only a list of specific animal types.
23556
23573
  *
23557
- * If no animal types are given, the animal disease applies to all animal types.
23574
+ * If no animal types are given, the familiars trick applies to all animal types.
23558
23575
  */
23559
23576
  animal_types: AnimalType_ID[]
23560
23577
 
23578
+ /**
23579
+ * The magical traditions whose familiars can use this trick. Either it is available to all or only a list of specific traditions.
23580
+ *
23581
+ * If no traditions are given, the familiars trick is not restricted by the magical tradition at all.
23582
+ */
23583
+ traditions?: MagicalTradition_ID[]
23584
+
23561
23585
  /**
23562
23586
  * Measurable parameters of a familiar’s trick.
23563
23587
  */
@@ -194,6 +194,7 @@ export declare const Ceremony: DB.Entity<"Ceremony", {
194
194
  base: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultValue", {
195
195
  QualityLevels: DB.EnumCase<null>;
196
196
  SkillPoints: DB.EnumCase<null>;
197
+ SkillRating: DB.EnumCase<null>;
197
198
  }, []>>, true>;
198
199
  modifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CheckResultBasedModifier", DB.Object<{
199
200
  arithmetic: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultArithmetic", {
@@ -279,6 +280,7 @@ export declare const Ceremony: DB.Entity<"Ceremony", {
279
280
  base: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultValue", {
280
281
  QualityLevels: DB.EnumCase<null>;
281
282
  SkillPoints: DB.EnumCase<null>;
283
+ SkillRating: DB.EnumCase<null>;
282
284
  }, []>>, true>;
283
285
  modifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CheckResultBasedModifier", DB.Object<{
284
286
  arithmetic: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultArithmetic", {
@@ -420,6 +422,7 @@ export declare const Ceremony: DB.Entity<"Ceremony", {
420
422
  base: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultValue", {
421
423
  QualityLevels: DB.EnumCase<null>;
422
424
  SkillPoints: DB.EnumCase<null>;
425
+ SkillRating: DB.EnumCase<null>;
423
426
  }, []>>, true>;
424
427
  modifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CheckResultBasedModifier", DB.Object<{
425
428
  arithmetic: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultArithmetic", {
@@ -1,6 +1,7 @@
1
1
  import * as DB from "tsondb/schema/dsl";
2
2
  export declare const FamiliarsTrick: DB.Entity<"FamiliarsTrick", {
3
3
  animal_types: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, true>;
4
+ traditions: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, false>;
4
5
  parameters: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"FamiliarsTrickPerformanceParameters", {
5
6
  OneTime: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"FamiliarsTrickOneTimePerformanceParameters", DB.Object<{
6
7
  cost: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"FamiliarsTrickOneTimeCost", {
@@ -2,7 +2,7 @@ import * as DB from "tsondb/schema/dsl";
2
2
  import { OldParameter } from "./_ActivatableSkill.js";
3
3
  import { IndefiniteOneTimeCost, NonModifiableOneTimeCostPerCountable, } from "./_ActivatableSkillCost.js";
4
4
  import { DurationUnitValue, FixedDuration, IndefiniteDuration, } from "./_ActivatableSkillDuration.js";
5
- import { AnimalTypeIdentifier, PropertyIdentifier } from "./_Identifier.js";
5
+ import { AnimalTypeIdentifier, MagicalTraditionIdentifier, PropertyIdentifier, } from "./_Identifier.js";
6
6
  import { ResponsiveText } from "./_ResponsiveText.js";
7
7
  import { NestedTranslationMap } from "./Locale.js";
8
8
  import { Errata } from "./source/_Erratum.js";
@@ -16,9 +16,15 @@ export const FamiliarsTrick = DB.Entity(import.meta.url, {
16
16
  animal_types: DB.Required({
17
17
  comment: `The animal types this trick is available to. Either it is available to all or only a list of specific animal types.
18
18
 
19
- If no animal types are given, the animal disease applies to all animal types.`,
19
+ If no animal types are given, the familiars trick applies to all animal types.`,
20
20
  type: DB.Array(AnimalTypeIdentifier(), { uniqueItems: true }),
21
21
  }),
22
+ traditions: DB.Optional({
23
+ comment: `The magical traditions whose familiars can use this trick. Either it is available to all or only a list of specific traditions.
24
+
25
+ If no traditions are given, the familiars trick is not restricted by the magical tradition at all.`,
26
+ type: DB.Array(MagicalTraditionIdentifier(), { uniqueItems: true, minItems: 1 }),
27
+ }),
22
28
  parameters: DB.Required({
23
29
  comment: "Measurable parameters of a familiar’s trick.",
24
30
  type: DB.IncludeIdentifier(FamiliarsTrickPerformanceParameters),
@@ -194,6 +194,7 @@ export declare const LiturgicalChant: DB.Entity<"LiturgicalChant", {
194
194
  base: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultValue", {
195
195
  QualityLevels: DB.EnumCase<null>;
196
196
  SkillPoints: DB.EnumCase<null>;
197
+ SkillRating: DB.EnumCase<null>;
197
198
  }, []>>, true>;
198
199
  modifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CheckResultBasedModifier", DB.Object<{
199
200
  arithmetic: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultArithmetic", {
@@ -279,6 +280,7 @@ export declare const LiturgicalChant: DB.Entity<"LiturgicalChant", {
279
280
  base: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultValue", {
280
281
  QualityLevels: DB.EnumCase<null>;
281
282
  SkillPoints: DB.EnumCase<null>;
283
+ SkillRating: DB.EnumCase<null>;
282
284
  }, []>>, true>;
283
285
  modifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CheckResultBasedModifier", DB.Object<{
284
286
  arithmetic: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultArithmetic", {
@@ -420,6 +422,7 @@ export declare const LiturgicalChant: DB.Entity<"LiturgicalChant", {
420
422
  base: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultValue", {
421
423
  QualityLevels: DB.EnumCase<null>;
422
424
  SkillPoints: DB.EnumCase<null>;
425
+ SkillRating: DB.EnumCase<null>;
423
426
  }, []>>, true>;
424
427
  modifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CheckResultBasedModifier", DB.Object<{
425
428
  arithmetic: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultArithmetic", {
@@ -75,7 +75,7 @@ export declare const Locale: DB.Entity<"Locale", {
75
75
  "Personal Data": null;
76
76
  "Character Sheet": null;
77
77
  Pact: null;
78
- Rules: null;
78
+ "Rule Set": null;
79
79
  "Race, Culture & Profession": null;
80
80
  Race: null;
81
81
  Culture: null;
@@ -902,6 +902,7 @@ export declare const Locale: DB.Entity<"Locale", {
902
902
  CD: null;
903
903
  Object: null;
904
904
  Effect: null;
905
+ Rules: null;
905
906
  "Casting Time": null;
906
907
  "Ritual Time": null;
907
908
  "Liturgical Time": null;
@@ -1514,6 +1515,8 @@ export declare const Locale: DB.Entity<"Locale", {
1514
1515
  ".input {$value :number} {{{$value}%}}": null;
1515
1516
  "Animal Types": null;
1516
1517
  "Communicability to Intelligent Creatures": null;
1518
+ "childhood disease": null;
1519
+ "magical disease": null;
1517
1520
  "Can be combined with": null;
1518
1521
  Skill: null;
1519
1522
  "{$defaultDuration}, but no more than {$maximumDuration}": null;
@@ -1533,10 +1536,7 @@ export declare const Locale: DB.Entity<"Locale", {
1533
1536
  "All AE": null;
1534
1537
  "All AE, at least {$value} AE": null;
1535
1538
  "depends on spent AE": null;
1536
- "Life Point Base Value": null;
1537
- "Spirit Base Value": null;
1538
- "Toughness Base Value": null;
1539
- "Movement Base Value": null;
1539
+ "{$derivedCharacteristic} Base Value": null;
1540
1540
  "Attribute Adjustments": null;
1541
1541
  "one attribute of your choice": null;
1542
1542
  "Common Cultures": null;
@@ -1576,12 +1576,13 @@ export declare const Locale: DB.Entity<"Locale", {
1576
1576
  "no Skill Specialization for a {$skillOfGroup}": null;
1577
1577
  ".input {$count :number} {{{$count} of the following combat techniques {$rating}}}": null;
1578
1578
  ".input {$count :number} {{{$previous}, {$count} others {$rating}}}": null;
1579
- "{$previous}, all others {$rating}": null;
1579
+ "{$previous}, the others {$rating}": null;
1580
1580
  "Curses totaling {$apValue} AP": null;
1581
1581
  "no Curses totaling {$apValue} AP": null;
1582
1582
  "Liturgies totaling {$apValue} AP": null;
1583
1583
  "no Liturgies totaling {$apValue} AP": null;
1584
1584
  "{$apValue} AP to improve other {$skillsOfGroup}": null;
1585
+ "{$apValue} AP to distribute among the following skills: {$list}": null;
1585
1586
  "no AP to improve other {$skillsOfGroup}": null;
1586
1587
  ".input {$count :number} {{{$count} cantrips}}": null;
1587
1588
  "{$count} from the following list": null;
@@ -1592,6 +1593,9 @@ export declare const Locale: DB.Entity<"Locale", {
1592
1593
  Enhancements: null;
1593
1594
  "SR {$value}": null;
1594
1595
  ".input {$hiddenCount :number} {{Prerequisites}}": null;
1596
+ "Spell Enhancement {$spell}": null;
1597
+ "Ritual Enhancement {$ritual}": null;
1598
+ "Liturgical Enhancement {$liturgicalChantOrCeremony}": null;
1595
1599
  "Profession Package": null;
1596
1600
  "Optional Rule": null;
1597
1601
  }>, false>;
@@ -94,7 +94,7 @@ export const Locale = DB.Entity(import.meta.url, {
94
94
  "Personal Data": null,
95
95
  "Character Sheet": null,
96
96
  "Pact": null,
97
- "Rules": null,
97
+ "Rule Set": null,
98
98
  "Race, Culture & Profession": null,
99
99
  "Race": null,
100
100
  "Culture": null,
@@ -926,6 +926,7 @@ export const Locale = DB.Entity(import.meta.url, {
926
926
  "CD": null,
927
927
  "Object": null,
928
928
  "Effect": null,
929
+ "Rules": null,
929
930
  "Casting Time": null,
930
931
  "Ritual Time": null,
931
932
  "Liturgical Time": null,
@@ -1558,6 +1559,8 @@ export const Locale = DB.Entity(import.meta.url, {
1558
1559
  ".input {$value :number} {{{$value}%}}": null,
1559
1560
  "Animal Types": null,
1560
1561
  "Communicability to Intelligent Creatures": null,
1562
+ "childhood disease": null,
1563
+ "magical disease": null,
1561
1564
  // personality traits
1562
1565
  "Can be combined with": null,
1563
1566
  // magical actions
@@ -1581,10 +1584,7 @@ export const Locale = DB.Entity(import.meta.url, {
1581
1584
  "All AE, at least {$value} AE": null,
1582
1585
  "depends on spent AE": null,
1583
1586
  // races
1584
- "Life Point Base Value": null,
1585
- "Spirit Base Value": null,
1586
- "Toughness Base Value": null,
1587
- "Movement Base Value": null,
1587
+ "{$derivedCharacteristic} Base Value": null,
1588
1588
  "Attribute Adjustments": null,
1589
1589
  "one attribute of your choice": null,
1590
1590
  "Common Cultures": null,
@@ -1626,12 +1626,13 @@ export const Locale = DB.Entity(import.meta.url, {
1626
1626
  "no Skill Specialization for a {$skillOfGroup}": null,
1627
1627
  ".input {$count :number} {{{$count} of the following combat techniques {$rating}}}": null,
1628
1628
  ".input {$count :number} {{{$previous}, {$count} others {$rating}}}": null,
1629
- "{$previous}, all others {$rating}": null,
1629
+ "{$previous}, the others {$rating}": null,
1630
1630
  "Curses totaling {$apValue} AP": null,
1631
1631
  "no Curses totaling {$apValue} AP": null,
1632
1632
  "Liturgies totaling {$apValue} AP": null,
1633
1633
  "no Liturgies totaling {$apValue} AP": null,
1634
1634
  "{$apValue} AP to improve other {$skillsOfGroup}": null,
1635
+ "{$apValue} AP to distribute among the following skills: {$list}": null,
1635
1636
  "no AP to improve other {$skillsOfGroup}": null,
1636
1637
  ".input {$count :number} {{{$count} cantrips}}": null,
1637
1638
  "{$count} from the following list": null,
@@ -1643,6 +1644,9 @@ export const Locale = DB.Entity(import.meta.url, {
1643
1644
  "Enhancements": null,
1644
1645
  "SR {$value}": null,
1645
1646
  ".input {$hiddenCount :number} {{Prerequisites}}": null,
1647
+ "Spell Enhancement {$spell}": null,
1648
+ "Ritual Enhancement {$ritual}": null,
1649
+ "Liturgical Enhancement {$liturgicalChantOrCeremony}": null,
1646
1650
  // Library Entry Subtitles
1647
1651
  "Profession Package": null,
1648
1652
  "Optional Rule": null,
@@ -22,6 +22,7 @@ export declare const Race: DB.Entity<"Race", {
22
22
  options: DB.MemberDecl<DB.String, true>;
23
23
  }>, false>;
24
24
  }>, [Identifier: DB.Param<"Identifier", DB.Type>]>>>, false>;
25
+ hairColorCount: DB.MemberDecl<DB.Integer, false>;
25
26
  weight: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"RandomWeightGeneration", DB.Object<{
26
27
  base: DB.MemberDecl<DB.Integer, true>;
27
28
  random: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"WeightDice", DB.Object<{
@@ -78,8 +79,8 @@ export declare const Race: DB.Entity<"Race", {
78
79
  options: DB.MemberDecl<DB.String, true>;
79
80
  }>, false>;
80
81
  }>, [Identifier: DB.Param<"Identifier", DB.Type>]>>>, false>;
81
- hair_color: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, false>;
82
- eye_color: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, false>;
82
+ hair_color: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, true>;
83
+ eye_color: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, true>;
83
84
  height: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"RandomHeightGeneration", DB.Object<{
84
85
  base: DB.MemberDecl<DB.Integer, true>;
85
86
  random: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"Dice", DB.Object<{
@@ -143,6 +144,7 @@ export declare const Race: DB.Entity<"Race", {
143
144
  automatic_disadvantages: DB.MemberDecl<DB.String, false>;
144
145
  strongly_recommended_advantages: DB.MemberDecl<DB.String, false>;
145
146
  strongly_recommended_disadvantages: DB.MemberDecl<DB.String, false>;
147
+ hairColorLabel: DB.MemberDecl<DB.String, false>;
146
148
  errata: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Errata", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"Erratum", DB.Object<{
147
149
  date: DB.MemberDecl<DB.Date, true>;
148
150
  description: DB.MemberDecl<DB.String, true>;
@@ -186,8 +188,8 @@ export declare const RaceVariant: DB.Entity<"RaceVariant", {
186
188
  options: DB.MemberDecl<DB.String, true>;
187
189
  }>, false>;
188
190
  }>, [Identifier: DB.Param<"Identifier", DB.Type>]>>>, false>;
189
- hair_color: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, false>;
190
- eye_color: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, false>;
191
+ hair_color: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, true>;
192
+ eye_color: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, true>;
191
193
  height: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"RandomHeightGeneration", DB.Object<{
192
194
  base: DB.MemberDecl<DB.Integer, true>;
193
195
  random: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"Dice", DB.Object<{
package/lib/types/Race.js CHANGED
@@ -38,6 +38,10 @@ export const Race = DB.Entity(import.meta.url, {
38
38
  comment: "A list of strongly recommended disadvantages.",
39
39
  type: DB.Array(DB.GenIncludeIdentifier(CommonnessRatedAdvantageDisadvantage, [DisadvantageIdentifier()]), { minItems: 1 }),
40
40
  }),
41
+ hairColorCount: DB.Optional({
42
+ comment: "How many different hair colors a race may have. By default, they have a single one that is for their whole body, but a race may have multiple if their hair color is different for different body parts. Additionally, if the hair color is labelled differently (e.g. scale color), there might be multiple colors for different body parts as well. This should only be set if the hair color count is higher than 1.",
43
+ type: DB.Integer({ minimum: 2 }),
44
+ }),
41
45
  weight: DB.Required({
42
46
  comment: "Configuration for random weight generation.",
43
47
  type: DB.IncludeIdentifier(RandomWeightGeneration),
@@ -91,6 +95,10 @@ export const Race = DB.Entity(import.meta.url, {
91
95
  comment: "The respective strongly recommended disadvantages text from the source book.",
92
96
  type: DB.String({ minLength: 1 }),
93
97
  }),
98
+ hairColorLabel: DB.Optional({
99
+ comment: "The label for hair colors if it is not a hair color in that sense: Some races may have different labels for hair color such as scale color.",
100
+ type: DB.String({ minLength: 1 }),
101
+ }),
94
102
  errata: DB.Optional({
95
103
  type: DB.IncludeIdentifier(Errata),
96
104
  }),
@@ -259,11 +267,11 @@ export const RaceVariant = DB.Entity(import.meta.url, {
259
267
  comment: "A list of uncommon disadvantages.",
260
268
  type: DB.Array(DB.GenIncludeIdentifier(CommonnessRatedAdvantageDisadvantage, [DisadvantageIdentifier()]), { minItems: 1 }),
261
269
  }),
262
- hair_color: DB.Optional({
270
+ hair_color: DB.Required({
263
271
  comment: "An array containing 20 (numeric) hair color identifiers. The array also represents the 20-sided die for a random hair color.",
264
272
  type: DB.Array(HairColorIdentifier(), { minItems: 20, maxItems: 20 }),
265
273
  }),
266
- eye_color: DB.Optional({
274
+ eye_color: DB.Required({
267
275
  comment: "An array containing 20 (numeric) eye color identifiers. The array also represents the 20-sided die for a random eye color.",
268
276
  type: DB.Array(EyeColorIdentifier(), { minItems: 20, maxItems: 20 }),
269
277
  }),
@@ -194,6 +194,7 @@ export declare const Ritual: DB.Entity<"Ritual", {
194
194
  base: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultValue", {
195
195
  QualityLevels: DB.EnumCase<null>;
196
196
  SkillPoints: DB.EnumCase<null>;
197
+ SkillRating: DB.EnumCase<null>;
197
198
  }, []>>, true>;
198
199
  modifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CheckResultBasedModifier", DB.Object<{
199
200
  arithmetic: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultArithmetic", {
@@ -279,6 +280,7 @@ export declare const Ritual: DB.Entity<"Ritual", {
279
280
  base: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultValue", {
280
281
  QualityLevels: DB.EnumCase<null>;
281
282
  SkillPoints: DB.EnumCase<null>;
283
+ SkillRating: DB.EnumCase<null>;
282
284
  }, []>>, true>;
283
285
  modifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CheckResultBasedModifier", DB.Object<{
284
286
  arithmetic: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultArithmetic", {
@@ -420,6 +422,7 @@ export declare const Ritual: DB.Entity<"Ritual", {
420
422
  base: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultValue", {
421
423
  QualityLevels: DB.EnumCase<null>;
422
424
  SkillPoints: DB.EnumCase<null>;
425
+ SkillRating: DB.EnumCase<null>;
423
426
  }, []>>, true>;
424
427
  modifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CheckResultBasedModifier", DB.Object<{
425
428
  arithmetic: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultArithmetic", {
@@ -194,6 +194,7 @@ export declare const Spell: DB.Entity<"Spell", {
194
194
  base: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultValue", {
195
195
  QualityLevels: DB.EnumCase<null>;
196
196
  SkillPoints: DB.EnumCase<null>;
197
+ SkillRating: DB.EnumCase<null>;
197
198
  }, []>>, true>;
198
199
  modifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CheckResultBasedModifier", DB.Object<{
199
200
  arithmetic: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultArithmetic", {
@@ -279,6 +280,7 @@ export declare const Spell: DB.Entity<"Spell", {
279
280
  base: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultValue", {
280
281
  QualityLevels: DB.EnumCase<null>;
281
282
  SkillPoints: DB.EnumCase<null>;
283
+ SkillRating: DB.EnumCase<null>;
282
284
  }, []>>, true>;
283
285
  modifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CheckResultBasedModifier", DB.Object<{
284
286
  arithmetic: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultArithmetic", {
@@ -420,6 +422,7 @@ export declare const Spell: DB.Entity<"Spell", {
420
422
  base: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultValue", {
421
423
  QualityLevels: DB.EnumCase<null>;
422
424
  SkillPoints: DB.EnumCase<null>;
425
+ SkillRating: DB.EnumCase<null>;
423
426
  }, []>>, true>;
424
427
  modifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CheckResultBasedModifier", DB.Object<{
425
428
  arithmetic: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultArithmetic", {
@@ -185,6 +185,7 @@ export declare const OneTimePerformanceParameters: DB.TypeAlias<"OneTimePerforma
185
185
  base: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultValue", {
186
186
  QualityLevels: DB.EnumCase<null>;
187
187
  SkillPoints: DB.EnumCase<null>;
188
+ SkillRating: DB.EnumCase<null>;
188
189
  }, []>>, true>;
189
190
  modifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CheckResultBasedModifier", DB.Object<{
190
191
  arithmetic: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultArithmetic", {
@@ -270,6 +271,7 @@ export declare const OneTimePerformanceParameters: DB.TypeAlias<"OneTimePerforma
270
271
  base: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultValue", {
271
272
  QualityLevels: DB.EnumCase<null>;
272
273
  SkillPoints: DB.EnumCase<null>;
274
+ SkillRating: DB.EnumCase<null>;
273
275
  }, []>>, true>;
274
276
  modifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CheckResultBasedModifier", DB.Object<{
275
277
  arithmetic: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultArithmetic", {
@@ -491,6 +493,7 @@ export declare const FastPerformanceParameters: DB.Enum<"FastPerformanceParamete
491
493
  base: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultValue", {
492
494
  QualityLevels: DB.EnumCase<null>;
493
495
  SkillPoints: DB.EnumCase<null>;
496
+ SkillRating: DB.EnumCase<null>;
494
497
  }, []>>, true>;
495
498
  modifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CheckResultBasedModifier", DB.Object<{
496
499
  arithmetic: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultArithmetic", {
@@ -576,6 +579,7 @@ export declare const FastPerformanceParameters: DB.Enum<"FastPerformanceParamete
576
579
  base: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultValue", {
577
580
  QualityLevels: DB.EnumCase<null>;
578
581
  SkillPoints: DB.EnumCase<null>;
582
+ SkillRating: DB.EnumCase<null>;
579
583
  }, []>>, true>;
580
584
  modifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CheckResultBasedModifier", DB.Object<{
581
585
  arithmetic: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultArithmetic", {
@@ -717,6 +721,7 @@ export declare const FastPerformanceParameters: DB.Enum<"FastPerformanceParamete
717
721
  base: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultValue", {
718
722
  QualityLevels: DB.EnumCase<null>;
719
723
  SkillPoints: DB.EnumCase<null>;
724
+ SkillRating: DB.EnumCase<null>;
720
725
  }, []>>, true>;
721
726
  modifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CheckResultBasedModifier", DB.Object<{
722
727
  arithmetic: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultArithmetic", {
@@ -946,6 +951,7 @@ export declare const SlowPerformanceParameters: DB.Enum<"SlowPerformanceParamete
946
951
  base: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultValue", {
947
952
  QualityLevels: DB.EnumCase<null>;
948
953
  SkillPoints: DB.EnumCase<null>;
954
+ SkillRating: DB.EnumCase<null>;
949
955
  }, []>>, true>;
950
956
  modifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CheckResultBasedModifier", DB.Object<{
951
957
  arithmetic: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultArithmetic", {
@@ -1031,6 +1037,7 @@ export declare const SlowPerformanceParameters: DB.Enum<"SlowPerformanceParamete
1031
1037
  base: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultValue", {
1032
1038
  QualityLevels: DB.EnumCase<null>;
1033
1039
  SkillPoints: DB.EnumCase<null>;
1040
+ SkillRating: DB.EnumCase<null>;
1034
1041
  }, []>>, true>;
1035
1042
  modifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CheckResultBasedModifier", DB.Object<{
1036
1043
  arithmetic: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultArithmetic", {
@@ -1172,6 +1179,7 @@ export declare const SlowPerformanceParameters: DB.Enum<"SlowPerformanceParamete
1172
1179
  base: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultValue", {
1173
1180
  QualityLevels: DB.EnumCase<null>;
1174
1181
  SkillPoints: DB.EnumCase<null>;
1182
+ SkillRating: DB.EnumCase<null>;
1175
1183
  }, []>>, true>;
1176
1184
  modifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CheckResultBasedModifier", DB.Object<{
1177
1185
  arithmetic: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultArithmetic", {
@@ -2,6 +2,7 @@ import * as DB from "tsondb/schema/dsl";
2
2
  export declare const CheckResultValue: DB.Enum<"CheckResultValue", {
3
3
  QualityLevels: DB.EnumCase<null>;
4
4
  SkillPoints: DB.EnumCase<null>;
5
+ SkillRating: DB.EnumCase<null>;
5
6
  }, []>;
6
7
  export declare const CheckResultBasedModifier: DB.TypeAlias<"CheckResultBasedModifier", DB.Object<{
7
8
  arithmetic: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultArithmetic", {
@@ -14,6 +15,7 @@ export declare const CheckResultBased: DB.TypeAlias<"CheckResultBased", DB.Objec
14
15
  base: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultValue", {
15
16
  QualityLevels: DB.EnumCase<null>;
16
17
  SkillPoints: DB.EnumCase<null>;
18
+ SkillRating: DB.EnumCase<null>;
17
19
  }, []>>, true>;
18
20
  modifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CheckResultBasedModifier", DB.Object<{
19
21
  arithmetic: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultArithmetic", {
@@ -5,6 +5,7 @@ export const CheckResultValue = DB.Enum(import.meta.url, {
5
5
  values: () => ({
6
6
  QualityLevels: DB.EnumCase({ type: null }),
7
7
  SkillPoints: DB.EnumCase({ type: null }),
8
+ SkillRating: DB.EnumCase({ type: null }),
8
9
  }),
9
10
  });
10
11
  const CheckResultArithmetic = DB.Enum(import.meta.url, {
@@ -58,6 +58,7 @@ export declare const DurationForOneTime: DB.Enum<"DurationForOneTime", {
58
58
  base: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultValue", {
59
59
  QualityLevels: DB.EnumCase<null>;
60
60
  SkillPoints: DB.EnumCase<null>;
61
+ SkillRating: DB.EnumCase<null>;
61
62
  }, []>>, true>;
62
63
  modifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CheckResultBasedModifier", DB.Object<{
63
64
  arithmetic: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultArithmetic", {
@@ -121,6 +122,7 @@ export declare const CheckResultBasedDuration: DB.TypeAlias<"CheckResultBasedDur
121
122
  base: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultValue", {
122
123
  QualityLevels: DB.EnumCase<null>;
123
124
  SkillPoints: DB.EnumCase<null>;
125
+ SkillRating: DB.EnumCase<null>;
124
126
  }, []>>, true>;
125
127
  modifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CheckResultBasedModifier", DB.Object<{
126
128
  arithmetic: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultArithmetic", {
@@ -24,6 +24,7 @@ export declare const Range: DB.TypeAlias<"Range", DB.Object<{
24
24
  base: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultValue", {
25
25
  QualityLevels: DB.EnumCase<null>;
26
26
  SkillPoints: DB.EnumCase<null>;
27
+ SkillRating: DB.EnumCase<null>;
27
28
  }, []>>, true>;
28
29
  modifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CheckResultBasedModifier", DB.Object<{
29
30
  arithmetic: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultArithmetic", {
@@ -68,6 +68,7 @@ export declare const AnimistPower: DB.Entity<"AnimistPower", {
68
68
  base: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultValue", {
69
69
  QualityLevels: DB.EnumCase<null>;
70
70
  SkillPoints: DB.EnumCase<null>;
71
+ SkillRating: DB.EnumCase<null>;
71
72
  }, []>>, true>;
72
73
  modifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CheckResultBasedModifier", DB.Object<{
73
74
  arithmetic: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultArithmetic", {
@@ -56,6 +56,7 @@ export declare const Curse: DB.Entity<"Curse", {
56
56
  base: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultValue", {
57
57
  QualityLevels: DB.EnumCase<null>;
58
58
  SkillPoints: DB.EnumCase<null>;
59
+ SkillRating: DB.EnumCase<null>;
59
60
  }, []>>, true>;
60
61
  modifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CheckResultBasedModifier", DB.Object<{
61
62
  arithmetic: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultArithmetic", {
@@ -105,6 +106,7 @@ export declare const Curse: DB.Entity<"Curse", {
105
106
  base: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultValue", {
106
107
  QualityLevels: DB.EnumCase<null>;
107
108
  SkillPoints: DB.EnumCase<null>;
109
+ SkillRating: DB.EnumCase<null>;
108
110
  }, []>>, true>;
109
111
  modifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CheckResultBasedModifier", DB.Object<{
110
112
  arithmetic: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultArithmetic", {
@@ -41,6 +41,7 @@ export declare const DominationRitual: DB.Entity<"DominationRitual", {
41
41
  base: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultValue", {
42
42
  QualityLevels: DB.EnumCase<null>;
43
43
  SkillPoints: DB.EnumCase<null>;
44
+ SkillRating: DB.EnumCase<null>;
44
45
  }, []>>, true>;
45
46
  modifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CheckResultBasedModifier", DB.Object<{
46
47
  arithmetic: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultArithmetic", {
@@ -90,6 +91,7 @@ export declare const DominationRitual: DB.Entity<"DominationRitual", {
90
91
  base: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultValue", {
91
92
  QualityLevels: DB.EnumCase<null>;
92
93
  SkillPoints: DB.EnumCase<null>;
94
+ SkillRating: DB.EnumCase<null>;
93
95
  }, []>>, true>;
94
96
  modifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CheckResultBasedModifier", DB.Object<{
95
97
  arithmetic: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultArithmetic", {
@@ -76,6 +76,7 @@ export declare const GeodeRitual: DB.Entity<"GeodeRitual", {
76
76
  base: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultValue", {
77
77
  QualityLevels: DB.EnumCase<null>;
78
78
  SkillPoints: DB.EnumCase<null>;
79
+ SkillRating: DB.EnumCase<null>;
79
80
  }, []>>, true>;
80
81
  modifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CheckResultBasedModifier", DB.Object<{
81
82
  arithmetic: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultArithmetic", {
@@ -46,6 +46,7 @@ export declare const JesterTrick: DB.Entity<"JesterTrick", {
46
46
  base: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultValue", {
47
47
  QualityLevels: DB.EnumCase<null>;
48
48
  SkillPoints: DB.EnumCase<null>;
49
+ SkillRating: DB.EnumCase<null>;
49
50
  }, []>>, true>;
50
51
  modifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CheckResultBasedModifier", DB.Object<{
51
52
  arithmetic: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultArithmetic", {
@@ -212,6 +213,7 @@ export declare const JesterTrickPerformanceParameters: DB.TypeAlias<"JesterTrick
212
213
  base: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultValue", {
213
214
  QualityLevels: DB.EnumCase<null>;
214
215
  SkillPoints: DB.EnumCase<null>;
216
+ SkillRating: DB.EnumCase<null>;
215
217
  }, []>>, true>;
216
218
  modifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CheckResultBasedModifier", DB.Object<{
217
219
  arithmetic: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultArithmetic", {
@@ -272,6 +274,7 @@ export declare const JesterTrickDuration: DB.Enum<"JesterTrickDuration", {
272
274
  base: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultValue", {
273
275
  QualityLevels: DB.EnumCase<null>;
274
276
  SkillPoints: DB.EnumCase<null>;
277
+ SkillRating: DB.EnumCase<null>;
275
278
  }, []>>, true>;
276
279
  modifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CheckResultBasedModifier", DB.Object<{
277
280
  arithmetic: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultArithmetic", {
@@ -85,6 +85,7 @@ export declare const MagicalRune: DB.Entity<"MagicalRune", {
85
85
  base: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultValue", {
86
86
  QualityLevels: DB.EnumCase<null>;
87
87
  SkillPoints: DB.EnumCase<null>;
88
+ SkillRating: DB.EnumCase<null>;
88
89
  }, []>>, true>;
89
90
  modifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CheckResultBasedModifier", DB.Object<{
90
91
  arithmetic: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultArithmetic", {
@@ -117,6 +118,7 @@ export declare const MagicalRune: DB.Entity<"MagicalRune", {
117
118
  base: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultValue", {
118
119
  QualityLevels: DB.EnumCase<null>;
119
120
  SkillPoints: DB.EnumCase<null>;
121
+ SkillRating: DB.EnumCase<null>;
120
122
  }, []>>, true>;
121
123
  modifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CheckResultBasedModifier", DB.Object<{
122
124
  arithmetic: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultArithmetic", {
@@ -193,6 +193,7 @@ export declare const ZibiljaRitual: DB.Entity<"ZibiljaRitual", {
193
193
  base: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultValue", {
194
194
  QualityLevels: DB.EnumCase<null>;
195
195
  SkillPoints: DB.EnumCase<null>;
196
+ SkillRating: DB.EnumCase<null>;
196
197
  }, []>>, true>;
197
198
  modifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CheckResultBasedModifier", DB.Object<{
198
199
  arithmetic: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultArithmetic", {
@@ -278,6 +279,7 @@ export declare const ZibiljaRitual: DB.Entity<"ZibiljaRitual", {
278
279
  base: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultValue", {
279
280
  QualityLevels: DB.EnumCase<null>;
280
281
  SkillPoints: DB.EnumCase<null>;
282
+ SkillRating: DB.EnumCase<null>;
281
283
  }, []>>, true>;
282
284
  modifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CheckResultBasedModifier", DB.Object<{
283
285
  arithmetic: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultArithmetic", {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "optolith-database-schema",
3
- "version": "0.41.0",
3
+ "version": "0.42.0",
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",