optolith-database-schema 0.22.0 → 0.23.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/gen/types.d.ts +1303 -1180
  3. package/lib/types/Locale.d.ts +97 -133
  4. package/lib/types/Locale.js +147 -134
  5. package/lib/types/equipment/item/Animal.d.ts +1 -1
  6. package/lib/types/equipment/item/AnimalCare.d.ts +1 -1
  7. package/lib/types/equipment/item/Armor.d.ts +44 -0
  8. package/lib/types/equipment/item/Armor.js +9 -1
  9. package/lib/types/equipment/item/BandageOrRemedy.d.ts +45 -9
  10. package/lib/types/equipment/item/CeremonialItem.d.ts +45 -9
  11. package/lib/types/equipment/item/Clothes.d.ts +45 -9
  12. package/lib/types/equipment/item/Container.d.ts +45 -9
  13. package/lib/types/equipment/item/EquipmentOfBlessedOnes.d.ts +77 -20
  14. package/lib/types/equipment/item/EquipmentOfBlessedOnes.js +5 -6
  15. package/lib/types/equipment/item/IlluminationLightSource.d.ts +45 -9
  16. package/lib/types/equipment/item/IlluminationRefillOrSupply.d.ts +45 -9
  17. package/lib/types/equipment/item/Jewelry.d.ts +1 -1
  18. package/lib/types/equipment/item/Laboratory.d.ts +1 -1
  19. package/lib/types/equipment/item/Liebesspielzeug.d.ts +45 -9
  20. package/lib/types/equipment/item/LuxuryGood.d.ts +45 -9
  21. package/lib/types/equipment/item/MagicalArtifact.d.ts +63 -21
  22. package/lib/types/equipment/item/MagicalArtifact.js +41 -3
  23. package/lib/types/equipment/item/MusicalInstrument.d.ts +48 -9
  24. package/lib/types/equipment/item/MusicalInstrument.js +5 -1
  25. package/lib/types/equipment/item/OrienteeringAid.d.ts +45 -9
  26. package/lib/types/equipment/item/Poison.d.ts +41 -5
  27. package/lib/types/equipment/item/Poison.js +33 -1
  28. package/lib/types/equipment/item/RopeOrChain.d.ts +45 -9
  29. package/lib/types/equipment/item/Stationery.d.ts +45 -9
  30. package/lib/types/equipment/item/ThievesTool.d.ts +45 -9
  31. package/lib/types/equipment/item/ToolOfTheTrade.d.ts +1 -1
  32. package/lib/types/equipment/item/TravelGearOrTool.d.ts +45 -9
  33. package/lib/types/equipment/item/Vehicle.d.ts +1 -1
  34. package/lib/types/equipment/item/Weapon.d.ts +105 -78
  35. package/lib/types/equipment/item/Weapon.js +8 -46
  36. package/lib/types/equipment/item/WeaponAccessory.d.ts +45 -9
  37. package/lib/types/equipment/item/_Item.d.ts +148 -29
  38. package/lib/types/equipment/item/_Item.js +94 -2
  39. package/lib/types/specialAbility/CombatStyleSpecialAbility.d.ts +52 -0
  40. package/lib/types/specialAbility/CombatStyleSpecialAbility.js +2 -1
  41. package/lib/types/specialAbility/MagicalSign.d.ts +75 -40
  42. package/lib/types/specialAbility/MagicalSign.js +23 -2
  43. package/package.json +2 -2
@@ -89,14 +89,28 @@ export declare const WeaponAccessory: Entity<"WeaponAccessory", {
89
89
  length: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"Length", import("tsondb/schema/def").IntegerType, []>>, false>;
90
90
  is_improvised_weapon: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").BooleanType, true>;
91
91
  }>, false>;
92
- sanctified_by: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"SanctifiedBy", import("tsondb/schema/def").ArrayType<import("tsondb/schema/def").ReferenceIdentifierType>, []>>, false>;
93
- restricted_to_cultures: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").EnumDecl<"RestrictedToCultures", {
94
- CulturesOfRace: import("tsondb/schema/def").EnumCaseDecl<import("tsondb/schema/def").ReferenceIdentifierType>;
95
- Cultures: import("tsondb/schema/def").EnumCaseDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"RestrictedToSpecificCultures", Object<{
96
- list: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ArrayType<import("tsondb/schema/def").ReferenceIdentifierType>, true>;
97
- }>, []>>>;
98
- }, []>>, false>;
99
- restricted_to_traditions: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ArrayType<import("tsondb/schema/def").ReferenceIdentifierType>, false>;
92
+ restrictedTo: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"RestrictedTo", Object<{
93
+ races: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"RestrictedToRaces", Object<{
94
+ scope: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ArrayType<import("tsondb/schema/def").ReferenceIdentifierType>, true>;
95
+ }>, []>>, false>;
96
+ cultures: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"RestrictedToCultures", Object<{
97
+ scope: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ArrayType<import("tsondb/schema/def").ReferenceIdentifierType>, true>;
98
+ }>, []>>, false>;
99
+ professions: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"RestrictedToProfessions", Object<{
100
+ scope: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ArrayType<import("tsondb/schema/def").ReferenceIdentifierType>, true>;
101
+ }>, []>>, false>;
102
+ magicalTraditions: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"RestrictedToMagicalTraditions", Object<{
103
+ scope: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ArrayType<import("tsondb/schema/def").ReferenceIdentifierType>, true>;
104
+ }>, []>>, false>;
105
+ blessedTraditions: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"RestrictedToBlessedTraditions", Object<{
106
+ scope: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").EnumDecl<"RestrictedToBlessedTraditionsScope", {
107
+ Specific: import("tsondb/schema/def").EnumCaseDecl<import("tsondb/schema/def").ArrayType<import("tsondb/schema/def").ReferenceIdentifierType>>;
108
+ Church: import("tsondb/schema/def").EnumCaseDecl<null>;
109
+ Shamanistic: import("tsondb/schema/def").EnumCaseDecl<null>;
110
+ }, []>>, true>;
111
+ isSanctifiedBy: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").BooleanType, true>;
112
+ }>, []>>, false>;
113
+ }>, []>>, false>;
100
114
  translations: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").NestedEntityMapType<"ImprovisedWeaponTranslation", {
