@optolith/database-schema 0.78.0 → 0.79.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 (123) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/gen/types.d.ts +161 -0
  3. package/lib/types/Advantage.d.ts +29 -0
  4. package/lib/types/Advantage.js +2 -1
  5. package/lib/types/Disadvantage.d.ts +29 -0
  6. package/lib/types/Disadvantage.js +2 -1
  7. package/lib/types/_ActivatableSelectOptions.d.ts +930 -1
  8. package/lib/types/_ActivatableSelectOptions.js +138 -117
  9. package/lib/types/equipment/item/EquipmentCategory.d.ts +15 -0
  10. package/lib/types/equipment/item/EquipmentCategory.js +5 -0
  11. package/lib/types/equipment/item/IlluminationLightSource.d.ts +9 -0
  12. package/lib/types/equipment/item/IlluminationLightSource.js +1 -1
  13. package/lib/types/equipment/item/Item.d.ts +9 -0
  14. package/lib/types/equipment/item/Item.js +6 -0
  15. package/lib/types/specialAbility/AdvancedCombatSpecialAbility.d.ts +29 -0
  16. package/lib/types/specialAbility/AdvancedCombatSpecialAbility.js +2 -1
  17. package/lib/types/specialAbility/AdvancedKarmaSpecialAbility.d.ts +29 -0
  18. package/lib/types/specialAbility/AdvancedKarmaSpecialAbility.js +2 -1
  19. package/lib/types/specialAbility/AdvancedMagicalSpecialAbility.d.ts +29 -0
  20. package/lib/types/specialAbility/AdvancedMagicalSpecialAbility.js +2 -1
  21. package/lib/types/specialAbility/AdvancedSkillSpecialAbility.d.ts +29 -0
  22. package/lib/types/specialAbility/AdvancedSkillSpecialAbility.js +2 -1
  23. package/lib/types/specialAbility/AncestorGlyph.d.ts +29 -0
  24. package/lib/types/specialAbility/AncestorGlyph.js +2 -1
  25. package/lib/types/specialAbility/BlessedTradition.d.ts +29 -0
  26. package/lib/types/specialAbility/BlessedTradition.js +2 -1
  27. package/lib/types/specialAbility/BrawlingSpecialAbility.d.ts +29 -0
  28. package/lib/types/specialAbility/BrawlingSpecialAbility.js +2 -1
  29. package/lib/types/specialAbility/CeremonialItemSpecialAbility.d.ts +29 -0
  30. package/lib/types/specialAbility/CeremonialItemSpecialAbility.js +2 -1
  31. package/lib/types/specialAbility/CombatSpecialAbility.d.ts +29 -0
  32. package/lib/types/specialAbility/CombatSpecialAbility.js +2 -1
  33. package/lib/types/specialAbility/CombatStyleSpecialAbility.d.ts +29 -0
  34. package/lib/types/specialAbility/CombatStyleSpecialAbility.js +3 -2
  35. package/lib/types/specialAbility/CommandSpecialAbility.d.ts +29 -0
  36. package/lib/types/specialAbility/CommandSpecialAbility.js +2 -1
  37. package/lib/types/specialAbility/FamiliarSpecialAbility.d.ts +29 -0
  38. package/lib/types/specialAbility/FamiliarSpecialAbility.js +2 -1
  39. package/lib/types/specialAbility/FatePointSexSpecialAbility.d.ts +29 -0
  40. package/lib/types/specialAbility/FatePointSexSpecialAbility.js +2 -1
  41. package/lib/types/specialAbility/FatePointSpecialAbility.d.ts +29 -0
  42. package/lib/types/specialAbility/FatePointSpecialAbility.js +2 -1
  43. package/lib/types/specialAbility/GeneralSpecialAbility.d.ts +29 -0
  44. package/lib/types/specialAbility/GeneralSpecialAbility.js +2 -1
  45. package/lib/types/specialAbility/KarmaSpecialAbility.d.ts +29 -0
  46. package/lib/types/specialAbility/KarmaSpecialAbility.js +2 -1
  47. package/lib/types/specialAbility/LiturgicalStyleSpecialAbility.d.ts +29 -0
  48. package/lib/types/specialAbility/LiturgicalStyleSpecialAbility.js +2 -1
  49. package/lib/types/specialAbility/LycantropicGift.d.ts +29 -0
  50. package/lib/types/specialAbility/LycantropicGift.js +2 -1
  51. package/lib/types/specialAbility/MagicStyleSpecialAbility.d.ts +29 -0
  52. package/lib/types/specialAbility/MagicStyleSpecialAbility.js +2 -1
  53. package/lib/types/specialAbility/MagicalSpecialAbility.d.ts +29 -0
  54. package/lib/types/specialAbility/MagicalSpecialAbility.js +2 -1
  55. package/lib/types/specialAbility/MagicalTradition.d.ts +29 -0
  56. package/lib/types/specialAbility/MagicalTradition.js +2 -1
  57. package/lib/types/specialAbility/PactGift.d.ts +29 -0
  58. package/lib/types/specialAbility/PactGift.js +2 -1
  59. package/lib/types/specialAbility/ProtectiveWardingCircleSpecialAbility.d.ts +29 -0
  60. package/lib/types/specialAbility/ProtectiveWardingCircleSpecialAbility.js +2 -1
  61. package/lib/types/specialAbility/Sermon.d.ts +29 -0
  62. package/lib/types/specialAbility/Sermon.js +2 -1
  63. package/lib/types/specialAbility/SexSpecialAbility.d.ts +29 -0
  64. package/lib/types/specialAbility/SexSpecialAbility.js +2 -1
  65. package/lib/types/specialAbility/SikaryanDrainSpecialAbility.d.ts +29 -0
  66. package/lib/types/specialAbility/SikaryanDrainSpecialAbility.js +2 -1
  67. package/lib/types/specialAbility/SkillStyleSpecialAbility.d.ts +29 -0
  68. package/lib/types/specialAbility/SkillStyleSpecialAbility.js +2 -1
  69. package/lib/types/specialAbility/VampiricGift.d.ts +29 -0
  70. package/lib/types/specialAbility/VampiricGift.js +2 -1
  71. package/lib/types/specialAbility/Vision.d.ts +29 -0
  72. package/lib/types/specialAbility/Vision.js +2 -1
  73. package/lib/types/traditionArtifacts/ArcaneOrbEnchantment.d.ts +1 -1493
  74. package/lib/types/traditionArtifacts/ArcaneOrbEnchantment.js +2 -34
  75. package/lib/types/traditionArtifacts/AttireEnchantment.d.ts +1 -1493
  76. package/lib/types/traditionArtifacts/AttireEnchantment.js +2 -34
  77. package/lib/types/traditionArtifacts/Beutelzauber.d.ts +1 -1493
  78. package/lib/types/traditionArtifacts/Beutelzauber.js +2 -34
  79. package/lib/types/traditionArtifacts/BowlEnchantment.d.ts +1 -1493
  80. package/lib/types/traditionArtifacts/BowlEnchantment.js +2 -34
  81. package/lib/types/traditionArtifacts/CauldronEnchantment.d.ts +1 -1493
  82. package/lib/types/traditionArtifacts/CauldronEnchantment.js +5 -36
  83. package/lib/types/traditionArtifacts/ChronicleEnchantment.d.ts +1 -1493
  84. package/lib/types/traditionArtifacts/ChronicleEnchantment.js +2 -34
  85. package/lib/types/traditionArtifacts/DaggerRitual.d.ts +1 -1499
  86. package/lib/types/traditionArtifacts/DaggerRitual.js +5 -34
  87. package/lib/types/traditionArtifacts/FoolsHatEnchantment.d.ts +1 -1493
  88. package/lib/types/traditionArtifacts/FoolsHatEnchantment.js +2 -34
  89. package/lib/types/traditionArtifacts/Haubenzauber.d.ts +1 -1493
  90. package/lib/types/traditionArtifacts/Haubenzauber.js +2 -34
  91. package/lib/types/traditionArtifacts/Hauerkettenzauber.d.ts +1 -464
  92. package/lib/types/traditionArtifacts/Hauerkettenzauber.js +2 -31
  93. package/lib/types/traditionArtifacts/InstrumentEnchantment.d.ts +1 -1493
  94. package/lib/types/traditionArtifacts/InstrumentEnchantment.js +2 -34
  95. package/lib/types/traditionArtifacts/Keulenzauber.d.ts +1 -464
  96. package/lib/types/traditionArtifacts/Keulenzauber.js +2 -31
  97. package/lib/types/traditionArtifacts/Krallenkettenzauber.d.ts +1 -1493
  98. package/lib/types/traditionArtifacts/Krallenkettenzauber.js +2 -34
  99. package/lib/types/traditionArtifacts/Kristallkugelzauber.d.ts +1 -1493
  100. package/lib/types/traditionArtifacts/Kristallkugelzauber.js +2 -34
  101. package/lib/types/traditionArtifacts/OrbEnchantment.d.ts +1 -1493
  102. package/lib/types/traditionArtifacts/OrbEnchantment.js +2 -34
  103. package/lib/types/traditionArtifacts/RingEnchantment.d.ts +1 -1493
  104. package/lib/types/traditionArtifacts/RingEnchantment.js +2 -34
  105. package/lib/types/traditionArtifacts/Schweinetrommelzauber.d.ts +1 -464
  106. package/lib/types/traditionArtifacts/Schweinetrommelzauber.js +2 -31
  107. package/lib/types/traditionArtifacts/SickleRitual.d.ts +1 -1493
  108. package/lib/types/traditionArtifacts/SickleRitual.js +2 -34
  109. package/lib/types/traditionArtifacts/SpellSwordEnchantment.d.ts +1 -1493
  110. package/lib/types/traditionArtifacts/SpellSwordEnchantment.js +2 -34
  111. package/lib/types/traditionArtifacts/StaffEnchantment.d.ts +1 -1493
  112. package/lib/types/traditionArtifacts/StaffEnchantment.js +2 -34
  113. package/lib/types/traditionArtifacts/ToyEnchantment.d.ts +1 -1493
  114. package/lib/types/traditionArtifacts/ToyEnchantment.js +2 -34
  115. package/lib/types/traditionArtifacts/Trinkhornzauber.d.ts +1 -1493
  116. package/lib/types/traditionArtifacts/Trinkhornzauber.js +2 -34
  117. package/lib/types/traditionArtifacts/WandEnchantment.d.ts +1 -1455
  118. package/lib/types/traditionArtifacts/WandEnchantment.js +3 -33
  119. package/lib/types/traditionArtifacts/WeaponEnchantment.d.ts +1 -1493
  120. package/lib/types/traditionArtifacts/WeaponEnchantment.js +2 -34
  121. package/lib/types/traditionArtifacts/_shared.d.ts +10 -0
  122. package/lib/types/traditionArtifacts/_shared.js +40 -3
  123. package/package.json +1 -1
