@optolith/database-schema 0.53.0 → 0.54.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 (80) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/gen/types.d.ts +262 -204
  3. package/lib/cache/activatableSelectOptions.js +28 -12
  4. package/lib/types/Blessing.d.ts +10 -0
  5. package/lib/types/Cantrip.d.ts +10 -0
  6. package/lib/types/Ceremony.d.ts +294 -125
  7. package/lib/types/FamiliarsTrick.d.ts +40 -0
  8. package/lib/types/LiturgicalChant.d.ts +294 -125
  9. package/lib/types/Locale.d.ts +1 -0
  10. package/lib/types/Locale.js +1 -0
  11. package/lib/types/Ritual.d.ts +294 -125
  12. package/lib/types/Spell.d.ts +294 -125
  13. package/lib/types/Talisman.d.ts +10 -0
  14. package/lib/types/_Activatable.d.ts +1 -0
  15. package/lib/types/_Activatable.js +4 -0
  16. package/lib/types/_ActivatableCombat.d.ts +5 -1
  17. package/lib/types/_ActivatableCombat.js +13 -1
  18. package/lib/types/_ActivatableNonMundane.d.ts +128 -64
  19. package/lib/types/_ActivatableNonMundane.js +10 -67
  20. package/lib/types/_ActivatableSelectOptionCategory.js +19 -3
  21. package/lib/types/_ActivatableSkill.d.ts +680 -284
  22. package/lib/types/_ActivatableSkillCastingTime.d.ts +30 -0
  23. package/lib/types/_ActivatableSkillCastingTime.js +20 -0
  24. package/lib/types/_ActivatableSkillCost.d.ts +288 -186
  25. package/lib/types/_ActivatableSkillCost.js +109 -110
  26. package/lib/types/_ActivatableSkillDuration.d.ts +70 -0
  27. package/lib/types/_ActivatableSkillDuration.js +44 -0
  28. package/lib/types/_ActivatableSkillParameterMap.d.ts +34 -0
  29. package/lib/types/_ActivatableSkillParameterMap.js +64 -0
  30. package/lib/types/equipment/item/HerbalPreservation.d.ts +20 -0
  31. package/lib/types/magicalActions/AnimistPower.d.ts +50 -0
  32. package/lib/types/magicalActions/Bannzeichen.d.ts +32 -15
  33. package/lib/types/magicalActions/Bannzeichen.js +2 -6
  34. package/lib/types/magicalActions/Curse.d.ts +20 -0
  35. package/lib/types/magicalActions/DominationRitual.d.ts +20 -0
  36. package/lib/types/magicalActions/ElvenMagicalSong.d.ts +10 -0
  37. package/lib/types/magicalActions/GeodeRitual.d.ts +28 -13
  38. package/lib/types/magicalActions/GeodeRitual.js +2 -2
  39. package/lib/types/magicalActions/GoblinRitual.d.ts +20 -0
  40. package/lib/types/magicalActions/JesterTrick.d.ts +30 -0
  41. package/lib/types/magicalActions/MagicalMelody.d.ts +10 -0
  42. package/lib/types/magicalActions/MagicalRune.d.ts +20 -0
  43. package/lib/types/magicalActions/ZibiljaRitual.d.ts +92 -34
  44. package/lib/types/prerequisites/single/PropertyPrerequisite.d.ts +16 -0
  45. package/lib/types/prerequisites/single/PropertyPrerequisite.js +16 -0
  46. package/lib/types/specialAbility/AdvancedCombatSpecialAbility.js +2 -2
  47. package/lib/types/specialAbility/BrawlingSpecialAbility.js +2 -2
  48. package/lib/types/specialAbility/CombatSpecialAbility.js +2 -2
  49. package/lib/types/specialAbility/CombatStyleSpecialAbility.d.ts +2 -3
  50. package/lib/types/specialAbility/CombatStyleSpecialAbility.js +2 -2
  51. package/lib/types/specialAbility/CommandSpecialAbility.js +2 -2
  52. package/lib/types/specialAbility/MagicStyleSpecialAbility.d.ts +1 -0
  53. package/lib/types/specialAbility/MagicStyleSpecialAbility.js +2 -1
  54. package/lib/types/specialAbility/MagicalSign.d.ts +12 -13
  55. package/lib/types/specialAbility/MagicalSign.js +2 -2
  56. package/lib/types/traditionArtifacts/ArcaneOrbEnchantment.d.ts +71 -40
  57. package/lib/types/traditionArtifacts/AttireEnchantment.d.ts +71 -40
  58. package/lib/types/traditionArtifacts/Beutelzauber.d.ts +71 -40
  59. package/lib/types/traditionArtifacts/BowlEnchantment.d.ts +71 -40
  60. package/lib/types/traditionArtifacts/CauldronEnchantment.d.ts +71 -40
  61. package/lib/types/traditionArtifacts/ChronicleEnchantment.d.ts +71 -40
  62. package/lib/types/traditionArtifacts/DaggerRitual.d.ts +71 -40
  63. package/lib/types/traditionArtifacts/FoolsHatEnchantment.d.ts +71 -40
  64. package/lib/types/traditionArtifacts/Haubenzauber.d.ts +71 -40
  65. package/lib/types/traditionArtifacts/Hauerkettenzauber.d.ts +71 -40
  66. package/lib/types/traditionArtifacts/InstrumentEnchantment.d.ts +71 -40
  67. package/lib/types/traditionArtifacts/Keulenzauber.d.ts +71 -40
  68. package/lib/types/traditionArtifacts/Krallenkettenzauber.d.ts +71 -40
  69. package/lib/types/traditionArtifacts/Kristallkugelzauber.d.ts +71 -40
  70. package/lib/types/traditionArtifacts/OrbEnchantment.d.ts +71 -40
  71. package/lib/types/traditionArtifacts/RingEnchantment.d.ts +71 -40
  72. package/lib/types/traditionArtifacts/Schweinetrommelzauber.d.ts +71 -40
  73. package/lib/types/traditionArtifacts/SickleRitual.d.ts +71 -40
  74. package/lib/types/traditionArtifacts/SpellSwordEnchantment.d.ts +71 -40
  75. package/lib/types/traditionArtifacts/StaffEnchantment.d.ts +71 -40
  76. package/lib/types/traditionArtifacts/ToyEnchantment.d.ts +71 -40
  77. package/lib/types/traditionArtifacts/Trinkhornzauber.d.ts +71 -40
  78. package/lib/types/traditionArtifacts/WandEnchantment.d.ts +57 -24
  79. package/lib/types/traditionArtifacts/WeaponEnchantment.d.ts +71 -40
  80. package/package.json +8 -8