101
115
  advantage: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").StringType, false>;
102
116
  disadvantage: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").StringType, false>;
@@ -118,6 +132,28 @@ export declare const WeaponAccessory: Entity<"WeaponAccessory", {
118
132
  Arms: import("tsondb/schema/def").EnumCaseDecl<null>;
119
133
  Legs: import("tsondb/schema/def").EnumCaseDecl<null>;
120
134
  }, []>>, false>;
135
+ restrictedTo: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"RestrictedTo", Object<{
136
+ races: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"RestrictedToRaces", Object<{
137
+ scope: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ArrayType<import("tsondb/schema/def").ReferenceIdentifierType>, true>;
138
+ }>, []>>, false>;
139
+ cultures: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"RestrictedToCultures", Object<{
140
+ scope: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ArrayType<import("tsondb/schema/def").ReferenceIdentifierType>, true>;
141
+ }>, []>>, false>;
142
+ professions: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"RestrictedToProfessions", Object<{
143
+ scope: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ArrayType<import("tsondb/schema/def").ReferenceIdentifierType>, true>;
144
+ }>, []>>, false>;
145
+ magicalTraditions: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"RestrictedToMagicalTraditions", Object<{
146
+ scope: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ArrayType<import("tsondb/schema/def").ReferenceIdentifierType>, true>;
147
+ }>, []>>, false>;
148
+ blessedTraditions: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"RestrictedToBlessedTraditions", Object<{
149
+ scope: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").EnumDecl<"RestrictedToBlessedTraditionsScope", {
150
+ Specific: import("tsondb/schema/def").EnumCaseDecl<import("tsondb/schema/def").ArrayType<import("tsondb/schema/def").ReferenceIdentifierType>>;
151
+ Church: import("tsondb/schema/def").EnumCaseDecl<null>;
152
+ Shamanistic: import("tsondb/schema/def").EnumCaseDecl<null>;
153
+ }, []>>, true>;
154
+ isSanctifiedBy: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").BooleanType, true>;
155
+ }>, []>>, false>;
156
+ }>, []>>, false>;
121
157
  translations: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").NestedEntityMapType<"SecondaryArmorTranslation", {
122
158
  advantage: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").StringType, false>;
123
159
  disadvantage: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").StringType, false>;
@@ -164,7 +200,7 @@ export declare const WeaponAccessory: Entity<"WeaponAccessory", {
164
200
  }, []>>>, false>;
165
201
  }>, true>;
166
202
  }>, []>>>, []>>, true>;
167
- translations: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").NestedEntityMapType<`${string}TranslationTranslation`, {
203
+ translations: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").NestedEntityMapType<`${string}Translation`, {
168
204
  name: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").StringType, true>;
169
205
  secondary_name: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").StringType, false>;
170
206
  note: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").StringType, false>;
@@ -1,4 +1,4 @@
1
- import { Array, Entity, Enum, EnumCase, Float, IncludeIdentifier, Integer, Object, String, TypeAlias } from "tsondb/schema/def";
1
+ import { Array, Boolean, Entity, Enum, EnumCase, Float, IncludeIdentifier, Integer, Object, String, TypeAlias } from "tsondb/schema/def";
2
2
  export declare const DefaultItem: (sourceUrl: string, singularName: string, pluralName?: string) => Entity<string, {
3
3
  cost: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], Enum<"Cost", {
4
4
  Free: EnumCase<null>;
@@ -61,9 +61,9 @@ export declare const DefaultItem: (sourceUrl: string, singularName: string, plur
61
61
  attack_penalty: import("tsondb/schema/def").MemberDecl<Integer, false>;
62
62
  }>, []>>>;
63
63
  }, []>>, false>;
64
- is_parrying_weapon: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").BooleanType, true>;
65
- is_two_handed_weapon: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").BooleanType, true>;
66
- is_improvised_weapon: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").BooleanType, true>;
64
+ is_parrying_weapon: import("tsondb/schema/def").MemberDecl<Boolean, true>;
65
+ is_two_handed_weapon: import("tsondb/schema/def").MemberDecl<Boolean, true>;
66
+ is_improvised_weapon: import("tsondb/schema/def").MemberDecl<Boolean, true>;
67
67
  }>, false>;