@@ -841,6 +841,35 @@ export declare const AncestorGlyph: DB.Entity<"AncestorGlyph", {
841
841
  }>, []>>>, true>;
842
842
  }>, []>>>;
843
843
  }, []>>, false>;
844
+ rules: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"SelectOptionRules", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"SelectOptionRule", DB.Object<{
845
+ value: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SelectOptionRuleValue", {
846
+ Predefined: DB.EnumCase<null>;
847
+ PredefinedOrTextInput: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"PredefinedOrTextInputSelectOptionRuleValue", DB.Object<{
848
+ translations: DB.MemberDecl<DB.NestedEntityMap<"PredefinedOrTextInputSelectOptionRuleValueTranslation", {
849
+ inputLabel: DB.MemberDecl<DB.String, true>;
850
+ optionLabel: DB.MemberDecl<DB.String, true>;
851
+ }>, true>;
852
+ }>, []>>>;
853
+ Child: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ChildSelectOptionRuleValue", DB.Object<{
854
+ parentIndex: DB.MemberDecl<DB.Integer, true>;
855
+ entity: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ChildEntityForSelectOption", {
856
+ SkillApplication: DB.EnumCase<null>;
857
+ }, []>>, true>;
858
+ }>, []>>>;
859
+ TextInput: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"TextInputSelectOptionRuleValue", DB.Object<{
860
+ translations: DB.MemberDecl<DB.NestedEntityMap<"TextInputSelectOptionRuleValueTranslation", {
861
+ inputLabel: DB.MemberDecl<DB.String, true>;
862
+ }>, true>;
863
+ }>, []>>>;
864
+ }, []>>, true>;
865
+ multiple: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SelectOptionRuleMultiple", {
866
+ Constant: DB.EnumCase<DB.Integer>;
867
+ Range: DB.EnumCase<DB.Object<{
868
+ min: DB.MemberDecl<DB.Integer, false>;
869
+ max: DB.MemberDecl<DB.Integer, true>;
870
+ }>>;
871
+ }, []>>, false>;
872
+ }>, []>>>, []>>, false>;
844
873
  }>, []>>, false>;