@@ -22,6 +22,16 @@ export declare const cost: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"Encha
22
22
  Centuries: DB.EnumCase<null>;
23
23
  Actions: DB.EnumCase<null>;
24
24
  CombatRounds: DB.EnumCase<null>;
25
+ Custom: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"CustomDurationUnit", DB.Object<{
26
+ translations: DB.MemberDecl<DB.NestedEntityMap<"CustomDurationUnitTranslation", {
27
+ name: DB.MemberDecl<DB.String, true>;
28
+ fullNumber: DB.MemberDecl<DB.String, true>;
29
+ full: DB.MemberDecl<DB.String, true>;
30
+ symbol: DB.MemberDecl<DB.String, true>;
31
+ compressedNumber: DB.MemberDecl<DB.String, true>;
32
+ compressed: DB.MemberDecl<DB.String, true>;
33
+ }>, true>;
34
+ }>, []>>>;
25
35
  }, []>>, true>;
26
36
  }>, []>>, false>;
27
37
  per_level: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"FixedArcaneEnergyCostPerLevel", {
@@ -65,6 +75,16 @@ export declare const cost: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"Encha
65
75
  Centuries: DB.EnumCase<null>;
66
76
  Actions: DB.EnumCase<null>;
67
77
  CombatRounds: DB.EnumCase<null>;
78
+ Custom: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"CustomDurationUnit", DB.Object<{
79
+ translations: DB.MemberDecl<DB.NestedEntityMap<"CustomDurationUnitTranslation", {
80
+ name: DB.MemberDecl<DB.String, true>;
81
+ fullNumber: DB.MemberDecl<DB.String, true>;
82
+ full: DB.MemberDecl<DB.String, true>;
83
+ symbol: DB.MemberDecl<DB.String, true>;
84
+ compressedNumber: DB.MemberDecl<DB.String, true>;
85
+ compressed: DB.MemberDecl<DB.String, true>;
86
+ }>, true>;
87
+ }>, []>>>;
68
88
  }, []>>, true>;
69
89
  }>, []>>, true>;
70
90
  }>, []>>>;
@@ -84,6 +104,16 @@ export declare const cost: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"Encha
84
104
  Centuries: DB.EnumCase<null>;
85
105
  Actions: DB.EnumCase<null>;
86
106
  CombatRounds: DB.EnumCase<null>;
107
+ Custom: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"CustomDurationUnit", DB.Object<{
108
+ translations: DB.MemberDecl<DB.NestedEntityMap<"CustomDurationUnitTranslation", {
109
+ name: DB.MemberDecl<DB.String, true>;
110
+ fullNumber: DB.MemberDecl<DB.String, true>;
111
+ full: DB.MemberDecl<DB.String, true>;
112
+ symbol: DB.MemberDecl<DB.String, true>;
113
+ compressedNumber: DB.MemberDecl<DB.String, true>;
114
+ compressed: DB.MemberDecl<DB.String, true>;
115
+ }>, true>;
116
+ }>, []>>>;
87
117
  }, []>>, true>;
88
118
  }>, []>>, true>;
89
119
  }>, []>>>;