68
68
  ranged_uses: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").NestedEntityMapType<string, {
69
69
  damage: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], Enum<"RangedDamage", {
@@ -87,16 +87,30 @@ export declare const DefaultItem: (sourceUrl: string, singularName: string, plur
87
87
  }>, []>>, true>;
88
88
  ammunition: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ReferenceIdentifierType, false>;
89
89
  length: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"Length", Integer, []>>, false>;
90
- is_improvised_weapon: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").BooleanType, true>;
90
+ is_improvised_weapon: import("tsondb/schema/def").MemberDecl<Boolean, true>;
91
91
  }>, false>;
92
- sanctified_by: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"SanctifiedBy", Array<import("tsondb/schema/def").ReferenceIdentifierType>, []>>, false>;
93
- restricted_to_cultures: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], Enum<"RestrictedToCultures", {
94
- CulturesOfRace: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
95
- Cultures: EnumCase<IncludeIdentifier<[], TypeAlias<"RestrictedToSpecificCultures", Object<{
96
- list: import("tsondb/schema/def").MemberDecl<Array<import("tsondb/schema/def").ReferenceIdentifierType>, true>;
97
- }>, []>>>;
98
- }, []>>, false>;
99
- restricted_to_traditions: import("tsondb/schema/def").MemberDecl<Array<import("tsondb/schema/def").ReferenceIdentifierType>, false>;
92
+ restrictedTo: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"RestrictedTo", Object<{
93
+ races: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"RestrictedToRaces", Object<{
94
+ scope: import("tsondb/schema/def").MemberDecl<Array<import("tsondb/schema/def").ReferenceIdentifierType>, true>;
95
+ }>, []>>, false>;
96
+ cultures: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"RestrictedToCultures", Object<{
97
+ scope: import("tsondb/schema/def").MemberDecl<Array<import("tsondb/schema/def").ReferenceIdentifierType>, true>;
98
+ }>, []>>, false>;
99
+ professions: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"RestrictedToProfessions", Object<{
100
+ scope: import("tsondb/schema/def").MemberDecl<Array<import("tsondb/schema/def").ReferenceIdentifierType>, true>;
101
+ }>, []>>, false>;
102
+ magicalTraditions: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"RestrictedToMagicalTraditions", Object<{
103
+ scope: import("tsondb/schema/def").MemberDecl<Array<import("tsondb/schema/def").ReferenceIdentifierType>, true>;
104
+ }>, []>>, false>;
105
+ blessedTraditions: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"RestrictedToBlessedTraditions", Object<{
106
+ scope: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], Enum<"RestrictedToBlessedTraditionsScope", {
107
+ Specific: EnumCase<Array<import("tsondb/schema/def").ReferenceIdentifierType>>;
108
+ Church: EnumCase<null>;
109
+ Shamanistic: EnumCase<null>;
110
+ }, []>>, true>;
111
+ isSanctifiedBy: import("tsondb/schema/def").MemberDecl<Boolean, true>;
112
+ }>, []>>, false>;
113
+ }>, []>>, false>;
100
114
  translations: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").NestedEntityMapType<"ImprovisedWeaponTranslation", {
101
115
  advantage: import("tsondb/schema/def").MemberDecl<String, false>;
102
116
  disadvantage: import("tsondb/schema/def").MemberDecl<String, false>;
@@ -105,7 +119,7 @@ export declare const DefaultItem: (sourceUrl: string, singularName: string, plur
105
119
  Armor: EnumCase<IncludeIdentifier<[], TypeAlias<"SecondaryArmor", Object<{
106
120
  protection: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"Protection", Integer, []>>, true>;
107
121
  encumbrance: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"Encumbrance", Integer, []>>, true>;
108
- has_additional_penalties: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"HasAdditionalPenalties", import("tsondb/schema/def").BooleanType, []>>, true>;
122
+ has_additional_penalties: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"HasAdditionalPenalties", Boolean, []>>, true>;
109
123
  armor_type: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ReferenceIdentifierType, true>;
110
124
  hit_zone: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], Enum<"HitZone", {
111
125
  Head: EnumCase<IncludeIdentifier<[], TypeAlias<"HeadHitZone", Object<{
@@ -118,6 +132,28 @@ export declare const DefaultItem: (sourceUrl: string, singularName: string, plur
118
132
  Arms: EnumCase<null>;
119
133
  Legs: EnumCase<null>;
120
134
  }, []>>, false>;
135
+ restrictedTo: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"RestrictedTo", Object<{
136
+ races: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"RestrictedToRaces", Object<{
137
+ scope: import("tsondb/schema/def").MemberDecl<Array<import("tsondb/schema/def").ReferenceIdentifierType>, true>;
138
+ }>, []>>, false>;
139
+ cultures: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"RestrictedToCultures", Object<{
140
+ scope: import("tsondb/schema/def").MemberDecl<Array<import("tsondb/schema/def").ReferenceIdentifierType>, true>;
141
+ }>, []>>, false>;
142
+ professions: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"RestrictedToProfessions", Object<{
143
+ scope: import("tsondb/schema/def").MemberDecl<Array<import("tsondb/schema/def").ReferenceIdentifierType>, true>;
144
+ }>, []>>, false>;
145
+ magicalTraditions: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"RestrictedToMagicalTraditions", Object<{
146
+ scope: import("tsondb/schema/def").MemberDecl<Array<import("tsondb/schema/def").ReferenceIdentifierType>, true>;
147
+ }>, []>>, false>;
148
+ blessedTraditions: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"RestrictedToBlessedTraditions", Object<{
149
+ scope: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], Enum<"RestrictedToBlessedTraditionsScope", {
150
+ Specific: EnumCase<Array<import("tsondb/schema/def").ReferenceIdentifierType>>;
151
+ Church: EnumCase<null>;
152
+ Shamanistic: EnumCase<null>;
153
+ }, []>>, true>;
154
+ isSanctifiedBy: import("tsondb/schema/def").MemberDecl<Boolean, true>;
155
+ }>, []>>, false>;
156
+ }>, []>>, false>;
121
157
  translations: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").NestedEntityMapType<"SecondaryArmorTranslation", {
122
158
  advantage: import("tsondb/schema/def").MemberDecl<String, false>;
123
159
  disadvantage: import("tsondb/schema/def").MemberDecl<String, false>;
@@ -164,7 +200,7 @@ export declare const DefaultItem: (sourceUrl: string, singularName: string, plur
164
200
  }, []>>>, false>;
165
201
  }>, true>;
166
202
  }>, []>>>, []>>, true>;
