@optolith/database-schema 0.97.1 → 0.99.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.
Files changed (30) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/gen/types.d.ts +147 -9
  3. package/lib/types/Locale.d.ts +16 -6
  4. package/lib/types/Locale.js +16 -6
  5. package/lib/types/equipment/item/Armor.d.ts +50 -0
  6. package/lib/types/equipment/item/Armor.js +18 -0
  7. package/lib/types/equipment/item/ArmorAccessory.d.ts +41 -0
  8. package/lib/types/equipment/item/BandageOrRemedy.d.ts +41 -0
  9. package/lib/types/equipment/item/CeremonialItem.d.ts +41 -0
  10. package/lib/types/equipment/item/Clothes.d.ts +41 -0
  11. package/lib/types/equipment/item/Container.d.ts +41 -0
  12. package/lib/types/equipment/item/EquipmentOfBlessedOnes.d.ts +45 -22
  13. package/lib/types/equipment/item/EquipmentOfBlessedOnes.js +15 -4
  14. package/lib/types/equipment/item/IlluminationLightSource.d.ts +41 -0
  15. package/lib/types/equipment/item/IlluminationRefillOrSupply.d.ts +41 -0
  16. package/lib/types/equipment/item/Item.d.ts +41 -0
  17. package/lib/types/equipment/item/Liebesspielzeug.d.ts +41 -0
  18. package/lib/types/equipment/item/LuxuryGood.d.ts +41 -0
  19. package/lib/types/equipment/item/MagicalArtifact.d.ts +41 -0
  20. package/lib/types/equipment/item/MusicalInstrument.d.ts +41 -0
  21. package/lib/types/equipment/item/OrienteeringAid.d.ts +41 -0
  22. package/lib/types/equipment/item/RopeOrChain.d.ts +41 -0
  23. package/lib/types/equipment/item/Stationery.d.ts +41 -0
  24. package/lib/types/equipment/item/ThievesTool.d.ts +41 -0
  25. package/lib/types/equipment/item/TravelGearOrTool.d.ts +41 -0
  26. package/lib/types/equipment/item/Weapon.d.ts +32 -0
  27. package/lib/types/equipment/item/WeaponAccessory.d.ts +41 -0
  28. package/lib/types/equipment/item/_Item.d.ts +114 -0
  29. package/lib/types/equipment/item/_Item.js +41 -1
  30. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,26 @@
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.99.0](https://github.com/Optolith/database-schema/compare/v0.98.0...v0.99.0) (2026-10-13)
6
+
7
+ ### ⚠ BREAKING CHANGES
8
+
9
+ * improve natural language for more items
10
+
11
+ ### Features
12
+
13
+ * improve natural language for more items ([e72bdc4](https://github.com/Optolith/database-schema/commit/e72bdc45d66699a8496b5b9ed6d66ff21898d71a))
14
+
15
+ ## [0.98.0](https://github.com/Optolith/database-schema/compare/v0.97.1...v0.98.0) (2026-10-13)
16
+
17
+ ### ⚠ BREAKING CHANGES
18
+
19
+ * improve natural language for item restrictions
20
+
21
+ ### Features
22
+
23
+ * improve natural language for item restrictions ([721c6b5](https://github.com/Optolith/database-schema/commit/721c6b5237bb872d725b5e30ef797e844f7ee1fb))
24
+
5
25
  ## [0.97.1](https://github.com/Optolith/database-schema/compare/v0.97.0...v0.97.1) (2026-10-13)
6
26
 
7
27
  ### Bug Fixes
package/gen/types.d.ts CHANGED
@@ -254,6 +254,7 @@ export type EnumMap = {
254
254
  ArcaneTraditionPrerequisiteGroup: ArcaneTraditionPrerequisiteGroup
255
255
  ArmorComplexity: ArmorComplexity
256
256
  ArmorType: ArmorType
257
+ AssociatedTradition: AssociatedTradition
257
258
  AttributeColor: AttributeColor
258
259
  AutomaticEntryAction: AutomaticEntryAction
259
260
  AutomaticEntryTarget: AutomaticEntryTarget
@@ -2637,12 +2638,22 @@ export interface Locale {
2637
2638
  "Complex": string
2638
2639
  "Various": string
2639
2640
  "Parrying weapon (PA bonus +1 for the main weapon)": string
2640
- "To buy a {$itemName} during hero creation, the character must have Tradition ({$traditions}).": string & { __params: { "itemName": string; "traditions": string } }
2641
- "Sanctified ({$traditions}); only {$blessedOnes} may purchase weapons sanctified by {$gods}, respectively.": string & { __params: { "traditions": string; "blessedOnes": string; "gods": string } }
2642
- "Sanctified ({$tradition}); only {$blessedOnes} may purchase weapons sanctified by {$god}.": string & { __params: { "tradition": string; "blessedOnes": string; "god": string } }
2643
- "To buy a {$name} during hero creation, the character must be from the culture of the {$cultures}.": string & { __params: { "name": string; "cultures": string } }
2644
- "To buy a {$itemName} during hero creation, the character must have a shamanistic tradition.": string & { __params: { "itemName": string } }
2645
- "To buy a {$name} during hero creation, the character must be from a culture common to the race of {$races}.": string & { __params: { "name": string; "races": string } }
2641
+ "{$variantArmor} is a type of {$baseArmor}.": string & { __params: { "variantArmor": string; "baseArmor": string } }
2642
+ "{$variantHitZoneArmor} counts as {$baseArmor} for hit zone {$hitZone}.": string & { __params: { "variantHitZoneArmor": string; "baseArmor": string; "hitZone": string } }
2643
+ "Arms": string
2644
+ "Head": string
2645
+ "Legs": string
2646
+ "Torso": string
2647
+ "many shamans": string
2648
+ "To buy this item during hero creation, the character must have Tradition ({$traditions}).": string & { __params: { "traditions": string } }
2649
+ "To buy {$itemName} during hero creation, the character must have Tradition ({$traditions}).": string & { __params: { "itemName": string; "traditions": string } }
2650
+ "Sanctified ({$traditions})": string & { __params: { "traditions": string } }
2651
+ "only {$blessedOnes} may purchase weapons sanctified by {$gods}, respectively.": string & { __params: { "blessedOnes": string; "gods": string } }
2652
+ "only {$blessedOnes} may purchase weapons sanctified by {$god}.": string & { __params: { "blessedOnes": string; "god": string } }
2653
+ "To buy this item during hero creation, the character must be from {$cultures}.": string & { __params: { "cultures": string } }
2654
+ "To buy {$itemName} during hero creation, the character must be from {$cultures}.": string & { __params: { "itemName": string; "cultures": string } }
2655
+ "To buy this item during hero creation, the character must have a shamanistic tradition.": string
2656
+ "To buy {$itemName} during hero creation, the character must have a shamanistic tradition.": string & { __params: { "itemName": string } }
2646
2657
  ".input {$value :number} {{{$value} inches}}": string & { __params: { "value": number } }
2647
2658
  "unlimited": string
2648
2659
  "Structure Points": string
@@ -13086,7 +13097,7 @@ export interface DefaultRangedDamage {
13086
13097
  }
13087
13098
 
13088
13099
  /**
13089
- * If the item is in any case restricted to a subset of characters. The differenciating aspect may be tradition, race, culture, or a profession. Each element must be applicable to a character.
13100
+ * If the item is in any case restricted to a subset of characters. The differenciating aspect may be tradition, race, culture, or a profession. Each element must be applicable to a character.
13090
13101
  */
13091
13102
  export interface RestrictedTo {
13092
13103
  /**
@@ -13123,6 +13134,25 @@ export interface RestrictedToRaces {
13123
13134
  * The item is restricted to one of a list of races. If only one race is allowed, the list may only have a single element.
13124
13135
  */
13125
13136
  scope: Race_ID[]
13137
+
13138
+ /**
13139
+ * All translations for the entry, identified by IETF language tag (BCP47).
13140
+ */
13141
+ translations: {
13142
+ [localeId: string]: RestrictedToRacesTranslation
13143
+ }
13144
+ }
13145
+
13146
+ export interface RestrictedToRacesTranslation {
13147
+ /**
13148
+ * The item’s name and surrounding words influenced by grammatical agreement.
13149
+ */
13150
+ item: string
13151
+
13152
+ /**
13153
+ * The name of the group of cultures from that race.
13154
+ */
13155
+ groupOfCultures: string
13126
13156
  }
13127
13157
 
13128
13158
  /**
@@ -13133,6 +13163,25 @@ export interface RestrictedToCultures {
13133
13163
  * The item is restricted to one of a list of cultures. If only one culture is allowed, the list may only have a single element.
13134
13164
  */
13135
13165
  scope: Culture_ID[]
13166
+
13167
+ /**
13168
+ * All translations for the entry, identified by IETF language tag (BCP47).
13169
+ */
13170
+ translations: {
13171
+ [localeId: string]: RestrictedToCulturesTranslation
13172
+ }
13173
+ }
13174
+
13175
+ export interface RestrictedToCulturesTranslation {
13176
+ /**
13177
+ * The item’s name and surrounding words influenced by grammatical agreement.
13178
+ */
13179
+ item: string
13180
+
13181
+ /**
13182
+ * The name of the culture(s) integrated into the text.
13183
+ */
13184
+ cultures: string
13136
13185
  }
13137
13186
 
13138
13187
  /**
@@ -13153,6 +13202,20 @@ export interface RestrictedToMagicalTraditions {
13153
13202
  * The item is restricted to one of a list of magical traditions. If only one magical tradition is allowed, the list may only have a single element.
13154
13203
  */
13155
13204
  scope: MagicalTradition_ID[]
13205
+
13206
+ /**
13207
+ * All translations for the entry, identified by IETF language tag (BCP47).
13208
+ */
13209
+ translations: {
13210
+ [localeId: string]: RestrictedToMagicalTraditionsTranslation
13211
+ }
13212
+ }
13213
+
13214
+ export interface RestrictedToMagicalTraditionsTranslation {
13215
+ /**
13216
+ * The item’s name and surrounding words influenced by grammatical agreement.
13217
+ */
13218
+ item: string
13156
13219
  }
13157
13220
 
13158
13221
  /**
@@ -13168,6 +13231,30 @@ export interface RestrictedToBlessedTraditions {
13168
13231
  * The item is sanctified by the applicable listed tradition.
13169
13232
  */
13170
13233
  isSanctifiedBy: boolean
13234
+
13235
+ /**
13236
+ * All translations for the entry, identified by IETF language tag (BCP47).
13237
+ */
13238
+ translations: {
13239
+ [localeId: string]: RestrictedToBlessedTraditionsTranslation
13240
+ }
13241
+ }
13242
+
13243
+ export interface RestrictedToBlessedTraditionsTranslation {
13244
+ /**
13245
+ * The item’s sanctified prefix, if different from the generated one.
13246
+ */
13247
+ sanctified?: string
13248
+
13249
+ /**
13250
+ * The item’s name and surrounding words influenced by grammatical agreement.
13251
+ */
13252
+ item: string
13253
+
13254
+ /**
13255
+ * The blessed ones able to buy the item, if different from the generated one.
13256
+ */
13257
+ blessedOnes?: string
13171
13258
  }
13172
13259
 
13173
13260
  /**
@@ -23821,6 +23908,20 @@ export interface StandardArmorType {
23821
23908
  * An armor type can have a *sturdiness rating*. The higher the rating, the more durable the armor. Rolling higher than this rating during a sturdiness check means the armor receives one level of the new condition *Wear*.
23822
23909
  */
23823
23910
  sturdinessRating: number
23911
+
23912
+ /**
23913
+ * All translations for the entry, identified by IETF language tag (BCP47).
23914
+ */
23915
+ translations: {
23916
+ [localeId: string]: StandardArmorTypeTranslation
23917
+ }
23918
+ }
23919
+
23920
+ export interface StandardArmorTypeTranslation {
23921
+ /**
23922
+ * The name of this armor when referenced as the base of a variant in a note.
23923
+ */
23924
+ nameInNote: string
23824
23925
  }
23825
23926
 
23826
23927
  /**
@@ -23836,6 +23937,20 @@ export interface StandardVariantArmorType {
23836
23937
  * An armor type can have a *sturdiness rating*. The higher the rating, the more durable the armor. Rolling higher than this rating during a sturdiness check means the armor receives one level of the new condition *Wear*.
23837
23938
  */
23838
23939
  sturdinessRating: number
23940
+
23941
+ /**
23942
+ * All translations for the entry, identified by IETF language tag (BCP47).
23943
+ */
23944
+ translations: {
23945
+ [localeId: string]: StandardVariantArmorTypeTranslation
23946
+ }
23947
+ }
23948
+
23949
+ export interface StandardVariantArmorTypeTranslation {
23950
+ /**
23951
+ * The name of this armor when referenced as being a variant of another armor in a note.
23952
+ */
23953
+ nameInNote: string
23839
23954
  }
23840
23955
 
23841
23956
  /**
@@ -23846,6 +23961,20 @@ export interface VariantArmorType {
23846
23961
  * The standard armor this armor is a variant of.
23847
23962
  */
23848
23963
  variantOf: Armor_ID
23964
+
23965
+ /**
23966
+ * All translations for the entry, identified by IETF language tag (BCP47).
23967
+ */
23968
+ translations: {
23969
+ [localeId: string]: VariantArmorTypeTranslation
23970
+ }
23971
+ }
23972
+
23973
+ export interface VariantArmorTypeTranslation {
23974
+ /**
23975
+ * The name of this armor when referenced as being a variant of another armor in a note.
23976
+ */
23977
+ nameInNote: string
23849
23978
  }
23850
23979
 
23851
23980
  /**
@@ -25431,9 +25560,9 @@ export interface EquipmentOfBlessedOnes {
25431
25560
  structure_points: StructurePoints
25432
25561
 
25433
25562
  /**
25434
- * Define if during character creation this item can only be bought by a specific subset of characters.
25563
+ * The traditions this item is associated with.
25435
25564
  */
25436
- restrictedTo?: RestrictedTo
25565
+ associatedTraditions: AssociatedTradition[]
25437
25566
 
25438
25567
  /**
25439
25568
  * The item can also be used either as an improvised weapon or as an armor, although this is not the primary use case of the item.
@@ -25482,6 +25611,15 @@ export interface EquipmentOfBlessedOnesTranslation {
25482
25611
  errata?: Errata
25483
25612
  }
25484
25613
 
25614
+ export type AssociatedTradition =
25615
+ | {
25616
+ kind: "Specific"
25617
+ Specific: BlessedTradition_ID
25618
+ }
25619
+ | {
25620
+ kind: "ManyShamans"
25621
+ }
25622
+
25485
25623
  export interface EquipmentPackage {
25486
25624
  /**
25487
25625
  * All items in the package. You have to provide the item (template) identifier and you can optionally provide the number of how often an item is included in the package.
@@ -1476,12 +1476,22 @@ export declare const Locale: DB.Entity<"Locale", {
1476
1476
  Complex: null;
1477
1477
  Various: null;
1478
1478
  "Parrying weapon (PA bonus +1 for the main weapon)": null;
1479
- "To buy a {$itemName} during hero creation, the character must have Tradition ({$traditions}).": null;
1480
- "Sanctified ({$traditions}); only {$blessedOnes} may purchase weapons sanctified by {$gods}, respectively.": null;
1481
- "Sanctified ({$tradition}); only {$blessedOnes} may purchase weapons sanctified by {$god}.": null;
1482
- "To buy a {$name} during hero creation, the character must be from the culture of the {$cultures}.": null;
1483
- "To buy a {$itemName} during hero creation, the character must have a shamanistic tradition.": null;
1484
- "To buy a {$name} during hero creation, the character must be from a culture common to the race of {$races}.": null;
1479
+ "{$variantArmor} is a type of {$baseArmor}.": null;
1480
+ "{$variantHitZoneArmor} counts as {$baseArmor} for hit zone {$hitZone}.": null;
1481
+ Arms: null;
1482
+ Head: null;
1483
+ Legs: null;
1484
+ Torso: null;
1485
+ "many shamans": null;
1486
+ "To buy this item during hero creation, the character must have Tradition ({$traditions}).": null;
1487
+ "To buy {$itemName} during hero creation, the character must have Tradition ({$traditions}).": null;
1488
+ "Sanctified ({$traditions})": null;
1489
+ "only {$blessedOnes} may purchase weapons sanctified by {$gods}, respectively.": null;
1490
+ "only {$blessedOnes} may purchase weapons sanctified by {$god}.": null;
1491
+ "To buy this item during hero creation, the character must be from {$cultures}.": null;
1492
+ "To buy {$itemName} during hero creation, the character must be from {$cultures}.": null;
1493
+ "To buy this item during hero creation, the character must have a shamanistic tradition.": null;
1494
+ "To buy {$itemName} during hero creation, the character must have a shamanistic tradition.": null;
1485
1495
  ".input {$value :number} {{{$value} inches}}": null;
1486
1496
  unlimited: null;
1487
1497
  "Structure Points": null;
@@ -1518,12 +1518,22 @@ export const Locale = DB.Entity(import.meta.url, {
1518
1518
  "Complex": null,
1519
1519
  "Various": null,
1520
1520
  "Parrying weapon (PA bonus +1 for the main weapon)": null,
1521
- "To buy a {$itemName} during hero creation, the character must have Tradition ({$traditions}).": null,
1522
- "Sanctified ({$traditions}); only {$blessedOnes} may purchase weapons sanctified by {$gods}, respectively.": null,
1523
- "Sanctified ({$tradition}); only {$blessedOnes} may purchase weapons sanctified by {$god}.": null,
1524
- "To buy a {$name} during hero creation, the character must be from the culture of the {$cultures}.": null,
1525
- "To buy a {$itemName} during hero creation, the character must have a shamanistic tradition.": null,
1526
- "To buy a {$name} during hero creation, the character must be from a culture common to the race of {$races}.": null,
1521
+ "{$variantArmor} is a type of {$baseArmor}.": null,
1522
+ "{$variantHitZoneArmor} counts as {$baseArmor} for hit zone {$hitZone}.": null,
1523
+ "Arms": null,
1524
+ "Head": null,
1525
+ "Legs": null,
1526
+ "Torso": null,
1527
+ "many shamans": null,
1528
+ "To buy this item during hero creation, the character must have Tradition ({$traditions}).": null,
1529
+ "To buy {$itemName} during hero creation, the character must have Tradition ({$traditions}).": null,
1530
+ "Sanctified ({$traditions})": null,
1531
+ "only {$blessedOnes} may purchase weapons sanctified by {$gods}, respectively.": null,
1532
+ "only {$blessedOnes} may purchase weapons sanctified by {$god}.": null,
1533
+ "To buy this item during hero creation, the character must be from {$cultures}.": null,
1534
+ "To buy {$itemName} during hero creation, the character must be from {$cultures}.": null,
1535
+ "To buy this item during hero creation, the character must have a shamanistic tradition.": null,
1536
+ "To buy {$itemName} during hero creation, the character must have a shamanistic tradition.": null,
1527
1537
  ".input {$value :number} {{{$value} inches}}": null,
1528
1538
  "unlimited": null,
1529
1539
  "Structure Points": null,
@@ -102,13 +102,22 @@ export declare const Armor: DB.Entity<"Armor", {
102
102
  armorType: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ArmorType", {
103
103
  Standard: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StandardArmorType", DB.Object<{
104
104
  sturdinessRating: DB.MemberDecl<DB.Integer, true>;
105
+ translations: DB.MemberDecl<DB.NestedEntityMap<"StandardArmorTypeTranslation", {
106
+ nameInNote: DB.MemberDecl<DB.String, true>;
107
+ }>, true>;
105
108
  }>, []>>>;
106
109
  StandardVariant: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StandardVariantArmorType", DB.Object<{
107
110
  variantOf: DB.MemberDecl<DB.ReferenceIdentifier, true>;
108
111
  sturdinessRating: DB.MemberDecl<DB.Integer, true>;
112
+ translations: DB.MemberDecl<DB.NestedEntityMap<"StandardVariantArmorTypeTranslation", {
113
+ nameInNote: DB.MemberDecl<DB.String, true>;
114
+ }>, true>;
109
115
  }>, []>>>;
110
116
  Variant: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"VariantArmorType", DB.Object<{
111
117
  variantOf: DB.MemberDecl<DB.ReferenceIdentifier, true>;
118
+ translations: DB.MemberDecl<DB.NestedEntityMap<"VariantArmorTypeTranslation", {
119
+ nameInNote: DB.MemberDecl<DB.String, true>;
120
+ }>, true>;
112
121
  }>, []>>>;
113
122
  }, []>>, true>;
114
123
  hit_zone: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"HitZone", {
@@ -125,15 +134,26 @@ export declare const Armor: DB.Entity<"Armor", {
125
134
  restrictedTo: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"RestrictedTo", DB.Object<{
126
135
  races: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"RestrictedToRaces", DB.Object<{
127
136
  scope: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, true>;
137
+ translations: DB.MemberDecl<DB.NestedEntityMap<"RestrictedToRacesTranslation", {
138
+ item: DB.MemberDecl<DB.String, true>;
139
+ groupOfCultures: DB.MemberDecl<DB.String, true>;
140
+ }>, true>;
128
141
  }>, []>>, false>;
129
142
  cultures: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"RestrictedToCultures", DB.Object<{
130
143
  scope: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, true>;
144
+ translations: DB.MemberDecl<DB.NestedEntityMap<"RestrictedToCulturesTranslation", {
145
+ item: DB.MemberDecl<DB.String, true>;
146
+ cultures: DB.MemberDecl<DB.String, true>;
147
+ }>, true>;
131
148
  }>, []>>, false>;
132
149
  professions: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"RestrictedToProfessions", DB.Object<{
133
150
  scope: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, true>;
134
151
  }>, []>>, false>;
135
152
  magicalTraditions: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"RestrictedToMagicalTraditions", DB.Object<{
136
153
  scope: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, true>;
154
+ translations: DB.MemberDecl<DB.NestedEntityMap<"RestrictedToMagicalTraditionsTranslation", {
155
+ item: DB.MemberDecl<DB.String, true>;
156
+ }>, true>;
137
157
  }>, []>>, false>;
138
158
  blessedTraditions: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"RestrictedToBlessedTraditions", DB.Object<{
139
159
  scope: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"RestrictedToBlessedTraditionsScope", {
@@ -142,6 +162,11 @@ export declare const Armor: DB.Entity<"Armor", {
142
162
  Shamanistic: DB.EnumCase<null>;
143
163
  }, []>>, true>;
144
164
  isSanctifiedBy: DB.MemberDecl<DB.Boolean, true>;
165
+ translations: DB.MemberDecl<DB.NestedEntityMap<"RestrictedToBlessedTraditionsTranslation", {
166
+ sanctified: DB.MemberDecl<DB.String, false>;
167
+ item: DB.MemberDecl<DB.String, true>;
168
+ blessedOnes: DB.MemberDecl<DB.String, false>;
169
+ }>, true>;
145
170
  }>, []>>, false>;
146
171
  }>, []>>, false>;
147
172
  knownItemSpecifics: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"KnownItemSpecifics", DB.Object<{
@@ -255,13 +280,22 @@ export declare const SecondaryArmor: DB.TypeAlias<"SecondaryArmor", DB.Object<{
255
280
  armorType: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ArmorType", {
256
281
  Standard: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StandardArmorType", DB.Object<{
257
282
  sturdinessRating: DB.MemberDecl<DB.Integer, true>;
283
+ translations: DB.MemberDecl<DB.NestedEntityMap<"StandardArmorTypeTranslation", {
284
+ nameInNote: DB.MemberDecl<DB.String, true>;
285
+ }>, true>;
258
286
  }>, []>>>;
259
287
  StandardVariant: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StandardVariantArmorType", DB.Object<{
260
288
  variantOf: DB.MemberDecl<DB.ReferenceIdentifier, true>;
261
289
  sturdinessRating: DB.MemberDecl<DB.Integer, true>;
290
+ translations: DB.MemberDecl<DB.NestedEntityMap<"StandardVariantArmorTypeTranslation", {
291
+ nameInNote: DB.MemberDecl<DB.String, true>;
292
+ }>, true>;
262
293
  }>, []>>>;
263
294
  Variant: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"VariantArmorType", DB.Object<{
264
295
  variantOf: DB.MemberDecl<DB.ReferenceIdentifier, true>;
296
+ translations: DB.MemberDecl<DB.NestedEntityMap<"VariantArmorTypeTranslation", {
297
+ nameInNote: DB.MemberDecl<DB.String, true>;
298
+ }>, true>;
265
299
  }>, []>>>;
266
300
  }, []>>, true>;
267
301
  hit_zone: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"HitZone", {
@@ -278,15 +312,26 @@ export declare const SecondaryArmor: DB.TypeAlias<"SecondaryArmor", DB.Object<{
278
312
  restrictedTo: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"RestrictedTo", DB.Object<{
279
313
  races: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"RestrictedToRaces", DB.Object<{
280
314
  scope: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, true>;
315
+ translations: DB.MemberDecl<DB.NestedEntityMap<"RestrictedToRacesTranslation", {
316
+ item: DB.MemberDecl<DB.String, true>;
317
+ groupOfCultures: DB.MemberDecl<DB.String, true>;
318
+ }>, true>;
281
319
  }>, []>>, false>;
282
320
  cultures: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"RestrictedToCultures", DB.Object<{
283
321
  scope: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, true>;
322
+ translations: DB.MemberDecl<DB.NestedEntityMap<"RestrictedToCulturesTranslation", {
323
+ item: DB.MemberDecl<DB.String, true>;
324
+ cultures: DB.MemberDecl<DB.String, true>;
325
+ }>, true>;
284
326
  }>, []>>, false>;
285
327
  professions: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"RestrictedToProfessions", DB.Object<{
286
328
  scope: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, true>;
287
329
  }>, []>>, false>;
288
330
  magicalTraditions: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"RestrictedToMagicalTraditions", DB.Object<{
289
331
  scope: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, true>;
332
+ translations: DB.MemberDecl<DB.NestedEntityMap<"RestrictedToMagicalTraditionsTranslation", {
333
+ item: DB.MemberDecl<DB.String, true>;
334
+ }>, true>;
290
335
  }>, []>>, false>;
291
336
  blessedTraditions: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"RestrictedToBlessedTraditions", DB.Object<{
292
337
  scope: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"RestrictedToBlessedTraditionsScope", {
@@ -295,6 +340,11 @@ export declare const SecondaryArmor: DB.TypeAlias<"SecondaryArmor", DB.Object<{
295
340
  Shamanistic: DB.EnumCase<null>;
296
341
  }, []>>, true>;
297
342
  isSanctifiedBy: DB.MemberDecl<DB.Boolean, true>;
343
+ translations: DB.MemberDecl<DB.NestedEntityMap<"RestrictedToBlessedTraditionsTranslation", {
344
+ sanctified: DB.MemberDecl<DB.String, false>;
345
+ item: DB.MemberDecl<DB.String, true>;
346
+ blessedOnes: DB.MemberDecl<DB.String, false>;
347
+ }>, true>;
298
348
  }>, []>>, false>;
299
349
  }>, []>>, false>;
300
350
  translations: DB.MemberDecl<DB.NestedEntityMap<"SecondaryArmorTranslation", {
@@ -109,6 +109,12 @@ const StandardArmorType = DB.TypeAlias(import.meta.url, {
109
109
  comment: "An armor type can have a *sturdiness rating*. The higher the rating, the more durable the armor. Rolling higher than this rating during a sturdiness check means the armor receives one level of the new condition *Wear*.",
110
110
  type: DB.Integer({ minimum: 1, maximum: 20 }),
111
111
  }),
112
+ translations: NestedTranslationMap(DB.Required, "StandardArmorType", DB.Object({
113
+ nameInNote: DB.Required({
114
+ comment: "The name of this armor when referenced as the base of a variant in a note.",
115
+ type: DB.String({ minLength: 1, markdown: "block" }),
116
+ }),
117
+ }, { minProperties: 1 })),
112
118
  }),
113
119
  });
114
120
  const validateArmorTypeReference = (deps) => [
@@ -130,6 +136,12 @@ const StandardVariantArmorType = DB.TypeAlias(import.meta.url, {
130
136
  comment: "An armor type can have a *sturdiness rating*. The higher the rating, the more durable the armor. Rolling higher than this rating during a sturdiness check means the armor receives one level of the new condition *Wear*.",
131
137
  type: DB.Integer({ minimum: 1, maximum: 20 }),
132
138
  }),
139
+ translations: NestedTranslationMap(DB.Required, "StandardVariantArmorType", DB.Object({
140
+ nameInNote: DB.Required({
141
+ comment: "The name of this armor when referenced as being a variant of another armor in a note.",
142
+ type: DB.String({ minLength: 1, markdown: "block" }),
143
+ }),
144
+ }, { minProperties: 1 })),
133
145
  }),
134
146
  customConstraints: validateArmorTypeReference,
135
147
  });
@@ -141,6 +153,12 @@ const VariantArmorType = DB.TypeAlias(import.meta.url, {
141
153
  comment: "The standard armor this armor is a variant of.",
142
154
  type: ArmorIdentifier(),
143
155
  }),
156
+ translations: NestedTranslationMap(DB.Required, "VariantArmorType", DB.Object({
157
+ nameInNote: DB.Required({
158
+ comment: "The name of this armor when referenced as being a variant of another armor in a note.",
159
+ type: DB.String({ minLength: 1, markdown: "block" }),
160
+ }),
161
+ }, { minProperties: 1 })),
144
162
  }),
145
163
  customConstraints: validateArmorTypeReference,
146
164
  });
@@ -148,15 +148,26 @@ export declare const ArmorAccessory: DB.Entity<"ArmorAccessory", {
148
148
  restrictedTo: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"RestrictedTo", DB.Object<{
149
149
  races: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"RestrictedToRaces", DB.Object<{
150
150
  scope: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, true>;
151
+ translations: DB.MemberDecl<DB.NestedEntityMap<"RestrictedToRacesTranslation", {
152
+ item: DB.MemberDecl<DB.String, true>;
153
+ groupOfCultures: DB.MemberDecl<DB.String, true>;
154
+ }>, true>;
151
155
  }>, []>>, false>;
152
156
  cultures: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"RestrictedToCultures", DB.Object<{
153
157
  scope: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, true>;
158
+ translations: DB.MemberDecl<DB.NestedEntityMap<"RestrictedToCulturesTranslation", {
159
+ item: DB.MemberDecl<DB.String, true>;
160
+ cultures: DB.MemberDecl<DB.String, true>;
161
+ }>, true>;
154
162
  }>, []>>, false>;
155
163
  professions: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"RestrictedToProfessions", DB.Object<{
156
164
  scope: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, true>;
157
165
  }>, []>>, false>;
158
166
  magicalTraditions: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"RestrictedToMagicalTraditions", DB.Object<{
159
167
  scope: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, true>;
168
+ translations: DB.MemberDecl<DB.NestedEntityMap<"RestrictedToMagicalTraditionsTranslation", {
169
+ item: DB.MemberDecl<DB.String, true>;
170
+ }>, true>;
160
171
  }>, []>>, false>;
161
172
  blessedTraditions: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"RestrictedToBlessedTraditions", DB.Object<{
162
173
  scope: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"RestrictedToBlessedTraditionsScope", {
@@ -165,6 +176,11 @@ export declare const ArmorAccessory: DB.Entity<"ArmorAccessory", {
165
176
  Shamanistic: DB.EnumCase<null>;
166
177
  }, []>>, true>;
167
178
  isSanctifiedBy: DB.MemberDecl<DB.Boolean, true>;
179
+ translations: DB.MemberDecl<DB.NestedEntityMap<"RestrictedToBlessedTraditionsTranslation", {
180
+ sanctified: DB.MemberDecl<DB.String, false>;
181
+ item: DB.MemberDecl<DB.String, true>;
182
+ blessedOnes: DB.MemberDecl<DB.String, false>;
183
+ }>, true>;
168
184
  }>, []>>, false>;
169
185
  }>, []>>, false>;
170
186
  translations: DB.MemberDecl<DB.NestedEntityMap<"ImprovisedWeaponTranslation", {
@@ -179,13 +195,22 @@ export declare const ArmorAccessory: DB.Entity<"ArmorAccessory", {
179
195
  armorType: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ArmorType", {
180
196
  Standard: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StandardArmorType", DB.Object<{
181
197
  sturdinessRating: DB.MemberDecl<DB.Integer, true>;
198
+ translations: DB.MemberDecl<DB.NestedEntityMap<"StandardArmorTypeTranslation", {
199
+ nameInNote: DB.MemberDecl<DB.String, true>;
200
+ }>, true>;
182
201
  }>, []>>>;
183
202
  StandardVariant: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StandardVariantArmorType", DB.Object<{
184
203
  variantOf: DB.MemberDecl<DB.ReferenceIdentifier, true>;
185
204
  sturdinessRating: DB.MemberDecl<DB.Integer, true>;
205
+ translations: DB.MemberDecl<DB.NestedEntityMap<"StandardVariantArmorTypeTranslation", {
206
+ nameInNote: DB.MemberDecl<DB.String, true>;
207
+ }>, true>;
186
208
  }>, []>>>;
187
209
  Variant: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"VariantArmorType", DB.Object<{
188
210
  variantOf: DB.MemberDecl<DB.ReferenceIdentifier, true>;
211
+ translations: DB.MemberDecl<DB.NestedEntityMap<"VariantArmorTypeTranslation", {
212
+ nameInNote: DB.MemberDecl<DB.String, true>;
213
+ }>, true>;
189
214
  }>, []>>>;
190
215
  }, []>>, true>;
191
216
  hit_zone: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"HitZone", {
@@ -202,15 +227,26 @@ export declare const ArmorAccessory: DB.Entity<"ArmorAccessory", {
202
227
  restrictedTo: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"RestrictedTo", DB.Object<{
203
228
  races: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"RestrictedToRaces", DB.Object<{
204
229
  scope: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, true>;
230
+ translations: DB.MemberDecl<DB.NestedEntityMap<"RestrictedToRacesTranslation", {
231
+ item: DB.MemberDecl<DB.String, true>;
232
+ groupOfCultures: DB.MemberDecl<DB.String, true>;
233
+ }>, true>;
205
234
  }>, []>>, false>;
206
235
  cultures: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"RestrictedToCultures", DB.Object<{
207
236
  scope: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, true>;
237
+ translations: DB.MemberDecl<DB.NestedEntityMap<"RestrictedToCulturesTranslation", {
238
+ item: DB.MemberDecl<DB.String, true>;
239
+ cultures: DB.MemberDecl<DB.String, true>;
240
+ }>, true>;
208
241
  }>, []>>, false>;
209
242
  professions: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"RestrictedToProfessions", DB.Object<{
210
243
  scope: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, true>;
211
244
  }>, []>>, false>;
212
245
  magicalTraditions: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"RestrictedToMagicalTraditions", DB.Object<{
213
246
  scope: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, true>;
247
+ translations: DB.MemberDecl<DB.NestedEntityMap<"RestrictedToMagicalTraditionsTranslation", {
248
+ item: DB.MemberDecl<DB.String, true>;
249
+ }>, true>;
214
250
  }>, []>>, false>;
215
251
  blessedTraditions: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"RestrictedToBlessedTraditions", DB.Object<{
216
252
  scope: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"RestrictedToBlessedTraditionsScope", {
@@ -219,6 +255,11 @@ export declare const ArmorAccessory: DB.Entity<"ArmorAccessory", {
219
255
  Shamanistic: DB.EnumCase<null>;
220
256
  }, []>>, true>;
221
257
  isSanctifiedBy: DB.MemberDecl<DB.Boolean, true>;
258
+ translations: DB.MemberDecl<DB.NestedEntityMap<"RestrictedToBlessedTraditionsTranslation", {
259
+ sanctified: DB.MemberDecl<DB.String, false>;
260
+ item: DB.MemberDecl<DB.String, true>;
261
+ blessedOnes: DB.MemberDecl<DB.String, false>;
262
+ }>, true>;
222
263
  }>, []>>, false>;
223
264
  }>, []>>, false>;
224
265
  translations: DB.MemberDecl<DB.NestedEntityMap<"SecondaryArmorTranslation", {