@optolith/database-schema 0.99.0 → 0.100.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 (36) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/gen/types.d.ts +541 -113
  3. package/lib/main.js +1 -0
  4. package/lib/types/Locale.d.ts +3 -0
  5. package/lib/types/Locale.js +3 -0
  6. package/lib/types/Profession.d.ts +21 -0
  7. package/lib/types/Profession.js +20 -0
  8. package/lib/types/_ActivatableAdvanced.d.ts +28 -0
  9. package/lib/types/_ActivatableAdvanced.js +57 -1
  10. package/lib/types/_ActivatableCombat.d.ts +43 -39
  11. package/lib/types/_ActivatableCombat.js +66 -72
  12. package/lib/types/_Identifier.d.ts +1 -0
  13. package/lib/types/_Identifier.js +2 -0
  14. package/lib/types/_IdentifierGroup.d.ts +1 -0
  15. package/lib/types/_IdentifierGroup.js +2 -1
  16. package/lib/types/equipment/EquipmentPackage.d.ts +1 -0
  17. package/lib/types/equipment/item/ItemComponent.d.ts +127 -0
  18. package/lib/types/equipment/item/ItemComponent.js +313 -0
  19. package/lib/types/index.d.ts +1 -0
  20. package/lib/types/index.js +1 -0
  21. package/lib/types/prerequisites/PrerequisiteGroups.d.ts +61 -5
  22. package/lib/types/prerequisites/PrerequisiteGroups.js +4 -1
  23. package/lib/types/prerequisites/single/RatedMinimumNumberPrerequisite.js +2 -2
  24. package/lib/types/prerequisites/single/RatedMinimumNumberPrerequisiteForProfession.d.ts +150 -0
  25. package/lib/types/prerequisites/single/RatedMinimumNumberPrerequisiteForProfession.js +53 -0
  26. package/lib/types/specialAbility/AdvancedCombatSpecialAbility.d.ts +40 -39
  27. package/lib/types/specialAbility/BrawlingSpecialAbility.d.ts +40 -39
  28. package/lib/types/specialAbility/CombatSpecialAbility.d.ts +40 -39
  29. package/lib/types/specialAbility/CombatStyleSpecialAbility.d.ts +68 -39
  30. package/lib/types/specialAbility/CommandSpecialAbility.d.ts +40 -39
  31. package/lib/types/specialAbility/LiturgicalStyleSpecialAbility.d.ts +28 -0
  32. package/lib/types/specialAbility/MagicStyleSpecialAbility.d.ts +28 -0
  33. package/lib/types/specialAbility/MagicalTradition.d.ts +1 -0
  34. package/lib/types/specialAbility/MagicalTradition.js +5 -1
  35. package/lib/types/specialAbility/SkillStyleSpecialAbility.d.ts +28 -0
  36. package/package.json +1 -1
@@ -1232,6 +1232,34 @@ export declare const CombatStyleSpecialAbility: DB.Entity<"CombatStyleSpecialAbi
1232
1232
  }>, []>>>;
1233
1233
  }, []>>, false>;
1234
1234
  }>, [Identifier: DB.Param<"Identifier", DB.Type>]>>>;