167
- translations: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").NestedEntityMapType<`${string}TranslationTranslation`, {
203
+ translations: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").NestedEntityMapType<`${string}Translation`, {
168
204
  name: import("tsondb/schema/def").MemberDecl<String, true>;
169
205
  secondary_name: import("tsondb/schema/def").MemberDecl<String, false>;
170
206
  note: import("tsondb/schema/def").MemberDecl<String, false>;
@@ -175,7 +211,7 @@ export declare const DefaultItem: (sourceUrl: string, singularName: string, plur
175
211
  }>, []>>>, []>>, false>;
176
212
  }>, true>;
177
213
  }, undefined>;
178
- export declare const DefaultItemTranslations: (singularName: string) => import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").NestedEntityMapType<`${string}TranslationTranslation`, {
214
+ export declare const DefaultItemTranslations: (singularName: string) => import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").NestedEntityMapType<`${string}Translation`, {
179
215
  name: import("tsondb/schema/def").MemberDecl<String, true>;
180
216
  secondary_name: import("tsondb/schema/def").MemberDecl<String, false>;
181
217
  note: import("tsondb/schema/def").MemberDecl<String, false>;
@@ -217,9 +253,9 @@ export declare const CombatUse: Enum<"CombatUse", {
217
253
  attack_penalty: import("tsondb/schema/def").MemberDecl<Integer, false>;
218
254
  }>, []>>>;
219
255
  }, []>>, false>;
220
- is_parrying_weapon: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").BooleanType, true>;
221
- is_two_handed_weapon: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").BooleanType, true>;
222
- is_improvised_weapon: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").BooleanType, true>;
256
+ is_parrying_weapon: import("tsondb/schema/def").MemberDecl<Boolean, true>;
257
+ is_two_handed_weapon: import("tsondb/schema/def").MemberDecl<Boolean, true>;
258
+ is_improvised_weapon: import("tsondb/schema/def").MemberDecl<Boolean, true>;
223
259
  }>, false>;
224
260
  ranged_uses: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").NestedEntityMapType<string, {
225
261
  damage: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], Enum<"RangedDamage", {
@@ -243,16 +279,30 @@ export declare const CombatUse: Enum<"CombatUse", {
243
279
  }>, []>>, true>;
244
280
  ammunition: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ReferenceIdentifierType, false>;
245
281
  length: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"Length", Integer, []>>, false>;
246
- is_improvised_weapon: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").BooleanType, true>;
282
+ is_improvised_weapon: import("tsondb/schema/def").MemberDecl<Boolean, true>;
247
283
  }>, false>;