845
874
  explicit_select_options: DB.MemberDecl<DB.ChildEntities<DB.Entity<"GeneralSelectOption", {
846
875
  parent: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SelectOptionParentIdentifier", {
@@ -2,7 +2,7 @@ import * as DB from "tsondb/schema/dsl";
2
2
  import { levels, maximum, name, name_in_library, rules } from "../_Activatable.js";
3
3
  import { ap_value, ap_value_append, ap_value_l10n } from "../_ActivatableAdventurePointsValue.js";
4
4
  import { activatableDisplayNameCustomizer, nameBuilderRules } from "../_ActivatableNames.js";
5
- import { explicit_select_options, select_options } from "../_ActivatableSelectOptions.js";
5
+ import { explicit_select_options, select_options, verifySelectOptionRules, } from "../_ActivatableSelectOptions.js";
6
6
  import { GeneralPrerequisites } from "../_Prerequisite.js";
7
7
  import { NestedTranslationMap } from "../Locale.js";
8
8
  import { Errata } from "../source/_Erratum.js";
@@ -46,4 +46,5 @@ export const AncestorGlyph = DB.Entity(import.meta.url, {
46
46
  keyPathInEntityMapFallback: "name",
47
47
  },
48
48
  ],
49
+ customConstraints: deps => verifySelectOptionRules("AncestorGlyph", deps),
49
50
  });
@@ -833,6 +833,35 @@ export declare const BlessedTradition: DB.Entity<"BlessedTradition", {
833
833
  }>, []>>>, true>;
834
834
  }>, []>>>;
835
835
  }, []>>, false>;
836
+ rules: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"SelectOptionRules", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"SelectOptionRule", DB.Object<{
837
+ value: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SelectOptionRuleValue", {
838
+ Predefined: DB.EnumCase<null>;
839
+ PredefinedOrTextInput: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"PredefinedOrTextInputSelectOptionRuleValue", DB.Object<{
840
+ translations: DB.MemberDecl<DB.NestedEntityMap<"PredefinedOrTextInputSelectOptionRuleValueTranslation", {
841
+ inputLabel: DB.MemberDecl<DB.String, true>;
842
+ optionLabel: DB.MemberDecl<DB.String, true>;
843
+ }>, true>;
844
+ }>, []>>>;
845
+ Child: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ChildSelectOptionRuleValue", DB.Object<{
846
+ parentIndex: DB.MemberDecl<DB.Integer, true>;
847
+ entity: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ChildEntityForSelectOption", {
848
+ SkillApplication: DB.EnumCase<null>;
849
+ }, []>>, true>;
850
+ }>, []>>>;
851
+ TextInput: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"TextInputSelectOptionRuleValue", DB.Object<{
852
+ translations: DB.MemberDecl<DB.NestedEntityMap<"TextInputSelectOptionRuleValueTranslation", {
853
+ inputLabel: DB.MemberDecl<DB.String, true>;
854
+ }>, true>;
855
+ }>, []>>>;
856
+ }, []>>, true>;
857
+ multiple: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SelectOptionRuleMultiple", {
858
+ Constant: DB.EnumCase<DB.Integer>;
859
+ Range: DB.EnumCase<DB.Object<{
860
+ min: DB.MemberDecl<DB.Integer, false>;
861
+ max: DB.MemberDecl<DB.Integer, true>;
862
+ }>>;
863
+ }, []>>, false>;
864
+ }>, []>>>, []>>, false>;
836
865
  }>, []>>, false>;
837
866
  explicit_select_options: DB.MemberDecl<DB.ChildEntities<DB.Entity<"GeneralSelectOption", {
838
867
  parent: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SelectOptionParentIdentifier", {
@@ -2,7 +2,7 @@ import * as DB from "tsondb/schema/dsl";
2
2
  import { name, name_in_library } from "../_Activatable.js";
3
3
  import { ap_value, ap_value_append, ap_value_l10n } from "../_ActivatableAdventurePointsValue.js";
4
4
  import { activatableDisplayNameCustomizer } from "../_ActivatableNames.js";
5
- import { explicit_select_options, select_options } from "../_ActivatableSelectOptions.js";
5
+ import { explicit_select_options, select_options, verifySelectOptionRules, } from "../_ActivatableSelectOptions.js";
6
6
  import { skill_applications, skill_uses } from "../_ActivatableSkillApplicationsAndUses.js";
7
7
  import { AspectIdentifier, AttributeIdentifier, BlessingIdentifier, GeneralIdentifier, SkillIdentifier, } from "../_Identifier.js";
8
8
  import { CombatTechniqueIdentifier } from "../_IdentifierGroup.js";
@@ -91,6 +91,7 @@ export const BlessedTradition = DB.Entity(import.meta.url, {
91
91
  keyPathInEntityMapFallback: "name",
92
92
  },
93
93
  ],
94
+ customConstraints: deps => verifySelectOptionRules("BlessedTradition", deps),
94
95
  });
95
96
  const RestrictedBlessings = DB.Enum(import.meta.url, {
96
97
  name: "RestrictedBlessings",
@@ -846,6 +846,35 @@ export declare const BrawlingSpecialAbility: DB.Entity<"BrawlingSpecialAbility",
846
846
  }>, []>>>, true>;
847
847
  }>, []>>>;
848
848
  }, []>>, false>;