1235
+ ByOption: DB.EnumCase<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"AdvancedSpecialAbilityByOption", DB.Object<{
1236
+ map: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"AdvancedSpecialAbilityByOptionMapping", DB.Object<{
1237
+ option: DB.MemberDecl<DB.ReferenceIdentifier, true>;
1238
+ associatedAdvanced: DB.MemberDecl<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.Enum<"AdvancedSpecialAbilityByOptionMappingRule", {
1239
+ General: DB.EnumCase<DB.TypeArgument<DB.Param<"Identifier", DB.Type>>>;
1240
+ OneOf: DB.EnumCase<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"OneOfAdvancedSpecialAbilityOptions", DB.Object<{
1241
+ options: DB.MemberDecl<DB.Array<DB.TypeArgument<DB.Param<"Identifier", DB.Type>>>, true>;
1242
+ is_selection_required_on_purchase: DB.MemberDecl<DB.Boolean, true>;
1243
+ display_option: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"DisplayOption", {
1244
+ Hide: DB.EnumCase<null>;
1245
+ ReplaceWith: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ReplacementDisplayOption", DB.Object<{
1246
+ sentence_type: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SentenceType", {
1247
+ Standalone: DB.EnumCase<null>;
1248
+ Connected: DB.EnumCase<null>;
1249
+ }, []>>, false>;
1250
+ translations: DB.MemberDecl<DB.NestedEntityMap<"ReplacementDisplayOptionTranslation", {
1251
+ replacement: DB.MemberDecl<DB.String, true>;
1252
+ }>, true>;
1253
+ }>, []>>>;
1254
+ }, []>>, false>;
1255
+ }>, [Identifier: DB.Param<"Identifier", DB.Type>]>>>;
1256
+ }, [Identifier: DB.Param<"Identifier", DB.Type>]>>, true>;
1257
+ }>, [Identifier: DB.Param<"Identifier", DB.Type>]>>>, true>;
1258
+ fallbackOption: DB.MemberDecl<DB.ReferenceIdentifier, false>;
1259
+ translations: DB.MemberDecl<DB.NestedEntityMap<"AdvancedSpecialAbilityByOptionTranslation", {
1260
+ label: DB.MemberDecl<DB.String, true>;
1261
+ }>, false>;
1262
+ }>, [Identifier: DB.Param<"Identifier", DB.Type>]>>>;
1235
1263
  Any: DB.EnumCase<null>;
1236
1264
  }, [Identifier: DB.Param<"Identifier", DB.Type>]>>>, true>;
1237
1265
  prerequisites: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"GeneralPrerequisites", DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"PrerequisitesForLevels", DB.Array<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"PrerequisiteForLevel", DB.Object<{
@@ -1265,41 +1293,44 @@ export declare const CombatStyleSpecialAbility: DB.Entity<"CombatStyleSpecialAbi
1265
1293
  None: DB.EnumCase<null>;
1266
1294
  DependingOnCombatStyle: DB.EnumCase<null>;
1267
1295
  All: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"AllApplicableCombatTechniques", DB.Object<{
1268
- restriction: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ApplicableAllCombatTechniquesRestriction", {
1269
- Improvised: DB.EnumCase<null>;
1270
- PointedBlade: DB.EnumCase<null>;
1271
- Mount: DB.EnumCase<null>;
1272
- Race: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ApplicableCombatTechniquesRaceRestriction", DB.ReferenceIdentifier, []>>>;
1273
- ExcludeCombatTechniques: DB.EnumCase<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"ApplicableCombatTechniquesNegativeCombatTechniquesRestriction", DB.Object<{
1296
+ restrictions: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ApplicableAllCombatTechniquesRestrictions", DB.Object<{
1297
+ isImprovised: DB.MemberDecl<DB.Boolean, false>;
1298
+ hasPointedBlade: DB.MemberDecl<DB.Boolean, false>;
1299
+ whileMounted: DB.MemberDecl<DB.Boolean, false>;
1300
+ race: DB.MemberDecl<DB.ReferenceIdentifier, false>;
1301
+ excludeCombatTechniques: DB.MemberDecl<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"ApplicableCombatTechniquesNegativeCombatTechniquesRestriction", DB.Object<{
1274
1302
  list: DB.MemberDecl<DB.Array<DB.TypeArgument<DB.Param<"Ref", DB.Type>>>, true>;
1275
- }>, [Ref: DB.Param<"Ref", DB.Type>]>>>;
1276
- }, []>>, false>;
1303
+ }>, [Ref: DB.Param<"Ref", DB.Type>]>>, false>;
1304
+ }>, []>>, false>;
1277
1305
  }>, []>>>;