248
- sanctified_by: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"SanctifiedBy", Array<import("tsondb/schema/def").ReferenceIdentifierType>, []>>, false>;
249
- restricted_to_cultures: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], Enum<"RestrictedToCultures", {
250
- CulturesOfRace: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
251
- Cultures: EnumCase<IncludeIdentifier<[], TypeAlias<"RestrictedToSpecificCultures", Object<{
252
- list: import("tsondb/schema/def").MemberDecl<Array<import("tsondb/schema/def").ReferenceIdentifierType>, true>;
253
- }>, []>>>;
254
- }, []>>, false>;
255
- restricted_to_traditions: import("tsondb/schema/def").MemberDecl<Array<import("tsondb/schema/def").ReferenceIdentifierType>, false>;
284
+ restrictedTo: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"RestrictedTo", Object<{
285
+ races: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"RestrictedToRaces", Object<{
286
+ scope: import("tsondb/schema/def").MemberDecl<Array<import("tsondb/schema/def").ReferenceIdentifierType>, true>;
287
+ }>, []>>, false>;
288
+ cultures: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"RestrictedToCultures", Object<{
289
+ scope: import("tsondb/schema/def").MemberDecl<Array<import("tsondb/schema/def").ReferenceIdentifierType>, true>;
290
+ }>, []>>, false>;
291
+ professions: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"RestrictedToProfessions", Object<{
292
+ scope: import("tsondb/schema/def").MemberDecl<Array<import("tsondb/schema/def").ReferenceIdentifierType>, true>;
293
+ }>, []>>, false>;
294
+ magicalTraditions: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"RestrictedToMagicalTraditions", Object<{
295
+ scope: import("tsondb/schema/def").MemberDecl<Array<import("tsondb/schema/def").ReferenceIdentifierType>, true>;
296
+ }>, []>>, false>;
297
+ blessedTraditions: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"RestrictedToBlessedTraditions", Object<{
298
+ scope: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], Enum<"RestrictedToBlessedTraditionsScope", {
299
+ Specific: EnumCase<Array<import("tsondb/schema/def").ReferenceIdentifierType>>;
300
+ Church: EnumCase<null>;
301
+ Shamanistic: EnumCase<null>;
302
+ }, []>>, true>;
303
+ isSanctifiedBy: import("tsondb/schema/def").MemberDecl<Boolean, true>;
304
+ }>, []>>, false>;
305
+ }>, []>>, false>;
256
306
  translations: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").NestedEntityMapType<"ImprovisedWeaponTranslation", {
257
307
  advantage: import("tsondb/schema/def").MemberDecl<String, false>;
258
308
  disadvantage: import("tsondb/schema/def").MemberDecl<String, false>;
