@optolith/database-schema 0.46.0 → 0.47.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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,37 @@
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.47.1](https://github.com/Optolith/database-schema/compare/v0.47.0...v0.47.1) (2026-06-08)
6
+
7
+
8
+ ### Features
9
+
10
+ * skill check penalty for animist powers ([9ed6e70](https://github.com/Optolith/database-schema/commit/9ed6e7064587aaf3ac297c31f116b4eb64889b61))
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * personality trait effect supports markdown ([af43af8](https://github.com/Optolith/database-schema/commit/af43af87de963623527e5f0e6d0071d2cd09d7bc))
16
+
17
+ ## [0.47.0](https://github.com/Optolith/database-schema/compare/v0.46.0...v0.47.0) (2026-06-07)
18
+
19
+
20
+ ### ⚠ BREAKING CHANGES
21
+
22
+ * interval for sustained cost map
23
+ * personality trait as activatable prerequisite
24
+
25
+ ### Features
26
+
27
+ * fixed cantrips for base profession package ([737fe37](https://github.com/Optolith/database-schema/commit/737fe3742cdec7997dbb011872d3a0484bb58bfc)), closes [#148](https://github.com/Optolith/database-schema/issues/148)
28
+ * note for commonness-rated entries ([1f28470](https://github.com/Optolith/database-schema/commit/1f28470b8fd0516bb1ac3507d3397e8afd6d6378)), closes [#146](https://github.com/Optolith/database-schema/issues/146)
29
+ * personality trait as activatable prerequisite ([d4ffbb9](https://github.com/Optolith/database-schema/commit/d4ffbb911165b2bb485d68e6d9b114e5dbce7a2f))
30
+
31
+
32
+ ### Bug Fixes
33
+
34
+ * interval for sustained cost map ([4c2228b](https://github.com/Optolith/database-schema/commit/4c2228b6d7214bc3b9bb3b4f19bf1ac20cff0a76)), closes [#145](https://github.com/Optolith/database-schema/issues/145)
35
+
5
36
  ## [0.46.0](https://github.com/Optolith/database-schema/compare/v0.45.0...v0.46.0) (2026-06-07)
6
37
 
7
38
 
package/gen/types.d.ts CHANGED
@@ -4386,6 +4386,10 @@ export type GeneralPrerequisiteGroup =
4386
4386
  kind: "SexualCharacteristic"
4387
4387
  SexualCharacteristic: SexualCharacteristicPrerequisite
4388
4388
  }
4389
+ | {
4390
+ kind: "PersonalityTrait"
4391
+ PersonalityTrait: PersonalityTraitPrerequisite
4392
+ }
4389
4393
 
4390
4394
  /**
4391
4395
  * Requires a specific sex.
@@ -7313,6 +7317,11 @@ export interface SustainedCostMap {
7313
7317
  */
7314
7318
  options: SustainedCostMapOption[]
7315
7319
 
7320
+ /**
7321
+ * The sustain interval.
7322
+ */
7323
+ interval: DurationUnitValue
7324
+
7316
7325
  /**
7317
7326
  * All translations for the entry, identified by IETF language tag (BCP47).
7318
7327
  */
@@ -9144,6 +9153,11 @@ export interface ProfessionPackage {
9144
9153
  */
9145
9154
  skills?: SkillRating[]
9146
9155
 
9156
+ /**
9157
+ * The cantrips the profession receives from the package.
9158
+ */
9159
+ cantrips?: Cantrip_ID[]
9160
+
9147
9161
  /**
9148
9162
  * The skill ratings a magical profession receives for spells; these spells are considered activated. Spells from an unfamiliar Tradition, if any, are identified as such.
9149
9163
  */
@@ -18638,6 +18652,11 @@ export interface AnimistPower {
18638
18652
  */
18639
18653
  check: SkillCheck
18640
18654
 
18655
+ /**
18656
+ * In some cases, the target's Spirit or Toughness is applied as a penalty.
18657
+ */
18658
+ check_penalty?: SkillCheckPenalty
18659
+
18641
18660
  /**
18642
18661
  * Measurable parameters of an animist power.
18643
18662
  */
@@ -19750,6 +19769,11 @@ export interface CommonnessRatedAdvantageDisadvantageTranslation {
19750
19769
  */
19751
19770
  options?: string
19752
19771
 
19772
+ /**
19773
+ * A note, appended to the generated string in parenthesis. If options are specified as well, both will be in a single set of parentheses, with the note after the options.
19774
+ */
19775
+ note?: string
19776
+
19753
19777
  /**
19754
19778
  * A text that replaces the entire entry. No other text is generated for display, however, providing levels or a selection of options will still be relevant for highlighting entries in the application. This should only be used if the text cannot be generated from other fields at all.
19755
19779
  */
@@ -21034,6 +21058,100 @@ export interface RatedSumPrerequisite {
21034
21058
  display_option?: DisplayOption
21035
21059
  }
21036
21060
 
21061
+ export interface PersonalityTraitPrerequisite {
21062
+ /**
21063
+ * The personality trait’s identifier.
21064
+ */
21065
+ id: PersonalityTrait_ID
21066
+
21067
+ /**
21068
+ * If checked, the prerequisite **must** be present. If not checked, prerequisite **must not** be present.
21069
+ */
21070
+ active: boolean
21071
+
21072
+ display_option?: DisplayOption
21073
+ }
21074
+
21075
+ /**
21076
+ * A personality trait describes character aspects of a person from a certain region. Higher trait levels only cover a part of the region covered by lower-level traits.
21077
+ */
21078
+ export interface PersonalityTrait {
21079
+ /**
21080
+ * The personality trait’s level.
21081
+ */
21082
+ level: number
21083
+
21084
+ prerequisites?: PersonalityTraitPrerequisites
21085
+
21086
+ /**
21087
+ * The lower-level personality trait(s) this trait can be combined with.
21088
+ */
21089
+ combination_options?: PersonalityTrait_ID[]
21090
+
21091
+ /**
21092
+ * References to where in which publications this entry has been defined. Entries may also be added or removed in later printings.
21093
+ */
21094
+ src: PublicationRefs
21095
+
21096
+ /**
21097
+ * All translations for the entry, identified by IETF language tag (BCP47).
21098
+ */
21099
+ translations: {
21100
+ [localeId: string]: PersonalityTraitTranslation
21101
+ }
21102
+ }
21103
+
21104
+ /**
21105
+ * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
21106
+ */
21107
+ export type PersonalityTrait_ID = string
21108
+
21109
+ export interface PersonalityTraitTranslation {
21110
+ /**
21111
+ * The personality trait’s name.
21112
+ */
21113
+ name: string
21114
+
21115
+ /**
21116
+ * The effects of the personality trait. They should be sorted like they are in the book.
21117
+ */
21118
+ effects: PersonalityTraitEffect[]
21119
+
21120
+ errata?: Errata
21121
+ }
21122
+
21123
+ export type PersonalityTraitPrerequisites = PlainPrerequisites<PersonalityTraitPrerequisiteGroup>
21124
+
21125
+ export type PersonalityTraitPrerequisiteGroup =
21126
+ | {
21127
+ kind: "Race"
21128
+ Race: RacePrerequisite
21129
+ }
21130
+ | {
21131
+ kind: "Culture"
21132
+ Culture: CulturePrerequisite
21133
+ }
21134
+ | {
21135
+ kind: "PersonalityTrait"
21136
+ PersonalityTrait: PersonalityTraitPrerequisite
21137
+ }
21138
+ | {
21139
+ kind: "Text"
21140
+ Text: TextPrerequisite
21141
+ }
21142
+
21143
+ export interface PersonalityTraitEffect {
21144
+ /**
21145
+ * A label that is displayed and placed before the actual text.
21146
+ */
21147
+ label: string
21148
+
21149
+ /**
21150
+ * The effect text.
21151
+ */
21152
+ text: string
21153
+ }
21154
+
21037
21155
  export type AdvantageDisadvantagePrerequisites = PrerequisitesForLevels<AdvantageDisadvantagePrerequisiteGroup>
21038
21156
 
21039
21157
  export type AdvantageDisadvantagePrerequisiteGroup =
@@ -21111,6 +21229,10 @@ export type AdvantageDisadvantagePrerequisiteGroup =
21111
21229
  kind: "SexualCharacteristic"
21112
21230
  SexualCharacteristic: SexualCharacteristicPrerequisite
21113
21231
  }
21232
+ | {
21233
+ kind: "PersonalityTrait"
21234
+ PersonalityTrait: PersonalityTraitPrerequisite
21235
+ }
21114
21236
 
21115
21237
  export interface AlternativeRule {
21116
21238
  /**
@@ -24691,100 +24813,6 @@ export interface MetaConditionTranslation {
24691
24813
  errata?: Errata
24692
24814
  }
24693
24815
 
24694
- /**
24695
- * A personality trait describes character aspects of a person from a certain region. Higher trait levels only cover a part of the region covered by lower-level traits.
24696
- */
24697
- export interface PersonalityTrait {
24698
- /**
24699
- * The personality trait’s level.
24700
- */
24701
- level: number
24702
-
24703
- prerequisites?: PersonalityTraitPrerequisites
24704
-
24705
- /**
24706
- * The lower-level personality trait(s) this trait can be combined with.
24707
- */
24708
- combination_options?: PersonalityTrait_ID[]
24709
-
24710
- /**
24711
- * References to where in which publications this entry has been defined. Entries may also be added or removed in later printings.
24712
- */
24713
- src: PublicationRefs
24714
-
24715
- /**
24716
- * All translations for the entry, identified by IETF language tag (BCP47).
24717
- */
24718
- translations: {
24719
- [localeId: string]: PersonalityTraitTranslation
24720
- }
24721
- }
24722
-
24723
- /**
24724
- * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
24725
- */
24726
- export type PersonalityTrait_ID = string
24727
-
24728
- export interface PersonalityTraitTranslation {
24729
- /**
24730
- * The personality trait’s name.
24731
- */
24732
- name: string
24733
-
24734
- /**
24735
- * The effects of the personality trait. They should be sorted like they are in the book.
24736
- */
24737
- effects: PersonalityTraitEffect[]
24738
-
24739
- errata?: Errata
24740
- }
24741
-
24742
- export type PersonalityTraitPrerequisites = PlainPrerequisites<PersonalityTraitPrerequisiteGroup>
24743
-
24744
- export type PersonalityTraitPrerequisiteGroup =
24745
- | {
24746
- kind: "Race"
24747
- Race: RacePrerequisite
24748
- }
24749
- | {
24750
- kind: "Culture"
24751
- Culture: CulturePrerequisite
24752
- }
24753
- | {
24754
- kind: "PersonalityTrait"
24755
- PersonalityTrait: PersonalityTraitPrerequisite
24756
- }
24757
- | {
24758
- kind: "Text"
24759
- Text: TextPrerequisite
24760
- }
24761
-
24762
- export interface PersonalityTraitPrerequisite {
24763
- /**
24764
- * The personality trait’s identifier.
24765
- */
24766
- id: PersonalityTrait_ID
24767
-
24768
- /**
24769
- * If checked, the prerequisite **must** be present. If not checked, prerequisite **must not** be present.
24770
- */
24771
- active: boolean
24772
-
24773
- display_option?: DisplayOption
24774
- }
24775
-
24776
- export interface PersonalityTraitEffect {
24777
- /**
24778
- * A label that is displayed and placed before the actual text.
24779
- */
24780
- label: string
24781
-
24782
- /**
24783
- * The effect text.
24784
- */
24785
- text: string
24786
- }
24787
-
24788
24816
  export interface Plant {
24789
24817
  /**
24790
24818
  * The plant types of this plant.
@@ -56,6 +56,7 @@ const isPrerequisiteFor = (idMap, type, prerequisite, getById, traversedIds) =>
56
56
  case "Text":
57
57
  case "NoOtherAncestorBloodAdvantage":
58
58
  case "SexualCharacteristic":
59
+ case "PersonalityTrait":
59
60
  return false;
60
61
  default:
61
62
  return assertExhaustive(prerequisite);
@@ -381,6 +381,21 @@ export declare const Ceremony: DB.Entity<"Ceremony", {
381
381
  }>, []>>, false>;
382
382
  }>, false>;
383
383
  }>, []>>>, true>;
384
+ interval: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"DurationUnitValue", DB.Object<{
385
+ value: DB.MemberDecl<DB.Integer, true>;
386
+ unit: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"DurationUnit", {
387
+ Seconds: DB.EnumCase<null>;
388
+ Minutes: DB.EnumCase<null>;
389
+ Hours: DB.EnumCase<null>;
390
+ Days: DB.EnumCase<null>;
391
+ Weeks: DB.EnumCase<null>;
392
+ Months: DB.EnumCase<null>;
393
+ Years: DB.EnumCase<null>;
394
+ Centuries: DB.EnumCase<null>;
395
+ Actions: DB.EnumCase<null>;
396
+ CombatRounds: DB.EnumCase<null>;
397
+ }, []>>, true>;
398
+ }>, []>>, true>;
384
399
  translations: DB.MemberDecl<DB.NestedEntityMap<"SustainedCostMapTranslation", {
385
400
  listPrefix: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
386
401
  full: DB.MemberDecl<DB.String, true>;
@@ -74,6 +74,7 @@ export declare const Culture: DB.Entity<"Culture", {
74
74
  }, []>>>, false>;
75
75
  translations: DB.MemberDecl<DB.NestedEntityMap<"CommonnessRatedAdvantageDisadvantageTranslation", {
76
76
  options: DB.MemberDecl<DB.String, false>;
77
+ note: DB.MemberDecl<DB.String, false>;
77
78
  full: DB.MemberDecl<DB.String, false>;
78
79
  }>, false>;
79
80
  }>, [Identifier: DB.Param<"Identifier", DB.Type>]>>>, false>;
@@ -110,6 +111,7 @@ export declare const Culture: DB.Entity<"Culture", {
110
111
  }, []>>>, false>;
111
112
  translations: DB.MemberDecl<DB.NestedEntityMap<"CommonnessRatedAdvantageDisadvantageTranslation", {
112
113
  options: DB.MemberDecl<DB.String, false>;
114
+ note: DB.MemberDecl<DB.String, false>;
113
115
  full: DB.MemberDecl<DB.String, false>;
114
116
  }>, false>;
115
117
  }>, [Identifier: DB.Param<"Identifier", DB.Type>]>>>, false>;
@@ -146,6 +148,7 @@ export declare const Culture: DB.Entity<"Culture", {
146
148
  }, []>>>, false>;
147
149
  translations: DB.MemberDecl<DB.NestedEntityMap<"CommonnessRatedAdvantageDisadvantageTranslation", {
148
150
  options: DB.MemberDecl<DB.String, false>;
151
+ note: DB.MemberDecl<DB.String, false>;
149
152
  full: DB.MemberDecl<DB.String, false>;
150
153
  }>, false>;
151
154
  }>, [Identifier: DB.Param<"Identifier", DB.Type>]>>>, false>;
@@ -182,6 +185,7 @@ export declare const Culture: DB.Entity<"Culture", {
182
185
  }, []>>>, false>;
183
186
  translations: DB.MemberDecl<DB.NestedEntityMap<"CommonnessRatedAdvantageDisadvantageTranslation", {
184
187
  options: DB.MemberDecl<DB.String, false>;
188
+ note: DB.MemberDecl<DB.String, false>;
185
189
  full: DB.MemberDecl<DB.String, false>;
186
190
  }>, false>;
187
191
  }>, [Identifier: DB.Param<"Identifier", DB.Type>]>>>, false>;
@@ -381,6 +381,21 @@ export declare const LiturgicalChant: DB.Entity<"LiturgicalChant", {
381
381
  }>, []>>, false>;
382
382
  }>, false>;
383
383
  }>, []>>>, true>;
384
+ interval: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"DurationUnitValue", DB.Object<{
385
+ value: DB.MemberDecl<DB.Integer, true>;
386
+ unit: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"DurationUnit", {
387
+ Seconds: DB.EnumCase<null>;
388
+ Minutes: DB.EnumCase<null>;
389
+ Hours: DB.EnumCase<null>;
390
+ Days: DB.EnumCase<null>;
391
+ Weeks: DB.EnumCase<null>;
392
+ Months: DB.EnumCase<null>;
393
+ Years: DB.EnumCase<null>;
394
+ Centuries: DB.EnumCase<null>;
395
+ Actions: DB.EnumCase<null>;
396
+ CombatRounds: DB.EnumCase<null>;
397
+ }, []>>, true>;
398
+ }>, []>>, true>;
384
399
  translations: DB.MemberDecl<DB.NestedEntityMap<"SustainedCostMapTranslation", {
385
400
  listPrefix: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
386
401
  full: DB.MemberDecl<DB.String, true>;
@@ -52,7 +52,7 @@ const PersonalityTraitEffect = DB.TypeAlias(import.meta.url, {
52
52
  }),
53
53
  text: DB.Required({
54
54
  comment: "The effect text.",
55
- type: DB.String({ minLength: 1 }),
55
+ type: DB.String({ minLength: 1, markdown: "inline" }),
56
56
  }),
57
57
  }),
58
58
  });
@@ -251,6 +251,7 @@ export declare const Profession: DB.Entity<"Profession", {
251
251
  id: DB.MemberDecl<DB.ReferenceIdentifier, true>;
252
252
  rating_modifier: DB.MemberDecl<DB.Integer, true>;
253
253
  }>, []>>>, false>;
254
+ cantrips: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, false>;
254
255
  spells: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"MagicalSkillRating", DB.Object<{
255
256
  id: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"ProfessionMagicalSkillIdentifier", {
256
257
  Spellwork: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ProfessionSpellworkIdentifier", DB.Object<{
@@ -602,6 +603,7 @@ export declare const Profession: DB.Entity<"Profession", {
602
603
  }, []>>>, false>;
603
604
  translations: DB.MemberDecl<DB.NestedEntityMap<"CommonnessRatedAdvantageDisadvantageTranslation", {
604
605
  options: DB.MemberDecl<DB.String, false>;
606
+ note: DB.MemberDecl<DB.String, false>;
605
607
  full: DB.MemberDecl<DB.String, false>;
606
608
  }>, false>;
607
609
  }>, [Identifier: DB.Param<"Identifier", DB.Type>]>>>, false>;
@@ -638,6 +640,7 @@ export declare const Profession: DB.Entity<"Profession", {
638
640
  }, []>>>, false>;
639
641
  translations: DB.MemberDecl<DB.NestedEntityMap<"CommonnessRatedAdvantageDisadvantageTranslation", {
640
642
  options: DB.MemberDecl<DB.String, false>;
643
+ note: DB.MemberDecl<DB.String, false>;
641
644
  full: DB.MemberDecl<DB.String, false>;
642
645
  }>, false>;
643
646
  }>, [Identifier: DB.Param<"Identifier", DB.Type>]>>>, false>;
@@ -674,6 +677,7 @@ export declare const Profession: DB.Entity<"Profession", {
674
677
  }, []>>>, false>;
675
678
  translations: DB.MemberDecl<DB.NestedEntityMap<"CommonnessRatedAdvantageDisadvantageTranslation", {
676
679
  options: DB.MemberDecl<DB.String, false>;
680
+ note: DB.MemberDecl<DB.String, false>;
677
681
  full: DB.MemberDecl<DB.String, false>;
678
682
  }>, false>;
679
683
  }>, [Identifier: DB.Param<"Identifier", DB.Type>]>>>, false>;
@@ -710,6 +714,7 @@ export declare const Profession: DB.Entity<"Profession", {
710
714
  }, []>>>, false>;
711
715
  translations: DB.MemberDecl<DB.NestedEntityMap<"CommonnessRatedAdvantageDisadvantageTranslation", {
712
716
  options: DB.MemberDecl<DB.String, false>;
717
+ note: DB.MemberDecl<DB.String, false>;
713
718
  full: DB.MemberDecl<DB.String, false>;
714
719
  }>, false>;
715
720
  }>, [Identifier: DB.Param<"Identifier", DB.Type>]>>>, false>;
@@ -1021,6 +1026,7 @@ export declare const ProfessionVersion: DB.Entity<"ProfessionVersion", {
1021
1026
  id: DB.MemberDecl<DB.ReferenceIdentifier, true>;
1022
1027
  rating_modifier: DB.MemberDecl<DB.Integer, true>;
1023
1028
  }>, []>>>, false>;
1029
+ cantrips: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, false>;
1024
1030
  spells: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"MagicalSkillRating", DB.Object<{
1025
1031
  id: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"ProfessionMagicalSkillIdentifier", {
1026
1032
  Spellwork: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ProfessionSpellworkIdentifier", DB.Object<{
@@ -1372,6 +1378,7 @@ export declare const ProfessionVersion: DB.Entity<"ProfessionVersion", {
1372
1378
  }, []>>>, false>;
1373
1379
  translations: DB.MemberDecl<DB.NestedEntityMap<"CommonnessRatedAdvantageDisadvantageTranslation", {
1374
1380
  options: DB.MemberDecl<DB.String, false>;
1381
+ note: DB.MemberDecl<DB.String, false>;
1375
1382
  full: DB.MemberDecl<DB.String, false>;
1376
1383
  }>, false>;
1377
1384
  }>, [Identifier: DB.Param<"Identifier", DB.Type>]>>>, false>;
@@ -1408,6 +1415,7 @@ export declare const ProfessionVersion: DB.Entity<"ProfessionVersion", {
1408
1415
  }, []>>>, false>;
1409
1416
  translations: DB.MemberDecl<DB.NestedEntityMap<"CommonnessRatedAdvantageDisadvantageTranslation", {
1410
1417
  options: DB.MemberDecl<DB.String, false>;
1418
+ note: DB.MemberDecl<DB.String, false>;
1411
1419
  full: DB.MemberDecl<DB.String, false>;
1412
1420
  }>, false>;
1413
1421
  }>, [Identifier: DB.Param<"Identifier", DB.Type>]>>>, false>;
@@ -1444,6 +1452,7 @@ export declare const ProfessionVersion: DB.Entity<"ProfessionVersion", {
1444
1452
  }, []>>>, false>;
1445
1453
  translations: DB.MemberDecl<DB.NestedEntityMap<"CommonnessRatedAdvantageDisadvantageTranslation", {
1446
1454
  options: DB.MemberDecl<DB.String, false>;
1455
+ note: DB.MemberDecl<DB.String, false>;
1447
1456
  full: DB.MemberDecl<DB.String, false>;
1448
1457
  }>, false>;
1449
1458
  }>, [Identifier: DB.Param<"Identifier", DB.Type>]>>>, false>;
@@ -1480,6 +1489,7 @@ export declare const ProfessionVersion: DB.Entity<"ProfessionVersion", {
1480
1489
  }, []>>>, false>;
1481
1490
  translations: DB.MemberDecl<DB.NestedEntityMap<"CommonnessRatedAdvantageDisadvantageTranslation", {
1482
1491
  options: DB.MemberDecl<DB.String, false>;
1492
+ note: DB.MemberDecl<DB.String, false>;
1483
1493
  full: DB.MemberDecl<DB.String, false>;
1484
1494
  }>, false>;
1485
1495
  }>, [Identifier: DB.Param<"Identifier", DB.Type>]>>>, false>;
@@ -1783,6 +1793,7 @@ export declare const ProfessionPackage: DB.Entity<"ProfessionPackage", {
1783
1793
  id: DB.MemberDecl<DB.ReferenceIdentifier, true>;
1784
1794
  rating_modifier: DB.MemberDecl<DB.Integer, true>;
1785
1795
  }>, []>>>, false>;
1796
+ cantrips: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, false>;
1786
1797
  spells: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"MagicalSkillRating", DB.Object<{
1787
1798
  id: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"ProfessionMagicalSkillIdentifier", {
1788
1799
  Spellwork: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ProfessionSpellworkIdentifier", DB.Object<{
@@ -182,6 +182,10 @@ export const ProfessionPackage = DB.Entity(import.meta.url, {
182
182
  comment: "The skill ratings the package grants to the hero.",
183
183
  type: DB.Array(DB.IncludeIdentifier(SkillRating), { minItems: 1 }),
184
184
  }),
185
+ cantrips: DB.Optional({
186
+ comment: "The cantrips the profession receives from the package.",
187
+ type: DB.Array(CantripIdentifier(), { minItems: 1 }),
188
+ }),
185
189
  spells: DB.Optional({
186
190
  comment: "The skill ratings a magical profession receives for spells; these spells are considered activated. Spells from an unfamiliar Tradition, if any, are identified as such.",
187
191
  type: DB.Array(DB.IncludeIdentifier(MagicalSkillRating), { minItems: 1 }),
@@ -76,6 +76,7 @@ export declare const Race: DB.Entity<"Race", {
76
76
  }, []>>>, false>;
77
77
  translations: DB.MemberDecl<DB.NestedEntityMap<"CommonnessRatedAdvantageDisadvantageTranslation", {
78
78
  options: DB.MemberDecl<DB.String, false>;
79
+ note: DB.MemberDecl<DB.String, false>;
79
80
  full: DB.MemberDecl<DB.String, false>;
80
81
  }>, false>;
81
82
  }>, [Identifier: DB.Param<"Identifier", DB.Type>]>>>, false>;
@@ -112,6 +113,7 @@ export declare const Race: DB.Entity<"Race", {
112
113
  }, []>>>, false>;
113
114
  translations: DB.MemberDecl<DB.NestedEntityMap<"CommonnessRatedAdvantageDisadvantageTranslation", {
114
115
  options: DB.MemberDecl<DB.String, false>;
116
+ note: DB.MemberDecl<DB.String, false>;
115
117
  full: DB.MemberDecl<DB.String, false>;
116
118
  }>, false>;
117
119
  }>, [Identifier: DB.Param<"Identifier", DB.Type>]>>>, false>;
@@ -148,6 +150,7 @@ export declare const Race: DB.Entity<"Race", {
148
150
  }, []>>>, false>;
149
151
  translations: DB.MemberDecl<DB.NestedEntityMap<"CommonnessRatedAdvantageDisadvantageTranslation", {
150
152
  options: DB.MemberDecl<DB.String, false>;
153
+ note: DB.MemberDecl<DB.String, false>;
151
154
  full: DB.MemberDecl<DB.String, false>;
152
155
  }>, false>;
153
156
  }>, [Identifier: DB.Param<"Identifier", DB.Type>]>>>, false>;
@@ -184,6 +187,7 @@ export declare const Race: DB.Entity<"Race", {
184
187
  }, []>>>, false>;
185
188
  translations: DB.MemberDecl<DB.NestedEntityMap<"CommonnessRatedAdvantageDisadvantageTranslation", {
186
189
  options: DB.MemberDecl<DB.String, false>;
190
+ note: DB.MemberDecl<DB.String, false>;
187
191
  full: DB.MemberDecl<DB.String, false>;
188
192
  }>, false>;
189
193
  }>, [Identifier: DB.Param<"Identifier", DB.Type>]>>>, false>;
@@ -220,6 +224,7 @@ export declare const Race: DB.Entity<"Race", {
220
224
  }, []>>>, false>;
221
225
  translations: DB.MemberDecl<DB.NestedEntityMap<"CommonnessRatedAdvantageDisadvantageTranslation", {
222
226
  options: DB.MemberDecl<DB.String, false>;
227
+ note: DB.MemberDecl<DB.String, false>;
223
228
  full: DB.MemberDecl<DB.String, false>;
224
229
  }>, false>;
225
230
  }>, [Identifier: DB.Param<"Identifier", DB.Type>]>>>, false>;
@@ -256,6 +261,7 @@ export declare const Race: DB.Entity<"Race", {
256
261
  }, []>>>, false>;
257
262
  translations: DB.MemberDecl<DB.NestedEntityMap<"CommonnessRatedAdvantageDisadvantageTranslation", {
258
263
  options: DB.MemberDecl<DB.String, false>;
264
+ note: DB.MemberDecl<DB.String, false>;
259
265
  full: DB.MemberDecl<DB.String, false>;
260
266
  }>, false>;
261
267
  }>, [Identifier: DB.Param<"Identifier", DB.Type>]>>>, false>;
@@ -383,6 +389,7 @@ export declare const RaceVariant: DB.Entity<"RaceVariant", {
383
389
  }, []>>>, false>;
384
390
  translations: DB.MemberDecl<DB.NestedEntityMap<"CommonnessRatedAdvantageDisadvantageTranslation", {
385
391
  options: DB.MemberDecl<DB.String, false>;
392
+ note: DB.MemberDecl<DB.String, false>;
386
393
  full: DB.MemberDecl<DB.String, false>;
387
394
  }>, false>;
388
395
  }>, [Identifier: DB.Param<"Identifier", DB.Type>]>>>, false>;
@@ -419,6 +426,7 @@ export declare const RaceVariant: DB.Entity<"RaceVariant", {
419
426
  }, []>>>, false>;
420
427
  translations: DB.MemberDecl<DB.NestedEntityMap<"CommonnessRatedAdvantageDisadvantageTranslation", {
421
428
  options: DB.MemberDecl<DB.String, false>;
429
+ note: DB.MemberDecl<DB.String, false>;
422
430
  full: DB.MemberDecl<DB.String, false>;
423
431
  }>, false>;
424
432
  }>, [Identifier: DB.Param<"Identifier", DB.Type>]>>>, false>;
@@ -455,6 +463,7 @@ export declare const RaceVariant: DB.Entity<"RaceVariant", {
455
463
  }, []>>>, false>;
456
464
  translations: DB.MemberDecl<DB.NestedEntityMap<"CommonnessRatedAdvantageDisadvantageTranslation", {
457
465
  options: DB.MemberDecl<DB.String, false>;
466
+ note: DB.MemberDecl<DB.String, false>;
458
467
  full: DB.MemberDecl<DB.String, false>;
459
468
  }>, false>;
460
469
  }>, [Identifier: DB.Param<"Identifier", DB.Type>]>>>, false>;
@@ -491,6 +500,7 @@ export declare const RaceVariant: DB.Entity<"RaceVariant", {
491
500
  }, []>>>, false>;
492
501
  translations: DB.MemberDecl<DB.NestedEntityMap<"CommonnessRatedAdvantageDisadvantageTranslation", {
493
502
  options: DB.MemberDecl<DB.String, false>;
503
+ note: DB.MemberDecl<DB.String, false>;
494
504
  full: DB.MemberDecl<DB.String, false>;
495
505
  }>, false>;
496
506
  }>, [Identifier: DB.Param<"Identifier", DB.Type>]>>>, false>;
@@ -527,6 +537,7 @@ export declare const RaceVariant: DB.Entity<"RaceVariant", {
527
537
  }, []>>>, false>;
528
538
  translations: DB.MemberDecl<DB.NestedEntityMap<"CommonnessRatedAdvantageDisadvantageTranslation", {
529
539
  options: DB.MemberDecl<DB.String, false>;
540
+ note: DB.MemberDecl<DB.String, false>;
530
541
  full: DB.MemberDecl<DB.String, false>;
531
542
  }>, false>;
532
543
  }>, [Identifier: DB.Param<"Identifier", DB.Type>]>>>, false>;
@@ -563,6 +574,7 @@ export declare const RaceVariant: DB.Entity<"RaceVariant", {
563
574
  }, []>>>, false>;
564
575
  translations: DB.MemberDecl<DB.NestedEntityMap<"CommonnessRatedAdvantageDisadvantageTranslation", {
565
576
  options: DB.MemberDecl<DB.String, false>;
577
+ note: DB.MemberDecl<DB.String, false>;
566
578
  full: DB.MemberDecl<DB.String, false>;
567
579
  }>, false>;
568
580
  }>, [Identifier: DB.Param<"Identifier", DB.Type>]>>>, false>;
@@ -381,6 +381,21 @@ export declare const Ritual: DB.Entity<"Ritual", {
381
381
  }>, []>>, false>;
382
382
  }>, false>;
383
383
  }>, []>>>, true>;
384
+ interval: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"DurationUnitValue", DB.Object<{
385
+ value: DB.MemberDecl<DB.Integer, true>;
386
+ unit: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"DurationUnit", {
387
+ Seconds: DB.EnumCase<null>;
388
+ Minutes: DB.EnumCase<null>;
389
+ Hours: DB.EnumCase<null>;
390
+ Days: DB.EnumCase<null>;
391
+ Weeks: DB.EnumCase<null>;
392
+ Months: DB.EnumCase<null>;
393
+ Years: DB.EnumCase<null>;
394
+ Centuries: DB.EnumCase<null>;
395
+ Actions: DB.EnumCase<null>;
396
+ CombatRounds: DB.EnumCase<null>;
397
+ }, []>>, true>;
398
+ }>, []>>, true>;
384
399
  translations: DB.MemberDecl<DB.NestedEntityMap<"SustainedCostMapTranslation", {
385
400
  listPrefix: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
386
401
  full: DB.MemberDecl<DB.String, true>;
@@ -381,6 +381,21 @@ export declare const Spell: DB.Entity<"Spell", {
381
381
  }>, []>>, false>;
382
382
  }>, false>;
383
383
  }>, []>>>, true>;
384
+ interval: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"DurationUnitValue", DB.Object<{
385
+ value: DB.MemberDecl<DB.Integer, true>;
386
+ unit: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"DurationUnit", {
387
+ Seconds: DB.EnumCase<null>;
388
+ Minutes: DB.EnumCase<null>;
389
+ Hours: DB.EnumCase<null>;
390
+ Days: DB.EnumCase<null>;
391
+ Weeks: DB.EnumCase<null>;
392
+ Months: DB.EnumCase<null>;
393
+ Years: DB.EnumCase<null>;
394
+ Centuries: DB.EnumCase<null>;
395
+ Actions: DB.EnumCase<null>;
396
+ CombatRounds: DB.EnumCase<null>;
397
+ }, []>>, true>;
398
+ }>, []>>, true>;
384
399
  translations: DB.MemberDecl<DB.NestedEntityMap<"SustainedCostMapTranslation", {
385
400
  listPrefix: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
386
401
  full: DB.MemberDecl<DB.String, true>;
@@ -680,6 +680,21 @@ export declare const FastPerformanceParameters: DB.Enum<"FastPerformanceParamete
680
680
  }>, []>>, false>;
681
681
  }>, false>;
682
682
  }>, []>>>, true>;
683
+ interval: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"DurationUnitValue", DB.Object<{
684
+ value: DB.MemberDecl<DB.Integer, true>;
685
+ unit: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"DurationUnit", {
686
+ Seconds: DB.EnumCase<null>;
687
+ Minutes: DB.EnumCase<null>;
688
+ Hours: DB.EnumCase<null>;
689
+ Days: DB.EnumCase<null>;
690
+ Weeks: DB.EnumCase<null>;
691
+ Months: DB.EnumCase<null>;
692
+ Years: DB.EnumCase<null>;
693
+ Centuries: DB.EnumCase<null>;
694
+ Actions: DB.EnumCase<null>;
695
+ CombatRounds: DB.EnumCase<null>;
696
+ }, []>>, true>;
697
+ }>, []>>, true>;
683
698
  translations: DB.MemberDecl<DB.NestedEntityMap<"SustainedCostMapTranslation", {
684
699
  listPrefix: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
685
700
  full: DB.MemberDecl<DB.String, true>;
@@ -1138,6 +1153,21 @@ export declare const SlowPerformanceParameters: DB.Enum<"SlowPerformanceParamete
1138
1153
  }>, []>>, false>;
1139
1154
  }>, false>;
1140
1155
  }>, []>>>, true>;
1156
+ interval: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"DurationUnitValue", DB.Object<{
1157
+ value: DB.MemberDecl<DB.Integer, true>;
1158
+ unit: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"DurationUnit", {
1159
+ Seconds: DB.EnumCase<null>;
1160
+ Minutes: DB.EnumCase<null>;
1161
+ Hours: DB.EnumCase<null>;
1162
+ Days: DB.EnumCase<null>;
1163
+ Weeks: DB.EnumCase<null>;
1164
+ Months: DB.EnumCase<null>;
1165
+ Years: DB.EnumCase<null>;
1166
+ Centuries: DB.EnumCase<null>;
1167
+ Actions: DB.EnumCase<null>;
1168
+ CombatRounds: DB.EnumCase<null>;
1169
+ }, []>>, true>;
1170
+ }>, []>>, true>;
1141
1171
  translations: DB.MemberDecl<DB.NestedEntityMap<"SustainedCostMapTranslation", {
1142
1172
  listPrefix: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
1143
1173
  full: DB.MemberDecl<DB.String, true>;
@@ -291,6 +291,21 @@ export declare const SustainedCost: DB.Enum<"SustainedCost", {
291
291
  }>, []>>, false>;
292
292
  }>, false>;
293
293
  }>, []>>>, true>;
294
+ interval: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"DurationUnitValue", DB.Object<{
295
+ value: DB.MemberDecl<DB.Integer, true>;
296
+ unit: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"DurationUnit", {
297
+ Seconds: DB.EnumCase<null>;
298
+ Minutes: DB.EnumCase<null>;
299
+ Hours: DB.EnumCase<null>;
300
+ Days: DB.EnumCase<null>;
301
+ Weeks: DB.EnumCase<null>;
302
+ Months: DB.EnumCase<null>;
303
+ Years: DB.EnumCase<null>;
304
+ Centuries: DB.EnumCase<null>;
305
+ Actions: DB.EnumCase<null>;
306
+ CombatRounds: DB.EnumCase<null>;
307
+ }, []>>, true>;
308
+ }>, []>>, true>;
294
309
  translations: DB.MemberDecl<DB.NestedEntityMap<"SustainedCostMapTranslation", {
295
310
  listPrefix: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
296
311
  full: DB.MemberDecl<DB.String, true>;
@@ -349,6 +364,21 @@ export declare const SustainedCostMap: DB.TypeAlias<"SustainedCostMap", DB.Objec
349
364
  }>, []>>, false>;
350
365
  }>, false>;
351
366
  }>, []>>>, true>;
367
+ interval: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"DurationUnitValue", DB.Object<{
368
+ value: DB.MemberDecl<DB.Integer, true>;
369
+ unit: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"DurationUnit", {
370
+ Seconds: DB.EnumCase<null>;
371
+ Minutes: DB.EnumCase<null>;
372
+ Hours: DB.EnumCase<null>;
373
+ Days: DB.EnumCase<null>;
374
+ Weeks: DB.EnumCase<null>;
375
+ Months: DB.EnumCase<null>;
376
+ Years: DB.EnumCase<null>;
377
+ Centuries: DB.EnumCase<null>;
378
+ Actions: DB.EnumCase<null>;
379
+ CombatRounds: DB.EnumCase<null>;
380
+ }, []>>, true>;
381
+ }>, []>>, true>;
352
382
  translations: DB.MemberDecl<DB.NestedEntityMap<"SustainedCostMapTranslation", {
353
383
  listPrefix: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
354
384
  full: DB.MemberDecl<DB.String, true>;
@@ -243,6 +243,10 @@ The \`an item the size of a\` would be the *list prefix* string, while the list
243
243
  minItems: 2,
244
244
  }),
245
245
  }),
246
+ interval: DB.Required({
247
+ comment: "The sustain interval.",
248
+ type: DB.IncludeIdentifier(DurationUnitValue),
249
+ }),
246
250
  translations: NestedTranslationMap(DB.Optional, "SustainedCostMap", DB.Object({
247
251
  listPrefix: DB.Optional({
248
252
  comment: "Place a string between the `for` and the grouped map option labels.",
@@ -32,6 +32,7 @@ export declare const CommonnessRatedAdvantageDisadvantage: DB.TypeAlias<"Commonn
32
32
  }, []>>>, false>;
33
33
  translations: DB.MemberDecl<DB.NestedEntityMap<"CommonnessRatedAdvantageDisadvantageTranslation", {
34
34
  options: DB.MemberDecl<DB.String, false>;
35
+ note: DB.MemberDecl<DB.String, false>;
35
36
  full: DB.MemberDecl<DB.String, false>;
36
37
  }>, false>;
37
38
  }>, [Identifier: DB.Param<"Identifier", DB.Type>]>;
@@ -23,6 +23,10 @@ export const CommonnessRatedAdvantageDisadvantage = DB.GenTypeAlias(import.meta.
23
23
  comment: "The options the commonness rating applies to. This can be specified if plain options cannot exactly describe the options as written in the publication.",
24
24
  type: DB.String({ minLength: 1 }),
25
25
  }),
26
+ note: DB.Optional({
27
+ comment: "A note, appended to the generated string in parenthesis. If options are specified as well, both will be in a single set of parentheses, with the note after the options.",
28
+ type: DB.String({ minLength: 1 }),
29
+ }),
26
30
  full: DB.Optional({
27
31
  comment: "A text that replaces the entire entry. No other text is generated for display, however, providing levels or a selection of options will still be relevant for highlighting entries in the application. This should only be used if the text cannot be generated from other fields at all.",
28
32
  type: DB.String({ minLength: 1 }),
@@ -1,6 +1,15 @@
1
1
  import * as DB from "tsondb/schema/dsl";
2
2
  export declare const AnimistPower: DB.Entity<"AnimistPower", {
3
3
  check: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"SkillCheck", DB.Array<DB.ReferenceIdentifier>, []>>, true>;
4
+ check_penalty: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SkillCheckPenalty", {
5
+ Spirit: DB.EnumCase<null>;
6
+ HalfOfSpirit: DB.EnumCase<null>;
7
+ Toughness: DB.EnumCase<null>;
8
+ HigherOfSpiritAndToughness: DB.EnumCase<null>;
9
+ SummoningDifficulty: DB.EnumCase<null>;
10
+ CreationDifficulty: DB.EnumCase<null>;
11
+ Object: DB.EnumCase<null>;
12
+ }, []>>, false>;
4
13
  parameters: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"AnimistPowerPerformanceParameters", {
5
14
  OneTime: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"OneTimeAnimistPowerPerformanceParameters", DB.Object<{
6
15
  cost: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"OneTimeAnimistPowerCost", {
@@ -7,7 +7,7 @@ import { PropertyIdentifier, TribeIdentifier } from "../_Identifier.js";
7
7
  import { ImprovementCost } from "../_ImprovementCost.js";
8
8
  import { AnimistPowerPrerequisites } from "../_Prerequisite.js";
9
9
  import { ResponsiveTextOptional } from "../_ResponsiveText.js";
10
- import { SkillCheck } from "../_SkillCheck.js";
10
+ import { SkillCheck, SkillCheckPenalty } from "../_SkillCheck.js";
11
11
  import { NestedTranslationMap } from "../Locale.js";
12
12
  import { Errata } from "../source/_Erratum.js";
13
13
  import { PublicationRefs, src } from "../source/_PublicationRef.js";
@@ -19,6 +19,10 @@ export const AnimistPower = DB.Entity(import.meta.url, {
19
19
  comment: "Lists the linked three attributes used to make a skill check.",
20
20
  type: DB.IncludeIdentifier(SkillCheck),
21
21
  }),
22
+ check_penalty: DB.Optional({
23
+ comment: "In some cases, the target's Spirit or Toughness is applied as a penalty.",
24
+ type: DB.IncludeIdentifier(SkillCheckPenalty),
25
+ }),
22
26
  parameters: DB.Required({
23
27
  comment: "Measurable parameters of an animist power.",
24
28
  type: DB.IncludeIdentifier(AnimistPowerPerformanceParameters),
@@ -648,6 +648,22 @@ export declare const GeneralPrerequisiteGroup: DB.Enum<"GeneralPrerequisiteGroup
648
648
  Vagina: DB.EnumCase<null>;
649
649
  }, []>>, true>;
650
650
  }>, []>>>;
651
+ PersonalityTrait: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"PersonalityTraitPrerequisite", DB.Object<{
652
+ id: DB.MemberDecl<DB.ReferenceIdentifier, true>;
653
+ active: DB.MemberDecl<DB.Boolean, true>;
654
+ display_option: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"DisplayOption", {
655
+ Hide: DB.EnumCase<null>;
656
+ ReplaceWith: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ReplacementDisplayOption", DB.Object<{
657
+ sentence_type: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SentenceType", {
658
+ Standalone: DB.EnumCase<null>;
659
+ Connected: DB.EnumCase<null>;
660
+ }, []>>, false>;
661
+ translations: DB.MemberDecl<DB.NestedEntityMap<"ReplacementDisplayOptionTranslation", {
662
+ replacement: DB.MemberDecl<DB.String, true>;
663
+ }>, true>;
664
+ }>, []>>>;
665
+ }, []>>, false>;
666
+ }>, []>>>;
651
667
  }, []>;
652
668
  export declare const ProfessionPrerequisiteGroup: DB.Enum<"ProfessionPrerequisiteGroup", {
653
669
  Sex: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"SexPrerequisite", DB.Object<{
@@ -1261,6 +1277,22 @@ export declare const AdvantageDisadvantagePrerequisiteGroup: DB.Enum<"AdvantageD
1261
1277
  Vagina: DB.EnumCase<null>;
1262
1278
  }, []>>, true>;
1263
1279
  }>, []>>>;
1280
+ PersonalityTrait: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"PersonalityTraitPrerequisite", DB.Object<{
1281
+ id: DB.MemberDecl<DB.ReferenceIdentifier, true>;
1282
+ active: DB.MemberDecl<DB.Boolean, true>;
1283
+ display_option: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"DisplayOption", {
1284
+ Hide: DB.EnumCase<null>;
1285
+ ReplaceWith: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ReplacementDisplayOption", DB.Object<{
1286
+ sentence_type: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SentenceType", {
1287
+ Standalone: DB.EnumCase<null>;
1288
+ Connected: DB.EnumCase<null>;
1289
+ }, []>>, false>;
1290
+ translations: DB.MemberDecl<DB.NestedEntityMap<"ReplacementDisplayOptionTranslation", {
1291
+ replacement: DB.MemberDecl<DB.String, true>;
1292
+ }>, true>;
1293
+ }>, []>>>;
1294
+ }, []>>, false>;
1295
+ }>, []>>>;
1264
1296
  CommonSuggestedByRCP: DB.EnumCase<null>;
1265
1297
  NoOtherAncestorBloodAdvantage: DB.EnumCase<null>;
1266
1298
  }, []>;
@@ -70,6 +70,7 @@ export const GeneralPrerequisiteGroup = DB.Enum(import.meta.url, {
70
70
  SexualCharacteristic: DB.EnumCase({
71
71
  type: DB.IncludeIdentifier(SexualCharacteristicPrerequisite),
72
72
  }),
73
+ PersonalityTrait: DB.EnumCase({ type: DB.IncludeIdentifier(PersonalityTraitPrerequisite) }),
73
74
  }),
74
75
  });
75
76
  export const ProfessionPrerequisiteGroup = DB.Enum(import.meta.url, {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@optolith/database-schema",
3
- "version": "0.46.0",
3
+ "version": "0.47.1",
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",