1278
1306
  AllClose: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"AllApplicableCloseCombatTechniques", DB.Object<{
1279
- restriction: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ApplicableCloseCombatTechniquesRestriction", {
1280
- Improvised: DB.EnumCase<null>;
1281
- PointedBlade: DB.EnumCase<null>;
1282
- Mount: DB.EnumCase<null>;
1283
- HasParry: DB.EnumCase<null>;
1284
- OneHanded: DB.EnumCase<null>;
1285
- TwoHanded: DB.EnumCase<null>;
1286
- ParryingWeapon: DB.EnumCase<null>;
1287
- Race: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ApplicableCombatTechniquesRaceRestriction", DB.ReferenceIdentifier, []>>>;
1288
- ExcludeCombatTechniques: DB.EnumCase<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"ApplicableCombatTechniquesNegativeCombatTechniquesRestriction", DB.Object<{
1307
+ restrictions: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ApplicableCloseCombatTechniquesRestrictions", DB.Object<{
1308
+ isImprovised: DB.MemberDecl<DB.Boolean, false>;
1309
+ hasPointedBlade: DB.MemberDecl<DB.Boolean, false>;
1310
+ whileMounted: DB.MemberDecl<DB.Boolean, false>;
1311
+ hasParry: DB.MemberDecl<DB.Boolean, false>;
1312
+ isOneHanded: DB.MemberDecl<DB.Boolean, false>;
1313
+ isTwoHanded: DB.MemberDecl<DB.Boolean, false>;
1314
+ isParryingWeapon: DB.MemberDecl<DB.Boolean, false>;
1315
+ race: DB.MemberDecl<DB.ReferenceIdentifier, false>;
1316
+ weaponClass: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"MeleeWeaponClass", {
1317
+ Axe: DB.EnumCase<null>;
1318
+ }, []>>, false>;
1319
+ excludeCombatTechniques: DB.MemberDecl<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"ApplicableCombatTechniquesNegativeCombatTechniquesRestriction", DB.Object<{
1289
1320
  list: DB.MemberDecl<DB.Array<DB.TypeArgument<DB.Param<"Ref", DB.Type>>>, true>;
1290
- }>, [Ref: DB.Param<"Ref", DB.Type>]>>>;
1291
- }, []>>, false>;
1321
+ }>, [Ref: DB.Param<"Ref", DB.Type>]>>, false>;
1322
+ }>, []>>, false>;
1292
1323
  }>, []>>>;
1293
1324
  AllRanged: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"AllApplicableRangedCombatTechniques", DB.Object<{
1294
- restriction: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ApplicableRangedCombatTechniquesRestriction", {
1295
- Improvised: DB.EnumCase<null>;
1296
- PointedBlade: DB.EnumCase<null>;
1297
- Mount: DB.EnumCase<null>;
1298
- Race: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ApplicableCombatTechniquesRaceRestriction", DB.ReferenceIdentifier, []>>>;
1299
- ExcludeCombatTechniques: DB.EnumCase<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"ApplicableCombatTechniquesNegativeCombatTechniquesRestriction", DB.Object<{
1325
+ restrictions: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ApplicableRangedCombatTechniquesRestrictions", DB.Object<{
1326
+ isImprovised: DB.MemberDecl<DB.Boolean, false>;
1327
+ hasPointedBlade: DB.MemberDecl<DB.Boolean, false>;
1328
+ whileMounted: DB.MemberDecl<DB.Boolean, false>;
1329
+ race: DB.MemberDecl<DB.ReferenceIdentifier, false>;
1330
+ excludeCombatTechniques: DB.MemberDecl<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"ApplicableCombatTechniquesNegativeCombatTechniquesRestriction", DB.Object<{
1300
1331
  list: DB.MemberDecl<DB.Array<DB.TypeArgument<DB.Param<"Ref", DB.Type>>>, true>;
1301
- }>, [Ref: DB.Param<"Ref", DB.Type>]>>>;
1302
- }, []>>, false>;
1332
+ }>, [Ref: DB.Param<"Ref", DB.Type>]>>, false>;
1333
+ }>, []>>, false>;
1303
1334
  }>, []>>>;