@@ -261,7 +311,7 @@ export declare const CombatUse: Enum<"CombatUse", {
261
311
  Armor: EnumCase<IncludeIdentifier<[], TypeAlias<"SecondaryArmor", Object<{
262
312
  protection: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"Protection", Integer, []>>, true>;
263
313
  encumbrance: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"Encumbrance", Integer, []>>, true>;
264
- has_additional_penalties: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"HasAdditionalPenalties", import("tsondb/schema/def").BooleanType, []>>, true>;
314
+ has_additional_penalties: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"HasAdditionalPenalties", Boolean, []>>, true>;
265
315
  armor_type: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ReferenceIdentifierType, true>;
266
316
  hit_zone: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], Enum<"HitZone", {
267
317
  Head: EnumCase<IncludeIdentifier<[], TypeAlias<"HeadHitZone", Object<{
@@ -274,6 +324,28 @@ export declare const CombatUse: Enum<"CombatUse", {
274
324
  Arms: EnumCase<null>;
275
325
  Legs: EnumCase<null>;
276
326
  }, []>>, false>;
327
+ restrictedTo: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"RestrictedTo", Object<{
328
+ races: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"RestrictedToRaces", Object<{
329
+ scope: import("tsondb/schema/def").MemberDecl<Array<import("tsondb/schema/def").ReferenceIdentifierType>, true>;
330
+ }>, []>>, false>;
331
+ cultures: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"RestrictedToCultures", Object<{
332
+ scope: import("tsondb/schema/def").MemberDecl<Array<import("tsondb/schema/def").ReferenceIdentifierType>, true>;
333
+ }>, []>>, false>;
334
+ professions: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"RestrictedToProfessions", Object<{
335
+ scope: import("tsondb/schema/def").MemberDecl<Array<import("tsondb/schema/def").ReferenceIdentifierType>, true>;
336
+ }>, []>>, false>;
337
+ magicalTraditions: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"RestrictedToMagicalTraditions", Object<{
338
+ scope: import("tsondb/schema/def").MemberDecl<Array<import("tsondb/schema/def").ReferenceIdentifierType>, true>;
339
+ }>, []>>, false>;
340
+ blessedTraditions: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"RestrictedToBlessedTraditions", Object<{
341
+ scope: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], Enum<"RestrictedToBlessedTraditionsScope", {
342
+ Specific: EnumCase<Array<import("tsondb/schema/def").ReferenceIdentifierType>>;
343
+ Church: EnumCase<null>;
344
+ Shamanistic: EnumCase<null>;
345
+ }, []>>, true>;
346
+ isSanctifiedBy: import("tsondb/schema/def").MemberDecl<Boolean, true>;
347
+ }>, []>>, false>;
348
+ }>, []>>, false>;
277
349
  translations: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").NestedEntityMapType<"SecondaryArmorTranslation", {
278
350
  advantage: import("tsondb/schema/def").MemberDecl<String, false>;
279
351
  disadvantage: import("tsondb/schema/def").MemberDecl<String, false>;
@@ -318,3 +390,50 @@ export declare const Complexity: Enum<"Complexity", {
318
390
  export declare const ComplexComplexity: TypeAlias<"ComplexComplexity", Object<{
319
391
  ap_value: import("tsondb/schema/def").MemberDecl<Integer, true>;
320
392
  }>, []>;
393
+ export declare const RestrictedTo: TypeAlias<"RestrictedTo", Object<{
394
+ races: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"RestrictedToRaces", Object<{
395
+ scope: import("tsondb/schema/def").MemberDecl<Array<import("tsondb/schema/def").ReferenceIdentifierType>, true>;
396
+ }>, []>>, false>;
397
+ cultures: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"RestrictedToCultures", Object<{
398
+ scope: import("tsondb/schema/def").MemberDecl<Array<import("tsondb/schema/def").ReferenceIdentifierType>, true>;
399
+ }>, []>>, false>;
400
+ professions: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"RestrictedToProfessions", Object<{
401
+ scope: import("tsondb/schema/def").MemberDecl<Array<import("tsondb/schema/def").ReferenceIdentifierType>, true>;
402
+ }>, []>>, false>;
403
+ magicalTraditions: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"RestrictedToMagicalTraditions", Object<{
404
+ scope: import("tsondb/schema/def").MemberDecl<Array<import("tsondb/schema/def").ReferenceIdentifierType>, true>;
405
+ }>, []>>, false>;
406
+ blessedTraditions: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"RestrictedToBlessedTraditions", Object<{
407
+ scope: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], Enum<"RestrictedToBlessedTraditionsScope", {
408
+ Specific: EnumCase<Array<import("tsondb/schema/def").ReferenceIdentifierType>>;
409
+ Church: EnumCase<null>;
410
+ Shamanistic: EnumCase<null>;
411
+ }, []>>, true>;
412
+ isSanctifiedBy: import("tsondb/schema/def").MemberDecl<Boolean, true>;
413
+ }>, []>>, false>;
414
+ }>, []>;
415
+ export declare const RestrictedToRaces: TypeAlias<"RestrictedToRaces", Object<{
416
+ scope: import("tsondb/schema/def").MemberDecl<Array<import("tsondb/schema/def").ReferenceIdentifierType>, true>;
417
+ }>, []>;
418
+ export declare const RestrictedToCultures: TypeAlias<"RestrictedToCultures", Object<{
419
+ scope: import("tsondb/schema/def").MemberDecl<Array<import("tsondb/schema/def").ReferenceIdentifierType>, true>;
420
+ }>, []>;
421
+ export declare const RestrictedToProfessions: TypeAlias<"RestrictedToProfessions", Object<{
422
+ scope: import("tsondb/schema/def").MemberDecl<Array<import("tsondb/schema/def").ReferenceIdentifierType>, true>;
423
+ }>, []>;
424
+ export declare const RestrictedToMagicalTraditions: TypeAlias<"RestrictedToMagicalTraditions", Object<{
425
+ scope: import("tsondb/schema/def").MemberDecl<Array<import("tsondb/schema/def").ReferenceIdentifierType>, true>;
426
+ }>, []>;
427
+ export declare const RestrictedToBlessedTraditions: TypeAlias<"RestrictedToBlessedTraditions", Object<{
428
+ scope: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], Enum<"RestrictedToBlessedTraditionsScope", {
429
+ Specific: EnumCase<Array<import("tsondb/schema/def").ReferenceIdentifierType>>;
430
+ Church: EnumCase<null>;
431
+ Shamanistic: EnumCase<null>;
432
+ }, []>>, true>;
433
+ isSanctifiedBy: import("tsondb/schema/def").MemberDecl<Boolean, true>;
434
+ }>, []>;
435
+ export declare const RestrictedToBlessedTraditionsScope: Enum<"RestrictedToBlessedTraditionsScope", {
436
+ Specific: EnumCase<Array<import("tsondb/schema/def").ReferenceIdentifierType>>;
437
+ Church: EnumCase<null>;
438
+ Shamanistic: EnumCase<null>;
439
+ }, []>;
@@ -1,4 +1,5 @@
1
- import { Array, Entity, Enum, EnumCase, Float, IncludeIdentifier, Integer, Object, Optional, Required, String, TypeAlias, } from "tsondb/schema/def";
1
+ import { Array, Boolean, Entity, Enum, EnumCase, Float, IncludeIdentifier, Integer, Object, Optional, Required, String, TypeAlias, } from "tsondb/schema/def";
2
+ import { BlessedTraditionIdentifier, MagicalTraditionIdentifier } from "../../_Identifier.js";
2
3
  import { NestedTranslationMap } from "../../Locale.js";
3
4
  import { Errata } from "../../source/_Erratum.js";
4
5
  import { src } from "../../source/_PublicationRef.js";
@@ -33,7 +34,7 @@ export const DefaultItem = (sourceUrl, singularName, pluralName) => Entity(sourc
33
34
  }),
34
35
  displayName: {},
35
36
  });