@@ -122,31 +152,30 @@ export declare const cost: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"Encha
122
152
  Verbose: DB.EnumCase<null>;
123
153
  }, []>>, true>;
124
154
  }>, []>>>;
125
- Map: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"OneTimeCostMap", DB.Object<{
126
- options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"OneTimeCostMapOption", DB.Object<{
127
- value: DB.MemberDecl<DB.Integer, true>;
128
- permanent_value: DB.MemberDecl<DB.Integer, false>;
129
- translations: DB.MemberDecl<DB.NestedEntityMap<"OneTimeCostMapOptionTranslation", {
155
+ Map: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StandaloneCostMap", DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"ParameterMap", DB.Object<{
156
+ options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"ParameterMapOption", DB.Object<{
157
+ value: DB.MemberDecl<DB.TypeArgument<DB.Param<"Value", DB.Type>>, true>;
158
+ translations: DB.MemberDecl<DB.NestedEntityMap<"ParameterMapOptionTranslation", {
130
159
  label: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
131
160
  full: DB.MemberDecl<DB.String, true>;
132
161
  compressed: DB.MemberDecl<DB.String, false>;
133
162
  }>, []>>, true>;
134
- label_standalone: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
163
+ standaloneLabel: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
135
164
  full: DB.MemberDecl<DB.String, true>;
136
165
  compressed: DB.MemberDecl<DB.String, false>;
137
166
  }>, []>>, false>;
138
167
  }>, false>;
139
- }>, []>>>, true>;
140
- style: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"MapStyle", {
168
+ }>, [Value: DB.Param<"Value", DB.Type>]>>>, true>;
169
+ style: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ParameterMapStyle", {
141
170
  Compressed: DB.EnumCase<null>;
142
171
  Verbose: DB.EnumCase<null>;
143
- }, []>>, false>;
144
- translations: DB.MemberDecl<DB.NestedEntityMap<"OneTimeCostMapTranslation", {
145
- list_prepend: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
172
+ }, []>>, true>;
173
+ translations: DB.MemberDecl<DB.NestedEntityMap<"ParameterMapTranslation", {
174
+ listPrefix: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
146
175
  full: DB.MemberDecl<DB.String, true>;
147
176
  compressed: DB.MemberDecl<DB.String, false>;
148
177
  }>, []>>, false>;
149
- list_append: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
178
+ listSuffix: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
150
179
  full: DB.MemberDecl<DB.String, true>;
151
180
  compressed: DB.MemberDecl<DB.String, false>;
152
181
  }>, []>>, false>;
@@ -155,7 +184,7 @@ export declare const cost: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"Encha
155
184
  compressed: DB.MemberDecl<DB.String, false>;
156
185
  }>, []>>, false>;
157
186
  }>, false>;
158
- }>, []>>>;
187
+ }>, [Value: DB.Param<"Value", DB.Type>]>>, []>>>;
159
188
  }, []>>>;
160
189
  BindingCost: DB.EnumCase<DB.IncludeIdentifier<[], DB.Enum<"BindingCost", {
161
190
  Fixed: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"FixedBindingCost", DB.Object<{
@@ -164,26 +193,30 @@ export declare const cost: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"Encha
164
193
  PerLevel: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"BindingCostPerLevel", DB.Object<{
165
194
  permanent_value: DB.MemberDecl<DB.Integer, true>;
166
195
  }>, []>>>;
167
- Map: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"BindingCostMap", DB.Object<{
168
- options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"BindingCostMapOption", DB.Object<{
169
- permanent_value: DB.MemberDecl<DB.Integer, true>;
170
- translations: DB.MemberDecl<DB.NestedEntityMap<"BindingCostMapOptionTranslation", {
196
+ Map: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"BindingCostMap", DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"ParameterMap", DB.Object<{
197
+ options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"ParameterMapOption", DB.Object<{
198
+ value: DB.MemberDecl<DB.TypeArgument<DB.Param<"Value", DB.Type>>, true>;
199
+ translations: DB.MemberDecl<DB.NestedEntityMap<"ParameterMapOptionTranslation", {
171
200
  label: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
172
201
  full: DB.MemberDecl<DB.String, true>;
173
202
  compressed: DB.MemberDecl<DB.String, false>;
174
203
  }>, []>>, true>;
175
- label_standalone: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
204
+ standaloneLabel: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
176
205
  full: DB.MemberDecl<DB.String, true>;
177
206
  compressed: DB.MemberDecl<DB.String, false>;
178
207
  }>, []>>, false>;
179
- }>, true>;
180
- }>, []>>>, true>;
181
- translations: DB.MemberDecl<DB.NestedEntityMap<"BindingCostMapTranslation", {
182
- list_prepend: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
208
+ }>, false>;
209
+ }>, [Value: DB.Param<"Value", DB.Type>]>>>, true>;
210
+ style: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ParameterMapStyle", {
211
+ Compressed: DB.EnumCase<null>;
212
+ Verbose: DB.EnumCase<null>;
213
+ }, []>>, true>;
214
+ translations: DB.MemberDecl<DB.NestedEntityMap<"ParameterMapTranslation", {
215
+ listPrefix: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
183
216
  full: DB.MemberDecl<DB.String, true>;
184
217
  compressed: DB.MemberDecl<DB.String, false>;
185
218
  }>, []>>, false>;
186
- list_append: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
219
+ listSuffix: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
187
220
  full: DB.MemberDecl<DB.String, true>;
188
221
  compressed: DB.MemberDecl<DB.String, false>;
189
222
  }>, []>>, false>;
@@ -192,7 +225,7 @@ export declare const cost: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"Encha
192
225
  compressed: DB.MemberDecl<DB.String, false>;
193
226
  }>, []>>, false>;