1304
1335
  Specific: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"SpecificApplicableCombatTechniques", DB.Object<{
1305
1336
  list: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"SpecificApplicableCombatTechnique", DB.Object<{
@@ -1307,18 +1338,16 @@ export declare const CombatStyleSpecialAbility: DB.Entity<"CombatStyleSpecialAbi
1307
1338
  CloseCombatTechnique: DB.EnumCase<DB.ReferenceIdentifier>;
1308
1339
  RangedCombatTechnique: DB.EnumCase<DB.ReferenceIdentifier>;
1309
1340
  }, []>>, true>;
1310
- restriction: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ApplicableSpecificCombatTechniquesRestriction", {
1311
- Improvised: DB.EnumCase<null>;
1312
- PointedBlade: DB.EnumCase<null>;
1313
- Mount: DB.EnumCase<null>;
1314
- Race: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ApplicableCombatTechniquesRaceRestriction", DB.ReferenceIdentifier, []>>>;
1315
- Level: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ApplicableCombatTechniquesLevelRestriction", DB.Object<{
1316
- level: DB.MemberDecl<DB.Integer, true>;
1317
- }>, []>>>;
1318
- OneBluntSide: DB.EnumCase<null>;
1319
- }, []>>, false>;
1341
+ restrictions: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ApplicableSpecificCombatTechniquesRestrictions", DB.Object<{
1342
+ isImprovised: DB.MemberDecl<DB.Boolean, false>;
1343
+ hasPointedBlade: DB.MemberDecl<DB.Boolean, false>;
1344
+ whileMounted: DB.MemberDecl<DB.Boolean, false>;
1345
+ race: DB.MemberDecl<DB.ReferenceIdentifier, false>;
1346
+ level: DB.MemberDecl<DB.Integer, false>;
1347
+ hasOneBluntSide: DB.MemberDecl<DB.Boolean, false>;
1348
+ }>, []>>, false>;
1320
1349
  translation: DB.MemberDecl<DB.NestedEntityMap<"SpecificApplicableCombatTechniqueTranslation", {
1321
- restriction: DB.MemberDecl<DB.String, true>;
1350
+ restrictions: DB.MemberDecl<DB.String, true>;
1322
1351
  }>, false>;
1323
1352
  weapons: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, false>;
1324
1353
  }>, []>>>, true>;
@@ -1106,41 +1106,44 @@ export declare const CommandSpecialAbility: DB.Entity<"CommandSpecialAbility", {
1106
1106
  None: DB.EnumCase<null>;
1107
1107
  DependingOnCombatStyle: DB.EnumCase<null>;
1108
1108
  All: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"AllApplicableCombatTechniques", DB.Object<{
1109
- restriction: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ApplicableAllCombatTechniquesRestriction", {
1110
- Improvised: DB.EnumCase<null>;
1111
- PointedBlade: DB.EnumCase<null>;
1112
- Mount: DB.EnumCase<null>;
1113
- Race: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ApplicableCombatTechniquesRaceRestriction", DB.ReferenceIdentifier, []>>>;
1114
- ExcludeCombatTechniques: DB.EnumCase<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"ApplicableCombatTechniquesNegativeCombatTechniquesRestriction", DB.Object<{
1109
+ restrictions: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ApplicableAllCombatTechniquesRestrictions", DB.Object<{
1110
+ isImprovised: DB.MemberDecl<DB.Boolean, false>;
1111
+ hasPointedBlade: DB.MemberDecl<DB.Boolean, false>;
1112
+ whileMounted: DB.MemberDecl<DB.Boolean, false>;
1113
+ race: DB.MemberDecl<DB.ReferenceIdentifier, false>;
1114
+ excludeCombatTechniques: DB.MemberDecl<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"ApplicableCombatTechniquesNegativeCombatTechniquesRestriction", DB.Object<{
1115
1115
  list: DB.MemberDecl<DB.Array<DB.TypeArgument<DB.Param<"Ref", DB.Type>>>, true>;
1116
- }>, [Ref: DB.Param<"Ref", DB.Type>]>>>;
1117
- }, []>>, false>;
1116
+ }>, [Ref: DB.Param<"Ref", DB.Type>]>>, false>;
1117
+ }>, []>>, false>;
1118
1118
  }>, []>>>;