36
- export const DefaultItemTranslations = (singularName) => NestedTranslationMap(Required, `${singularName}Translation`, Object({
37
+ export const DefaultItemTranslations = (singularName) => NestedTranslationMap(Required, singularName, Object({
37
38
  name: Required({
38
39
  comment: "The item’s name.",
39
40
  type: String({ minLength: 1 }),
@@ -142,3 +143,94 @@ export const ComplexComplexity = TypeAlias(import.meta.url, {
142
143
  }),
143
144
  }),
144
145
  });
146
+ export const RestrictedTo = TypeAlias(import.meta.url, {
147
+ name: "RestrictedTo",
148
+ comment: "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. ",
149
+ type: () => Object({
150
+ races: Optional({
151
+ comment: "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.",
152
+ type: IncludeIdentifier(RestrictedToRaces),
153
+ }),
154
+ cultures: Optional({
155
+ comment: "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.",
156
+ type: IncludeIdentifier(RestrictedToCultures),
157
+ }),
158
+ professions: Optional({
159
+ comment: "The item is restricted to one of a list of professions. If only one profession is allowed, the list may only have a single element.",
160
+ type: IncludeIdentifier(RestrictedToProfessions),
161
+ }),
162
+ magicalTraditions: Optional({
163
+ comment: "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.",
164
+ type: IncludeIdentifier(RestrictedToMagicalTraditions),
165
+ }),
166
+ blessedTraditions: Optional({
167
+ comment: "The item is restricted to one of a list of blessed traditions. If only one blessed tradition is allowed, the list may only have a single element.",
168
+ type: IncludeIdentifier(RestrictedToBlessedTraditions),
169
+ }),
170
+ }, { minProperties: 1 }),
171
+ });
172
+ export const RestrictedToRaces = TypeAlias(import.meta.url, {
173
+ name: "RestrictedToRaces",
174
+ comment: "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.",
175
+ type: () => Object({
176
+ scope: Required({
177
+ comment: "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.",
178
+ type: Array(MagicalTraditionIdentifier(), { minItems: 1, uniqueItems: true }),
179
+ }),
180
+ }),
181
+ });
182
+ export const RestrictedToCultures = TypeAlias(import.meta.url, {
183
+ name: "RestrictedToCultures",
184
+ comment: "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.",
185
+ type: () => Object({
186
+ scope: Required({
187
+ comment: "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.",
188
+ type: Array(MagicalTraditionIdentifier(), { minItems: 1, uniqueItems: true }),
189
+ }),
190
+ }),
191
+ });
192
+ export const RestrictedToProfessions = TypeAlias(import.meta.url, {
193
+ name: "RestrictedToProfessions",
194
+ comment: "The item is restricted to one of a list of professions. If only one profession is allowed, the list may only have a single element.",
195
+ type: () => Object({
196
+ scope: Required({
197
+ comment: "The item is restricted to one of a list of professions. If only one profession is allowed, the list may only have a single element.",
198
+ type: Array(MagicalTraditionIdentifier(), { minItems: 1, uniqueItems: true }),
199
+ }),
200
+ }),
201
+ });
202
+ export const RestrictedToMagicalTraditions = TypeAlias(import.meta.url, {
203
+ name: "RestrictedToMagicalTraditions",
204
+ comment: "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.",
205
+ type: () => Object({
206
+ scope: Required({
207
+ comment: "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.",
208
+ type: Array(MagicalTraditionIdentifier(), { minItems: 1, uniqueItems: true }),
209
+ }),
210
+ }),
211
+ });
212
+ export const RestrictedToBlessedTraditions = TypeAlias(import.meta.url, {
213
+ name: "RestrictedToBlessedTraditions",
214
+ comment: "The item is restricted to one of a list of blessed traditions. If only one blessed tradition is allowed, the list may only have a single element. The item may also be declared as sanctified.",
215
+ type: () => Object({
216
+ scope: Required({
217
+ comment: "The item is restricted to one of a list of blessed traditions. If only one blessed tradition is allowed, the list may only have a single element.",
218
+ type: IncludeIdentifier(RestrictedToBlessedTraditionsScope),
219
+ }),
220
+ isSanctifiedBy: Required({
221
+ comment: "The item is sanctified by the applicable listed tradition.",
222
+ type: Boolean(),
223
+ }),
224
+ }),
225
+ });
226
+ export const RestrictedToBlessedTraditionsScope = Enum(import.meta.url, {
227
+ name: "RestrictedToBlessedTraditionsScope",
228
+ comment: "The item is restricted to one of a list of blessed traditions. If only one blessed tradition is allowed, the list may only have a single element. Instead of providing an specific set of traditions, the restriction may also cover a category of blessed traditions.",
229
+ values: () => ({
230
+ Specific: EnumCase({
231
+ type: Array(BlessedTraditionIdentifier(), { minItems: 1, uniqueItems: true }),
232
+ }),
233
+ Church: EnumCase({ type: null }),
234
+ Shamanistic: EnumCase({ type: null }),
235
+ }),
236
+ });
@@ -911,6 +911,58 @@ export declare const CombatStyleSpecialAbility: Entity<"CombatStyleSpecialAbilit
911
911
  }>, false>;
912
912
  }, "parent">>, true>;
913
913
  maximum: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").IntegerType, false>;
914
+ penalty: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").EnumDecl<"Penalty", {
915
+ Single: import("tsondb/schema/def").EnumCaseDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"SinglePenalty", Object<{
916
+ value: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").IntegerType, true>;
917
+ applies_to_parry: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").BooleanType, false>;
918
+ }>, []>>>;
919
+ ByHandedness: import("tsondb/schema/def").EnumCaseDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"PenaltyByHandedness", Object<{
920
+ one_handed: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").IntegerType, true>;
921
+ two_handed: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").IntegerType, true>;
922
+ applies_to_parry: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").BooleanType, false>;
923
+ }>, []>>>;
924
+ ByActivation: import("tsondb/schema/def").EnumCaseDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"PenaltyByActivation", Object<{
925
+ active: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").IntegerType, true>;
926
+ inactive: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").IntegerType, true>;
927
+ applies_to_parry: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").BooleanType, false>;
928
+ }>, []>>>;
929
+ Selection: import("tsondb/schema/def").EnumCaseDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"PenaltySelection", Object<{
930
+ options: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").EnumDecl<"PenaltySelectionOptions", {
931
+ Specific: import("tsondb/schema/def").EnumCaseDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"SpecificPenaltySelectionOptions", Object<{
932
+ list: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ArrayType<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"SpecificPenaltySelectionOption", Object<{
933
+ value: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").IntegerType, true>;
934
+ }>, []>>>, true>;
935
+ }>, []>>>;
936
+ Range: import("tsondb/schema/def").EnumCaseDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"PenaltySelectionOptionsRange", Object<{
937
+ minimum: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").IntegerType, true>;
938
+ maximum: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").IntegerType, true>;
939
+ }>, []>>>;
940
+ }, []>>, true>;
941
+ }>, []>>>;
942
+ ByLevel: import("tsondb/schema/def").EnumCaseDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"PenaltyByLevel", Object<{
943
+ levels: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ArrayType<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"PenaltyByLevelLevel", Object<{
944
+ value: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").IntegerType, true>;
945
+ }>, []>>>, true>;
946
+ external: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"PenaltyByExternalLevel", Object<{
947
+ id: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").EnumDecl<"CombatRelatedSpecialAbilityIdentifier", {
948
+ CombatSpecialAbility: import("tsondb/schema/def").EnumCaseDecl<import("tsondb/schema/def").ReferenceIdentifierType>;
949
+ CombatStyleSpecialAbility: import("tsondb/schema/def").EnumCaseDecl<import("tsondb/schema/def").ReferenceIdentifierType>;
950
+ AdvancedCombatSpecialAbility: import("tsondb/schema/def").EnumCaseDecl<import("tsondb/schema/def").ReferenceIdentifierType>;
951
+ CommandSpecialAbility: import("tsondb/schema/def").EnumCaseDecl<import("tsondb/schema/def").ReferenceIdentifierType>;
952
+ }, []>>, true>;
953
+ }>, []>>, false>;
954
+ }>, []>>>;
955
+ ByAttack: import("tsondb/schema/def").EnumCaseDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"PenaltyByAttack", Object<{
956
+ list: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ArrayType<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"PenaltyByAttackOrderItem", Object<{
957
+ value: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").IntegerType, true>;
958
+ }>, []>>>, true>;
959
+ initial_order: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").IntegerType, false>;
960
+ attack_replacement: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").EnumDecl<"PenaltyByAttackReplacement", {
961
+ Throw: import("tsondb/schema/def").EnumCaseDecl<null>;
962
+ }, []>>, false>;
963
+ }>, []>>>;
964
+ DependsOnHitZone: import("tsondb/schema/def").EnumCaseDecl<null>;
965
+ }, []>>, false>;
914
966
  advanced: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ArrayType<IncludeIdentifier<import("tsondb/schema/def").TypeParameter<string, import("tsondb/schema/def").Type>[], import("tsondb/schema/def").EnumDecl<"AdvancedSpecialAbility", {
915
967
  General: import("tsondb/schema/def").EnumCaseDecl<import("tsondb/schema/def").TypeArgumentType<import("tsondb/schema/def").TypeParameter<"Identifier", import("tsondb/schema/def").Type>>>;
916
968
  RestrictOptions: import("tsondb/schema/def").EnumCaseDecl<IncludeIdentifier<import("tsondb/schema/def").TypeParameter<string, import("tsondb/schema/def").Type>[], import("tsondb/schema/def").TypeAliasDecl<"RestrictAdvancedSpecialAbilityOptions", Object<{
@@ -2,7 +2,7 @@ import { Entity, IncludeIdentifier, Object, Optional, Required } from "tsondb/sc
2
2
  import { levels, maximum, name, name_in_library, rules } from "../_Activatable.js";
3
3
  import { advanced } from "../_ActivatableAdvanced.js";
4
4
  import { ap_value, ap_value_append, ap_value_l10n } from "../_ActivatableAdventurePointsValue.js";
5
- import { combat_techniques, type, usage_type } from "../_ActivatableCombat.js";
5
+ import { combat_techniques, penalty, type, usage_type } from "../_ActivatableCombat.js";
6
6
  import { explicit_select_options, select_options } from "../_ActivatableSelectOptions.js";
7
7
  import { skill_applications, skill_uses } from "../_ActivatableSkillApplicationsAndUses.js";
8
8
  import { AdvancedCombatSpecialAbilityIdentifier } from "../_Identifier.js";
@@ -22,6 +22,7 @@ export const CombatStyleSpecialAbility = Entity(import.meta.url, {
22
22
  skill_applications,
23
23
  skill_uses,
24
24
  maximum,
25
+ penalty,
25
26
  advanced: advanced(AdvancedCombatSpecialAbilityIdentifier()),
26
27
  prerequisites: Optional({
27
28
  type: IncludeIdentifier(GeneralPrerequisites),