849
+ rules: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"SelectOptionRules", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"SelectOptionRule", DB.Object<{
850
+ value: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SelectOptionRuleValue", {
851
+ Predefined: DB.EnumCase<null>;
852
+ PredefinedOrTextInput: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"PredefinedOrTextInputSelectOptionRuleValue", DB.Object<{
853
+ translations: DB.MemberDecl<DB.NestedEntityMap<"PredefinedOrTextInputSelectOptionRuleValueTranslation", {
854
+ inputLabel: DB.MemberDecl<DB.String, true>;
855
+ optionLabel: DB.MemberDecl<DB.String, true>;
856
+ }>, true>;
857
+ }>, []>>>;
858
+ Child: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ChildSelectOptionRuleValue", DB.Object<{
859
+ parentIndex: DB.MemberDecl<DB.Integer, true>;
860
+ entity: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ChildEntityForSelectOption", {
861
+ SkillApplication: DB.EnumCase<null>;
862
+ }, []>>, true>;
863
+ }>, []>>>;
864
+ TextInput: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"TextInputSelectOptionRuleValue", DB.Object<{
865
+ translations: DB.MemberDecl<DB.NestedEntityMap<"TextInputSelectOptionRuleValueTranslation", {
866
+ inputLabel: DB.MemberDecl<DB.String, true>;
867
+ }>, true>;
868
+ }>, []>>>;
869
+ }, []>>, true>;
870
+ multiple: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SelectOptionRuleMultiple", {
871
+ Constant: DB.EnumCase<DB.Integer>;
872
+ Range: DB.EnumCase<DB.Object<{
873
+ min: DB.MemberDecl<DB.Integer, false>;
874
+ max: DB.MemberDecl<DB.Integer, true>;
875
+ }>>;
876
+ }, []>>, false>;
877
+ }>, []>>>, []>>, false>;
849
878
  }>, []>>, false>;
850
879
  explicit_select_options: DB.MemberDecl<DB.ChildEntities<DB.Entity<"GeneralSelectOption", {
851
880
  parent: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SelectOptionParentIdentifier", {
@@ -3,7 +3,7 @@ import { levels, maximum, name, name_in_library, rules } from "../_Activatable.j
3
3
  import { ap_value, ap_value_append, ap_value_l10n } from "../_ActivatableAdventurePointsValue.js";
4
4
  import { combat_techniques, special_ability_usage_type } from "../_ActivatableCombat.js";
5
5
  import { activatableDisplayNameCustomizer, nameBuilderRules } from "../_ActivatableNames.js";
6
- import { explicit_select_options, select_options } from "../_ActivatableSelectOptions.js";
6
+ import { explicit_select_options, select_options, verifySelectOptionRules, } from "../_ActivatableSelectOptions.js";
7
7
  import { GeneralPrerequisites } from "../_Prerequisite.js";
8
8
  import { NestedTranslationMap } from "../Locale.js";
9
9
  import { Errata } from "../source/_Erratum.js";
@@ -44,4 +44,5 @@ export const BrawlingSpecialAbility = DB.Entity(import.meta.url, {
44
44
  keyPathInEntityMapFallback: "name",
45
45
  },
46
46
  ],
47
+ customConstraints: deps => verifySelectOptionRules("BrawlingSpecialAbility", deps),
47
48
  });
@@ -842,6 +842,35 @@ export declare const CeremonialItemSpecialAbility: DB.Entity<"CeremonialItemSpec
842
842
  }>, []>>>, true>;
843
843
  }>, []>>>;
844
844
  }, []>>, false>;
845
+ rules: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"SelectOptionRules", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"SelectOptionRule", DB.Object<{
846
+ value: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SelectOptionRuleValue", {
847
+ Predefined: DB.EnumCase<null>;
848
+ PredefinedOrTextInput: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"PredefinedOrTextInputSelectOptionRuleValue", DB.Object<{
849
+ translations: DB.MemberDecl<DB.NestedEntityMap<"PredefinedOrTextInputSelectOptionRuleValueTranslation", {
850
+ inputLabel: DB.MemberDecl<DB.String, true>;
851
+ optionLabel: DB.MemberDecl<DB.String, true>;
852
+ }>, true>;
853
+ }>, []>>>;
854
+ Child: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ChildSelectOptionRuleValue", DB.Object<{
855
+ parentIndex: DB.MemberDecl<DB.Integer, true>;
856
+ entity: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ChildEntityForSelectOption", {
857
+ SkillApplication: DB.EnumCase<null>;
858
+ }, []>>, true>;
859
+ }>, []>>>;
860
+ TextInput: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"TextInputSelectOptionRuleValue", DB.Object<{
861
+ translations: DB.MemberDecl<DB.NestedEntityMap<"TextInputSelectOptionRuleValueTranslation", {
862
+ inputLabel: DB.MemberDecl<DB.String, true>;
863
+ }>, true>;
864
+ }>, []>>>;
865
+ }, []>>, true>;
866
+ multiple: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SelectOptionRuleMultiple", {
867
+ Constant: DB.EnumCase<DB.Integer>;
868
+ Range: DB.EnumCase<DB.Object<{
869
+ min: DB.MemberDecl<DB.Integer, false>;
870
+ max: DB.MemberDecl<DB.Integer, true>;
871
+ }>>;
872
+ }, []>>, false>;
873
+ }>, []>>>, []>>, false>;
845
874
  }>, []>>, false>;
846
875
  explicit_select_options: DB.MemberDecl<DB.ChildEntities<DB.Entity<"GeneralSelectOption", {
847
876
  parent: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SelectOptionParentIdentifier", {
@@ -3,7 +3,7 @@ import { effect, levels, maximum, name, name_in_library } from "../_Activatable.
3
3
  import { ap_value, ap_value_append, ap_value_l10n } from "../_ActivatableAdventurePointsValue.js";
4
4
  import { nameBuilderRules } from "../_ActivatableNames.js";
5
5
  import { aspectOptional } from "../_ActivatableNonMundane.js";
6
- import { explicit_select_options, select_options } from "../_ActivatableSelectOptions.js";
6
+ import { explicit_select_options, select_options, verifySelectOptionRules, } from "../_ActivatableSelectOptions.js";
7
7
  import { skill_applications, skill_uses } from "../_ActivatableSkillApplicationsAndUses.js";
8
8
  import { CeremonialItemSpecialAbilityGroupIdentifier } from "../_Identifier.js";
9
9
  import { GeneralPrerequisites } from "../_Prerequisite.js";
@@ -77,4 +77,5 @@ export const CeremonialItemSpecialAbility = DB.Entity(import.meta.url, {
77
77
  },
78
78
  ],
79
79
  ],