194
227
  }>, false>;
195
- }>, []>>>;
228
+ }>, [Value: DB.Param<"Value", DB.Type>]>>, []>>>;
196
229
  DerivedFromSelection: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"BindingCostDerivedFromSelection", DB.Object<{
197
230
  fallback: DB.MemberDecl<DB.Integer, true>;
198
231
  translations: DB.MemberDecl<DB.NestedEntityMap<"BindingCostDerivedFromSelectionTranslation", {
@@ -220,6 +253,16 @@ export declare const ArcaneEnergyCost: DB.Enum<"ArcaneEnergyCost", {
220
253
  Centuries: DB.EnumCase<null>;
221
254
  Actions: DB.EnumCase<null>;
222
255
  CombatRounds: DB.EnumCase<null>;
256
+ Custom: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"CustomDurationUnit", DB.Object<{
257
+ translations: DB.MemberDecl<DB.NestedEntityMap<"CustomDurationUnitTranslation", {
258
+ name: DB.MemberDecl<DB.String, true>;
259
+ fullNumber: DB.MemberDecl<DB.String, true>;
260
+ full: DB.MemberDecl<DB.String, true>;
261
+ symbol: DB.MemberDecl<DB.String, true>;
262
+ compressedNumber: DB.MemberDecl<DB.String, true>;
263
+ compressed: DB.MemberDecl<DB.String, true>;
264
+ }>, true>;
265
+ }>, []>>>;
223
266
  }, []>>, true>;
224
267
  }>, []>>, false>;
225
268
  per_level: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"FixedArcaneEnergyCostPerLevel", {
@@ -263,6 +306,16 @@ export declare const ArcaneEnergyCost: DB.Enum<"ArcaneEnergyCost", {
263
306
  Centuries: DB.EnumCase<null>;
264
307
  Actions: DB.EnumCase<null>;
265
308
  CombatRounds: DB.EnumCase<null>;
309
+ Custom: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"CustomDurationUnit", DB.Object<{
310
+ translations: DB.MemberDecl<DB.NestedEntityMap<"CustomDurationUnitTranslation", {
311
+ name: DB.MemberDecl<DB.String, true>;
312
+ fullNumber: DB.MemberDecl<DB.String, true>;
313
+ full: DB.MemberDecl<DB.String, true>;
314
+ symbol: DB.MemberDecl<DB.String, true>;
315
+ compressedNumber: DB.MemberDecl<DB.String, true>;
316
+ compressed: DB.MemberDecl<DB.String, true>;
317
+ }>, true>;
318
+ }>, []>>>;
266
319
  }, []>>, true>;
267
320
  }>, []>>, true>;
268
321
  }>, []>>>;
@@ -282,6 +335,16 @@ export declare const ArcaneEnergyCost: DB.Enum<"ArcaneEnergyCost", {
282
335
  Centuries: DB.EnumCase<null>;
283
336
  Actions: DB.EnumCase<null>;
284
337
  CombatRounds: DB.EnumCase<null>;
338
+ Custom: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"CustomDurationUnit", DB.Object<{
339
+ translations: DB.MemberDecl<DB.NestedEntityMap<"CustomDurationUnitTranslation", {
340
+ name: DB.MemberDecl<DB.String, true>;
341
+ fullNumber: DB.MemberDecl<DB.String, true>;
342
+ full: DB.MemberDecl<DB.String, true>;
343
+ symbol: DB.MemberDecl<DB.String, true>;
344
+ compressedNumber: DB.MemberDecl<DB.String, true>;
345
+ compressed: DB.MemberDecl<DB.String, true>;
346
+ }>, true>;
347
+ }>, []>>>;
285
348
  }, []>>, true>;
286
349
  }>, []>>, true>;
287
350
  }>, []>>>;
@@ -320,31 +383,30 @@ export declare const ArcaneEnergyCost: DB.Enum<"ArcaneEnergyCost", {
320
383
  Verbose: DB.EnumCase<null>;
321
384
  }, []>>, true>;
322
385
  }>, []>>>;