1119
1119
  AllClose: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"AllApplicableCloseCombatTechniques", DB.Object<{
1120
- restriction: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ApplicableCloseCombatTechniquesRestriction", {
1121
- Improvised: DB.EnumCase<null>;
1122
- PointedBlade: DB.EnumCase<null>;
1123
- Mount: DB.EnumCase<null>;
1124
- HasParry: DB.EnumCase<null>;
1125
- OneHanded: DB.EnumCase<null>;
1126
- TwoHanded: DB.EnumCase<null>;
1127
- ParryingWeapon: DB.EnumCase<null>;
1128
- Race: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ApplicableCombatTechniquesRaceRestriction", DB.ReferenceIdentifier, []>>>;
1129
- ExcludeCombatTechniques: DB.EnumCase<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"ApplicableCombatTechniquesNegativeCombatTechniquesRestriction", DB.Object<{
1120
+ restrictions: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ApplicableCloseCombatTechniquesRestrictions", DB.Object<{
1121
+ isImprovised: DB.MemberDecl<DB.Boolean, false>;
1122
+ hasPointedBlade: DB.MemberDecl<DB.Boolean, false>;
1123
+ whileMounted: DB.MemberDecl<DB.Boolean, false>;
1124
+ hasParry: DB.MemberDecl<DB.Boolean, false>;
1125
+ isOneHanded: DB.MemberDecl<DB.Boolean, false>;
1126
+ isTwoHanded: DB.MemberDecl<DB.Boolean, false>;
1127
+ isParryingWeapon: DB.MemberDecl<DB.Boolean, false>;
1128
+ race: DB.MemberDecl<DB.ReferenceIdentifier, false>;
1129
+ weaponClass: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"MeleeWeaponClass", {
1130
+ Axe: DB.EnumCase<null>;
1131
+ }, []>>, false>;
1132
+ excludeCombatTechniques: DB.MemberDecl<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"ApplicableCombatTechniquesNegativeCombatTechniquesRestriction", DB.Object<{
1130
1133
  list: DB.MemberDecl<DB.Array<DB.TypeArgument<DB.Param<"Ref", DB.Type>>>, true>;
1131
- }>, [Ref: DB.Param<"Ref", DB.Type>]>>>;
1132
- }, []>>, false>;
1134
+ }>, [Ref: DB.Param<"Ref", DB.Type>]>>, false>;
1135
+ }>, []>>, false>;
1133
1136
  }>, []>>>;
1134
1137
  AllRanged: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"AllApplicableRangedCombatTechniques", DB.Object<{
1135
- restriction: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ApplicableRangedCombatTechniquesRestriction", {
1136
- Improvised: DB.EnumCase<null>;
1137
- PointedBlade: DB.EnumCase<null>;
1138
- Mount: DB.EnumCase<null>;
1139
- Race: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ApplicableCombatTechniquesRaceRestriction", DB.ReferenceIdentifier, []>>>;
1140
- ExcludeCombatTechniques: DB.EnumCase<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"ApplicableCombatTechniquesNegativeCombatTechniquesRestriction", DB.Object<{
1138
+ restrictions: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ApplicableRangedCombatTechniquesRestrictions", DB.Object<{
1139
+ isImprovised: DB.MemberDecl<DB.Boolean, false>;
1140
+ hasPointedBlade: DB.MemberDecl<DB.Boolean, false>;
1141
+ whileMounted: DB.MemberDecl<DB.Boolean, false>;
1142
+ race: DB.MemberDecl<DB.ReferenceIdentifier, false>;
1143
+ excludeCombatTechniques: DB.MemberDecl<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"ApplicableCombatTechniquesNegativeCombatTechniquesRestriction", DB.Object<{
1141
1144
  list: DB.MemberDecl<DB.Array<DB.TypeArgument<DB.Param<"Ref", DB.Type>>>, true>;
1142
- }>, [Ref: DB.Param<"Ref", DB.Type>]>>>;
1143
- }, []>>, false>;
1145
+ }>, [Ref: DB.Param<"Ref", DB.Type>]>>, false>;
1146
+ }>, []>>, false>;
1144
1147
  }>, []>>>;
1145
1148
  Specific: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"SpecificApplicableCombatTechniques", DB.Object<{
1146
1149
  list: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"SpecificApplicableCombatTechnique", DB.Object<{
@@ -1148,18 +1151,16 @@ export declare const CommandSpecialAbility: DB.Entity<"CommandSpecialAbility", {
1148
1151
  CloseCombatTechnique: DB.EnumCase<DB.ReferenceIdentifier>;
1149
1152
  RangedCombatTechnique: DB.EnumCase<DB.ReferenceIdentifier>;
1150
1153
  }, []>>, true>;
1151
- restriction: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ApplicableSpecificCombatTechniquesRestriction", {
1152
- Improvised: DB.EnumCase<null>;
1153
- PointedBlade: DB.EnumCase<null>;
1154
- Mount: DB.EnumCase<null>;
1155
- Race: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ApplicableCombatTechniquesRaceRestriction", DB.ReferenceIdentifier, []>>>;
1156
- Level: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ApplicableCombatTechniquesLevelRestriction", DB.Object<{
1157
- level: DB.MemberDecl<DB.Integer, true>;
1158
- }>, []>>>;
1159
- OneBluntSide: DB.EnumCase<null>;
1160
- }, []>>, false>;
1154
+ restrictions: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ApplicableSpecificCombatTechniquesRestrictions", DB.Object<{
1155
+ isImprovised: DB.MemberDecl<DB.Boolean, false>;
1156
+ hasPointedBlade: DB.MemberDecl<DB.Boolean, false>;
1157
+ whileMounted: DB.MemberDecl<DB.Boolean, false>;
1158
+ race: DB.MemberDecl<DB.ReferenceIdentifier, false>;
1159
+ level: DB.MemberDecl<DB.Integer, false>;
1160
+ hasOneBluntSide: DB.MemberDecl<DB.Boolean, false>;
1161
+ }>, []>>, false>;
1161
1162
  translation: DB.MemberDecl<DB.NestedEntityMap<"SpecificApplicableCombatTechniqueTranslation", {
1162
- restriction: DB.MemberDecl<DB.String, true>;
1163
+ restrictions: DB.MemberDecl<DB.String, true>;
1163
1164
  }>, false>;