80
+ customConstraints: deps => verifySelectOptionRules("CeremonialItemSpecialAbility", deps),
80
81
  });
@@ -846,6 +846,35 @@ export declare const CombatSpecialAbility: DB.Entity<"CombatSpecialAbility", {
846
846
  }>, []>>>, true>;
847
847
  }>, []>>>;
848
848
  }, []>>, false>;
849
+ rules: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"SelectOptionRules", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"SelectOptionRule", DB.Object<{
850
+ value: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SelectOptionRuleValue", {
851
+ Predefined: DB.EnumCase<null>;
852
+ PredefinedOrTextInput: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"PredefinedOrTextInputSelectOptionRuleValue", DB.Object<{
853
+ translations: DB.MemberDecl<DB.NestedEntityMap<"PredefinedOrTextInputSelectOptionRuleValueTranslation", {
854
+ inputLabel: DB.MemberDecl<DB.String, true>;
855
+ optionLabel: DB.MemberDecl<DB.String, true>;
856
+ }>, true>;
857
+ }>, []>>>;
858
+ Child: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ChildSelectOptionRuleValue", DB.Object<{
859
+ parentIndex: DB.MemberDecl<DB.Integer, true>;
860
+ entity: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ChildEntityForSelectOption", {
861
+ SkillApplication: DB.EnumCase<null>;
862
+ }, []>>, true>;
863
+ }>, []>>>;
864
+ TextInput: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"TextInputSelectOptionRuleValue", DB.Object<{
865
+ translations: DB.MemberDecl<DB.NestedEntityMap<"TextInputSelectOptionRuleValueTranslation", {
866
+ inputLabel: DB.MemberDecl<DB.String, true>;
867
+ }>, true>;
868
+ }>, []>>>;
869
+ }, []>>, true>;
870
+ multiple: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SelectOptionRuleMultiple", {
871
+ Constant: DB.EnumCase<DB.Integer>;
872
+ Range: DB.EnumCase<DB.Object<{
873
+ min: DB.MemberDecl<DB.Integer, false>;
874
+ max: DB.MemberDecl<DB.Integer, true>;
875
+ }>>;
876
+ }, []>>, false>;
877
+ }>, []>>>, []>>, false>;
849
878
  }>, []>>, false>;
850
879
  explicit_select_options: DB.MemberDecl<DB.ChildEntities<DB.Entity<"GeneralSelectOption", {
851
880
  parent: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SelectOptionParentIdentifier", {
@@ -3,7 +3,7 @@ import { input, levels, maximum, name, name_in_library, rules } from "../_Activa
3
3
  import { ap_value, ap_value_append, ap_value_l10n } from "../_ActivatableAdventurePointsValue.js";
4
4
  import { combat_techniques, penalty, penalty_l10n, special_ability_usage_type, } from "../_ActivatableCombat.js";
5
5
  import { activatableDisplayNameCustomizer, nameBuilderRules } from "../_ActivatableNames.js";
6
- import { explicit_select_options, select_options } from "../_ActivatableSelectOptions.js";
6
+ import { explicit_select_options, select_options, verifySelectOptionRules, } from "../_ActivatableSelectOptions.js";
7
7
  import { skill_applications, skill_uses } from "../_ActivatableSkillApplicationsAndUses.js";
8
8
  import { GeneralPrerequisites } from "../_Prerequisite.js";
9
9
  import { NestedTranslationMap } from "../Locale.js";
@@ -50,4 +50,5 @@ export const CombatSpecialAbility = DB.Entity(import.meta.url, {
50
50
  keyPathInEntityMapFallback: "name",
51
51
  },
52
52
  ],
53
+ customConstraints: deps => verifySelectOptionRules("CombatSpecialAbility", deps),
53
54
  });
@@ -849,6 +849,35 @@ export declare const CombatStyleSpecialAbility: DB.Entity<"CombatStyleSpecialAbi
849
849
  }>, []>>>, true>;
850
850
  }>, []>>>;
851
851
  }, []>>, false>;
852
+ rules: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"SelectOptionRules", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"SelectOptionRule", DB.Object<{
853
+ value: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SelectOptionRuleValue", {
854
+ Predefined: DB.EnumCase<null>;
855
+ PredefinedOrTextInput: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"PredefinedOrTextInputSelectOptionRuleValue", DB.Object<{
856
+ translations: DB.MemberDecl<DB.NestedEntityMap<"PredefinedOrTextInputSelectOptionRuleValueTranslation", {
857
+ inputLabel: DB.MemberDecl<DB.String, true>;
858
+ optionLabel: DB.MemberDecl<DB.String, true>;
859
+ }>, true>;
860
+ }>, []>>>;
861
+ Child: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ChildSelectOptionRuleValue", DB.Object<{
862
+ parentIndex: DB.MemberDecl<DB.Integer, true>;
863
+ entity: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ChildEntityForSelectOption", {
864
+ SkillApplication: DB.EnumCase<null>;
865
+ }, []>>, true>;
866
+ }>, []>>>;
867
+ TextInput: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"TextInputSelectOptionRuleValue", DB.Object<{
868
+ translations: DB.MemberDecl<DB.NestedEntityMap<"TextInputSelectOptionRuleValueTranslation", {
869
+ inputLabel: DB.MemberDecl<DB.String, true>;
870
+ }>, true>;
871
+ }>, []>>>;
872
+ }, []>>, true>;
873
+ multiple: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SelectOptionRuleMultiple", {
874
+ Constant: DB.EnumCase<DB.Integer>;
875
+ Range: DB.EnumCase<DB.Object<{
876
+ min: DB.MemberDecl<DB.Integer, false>;
877
+ max: DB.MemberDecl<DB.Integer, true>;
878
+ }>>;
879
+ }, []>>, false>;
880
+ }>, []>>>, []>>, false>;
852
881
  }>, []>>, false>;