323
- Map: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"OneTimeCostMap", DB.Object<{
324
- options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"OneTimeCostMapOption", DB.Object<{
325
- value: DB.MemberDecl<DB.Integer, true>;
326
- permanent_value: DB.MemberDecl<DB.Integer, false>;
327
- translations: DB.MemberDecl<DB.NestedEntityMap<"OneTimeCostMapOptionTranslation", {
386
+ Map: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"StandaloneCostMap", DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"ParameterMap", DB.Object<{
387
+ options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"ParameterMapOption", DB.Object<{
388
+ value: DB.MemberDecl<DB.TypeArgument<DB.Param<"Value", DB.Type>>, true>;
389
+ translations: DB.MemberDecl<DB.NestedEntityMap<"ParameterMapOptionTranslation", {
328
390
  label: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
329
391
  full: DB.MemberDecl<DB.String, true>;
330
392
  compressed: DB.MemberDecl<DB.String, false>;
331
393
  }>, []>>, true>;
332
- label_standalone: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
394
+ standaloneLabel: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
333
395
  full: DB.MemberDecl<DB.String, true>;
334
396
  compressed: DB.MemberDecl<DB.String, false>;
335
397
  }>, []>>, false>;
336
398
  }>, false>;
337
- }>, []>>>, true>;
338
- style: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"MapStyle", {
399
+ }>, [Value: DB.Param<"Value", DB.Type>]>>>, true>;
400
+ style: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ParameterMapStyle", {
339
401
  Compressed: DB.EnumCase<null>;
340
402
  Verbose: DB.EnumCase<null>;
341
- }, []>>, false>;
342
- translations: DB.MemberDecl<DB.NestedEntityMap<"OneTimeCostMapTranslation", {
343
- list_prepend: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
403
+ }, []>>, true>;
404
+ translations: DB.MemberDecl<DB.NestedEntityMap<"ParameterMapTranslation", {
405
+ listPrefix: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
344
406
  full: DB.MemberDecl<DB.String, true>;
345
407
  compressed: DB.MemberDecl<DB.String, false>;
346
408
  }>, []>>, false>;
347
- list_append: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
409
+ listSuffix: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
348
410
  full: DB.MemberDecl<DB.String, true>;
349
411
  compressed: DB.MemberDecl<DB.String, false>;
350
412
  }>, []>>, false>;
@@ -353,7 +415,7 @@ export declare const ArcaneEnergyCost: DB.Enum<"ArcaneEnergyCost", {
353
415
  compressed: DB.MemberDecl<DB.String, false>;
354
416
  }>, []>>, false>;
355
417
  }>, false>;
356
- }>, []>>>;
418
+ }>, [Value: DB.Param<"Value", DB.Type>]>>, []>>>;
357
419
  }, []>;
358
420
  export declare const aeCost: DB.MemberDecl<DB.String, false>;
359
421
  export declare const volume: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"Volume", {
@@ -368,32 +430,30 @@ export declare const volume: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"Vol
368
430
  points: DB.MemberDecl<DB.Integer, true>;
369
431
  }>, []>>>, true>;
370
432
  }>, []>>>;
371
- Map: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"VolumeMap", DB.Object<{
372
- options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"VolumeMapOption", DB.Object<{
373
- points: DB.MemberDecl<DB.Integer, true>;
374
- associated_options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"VolumeMapOptionAssociatedOption", DB.Object<{
375
- id: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"VolumePointsOptionReferenceIdentifier", {
376
- General: DB.EnumCase<DB.ReferenceIdentifier>;
377
- AnimalShapeSize: DB.EnumCase<DB.ReferenceIdentifier>;
378
- }, []>>, true>;
379
- }>, []>>>, true>;
380
- translations: DB.MemberDecl<DB.NestedEntityMap<"VolumeMapOptionTranslation", {
433
+ Map: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"VolumeMap", DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"ParameterMap", DB.Object<{
434
+ options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"ParameterMapOption", DB.Object<{
435
+ value: DB.MemberDecl<DB.TypeArgument<DB.Param<"Value", DB.Type>>, true>;
436
+ translations: DB.MemberDecl<DB.NestedEntityMap<"ParameterMapOptionTranslation", {
381
437
  label: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
382
438
  full: DB.MemberDecl<DB.String, true>;
383
439
  compressed: DB.MemberDecl<DB.String, false>;
384
440
  }>, []>>, true>;
385
- label_standalone: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
441
+ standaloneLabel: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
386
442
  full: DB.MemberDecl<DB.String, true>;
387
443
  compressed: DB.MemberDecl<DB.String, false>;
388
444
  }>, []>>, false>;
389
445
  }>, false>;
390
- }>, []>>>, true>;
391
- translations: DB.MemberDecl<DB.NestedEntityMap<"VolumeMapTranslation", {
392
- list_prepend: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
446
+ }>, [Value: DB.Param<"Value", DB.Type>]>>>, true>;
447
+ style: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ParameterMapStyle", {
448
+ Compressed: DB.EnumCase<null>;
449
+ Verbose: DB.EnumCase<null>;
450
+ }, []>>, true>;
451
+ translations: DB.MemberDecl<DB.NestedEntityMap<"ParameterMapTranslation", {
452
+ listPrefix: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
393
453
  full: DB.MemberDecl<DB.String, true>;
394
454
  compressed: DB.MemberDecl<DB.String, false>;
395
455
  }>, []>>, false>;
396
- list_append: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
456
+ listSuffix: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
397
457
  full: DB.MemberDecl<DB.String, true>;
398
458
  compressed: DB.MemberDecl<DB.String, false>;
399
459
  }>, []>>, false>;