1164
1165
  weapons: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, false>;
1165
1166
  }>, []>>>, true>;
@@ -1172,6 +1172,34 @@ export declare const LiturgicalStyleSpecialAbility: DB.Entity<"LiturgicalStyleSp
1172
1172
  }>, []>>>;
1173
1173
  }, []>>, false>;
1174
1174
  }>, [Identifier: DB.Param<"Identifier", DB.Type>]>>>;
1175
+ ByOption: DB.EnumCase<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"AdvancedSpecialAbilityByOption", DB.Object<{
1176
+ map: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"AdvancedSpecialAbilityByOptionMapping", DB.Object<{
1177
+ option: DB.MemberDecl<DB.ReferenceIdentifier, true>;
1178
+ associatedAdvanced: DB.MemberDecl<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.Enum<"AdvancedSpecialAbilityByOptionMappingRule", {
1179
+ General: DB.EnumCase<DB.TypeArgument<DB.Param<"Identifier", DB.Type>>>;
1180
+ OneOf: DB.EnumCase<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"OneOfAdvancedSpecialAbilityOptions", DB.Object<{
1181
+ options: DB.MemberDecl<DB.Array<DB.TypeArgument<DB.Param<"Identifier", DB.Type>>>, true>;
1182
+ is_selection_required_on_purchase: DB.MemberDecl<DB.Boolean, true>;
1183
+ display_option: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"DisplayOption", {
1184
+ Hide: DB.EnumCase<null>;
1185
+ ReplaceWith: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ReplacementDisplayOption", DB.Object<{
1186
+ sentence_type: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SentenceType", {
1187
+ Standalone: DB.EnumCase<null>;
1188
+ Connected: DB.EnumCase<null>;
1189
+ }, []>>, false>;
1190
+ translations: DB.MemberDecl<DB.NestedEntityMap<"ReplacementDisplayOptionTranslation", {
1191
+ replacement: DB.MemberDecl<DB.String, true>;
1192
+ }>, true>;
1193
+ }>, []>>>;
1194
+ }, []>>, false>;
1195
+ }>, [Identifier: DB.Param<"Identifier", DB.Type>]>>>;
1196
+ }, [Identifier: DB.Param<"Identifier", DB.Type>]>>, true>;
1197
+ }>, [Identifier: DB.Param<"Identifier", DB.Type>]>>>, true>;
1198
+ fallbackOption: DB.MemberDecl<DB.ReferenceIdentifier, false>;
1199
+ translations: DB.MemberDecl<DB.NestedEntityMap<"AdvancedSpecialAbilityByOptionTranslation", {
1200
+ label: DB.MemberDecl<DB.String, true>;
1201
+ }>, false>;
1202
+ }>, [Identifier: DB.Param<"Identifier", DB.Type>]>>>;
1175
1203
  Any: DB.EnumCase<null>;
1176
1204
  }, [Identifier: DB.Param<"Identifier", DB.Type>]>>>, true>;
1177
1205
  prerequisites: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"GeneralPrerequisites", DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"PrerequisitesForLevels", DB.Array<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"PrerequisiteForLevel", DB.Object<{
@@ -1172,6 +1172,34 @@ export declare const MagicStyleSpecialAbility: DB.Entity<"MagicStyleSpecialAbili
1172
1172
  }>, []>>>;
1173
1173
  }, []>>, false>;
1174
1174
  }>, [Identifier: DB.Param<"Identifier", DB.Type>]>>>;