853
882
  explicit_select_options: DB.MemberDecl<DB.ChildEntities<DB.Entity<"GeneralSelectOption", {
854
883
  parent: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SelectOptionParentIdentifier", {
@@ -2,9 +2,9 @@ import * as DB from "tsondb/schema/dsl";
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, penalty, type, style_usage_type } from "../_ActivatableCombat.js";
5
+ import { combat_techniques, penalty, style_usage_type, type } from "../_ActivatableCombat.js";
6
6
  import { activatableDisplayNameCustomizer, nameBuilderRules } from "../_ActivatableNames.js";
7
- import { explicit_select_options, select_options } from "../_ActivatableSelectOptions.js";
7
+ import { explicit_select_options, select_options, verifySelectOptionRules, } from "../_ActivatableSelectOptions.js";
8
8
  import { skill_applications, skill_uses } from "../_ActivatableSkillApplicationsAndUses.js";
9
9
  import { AdvancedCombatSpecialAbilityIdentifier } from "../_Identifier.js";
10
10
  import { GeneralPrerequisites } from "../_Prerequisite.js";
@@ -52,4 +52,5 @@ export const CombatStyleSpecialAbility = DB.Entity(import.meta.url, {
52
52
  keyPathInEntityMapFallback: "name",
53
53
  },
54
54
  ],
55
+ customConstraints: deps => verifySelectOptionRules("CombatStyleSpecialAbility", deps),
55
56
  });
@@ -846,6 +846,35 @@ export declare const CommandSpecialAbility: DB.Entity<"CommandSpecialAbility", {
846
846
  }>, []>>>, true>;
847
847
  }>, []>>>;
848
848
  }, []>>, false>;
849
+ rules: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"SelectOptionRules", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"SelectOptionRule", DB.Object<{
850
+ value: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SelectOptionRuleValue", {
851
+ Predefined: DB.EnumCase<null>;
852
+ PredefinedOrTextInput: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"PredefinedOrTextInputSelectOptionRuleValue", DB.Object<{
853
+ translations: DB.MemberDecl<DB.NestedEntityMap<"PredefinedOrTextInputSelectOptionRuleValueTranslation", {
854
+ inputLabel: DB.MemberDecl<DB.String, true>;
855
+ optionLabel: DB.MemberDecl<DB.String, true>;
856
+ }>, true>;
857
+ }>, []>>>;
858
+ Child: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ChildSelectOptionRuleValue", DB.Object<{
859
+ parentIndex: DB.MemberDecl<DB.Integer, true>;
860
+ entity: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ChildEntityForSelectOption", {
861
+ SkillApplication: DB.EnumCase<null>;
862
+ }, []>>, true>;
863
+ }>, []>>>;
864
+ TextInput: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"TextInputSelectOptionRuleValue", DB.Object<{
865
+ translations: DB.MemberDecl<DB.NestedEntityMap<"TextInputSelectOptionRuleValueTranslation", {
866
+ inputLabel: DB.MemberDecl<DB.String, true>;
867
+ }>, true>;
868
+ }>, []>>>;
869
+ }, []>>, true>;
870
+ multiple: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SelectOptionRuleMultiple", {
871
+ Constant: DB.EnumCase<DB.Integer>;
872
+ Range: DB.EnumCase<DB.Object<{
873
+ min: DB.MemberDecl<DB.Integer, false>;
874
+ max: DB.MemberDecl<DB.Integer, true>;
875
+ }>>;
876
+ }, []>>, false>;
877
+ }>, []>>>, []>>, false>;
849
878
  }>, []>>, false>;
850
879
  explicit_select_options: DB.MemberDecl<DB.ChildEntities<DB.Entity<"GeneralSelectOption", {
851
880
  parent: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SelectOptionParentIdentifier", {
@@ -3,7 +3,7 @@ import { levels, maximum, name, name_in_library, rules } from "../_Activatable.j
3
3
  import { ap_value, ap_value_append, ap_value_l10n } from "../_ActivatableAdventurePointsValue.js";
4
4
  import { combat_techniques, special_ability_usage_type } from "../_ActivatableCombat.js";
5
5
  import { activatableDisplayNameCustomizer, nameBuilderRules } from "../_ActivatableNames.js";
6
- import { explicit_select_options, select_options } from "../_ActivatableSelectOptions.js";
6
+ import { explicit_select_options, select_options, verifySelectOptionRules, } from "../_ActivatableSelectOptions.js";
7
7
  import { GeneralPrerequisites } from "../_Prerequisite.js";
8
8
  import { NestedTranslationMap } from "../Locale.js";
9
9
  import { Errata } from "../source/_Erratum.js";
@@ -44,4 +44,5 @@ export const CommandSpecialAbility = DB.Entity(import.meta.url, {
44
44
  keyPathInEntityMapFallback: "name",
45
45
  },
46
46
  ],
47
+ customConstraints: deps => verifySelectOptionRules("CommandSpecialAbility", deps),
47
48
  });
@@ -841,6 +841,35 @@ export declare const FamiliarSpecialAbility: DB.Entity<"FamiliarSpecialAbility",
841
841
  }>, []>>>, true>;
842
842
  }>, []>>>;
843
843
  }, []>>, false>;
844
+ rules: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"SelectOptionRules", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"SelectOptionRule", DB.Object<{
845
+ value: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SelectOptionRuleValue", {
846
+ Predefined: DB.EnumCase<null>;
847
+ PredefinedOrTextInput: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"PredefinedOrTextInputSelectOptionRuleValue", DB.Object<{
848
+ translations: DB.MemberDecl<DB.NestedEntityMap<"PredefinedOrTextInputSelectOptionRuleValueTranslation", {
849
+ inputLabel: DB.MemberDecl<DB.String, true>;
850
+ optionLabel: DB.MemberDecl<DB.String, true>;
851
+ }>, true>;
852
+ }>, []>>>;
853
+ Child: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ChildSelectOptionRuleValue", DB.Object<{
854
+ parentIndex: DB.MemberDecl<DB.Integer, true>;
855
+ entity: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ChildEntityForSelectOption", {
856
+ SkillApplication: DB.EnumCase<null>;
857
+ }, []>>, true>;
858
+ }>, []>>>;
859
+ TextInput: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"TextInputSelectOptionRuleValue", DB.Object<{
860
+ translations: DB.MemberDecl<DB.NestedEntityMap<"TextInputSelectOptionRuleValueTranslation", {
861
+ inputLabel: DB.MemberDecl<DB.String, true>;
862
+ }>, true>;
863
+ }>, []>>>;
864
+ }, []>>, true>;
865
+ multiple: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SelectOptionRuleMultiple", {
866
+ Constant: DB.EnumCase<DB.Integer>;
867
+ Range: DB.EnumCase<DB.Object<{
868
+ min: DB.MemberDecl<DB.Integer, false>;
869
+ max: DB.MemberDecl<DB.Integer, true>;
870
+ }>>;
871
+ }, []>>, false>;
872
+ }>, []>>>, []>>, false>;
844
873
  }>, []>>, false>;