@@ -402,7 +462,7 @@ export declare const volume: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"Vol
402
462
  compressed: DB.MemberDecl<DB.String, false>;
403
463
  }>, []>>, false>;
404
464
  }>, false>;
405
- }>, []>>>;
465
+ }>, [Value: DB.Param<"Value", DB.Type>]>>, []>>>;
406
466
  DerivedFromSelection: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"VolumeDerivedFromSelection", DB.Object<{
407
467
  fallback: DB.MemberDecl<DB.Integer, true>;
408
468
  }>, []>>>;
@@ -415,26 +475,30 @@ export declare const BindingCost: DB.Enum<"BindingCost", {
415
475
  PerLevel: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"BindingCostPerLevel", DB.Object<{
416
476
  permanent_value: DB.MemberDecl<DB.Integer, true>;
417
477
  }>, []>>>;
418
- Map: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"BindingCostMap", DB.Object<{
419
- options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"BindingCostMapOption", DB.Object<{
420
- permanent_value: DB.MemberDecl<DB.Integer, true>;
421
- translations: DB.MemberDecl<DB.NestedEntityMap<"BindingCostMapOptionTranslation", {
478
+ Map: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"BindingCostMap", DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"ParameterMap", DB.Object<{
479
+ options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"ParameterMapOption", DB.Object<{
480
+ value: DB.MemberDecl<DB.TypeArgument<DB.Param<"Value", DB.Type>>, true>;
481
+ translations: DB.MemberDecl<DB.NestedEntityMap<"ParameterMapOptionTranslation", {
422
482
  label: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
423
483
  full: DB.MemberDecl<DB.String, true>;
424
484
  compressed: DB.MemberDecl<DB.String, false>;
425
485
  }>, []>>, true>;
426
- label_standalone: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
486
+ standaloneLabel: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
427
487
  full: DB.MemberDecl<DB.String, true>;
428
488
  compressed: DB.MemberDecl<DB.String, false>;
429
489
  }>, []>>, false>;
430
- }>, true>;
431
- }>, []>>>, true>;
432
- translations: DB.MemberDecl<DB.NestedEntityMap<"BindingCostMapTranslation", {
433
- list_prepend: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
490
+ }>, false>;
491
+ }>, [Value: DB.Param<"Value", DB.Type>]>>>, true>;
492
+ style: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ParameterMapStyle", {
493
+ Compressed: DB.EnumCase<null>;
494
+ Verbose: DB.EnumCase<null>;
495
+ }, []>>, true>;
496
+ translations: DB.MemberDecl<DB.NestedEntityMap<"ParameterMapTranslation", {
497
+ listPrefix: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
434
498
  full: DB.MemberDecl<DB.String, true>;
435
499
  compressed: DB.MemberDecl<DB.String, false>;
436
500
  }>, []>>, false>;
437
- list_append: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
501
+ listSuffix: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
438
502
  full: DB.MemberDecl<DB.String, true>;
439
503
  compressed: DB.MemberDecl<DB.String, false>;
440
504
  }>, []>>, false>;
@@ -443,7 +507,7 @@ export declare const BindingCost: DB.Enum<"BindingCost", {
443
507
  compressed: DB.MemberDecl<DB.String, false>;
444
508
  }>, []>>, false>;
445
509
  }>, false>;