1175
+ ByOption: DB.EnumCase<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"AdvancedSpecialAbilityByOption", DB.Object<{
1176
+ map: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"AdvancedSpecialAbilityByOptionMapping", DB.Object<{
1177
+ option: DB.MemberDecl<DB.ReferenceIdentifier, true>;
1178
+ associatedAdvanced: DB.MemberDecl<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.Enum<"AdvancedSpecialAbilityByOptionMappingRule", {
1179
+ General: DB.EnumCase<DB.TypeArgument<DB.Param<"Identifier", DB.Type>>>;
1180
+ OneOf: DB.EnumCase<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"OneOfAdvancedSpecialAbilityOptions", DB.Object<{
1181
+ options: DB.MemberDecl<DB.Array<DB.TypeArgument<DB.Param<"Identifier", DB.Type>>>, true>;
1182
+ is_selection_required_on_purchase: DB.MemberDecl<DB.Boolean, true>;
1183
+ display_option: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"DisplayOption", {
1184
+ Hide: DB.EnumCase<null>;
1185
+ ReplaceWith: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ReplacementDisplayOption", DB.Object<{
1186
+ sentence_type: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SentenceType", {
1187
+ Standalone: DB.EnumCase<null>;
1188
+ Connected: DB.EnumCase<null>;
1189
+ }, []>>, false>;
1190
+ translations: DB.MemberDecl<DB.NestedEntityMap<"ReplacementDisplayOptionTranslation", {
1191
+ replacement: DB.MemberDecl<DB.String, true>;
1192
+ }>, true>;
1193
+ }>, []>>>;
1194
+ }, []>>, false>;
1195
+ }>, [Identifier: DB.Param<"Identifier", DB.Type>]>>>;
1196
+ }, [Identifier: DB.Param<"Identifier", DB.Type>]>>, true>;
1197
+ }>, [Identifier: DB.Param<"Identifier", DB.Type>]>>>, true>;
1198
+ fallbackOption: DB.MemberDecl<DB.ReferenceIdentifier, false>;
1199
+ translations: DB.MemberDecl<DB.NestedEntityMap<"AdvancedSpecialAbilityByOptionTranslation", {
1200
+ label: DB.MemberDecl<DB.String, true>;
1201
+ }>, false>;
1202
+ }>, [Identifier: DB.Param<"Identifier", DB.Type>]>>>;
1175
1203
  Any: DB.EnumCase<null>;
1176
1204
  }, [Identifier: DB.Param<"Identifier", DB.Type>]>>>, true>;