845
874
  explicit_select_options: DB.MemberDecl<DB.ChildEntities<DB.Entity<"GeneralSelectOption", {
846
875
  parent: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SelectOptionParentIdentifier", {
@@ -2,7 +2,7 @@ import * as DB from "tsondb/schema/dsl";
2
2
  import { effect, levels, maximum, name, name_in_library } from "../_Activatable.js";
3
3
  import { ap_value, ap_value_append, ap_value_l10n } from "../_ActivatableAdventurePointsValue.js";
4
4
  import { activatableDisplayNameCustomizer, nameBuilderRules } from "../_ActivatableNames.js";
5
- import { explicit_select_options, select_options } from "../_ActivatableSelectOptions.js";
5
+ import { explicit_select_options, select_options, verifySelectOptionRules, } from "../_ActivatableSelectOptions.js";
6
6
  import { GeneralPrerequisites } from "../_Prerequisite.js";
7
7
  import { NestedTranslationMap } from "../Locale.js";
8
8
  import { Errata } from "../source/_Erratum.js";
@@ -41,4 +41,5 @@ export const FamiliarSpecialAbility = DB.Entity(import.meta.url, {
41
41
  keyPathInEntityMapFallback: "name",
42
42
  },
43
43
  ],
44
+ customConstraints: deps => verifySelectOptionRules("FamiliarSpecialAbility", deps),
44
45
  });
@@ -841,6 +841,35 @@ export declare const FatePointSexSpecialAbility: DB.Entity<"FatePointSexSpecialA
841
841
  }>, []>>>, true>;
842
842
  }>, []>>>;
843
843
  }, []>>, false>;
844
+ rules: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"SelectOptionRules", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"SelectOptionRule", DB.Object<{
845
+ value: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SelectOptionRuleValue", {
846
+ Predefined: DB.EnumCase<null>;
847
+ PredefinedOrTextInput: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"PredefinedOrTextInputSelectOptionRuleValue", DB.Object<{
848
+ translations: DB.MemberDecl<DB.NestedEntityMap<"PredefinedOrTextInputSelectOptionRuleValueTranslation", {
849
+ inputLabel: DB.MemberDecl<DB.String, true>;
850
+ optionLabel: DB.MemberDecl<DB.String, true>;
851
+ }>, true>;
852
+ }>, []>>>;
853
+ Child: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ChildSelectOptionRuleValue", DB.Object<{
854
+ parentIndex: DB.MemberDecl<DB.Integer, true>;
855
+ entity: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ChildEntityForSelectOption", {
856
+ SkillApplication: DB.EnumCase<null>;
857
+ }, []>>, true>;
858
+ }>, []>>>;
859
+ TextInput: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"TextInputSelectOptionRuleValue", DB.Object<{
860
+ translations: DB.MemberDecl<DB.NestedEntityMap<"TextInputSelectOptionRuleValueTranslation", {
861
+ inputLabel: DB.MemberDecl<DB.String, true>;
862
+ }>, true>;
863
+ }>, []>>>;
864
+ }, []>>, true>;
865
+ multiple: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SelectOptionRuleMultiple", {
866
+ Constant: DB.EnumCase<DB.Integer>;
867
+ Range: DB.EnumCase<DB.Object<{
868
+ min: DB.MemberDecl<DB.Integer, false>;
869
+ max: DB.MemberDecl<DB.Integer, true>;
870
+ }>>;
871
+ }, []>>, false>;
872
+ }>, []>>>, []>>, false>;
844
873
  }>, []>>, false>;
845
874
  explicit_select_options: DB.MemberDecl<DB.ChildEntities<DB.Entity<"GeneralSelectOption", {
846
875
  parent: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SelectOptionParentIdentifier", {
@@ -2,7 +2,7 @@ import * as DB from "tsondb/schema/dsl";
2
2
  import { levels, maximum, name, name_in_library, rules } from "../_Activatable.js";
3
3
  import { ap_value, ap_value_append, ap_value_l10n } from "../_ActivatableAdventurePointsValue.js";
4
4
  import { activatableDisplayNameCustomizer, nameBuilderRules } from "../_ActivatableNames.js";
5
- import { explicit_select_options, select_options } from "../_ActivatableSelectOptions.js";
5
+ import { explicit_select_options, select_options, verifySelectOptionRules, } from "../_ActivatableSelectOptions.js";
6
6
  import { GeneralPrerequisites } from "../_Prerequisite.js";
7
7
  import { NestedTranslationMap } from "../Locale.js";
8
8
  import { Errata } from "../source/_Erratum.js";
@@ -41,4 +41,5 @@ export const FatePointSexSpecialAbility = DB.Entity(import.meta.url, {
41
41
  keyPathInEntityMapFallback: "name",
42
42
  },
43
43
  ],
44
+ customConstraints: deps => verifySelectOptionRules("FatePointSexSpecialAbility", deps),
44
45
  });
@@ -841,6 +841,35 @@ export declare const FatePointSpecialAbility: DB.Entity<"FatePointSpecialAbility
841
841
  }>, []>>>, true>;
842
842
  }>, []>>>;
843
843
  }, []>>, false>;
