@optolith/database-schema 0.54.0 → 0.56.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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,24 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.
4
4
 
5
+ ## [0.56.0](https://github.com/Optolith/database-schema/compare/v0.55.0...v0.56.0) (2026-09-08)
6
+
7
+ ### ⚠ BREAKING CHANGES
8
+
9
+ * advanced combat special ability type and labels
10
+
11
+ ### Features
12
+
13
+ * advanced combat special ability type and labels ([b953514](https://github.com/Optolith/database-schema/commit/b95351409bb2a7d0e4af365b299e3a2bccf0a3a4))
14
+ ## [0.55.0](https://github.com/Optolith/database-schema/compare/v0.54.0...v0.55.0) (2026-09-08)
15
+
16
+ ### ⚠ BREAKING CHANGES
17
+
18
+ * restricted blessing translations and restructuring
19
+
20
+ ### Features
21
+
22
+ * restricted blessing translations and restructuring ([f1867b7](https://github.com/Optolith/database-schema/commit/f1867b7b085a6219b13e5446b61ccf3b75878cba))
5
23
  ## [0.54.0](https://github.com/Optolith/database-schema/compare/v0.53.0...v0.54.0) (2026-09-08)
6
24
 
7
25
  ### ⚠ BREAKING CHANGES
package/gen/types.d.ts CHANGED
@@ -548,6 +548,7 @@ export type TypeAliasMap = {
548
548
  Cause: Cause
549
549
  CheckResultBasedModifier: CheckResultBasedModifier
550
550
  ChildNode: ChildNode
551
+ ChurchBlessedTradition: ChurchBlessedTradition
551
552
  CloseCombatTechniqueSpecialRules: CloseCombatTechniqueSpecialRules
552
553
  CombatAnimalPower: CombatAnimalPower
553
554
  CombatTechniqueAdjustment: CombatTechniqueAdjustment
@@ -960,6 +961,11 @@ export interface AdvancedCombatSpecialAbility {
960
961
  */
961
962
  usage_type: CombatSpecialAbilityUsageType
962
963
 
964
+ /**
965
+ * The definition of if the combat special ability can be used when armed or when unarmed.
966
+ */
967
+ type: CombatSpecialAbilityType
968
+
963
969
  /**
964
970
  * Definitions for possible options for the activatable entry, derived from entry categories.
965
971
  *
@@ -1086,6 +1092,17 @@ export type CombatSpecialAbilityUsageType =
1086
1092
  kind: "SpecialManeuver"
1087
1093
  }
1088
1094
 
1095
+ /**
1096
+ * The definition of if the combat special ability can be used when armed or when unarmed.
1097
+ */
1098
+ export type CombatSpecialAbilityType =
1099
+ | {
1100
+ kind: "Armed"
1101
+ }
1102
+ | {
1103
+ kind: "Unarmed"
1104
+ }
1105
+
1089
1106
  /**
1090
1107
  * Definitions for possible options for the activatable entry. They can either be derived from entry categories or be defined explicitly. Both can happen as well, but if there is an explicitly defined select option and a derived select option has the same identifier (which may only happen if skill or combat technique identifiers are used for explicit select options), the explicit definition overwrites the derived option.
1091
1108
  *
@@ -2381,6 +2398,8 @@ export interface Locale {
2381
2398
  "Active": string
2382
2399
  "Basic Maneuver": string
2383
2400
  "Special Maneuver": string
2401
+ "AC": string
2402
+ "UC": string
2384
2403
  "Volume": string
2385
2404
  "Penalty": string
2386
2405
  "Binding Cost": string
@@ -2391,6 +2410,11 @@ export interface Locale {
2391
2410
  "corresponding liturgical style special ability": string
2392
2411
  "corresponding magic style special ability": string
2393
2412
  "corresponding skill style special ability": string
2413
+ "No Blessings": string
2414
+ "Restricted Blessings": string
2415
+ "Strongly Restricted Blessings": string
2416
+ "{$nameOfBlessedOnes} cannot use blessings.": string & { __params: { "nameOfBlessedOnes": StringableTranslationParameter } }
2417
+ "{$nameOfBlessedOnes} cannot use {$blessings :list type=disjunction}.": string & { __params: { "nameOfBlessedOnes": StringableTranslationParameter; "blessings": StringableTranslationParameter } }
2394
2418
  "Favored Skills": string
2395
2419
  "The primary attribute of this Tradition is {$attr}.": string & { __params: { "attr": StringableTranslationParameter } }
2396
2420
  "This primary attribute of this Tradition is {$attr}; however, {$casters} use only half of this stat (rounded up) to calculate their base AE pool or purchase AE.": string & { __params: { "attr": StringableTranslationParameter; "casters": StringableTranslationParameter } }
@@ -7562,11 +7586,6 @@ export interface BlessedTradition {
7562
7586
  */
7563
7587
  primaryBlessing?: Blessing_ID
7564
7588
 
7565
- /**
7566
- * If a tradition restricts the possible blessings, the blessings that are **not** allowed.
7567
- */
7568
- restricted_blessings?: RestrictedBlessings
7569
-
7570
7589
  /**
7571
7590
  * A list of favored combat techniques.
7572
7591
  */
@@ -7790,19 +7809,6 @@ export interface IndefiniteBlessingDurationTranslation {
7790
7809
  description: string
7791
7810
  }
7792
7811
 
7793
- /**
7794
- * If a tradition restricts the possible blessings, the blessings that are **not** allowed.
7795
- */
7796
- export type RestrictedBlessings =
7797
- | {
7798
- kind: "Three"
7799
- Three: [Blessing_ID, Blessing_ID, Blessing_ID]
7800
- }
7801
- | {
7802
- kind: "Six"
7803
- Six: [Blessing_ID, Blessing_ID, Blessing_ID, Blessing_ID, Blessing_ID, Blessing_ID]
7804
- }
7805
-
7806
7812
  export type FavoredCombatTechniques =
7807
7813
  | {
7808
7814
  kind: "All"
@@ -7853,12 +7859,36 @@ export interface FavoredSkillsSelection {
7853
7859
  export type BlessedTraditionType =
7854
7860
  | {
7855
7861
  kind: "Church"
7862
+ Church: ChurchBlessedTradition
7856
7863
  }
7857
7864
  | {
7858
7865
  kind: "Shamanistic"
7859
7866
  Shamanistic: ShamanisticBlessedTradition
7860
7867
  }
7861
7868
 
7869
+ /**
7870
+ * Additional rules for church traditions.
7871
+ */
7872
+ export interface ChurchBlessedTradition {
7873
+ /**
7874
+ * If a tradition restricts the possible blessings, the blessings that are **not** allowed.
7875
+ */
7876
+ restrictedBlessings?: RestrictedBlessings
7877
+ }
7878
+
7879
+ /**
7880
+ * If a tradition restricts the possible blessings, the blessings that are **not** allowed.
7881
+ */
7882
+ export type RestrictedBlessings =
7883
+ | {
7884
+ kind: "Three"
7885
+ Three: [Blessing_ID, Blessing_ID, Blessing_ID]
7886
+ }
7887
+ | {
7888
+ kind: "Six"
7889
+ Six: [Blessing_ID, Blessing_ID, Blessing_ID, Blessing_ID, Blessing_ID, Blessing_ID]
7890
+ }
7891
+
7862
7892
  /**
7863
7893
  * Additional rules for shamanistic traditions.
7864
7894
  */
@@ -13459,17 +13489,6 @@ export type CombatSpecialAbilityTypeUsageType =
13459
13489
  kind: "Active"
13460
13490
  }
13461
13491
 
13462
- /**
13463
- * The definition of if the combat special ability can be used when armed or when unarmed.
13464
- */
13465
- export type CombatSpecialAbilityType =
13466
- | {
13467
- kind: "Armed"
13468
- }
13469
- | {
13470
- kind: "Unarmed"
13471
- }
13472
-
13473
13492
  /**
13474
13493
  * A reference to an advanced special ability.
13475
13494
  */
@@ -1332,6 +1332,8 @@ export declare const Locale: DB.Entity<"Locale", {
1332
1332
  Active: null;
1333
1333
  "Basic Maneuver": null;
1334
1334
  "Special Maneuver": null;
1335
+ AC: null;
1336
+ UC: null;
1335
1337
  Volume: null;
1336
1338
  Penalty: null;
1337
1339
  "Binding Cost": null;
@@ -1342,6 +1344,11 @@ export declare const Locale: DB.Entity<"Locale", {
1342
1344
  "corresponding liturgical style special ability": null;
1343
1345
  "corresponding magic style special ability": null;
1344
1346
  "corresponding skill style special ability": null;
1347
+ "No Blessings": null;
1348
+ "Restricted Blessings": null;
1349
+ "Strongly Restricted Blessings": null;
1350
+ "{$nameOfBlessedOnes} cannot use blessings.": null;
1351
+ "{$nameOfBlessedOnes} cannot use {$blessings :list type=disjunction}.": null;
1345
1352
  "Favored Skills": null;
1346
1353
  "The primary attribute of this Tradition is {$attr}.": null;
1347
1354
  "This primary attribute of this Tradition is {$attr}; however, {$casters} use only half of this stat (rounded up) to calculate their base AE pool or purchase AE.": null;
@@ -1366,6 +1366,8 @@ export const Locale = DB.Entity(import.meta.url, {
1366
1366
  "Active": null,
1367
1367
  "Basic Maneuver": null,
1368
1368
  "Special Maneuver": null,
1369
+ "AC": null,
1370
+ "UC": null,
1369
1371
  "Volume": null,
1370
1372
  "Penalty": null,
1371
1373
  "Binding Cost": null,
@@ -1376,6 +1378,11 @@ export const Locale = DB.Entity(import.meta.url, {
1376
1378
  "corresponding liturgical style special ability": null,
1377
1379
  "corresponding magic style special ability": null,
1378
1380
  "corresponding skill style special ability": null,
1381
+ "No Blessings": null,
1382
+ "Restricted Blessings": null,
1383
+ "Strongly Restricted Blessings": null,
1384
+ "{$nameOfBlessedOnes} cannot use blessings.": null,
1385
+ "{$nameOfBlessedOnes} cannot use {$blessings :list type=disjunction}.": null,
1379
1386
  "Favored Skills": null,
1380
1387
  "The primary attribute of this Tradition is {$attr}.": null,
1381
1388
  "This primary attribute of this Tradition is {$attr}; however, {$casters} use only half of this stat (rounded up) to calculate their base AE pool or purchase AE.": null,
@@ -13,6 +13,10 @@ export declare const AdvancedCombatSpecialAbility: DB.Entity<"AdvancedCombatSpec
13
13
  BasicManeuver: DB.EnumCase<null>;
14
14
  SpecialManeuver: DB.EnumCase<null>;
15
15
  }, []>>, true>;
16
+ type: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CombatSpecialAbilityType", {
17
+ Armed: DB.EnumCase<null>;
18
+ Unarmed: DB.EnumCase<null>;
19
+ }, []>>, true>;
16
20
  select_options: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"SelectOptions", DB.Object<{
17
21
  derived: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SelectOptionCategory", {
18
22
  Blessings: DB.EnumCase<null>;
@@ -1,7 +1,7 @@
1
1
  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
- import { combat_techniques, penalty, special_ability_usage_type } from "../_ActivatableCombat.js";
4
+ import { combat_techniques, penalty, special_ability_usage_type, type, } from "../_ActivatableCombat.js";
5
5
  import { activatableDisplayNameCustomizer, nameBuilderRules } from "../_ActivatableNames.js";
6
6
  import { explicit_select_options, select_options } from "../_ActivatableSelectOptions.js";
7
7
  import { skill_applications, skill_uses } from "../_ActivatableSkillApplicationsAndUses.js";
@@ -17,6 +17,7 @@ export const AdvancedCombatSpecialAbility = DB.Entity(import.meta.url, {
17
17
  levels,
18
18
  nameBuilderRules,
19
19
  usage_type: special_ability_usage_type,
20
+ type,
20
21
  select_options,
21
22
  explicit_select_options,
22
23
  skill_applications,
@@ -968,10 +968,6 @@ export declare const BlessedTradition: DB.Entity<"BlessedTradition", {
968
968
  primary: DB.MemberDecl<DB.ReferenceIdentifier, false>;
969
969
  aspects: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, false>;
970
970
  primaryBlessing: DB.MemberDecl<DB.ReferenceIdentifier, false>;
971
- restricted_blessings: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"RestrictedBlessings", {
972
- Three: DB.EnumCase<DB.Array<DB.ReferenceIdentifier>>;
973
- Six: DB.EnumCase<DB.Array<DB.ReferenceIdentifier>>;
974
- }, []>>, false>;
975
971
  favored_combat_techniques: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"FavoredCombatTechniques", {
976
972
  All: DB.EnumCase<null>;
977
973
  AllClose: DB.EnumCase<null>;
@@ -989,7 +985,12 @@ export declare const BlessedTradition: DB.Entity<"BlessedTradition", {
989
985
  options: DB.MemberDecl<DB.Array<DB.ReferenceIdentifier>, true>;
990
986
  }>, []>>, false>;
991
987
  type: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"BlessedTraditionType", {
992
- Church: DB.EnumCase<null>;
988
+ Church: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ChurchBlessedTradition", DB.Object<{
989
+ restrictedBlessings: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"RestrictedBlessings", {
990
+ Three: DB.EnumCase<DB.Array<DB.ReferenceIdentifier>>;
991
+ Six: DB.EnumCase<DB.Array<DB.ReferenceIdentifier>>;
992
+ }, []>>, false>;
993
+ }>, []>>>;
993
994
  Shamanistic: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ShamanisticBlessedTradition", DB.Object<{
994
995
  can_use_bone_mace_as_ceremonial_item: DB.MemberDecl<DB.Boolean, true>;
995
996
  }>, []>>>;
@@ -31,10 +31,6 @@ export const BlessedTradition = DB.Entity(import.meta.url, {
31
31
  comment: "The tradition’s primary blessing. Leave empty if the tradition does not have one.",
32
32
  type: BlessingIdentifier(),
33
33
  }),
34
- restricted_blessings: DB.Optional({
35
- comment: "If a tradition restricts the possible blessings, the blessings that are **not** allowed.",
36
- type: DB.IncludeIdentifier(RestrictedBlessings),
37
- }),
38
34
  favored_combat_techniques: DB.Optional({
39
35
  comment: "A list of favored combat techniques.",
40
36
  type: DB.IncludeIdentifier(FavoredCombatTechniques),
@@ -138,10 +134,20 @@ const BlessedTraditionType = DB.Enum(import.meta.url, {
138
134
  name: "BlessedTraditionType",
139
135
  comment: "The type of the tradition. May be either church or shamanistic.",
140
136
  values: () => ({
141
- Church: DB.EnumCase({ type: null }),
137
+ Church: DB.EnumCase({ type: DB.IncludeIdentifier(ChurchBlessedTradition) }),
142
138
  Shamanistic: DB.EnumCase({ type: DB.IncludeIdentifier(ShamanisticBlessedTradition) }),
143
139
  }),
144
140
  });
141
+ const ChurchBlessedTradition = DB.TypeAlias(import.meta.url, {
142
+ name: "ChurchBlessedTradition",
143
+ comment: "Additional rules for church traditions.",
144
+ type: () => DB.Object({
145
+ restrictedBlessings: DB.Optional({
146
+ comment: "If a tradition restricts the possible blessings, the blessings that are **not** allowed.",
147
+ type: DB.IncludeIdentifier(RestrictedBlessings),
148
+ }),
149
+ }),
150
+ });
145
151
  const ShamanisticBlessedTradition = DB.TypeAlias(import.meta.url, {
146
152
  name: "ShamanisticBlessedTradition",
147
153
  comment: "Additional rules for shamanistic traditions.",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@optolith/database-schema",
3
- "version": "0.54.0",
3
+ "version": "0.56.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",
@@ -50,7 +50,8 @@
50
50
  "globals": "^17.12.0",
51
51
  "nodemon": "^3.1.14",
52
52
  "prettier": "^3.9.6",
53
- "typescript": "^6.0.3",
53
+ "typescript": "npm:@typescript/typescript6@^6.0.2",
54
+ "typescript-7": "npm:typescript@^7.0.2",
54
55
  "typescript-eslint": "^8.70.0"
55
56
  },
56
57
  "repository": "github:Optolith/database-schema",