446
- }>, []>>>;
510
+ }>, [Value: DB.Param<"Value", DB.Type>]>>, []>>>;
447
511
  DerivedFromSelection: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"BindingCostDerivedFromSelection", DB.Object<{
448
512
  fallback: DB.MemberDecl<DB.Integer, true>;
449
513
  translations: DB.MemberDecl<DB.NestedEntityMap<"BindingCostDerivedFromSelectionTranslation", {
@@ -1,10 +1,11 @@
1
1
  import * as DB from "tsondb/schema/dsl";
2
2
  import { NestedTranslationMap } from "./Locale.js";
3
+ import { StandaloneCostMap } from "./_ActivatableSkillCost.js";
3
4
  import { DurationUnitValue } from "./_ActivatableSkillDuration.js";
5
+ import { ParameterMap } from "./_ActivatableSkillParameterMap.js";
4
6
  import { AspectIdentifier, PropertyIdentifier } from "./_Identifier.js";
5
7
  import { VolumePointsOptionReferenceIdentifier } from "./_IdentifierGroup.js";
6
8
  import { ResponsiveText, ResponsiveTextOptional } from "./_ResponsiveText.js";
7
- import { OneTimeCostMap } from "./_ActivatableSkillCost.js";
8
9
  const EnchantmentCost = DB.Enum(import.meta.url, {
9
10
  name: "EnchantmentCost",
10
11
  values: () => ({
@@ -34,7 +35,7 @@ export const ArcaneEnergyCost = DB.Enum(import.meta.url, {
34
35
  Disjunction: DB.EnumCase({ type: DB.IncludeIdentifier(ArcaneEnergyCostDisjunction) }),
35
36
  Variable: DB.EnumCase({ type: null }),
36
37
  ByLevel: DB.EnumCase({ type: DB.IncludeIdentifier(ArcaneEnergyCostByLevel) }),
37
- Map: DB.EnumCase({ type: DB.IncludeIdentifier(OneTimeCostMap) }),
38
+ Map: DB.EnumCase({ type: DB.IncludeIdentifier(StandaloneCostMap) }),
38
39
  }),
39
40
  });
40
41
  export const aeCost = DB.Optional({
@@ -333,29 +334,10 @@ options:
333
334
  \`\`\`
334
335
 
335
336
  This will generate the exact same string as seen above. The associated options are not present in the example, but they link to the options the volume specification is meant for.`,
336
- type: () => DB.Object({
337
- options: DB.Required({
338
- comment: "The possible costs and associated labels.",
339
- type: DB.Array(DB.IncludeIdentifier(VolumeMapOption), { minItems: 2 }),
340
- }),
341
- translations: NestedTranslationMap(DB.Optional, "VolumeMap", DB.Object({
342
- list_prepend: DB.Optional({
343
- comment: "Place a string between the `for` and the grouped map option labels.",
344
- type: DB.IncludeIdentifier(ResponsiveTextOptional),
345
- }),
346
- list_append: DB.Optional({
347
- comment: "Place a string after the grouped map option labels.",
348
- type: DB.IncludeIdentifier(ResponsiveTextOptional),
349
- }),
350
- replacement: DB.Optional({
351
- comment: "If the string from the book cannot be generated using the default generation technique, use this string. All options still need to be inserted propertly, since it may be used by in-game tools to provide a selection to players.",
352
- type: DB.IncludeIdentifier(ResponsiveTextOptional),
353
- }),
354
- }, { minProperties: 1 })),
355
- }),
337
+ type: () => DB.GenIncludeIdentifier(ParameterMap, [DB.IncludeIdentifier(VolumeMapOptionValue)]),
356
338
  });
357
- const VolumeMapOption = DB.TypeAlias(import.meta.url, {
358
- name: "VolumeMapOption",
339
+ const VolumeMapOptionValue = DB.TypeAlias(import.meta.url, {
340
+ name: "VolumeMapOptionValue",
359
341
  type: () => DB.Object({
360
342
  points: DB.Required({
361
343
  comment: "The full permanent AE cost value for this option.",
@@ -365,16 +347,6 @@ const VolumeMapOption = DB.TypeAlias(import.meta.url, {
365
347
  comment: "Links to the options this volume specification is meant for.",
366
348
  type: DB.Array(DB.IncludeIdentifier(VolumeMapOptionAssociatedOption), { minItems: 1 }),
367
349
  }),
368
- translations: NestedTranslationMap(DB.Optional, "VolumeMapOption", DB.Object({
369
- label: DB.Required({
370
- comment: "The description of the option for cost string generation.",
371
- type: DB.IncludeIdentifier(ResponsiveTextOptional),
372
- }),
373
- label_standalone: DB.Optional({
374
- comment: "The description of the option if used standalone. Only used if different from `label`.",
375
- type: DB.IncludeIdentifier(ResponsiveTextOptional),
376
- }),
377
- }, { minProperties: 1 })),
378
350
  }),
379
351
  });
380
352
  const VolumeMapOptionAssociatedOption = DB.TypeAlias(import.meta.url, {
@@ -457,44 +429,15 @@ list_prepend: "spell-swords with the combat technique"
457
429
  \`\`\`
458
430
 
459
431
  This will generate the exact same string as seen above.`,
460
- type: () => DB.Object({
461
- options: DB.Required({
462
- comment: "The possible costs and associated labels.",
463
- type: DB.Array(DB.IncludeIdentifier(BindingCostMapOption), { minItems: 2 }),
464
- }),
465
- translations: NestedTranslationMap(DB.Optional, "BindingCostMap", DB.Object({
466
- list_prepend: DB.Optional({
467
- comment: "Place a string between the `for` and the grouped map option labels.",
468
- type: DB.IncludeIdentifier(ResponsiveTextOptional),
469
- }),
470
- list_append: DB.Optional({
471
- comment: "Place a string after the grouped map option labels.",
472
- type: DB.IncludeIdentifier(ResponsiveTextOptional),
473
- }),
474
- replacement: DB.Optional({
475
- comment: "If the string from the book cannot be generated using the default generation technique, use this string. All options still need to be inserted propertly, since it may be used by in-game tools to provide a selection to players.",
476
- type: DB.IncludeIdentifier(ResponsiveTextOptional),
477
- }),
478
- }, { minProperties: 1 })),
479
- }),
432
+ type: () => DB.GenIncludeIdentifier(ParameterMap, [DB.IncludeIdentifier(BindingCostMapOptionValue)]),
480
433
  });
481
- const BindingCostMapOption = DB.TypeAlias(import.meta.url, {
482
- name: "BindingCostMapOption",
434
+ const BindingCostMapOptionValue = DB.TypeAlias(import.meta.url, {
435
+ name: "BindingCostMapOptionValue",
483
436
  type: () => DB.Object({
484
- permanent_value: DB.Required({
437
+ permanentValue: DB.Required({
485
438
  comment: "The full permanent AE cost value for this option.",
486
439
  type: DB.Integer({ minimum: 1 }),
487
440
  }),
488
- translations: NestedTranslationMap(DB.Required, "BindingCostMapOption", DB.Object({
489
- label: DB.Required({
490
- comment: "The description of the option for cost string generation.",
491
- type: DB.IncludeIdentifier(ResponsiveTextOptional),
492
- }),
493
- label_standalone: DB.Optional({
494
- comment: "The description of the option if used standalone. Only used if different from `label`.",
495
- type: DB.IncludeIdentifier(ResponsiveTextOptional),
496
- }),
497
- })),
498
441
  }),
499
442
  });
500
443
  const BindingCostDerivedFromSelection = DB.TypeAlias(import.meta.url, {
@@ -1,6 +1,6 @@
1
1
  import * as DB from "tsondb/schema/dsl";
2
2
  import { NestedTranslationMap } from "./Locale.js";
3
- import { CeremonyIdentifier, CloseCombatTechniqueIdentifier, ElementIdentifier, LiturgicalChantIdentifier, RangedCombatTechniqueIdentifier, RitualIdentifier, SkillGroupIdentifier, SkillIdentifier, SpellIdentifier, TargetCategoryIdentifier, } from "./_Identifier.js";
3
+ import { CeremonyIdentifier, CloseCombatTechniqueIdentifier, ElementIdentifier, LiturgicalChantIdentifier, RangedCombatTechniqueIdentifier, RitualIdentifier, SkillGroupIdentifier, SkillIdentifier, SpellIdentifier, TargetCategoryIdentifier, PropertyIdentifier, } from "./_Identifier.js";
4
4
  import { ActivatableIdentifier, CombatTechniqueIdentifier, SkillishIdentifier, } from "./_IdentifierGroup.js";
5
5
  export const SelectOptionCategory = DB.Enum(import.meta.url, {
6
6
  name: "SelectOptionCategory",
@@ -170,16 +170,32 @@ const SkillsSelectOptionCategory = DB.TypeAlias(import.meta.url, {
170
170
  }),
171
171
  }),
172
172
  });
173
+ const SpellFilter = DB.Enum(import.meta.url, {
174
+ name: "SpellFilter",
175
+ values: () => ({
176
+ Single: DB.EnumCase({ type: SpellIdentifier() }),
177
+ Property: DB.EnumCase({ type: PropertyIdentifier() }),
178
+ }),
179
+ });
180
+ const RitualFilter = DB.Enum(import.meta.url, {
181
+ name: "RitualFilter",
182
+ values: () => ({
183
+ Single: DB.EnumCase({ type: RitualIdentifier() }),
184
+ Property: DB.EnumCase({ type: PropertyIdentifier() }),
185
+ }),
186
+ });
173
187
  const SkillsSelectOptionCategoryCategory = DB.Enum(import.meta.url, {
174
188
  name: "SkillsSelectOptionCategoryCategory",
175
189
  values: () => ({
176
190
  Skills: DB.EnumCase({ type: DB.IncludeIdentifier(SkillSelectOptionCategoryCategory) }),
177
191
  Spells: DB.EnumCase({
178
- type: DB.GenIncludeIdentifier(GenericSkillsSelectOptionCategoryCategory, [SpellIdentifier()]),
192
+ type: DB.GenIncludeIdentifier(GenericSkillsSelectOptionCategoryCategory, [
193
+ DB.IncludeIdentifierType(SpellFilter),
194
+ ]),
179
195
  }),
180
196
  Rituals: DB.EnumCase({
181
197
  type: DB.GenIncludeIdentifier(GenericSkillsSelectOptionCategoryCategory, [
182
- RitualIdentifier(),
198
+ DB.IncludeIdentifierType(RitualFilter),
183
199
  ]),
184
200
  }),
185
201
  LiturgicalChants: DB.EnumCase({