844
+ rules: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"SelectOptionRules", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"SelectOptionRule", DB.Object<{
845
+ value: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SelectOptionRuleValue", {
846
+ Predefined: DB.EnumCase<null>;
847
+ PredefinedOrTextInput: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"PredefinedOrTextInputSelectOptionRuleValue", DB.Object<{
848
+ translations: DB.MemberDecl<DB.NestedEntityMap<"PredefinedOrTextInputSelectOptionRuleValueTranslation", {
849
+ inputLabel: DB.MemberDecl<DB.String, true>;
850
+ optionLabel: DB.MemberDecl<DB.String, true>;
851
+ }>, true>;
852
+ }>, []>>>;
853
+ Child: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ChildSelectOptionRuleValue", DB.Object<{
854
+ parentIndex: DB.MemberDecl<DB.Integer, true>;
855
+ entity: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ChildEntityForSelectOption", {
856
+ SkillApplication: DB.EnumCase<null>;
857
+ }, []>>, true>;
858
+ }>, []>>>;
859
+ TextInput: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"TextInputSelectOptionRuleValue", DB.Object<{
860
+ translations: DB.MemberDecl<DB.NestedEntityMap<"TextInputSelectOptionRuleValueTranslation", {
861
+ inputLabel: DB.MemberDecl<DB.String, true>;
862
+ }>, true>;
863
+ }>, []>>>;
864
+ }, []>>, true>;
865
+ multiple: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SelectOptionRuleMultiple", {
866
+ Constant: DB.EnumCase<DB.Integer>;
867
+ Range: DB.EnumCase<DB.Object<{
868
+ min: DB.MemberDecl<DB.Integer, false>;
869
+ max: DB.MemberDecl<DB.Integer, true>;
870
+ }>>;
871
+ }, []>>, false>;
872
+ }>, []>>>, []>>, false>;
844
873
  }>, []>>, false>;
845
874
  explicit_select_options: DB.MemberDecl<DB.ChildEntities<DB.Entity<"GeneralSelectOption", {
846
875
  parent: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SelectOptionParentIdentifier", {
@@ -2,7 +2,7 @@ import * as DB from "tsondb/schema/dsl";
2
2
  import { levels, maximum, name, name_in_library, rules } from "../_Activatable.js";
3
3
  import { ap_value, ap_value_append, ap_value_l10n } from "../_ActivatableAdventurePointsValue.js";
4
4
  import { activatableDisplayNameCustomizer, nameBuilderRules } from "../_ActivatableNames.js";
5
- import { explicit_select_options, select_options } from "../_ActivatableSelectOptions.js";
5
+ import { explicit_select_options, select_options, verifySelectOptionRules, } from "../_ActivatableSelectOptions.js";
6
6
  import { skill_applications, skill_uses } from "../_ActivatableSkillApplicationsAndUses.js";
7
7
  import { GeneralPrerequisites } from "../_Prerequisite.js";
8
8
  import { NestedTranslationMap } from "../Locale.js";
@@ -44,4 +44,5 @@ export const FatePointSpecialAbility = DB.Entity(import.meta.url, {
44
44
  keyPathInEntityMapFallback: "name",
45
45
  },
46
46
  ],
47
+ customConstraints: deps => verifySelectOptionRules("FatePointSpecialAbility", deps),
47
48
  });
@@ -841,6 +841,35 @@ export declare const GeneralSpecialAbility: DB.Entity<"GeneralSpecialAbility", {
841
841
  }>, []>>>, true>;
842
842
  }>, []>>>;
843
843
  }, []>>, false>;
844
+ rules: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"SelectOptionRules", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"SelectOptionRule", DB.Object<{
845
+ value: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SelectOptionRuleValue", {
846
+ Predefined: DB.EnumCase<null>;
847
+ PredefinedOrTextInput: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"PredefinedOrTextInputSelectOptionRuleValue", DB.Object<{
848
+ translations: DB.MemberDecl<DB.NestedEntityMap<"PredefinedOrTextInputSelectOptionRuleValueTranslation", {
849
+ inputLabel: DB.MemberDecl<DB.String, true>;
850
+ optionLabel: DB.MemberDecl<DB.String, true>;
851
+ }>, true>;
852
+ }>, []>>>;
853
+ Child: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ChildSelectOptionRuleValue", DB.Object<{
854
+ parentIndex: DB.MemberDecl<DB.Integer, true>;
855
+ entity: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ChildEntityForSelectOption", {
856
+ SkillApplication: DB.EnumCase<null>;
857
+ }, []>>, true>;
858
+ }>, []>>>;
859
+ TextInput: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"TextInputSelectOptionRuleValue", DB.Object<{
860
+ translations: DB.MemberDecl<DB.NestedEntityMap<"TextInputSelectOptionRuleValueTranslation", {
861
+ inputLabel: DB.MemberDecl<DB.String, true>;
862
+ }>, true>;
863
+ }>, []>>>;
864
+ }, []>>, true>;
865
+ multiple: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SelectOptionRuleMultiple", {
866
+ Constant: DB.EnumCase<DB.Integer>;
867
+ Range: DB.EnumCase<DB.Object<{
868
+ min: DB.MemberDecl<DB.Integer, false>;
869
+ max: DB.MemberDecl<DB.Integer, true>;
870
+ }>>;
871
+ }, []>>, false>;
872
+ }>, []>>>, []>>, false>;
844
873
  }>, []>>, false>;
845
874
  explicit_select_options: DB.MemberDecl<DB.ChildEntities<DB.Entity<"GeneralSelectOption", {
846
875
  parent: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SelectOptionParentIdentifier", {
@@ -2,7 +2,7 @@ import * as DB from "tsondb/schema/dsl";
2
2
  import { input, levels, maximum, name, name_in_library, rules } from "../_Activatable.js";
3
3
  import { ap_value, ap_value_append, ap_value_l10n } from "../_ActivatableAdventurePointsValue.js";
4
4
  import { activatableDisplayNameCustomizer, nameBuilderRules } from "../_ActivatableNames.js";
5
- import { explicit_select_options, select_options } from "../_ActivatableSelectOptions.js";
5
+ import { explicit_select_options, select_options, verifySelectOptionRules, } from "../_ActivatableSelectOptions.js";
6
6
  import { skill_applications, skill_uses } from "../_ActivatableSkillApplicationsAndUses.js";
7
7
  import { GeneralPrerequisites } from "../_Prerequisite.js";
8
8
  import { NestedTranslationMap } from "../Locale.js";
@@ -45,4 +45,5 @@ export const GeneralSpecialAbility = DB.Entity(import.meta.url, {
45
45
  keyPathInEntityMapFallback: "name",
46
46
  },
47
47
  ],
48
+ customConstraints: deps => verifySelectOptionRules("GeneralSpecialAbility", deps),
48
49
  });