1177
1205
  prerequisites: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"GeneralPrerequisites", DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"PrerequisitesForLevels", DB.Array<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"PrerequisiteForLevel", DB.Object<{
@@ -1136,6 +1136,7 @@ export declare const MagicalTradition: DB.Entity<"MagicalTradition", {
1136
1136
  require_non_spellwork_exclusive_effects: DB.MemberDecl<DB.Boolean, true>;
1137
1137
  is_magical_dilettante: DB.MemberDecl<DB.Boolean, true>;
1138
1138
  use_arcane_spellworks_from_tradition: DB.MemberDecl<DB.ReferenceIdentifier, false>;
1139
+ use_arcane_spellworks_from_property: DB.MemberDecl<DB.ReferenceIdentifier, false>;
1139
1140
  influences: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, false>;
1140
1141
  subgroups: DB.MemberDecl<DB.ChildEntities<DB.Entity<"MagicalTraditionSubgroup", {
1141
1142
  parent: DB.MemberDecl<DB.ReferenceIdentifier, true>;
@@ -4,7 +4,7 @@ import { ap_value, ap_value_append, ap_value_l10n } from "../_ActivatableAdventu
4
4
  import { activatableDisplayNameCustomizer, nameBuilderRules } from "../_ActivatableNames.js";
5
5
  import { explicit_select_options, select_options, verifySelectOptionRules, } from "../_ActivatableSelectOptions.js";
6
6
  import { skill_applications, skill_uses } from "../_ActivatableSkillApplicationsAndUses.js";
7
- import { AttributeIdentifier, InfluenceIdentifier, MagicalTraditionIdentifier, } from "../_Identifier.js";
7
+ import { AttributeIdentifier, InfluenceIdentifier, MagicalTraditionIdentifier, PropertyIdentifier, } from "../_Identifier.js";
8
8
  import { GeneralPrerequisites } from "../_Prerequisite.js";
9
9
  import { NestedTranslationMap } from "../Locale.js";
10
10
  import { Errata } from "../source/_Erratum.js";
@@ -61,6 +61,10 @@ export const MagicalTradition = DB.Entity(import.meta.url, {
61
61
  comment: "If arcane spellworks from a different tradition count as arcane spellworks of this tradition, this is the different tradition’s reference.",
62
62
  type: MagicalTraditionIdentifier(),
63
63
  }),
64
+ use_arcane_spellworks_from_property: DB.Optional({
65
+ comment: "If arcane spellworks with a specific property count as arcane spellworks of this tradition, this is the property’s reference.",
66
+ type: PropertyIdentifier(),
67
+ }),
64
68
  influences: DB.Optional({
65
69
  comment: "The influences for the tradition. Influences are enabled by Focus Rules.",
66
70
  type: DB.Array(InfluenceIdentifier(), { minItems: 2 }),
@@ -1118,6 +1118,34 @@ export declare const SkillStyleSpecialAbility: DB.Entity<"SkillStyleSpecialAbili
1118
1118
  }>, []>>>;
1119
1119
  }, []>>, false>;
1120
1120
  }>, [Identifier: DB.Param<"Identifier", DB.Type>]>>>;
1121
+ ByOption: DB.EnumCase<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"AdvancedSpecialAbilityByOption", DB.Object<{
1122
+ map: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"AdvancedSpecialAbilityByOptionMapping", DB.Object<{
1123
+ option: DB.MemberDecl<DB.ReferenceIdentifier, true>;
1124
+ associatedAdvanced: DB.MemberDecl<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.Enum<"AdvancedSpecialAbilityByOptionMappingRule", {
1125
+ General: DB.EnumCase<DB.TypeArgument<DB.Param<"Identifier", DB.Type>>>;
1126
+ OneOf: DB.EnumCase<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"OneOfAdvancedSpecialAbilityOptions", DB.Object<{
1127
+ options: DB.MemberDecl<DB.Array<DB.TypeArgument<DB.Param<"Identifier", DB.Type>>>, true>;
1128
+ is_selection_required_on_purchase: DB.MemberDecl<DB.Boolean, true>;
1129
+ display_option: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"DisplayOption", {
1130
+ Hide: DB.EnumCase<null>;
1131
+ ReplaceWith: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ReplacementDisplayOption", DB.Object<{
1132
+ sentence_type: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SentenceType", {
1133
+ Standalone: DB.EnumCase<null>;
1134
+ Connected: DB.EnumCase<null>;
1135
+ }, []>>, false>;
1136
+ translations: DB.MemberDecl<DB.NestedEntityMap<"ReplacementDisplayOptionTranslation", {
1137
+ replacement: DB.MemberDecl<DB.String, true>;
1138
+ }>, true>;
1139
+ }>, []>>>;
1140
+ }, []>>, false>;
1141
+ }>, [Identifier: DB.Param<"Identifier", DB.Type>]>>>;
1142
+ }, [Identifier: DB.Param<"Identifier", DB.Type>]>>, true>;
1143
+ }>, [Identifier: DB.Param<"Identifier", DB.Type>]>>>, true>;
1144
+ fallbackOption: DB.MemberDecl<DB.ReferenceIdentifier, false>;
1145
+ translations: DB.MemberDecl<DB.NestedEntityMap<"AdvancedSpecialAbilityByOptionTranslation", {
1146
+ label: DB.MemberDecl<DB.String, true>;
1147
+ }>, false>;
1148
+ }>, [Identifier: DB.Param<"Identifier", DB.Type>]>>>;
1121
1149
  Any: DB.EnumCase<null>;
1122
1150
  }, [Identifier: DB.Param<"Identifier", DB.Type>]>>>, true>;
1123
1151
  prerequisites: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"GeneralPrerequisites", DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"PrerequisitesForLevels", DB.Array<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"PrerequisiteForLevel", DB.Object<{
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@optolith/database-schema",
3
- "version": "0.99.0",
3
+ "version": "0.100.0",
4
4
  "description": "Definitions and utilities for the flat-file database of Optolith, a character creation tool for the Pen and Paper RPG “The Dark Eye 5”, and its external integrations into other software.",
5
5
  "keywords": [
6
6
  "tde",