@optolith/database-schema 0.49.0 → 0.50.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,18 @@
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.50.0](https://github.com/Optolith/database-schema/compare/v0.49.0...v0.50.0) (2026-06-14)
6
+
7
+
8
+ ### ⚠ BREAKING CHANGES
9
+
10
+ * allow arbitrary AP values for enhancements
11
+
12
+ ### Features
13
+
14
+ * allow arbitrary AP values for enhancements ([1d06407](https://github.com/Optolith/database-schema/commit/1d06407eb4dee8fec24bc9f8d0d6e31833e4f995))
15
+ * allow arbitrary text input for enhancements ([3a3af6e](https://github.com/Optolith/database-schema/commit/3a3af6e574c1a7d05113ebc75d5d6fa1b92c8dce))
16
+
5
17
  ## [0.49.0](https://github.com/Optolith/database-schema/compare/v0.48.0...v0.49.0) (2026-06-13)
6
18
 
7
19
 
package/gen/types.d.ts CHANGED
@@ -298,6 +298,7 @@ export type EnumMap = {
298
298
  ElixirEffect: ElixirEffect
299
299
  EnchantmentCost: EnchantmentCost
300
300
  EncumbranceInfluence: EncumbranceInfluence
301
+ EnhancementAdventurePoints: EnhancementAdventurePoints
301
302
  EnhancementPrerequisiteGroup: EnhancementPrerequisiteGroup
302
303
  EquipmentIdentifier: EquipmentIdentifier
303
304
  ExpressionBasedParameterExpressionValue: ExpressionBasedParameterExpressionValue
@@ -571,6 +572,7 @@ export type TypeAliasMap = {
571
572
  DerivedCharacteristicPermanentLoss: DerivedCharacteristicPermanentLoss
572
573
  DerivedCharacteristicPrerequisites: DerivedCharacteristicPrerequisites
573
574
  DerivedCharacteristicPurchase: DerivedCharacteristicPurchase
575
+ DerivedEnhancementAdventurePoints: DerivedEnhancementAdventurePoints
574
576
  Dice: Dice
575
577
  DiceBasedIntoxicantAddictionInterval: DiceBasedIntoxicantAddictionInterval
576
578
  DieType: DieType
@@ -7955,9 +7957,9 @@ export interface Enhancement {
7955
7957
  skill_rating: number
7956
7958
 
7957
7959
  /**
7958
- * The value to multiply with the numeric representation of the associated skill's improvement cost to form the final AP cost of this enhancement.
7960
+ * Defines how to determine the AP cost of an enhancement.
7959
7961
  */
7960
- adventure_points_modifier: number
7962
+ adventurePoints: EnhancementAdventurePoints
7961
7963
 
7962
7964
  prerequisites?: EnhancementPrerequisites
7963
7965
 
@@ -7990,6 +7992,11 @@ export interface EnhancementTranslation {
7990
7992
  */
7991
7993
  effect: string
7992
7994
 
7995
+ /**
7996
+ * A string that is used as a label for an input field.
7997
+ */
7998
+ input?: string
7999
+
7993
8000
  errata?: Errata
7994
8001
  }
7995
8002
 
@@ -19930,6 +19937,26 @@ export interface InfluenceEffect {
19930
19937
  text: string
19931
19938
  }
19932
19939
 
19940
+ /**
19941
+ * Defines how to determine the AP cost of an enhancement.
19942
+ */
19943
+ export type EnhancementAdventurePoints =
19944
+ | {
19945
+ kind: "DerivedFromImprovementCost"
19946
+ DerivedFromImprovementCost: DerivedEnhancementAdventurePoints
19947
+ }
19948
+ | {
19949
+ kind: "Constant"
19950
+ Constant: number
19951
+ }
19952
+
19953
+ export interface DerivedEnhancementAdventurePoints {
19954
+ /**
19955
+ * The value to multiply with the numeric representation of the associated skill's improvement cost to form the final AP cost of this enhancement.
19956
+ */
19957
+ multiplier: number
19958
+ }
19959
+
19933
19960
  export type EnhancementPrerequisites = PlainPrerequisites<EnhancementPrerequisiteGroup>
19934
19961
 
19935
19962
  export type EnhancementPrerequisiteGroup =
@@ -549,7 +549,12 @@ export declare const Ceremony: DB.Entity<"Ceremony", {
549
549
  Ceremony: DB.EnumCase<DB.ReferenceIdentifier>;
550
550
  }, []>>, true>;
551
551
  skill_rating: DB.MemberDecl<DB.Integer, true>;
552
- adventure_points_modifier: DB.MemberDecl<DB.Integer, true>;
552
+ adventurePoints: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"EnhancementAdventurePoints", {
553
+ DerivedFromImprovementCost: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"DerivedEnhancementAdventurePoints", DB.Object<{
554
+ multiplier: DB.MemberDecl<DB.Integer, true>;
555
+ }>, []>>>;
556
+ Constant: DB.EnumCase<DB.Integer>;
557
+ }, []>>, true>;
553
558
  prerequisites: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"EnhancementPrerequisites", DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"PlainPrerequisites", DB.Array<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.Enum<"PrerequisitesElement", {
554
559
  Single: DB.EnumCase<DB.TypeArgument<DB.Param<"T", DB.Type>>>;
555
560
  Disjunction: DB.EnumCase<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"PrerequisitesDisjunction", DB.Object<{
@@ -618,6 +623,7 @@ export declare const Ceremony: DB.Entity<"Ceremony", {
618
623
  translations: DB.MemberDecl<DB.NestedEntityMap<"EnhancementTranslation", {
619
624
  name: DB.MemberDecl<DB.String, true>;
620
625
  effect: DB.MemberDecl<DB.String, true>;
626
+ input: DB.MemberDecl<DB.String, false>;
621
627
  errata: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Errata", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"Erratum", DB.Object<{
622
628
  date: DB.MemberDecl<DB.Date, true>;
623
629
  description: DB.MemberDecl<DB.String, true>;
@@ -549,7 +549,12 @@ export declare const LiturgicalChant: DB.Entity<"LiturgicalChant", {
549
549
  Ceremony: DB.EnumCase<DB.ReferenceIdentifier>;
550
550
  }, []>>, true>;
551
551
  skill_rating: DB.MemberDecl<DB.Integer, true>;
552
- adventure_points_modifier: DB.MemberDecl<DB.Integer, true>;
552
+ adventurePoints: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"EnhancementAdventurePoints", {
553
+ DerivedFromImprovementCost: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"DerivedEnhancementAdventurePoints", DB.Object<{
554
+ multiplier: DB.MemberDecl<DB.Integer, true>;
555
+ }>, []>>>;
556
+ Constant: DB.EnumCase<DB.Integer>;
557
+ }, []>>, true>;
553
558
  prerequisites: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"EnhancementPrerequisites", DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"PlainPrerequisites", DB.Array<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.Enum<"PrerequisitesElement", {
554
559
  Single: DB.EnumCase<DB.TypeArgument<DB.Param<"T", DB.Type>>>;
555
560
  Disjunction: DB.EnumCase<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"PrerequisitesDisjunction", DB.Object<{
@@ -618,6 +623,7 @@ export declare const LiturgicalChant: DB.Entity<"LiturgicalChant", {
618
623
  translations: DB.MemberDecl<DB.NestedEntityMap<"EnhancementTranslation", {
619
624
  name: DB.MemberDecl<DB.String, true>;
620
625
  effect: DB.MemberDecl<DB.String, true>;
626
+ input: DB.MemberDecl<DB.String, false>;
621
627
  errata: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Errata", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"Erratum", DB.Object<{
622
628
  date: DB.MemberDecl<DB.Date, true>;
623
629
  description: DB.MemberDecl<DB.String, true>;
@@ -552,7 +552,12 @@ export declare const Ritual: DB.Entity<"Ritual", {
552
552
  Ceremony: DB.EnumCase<DB.ReferenceIdentifier>;
553
553
  }, []>>, true>;
554
554
  skill_rating: DB.MemberDecl<DB.Integer, true>;
555
- adventure_points_modifier: DB.MemberDecl<DB.Integer, true>;
555
+ adventurePoints: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"EnhancementAdventurePoints", {
556
+ DerivedFromImprovementCost: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"DerivedEnhancementAdventurePoints", DB.Object<{
557
+ multiplier: DB.MemberDecl<DB.Integer, true>;
558
+ }>, []>>>;
559
+ Constant: DB.EnumCase<DB.Integer>;
560
+ }, []>>, true>;
556
561
  prerequisites: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"EnhancementPrerequisites", DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"PlainPrerequisites", DB.Array<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.Enum<"PrerequisitesElement", {
557
562
  Single: DB.EnumCase<DB.TypeArgument<DB.Param<"T", DB.Type>>>;
558
563
  Disjunction: DB.EnumCase<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"PrerequisitesDisjunction", DB.Object<{
@@ -621,6 +626,7 @@ export declare const Ritual: DB.Entity<"Ritual", {
621
626
  translations: DB.MemberDecl<DB.NestedEntityMap<"EnhancementTranslation", {
622
627
  name: DB.MemberDecl<DB.String, true>;
623
628
  effect: DB.MemberDecl<DB.String, true>;
629
+ input: DB.MemberDecl<DB.String, false>;
624
630
  errata: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Errata", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"Erratum", DB.Object<{
625
631
  date: DB.MemberDecl<DB.Date, true>;
626
632
  description: DB.MemberDecl<DB.String, true>;
@@ -552,7 +552,12 @@ export declare const Spell: DB.Entity<"Spell", {
552
552
  Ceremony: DB.EnumCase<DB.ReferenceIdentifier>;
553
553
  }, []>>, true>;
554
554
  skill_rating: DB.MemberDecl<DB.Integer, true>;
555
- adventure_points_modifier: DB.MemberDecl<DB.Integer, true>;
555
+ adventurePoints: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"EnhancementAdventurePoints", {
556
+ DerivedFromImprovementCost: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"DerivedEnhancementAdventurePoints", DB.Object<{
557
+ multiplier: DB.MemberDecl<DB.Integer, true>;
558
+ }>, []>>>;
559
+ Constant: DB.EnumCase<DB.Integer>;
560
+ }, []>>, true>;
556
561
  prerequisites: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"EnhancementPrerequisites", DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"PlainPrerequisites", DB.Array<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.Enum<"PrerequisitesElement", {
557
562
  Single: DB.EnumCase<DB.TypeArgument<DB.Param<"T", DB.Type>>>;
558
563
  Disjunction: DB.EnumCase<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"PrerequisitesDisjunction", DB.Object<{
@@ -621,6 +626,7 @@ export declare const Spell: DB.Entity<"Spell", {
621
626
  translations: DB.MemberDecl<DB.NestedEntityMap<"EnhancementTranslation", {
622
627
  name: DB.MemberDecl<DB.String, true>;
623
628
  effect: DB.MemberDecl<DB.String, true>;
629
+ input: DB.MemberDecl<DB.String, false>;
624
630
  errata: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Errata", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"Erratum", DB.Object<{
625
631
  date: DB.MemberDecl<DB.Date, true>;
626
632
  description: DB.MemberDecl<DB.String, true>;
@@ -1,9 +1,4 @@
1
1
  import * as DB from "tsondb/schema/dsl";
2
- export declare const CheckResultValue: DB.Enum<"CheckResultValue", {
3
- QualityLevels: DB.EnumCase<null>;
4
- SkillPoints: DB.EnumCase<null>;
5
- SkillRating: DB.EnumCase<null>;
6
- }, []>;
7
2
  export declare const CheckResultBasedModifier: DB.TypeAlias<"CheckResultBasedModifier", DB.Object<{
8
3
  arithmetic: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultArithmetic", {
9
4
  Multiply: DB.EnumCase<null>;
@@ -11,17 +6,3 @@ export declare const CheckResultBasedModifier: DB.TypeAlias<"CheckResultBasedMod
11
6
  }, []>>, true>;
12
7
  value: DB.MemberDecl<DB.Integer, true>;
13
8
  }>, []>;
14
- export declare const CheckResultBased: DB.TypeAlias<"CheckResultBased", DB.Object<{
15
- base: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultValue", {
16
- QualityLevels: DB.EnumCase<null>;
17
- SkillPoints: DB.EnumCase<null>;
18
- SkillRating: DB.EnumCase<null>;
19
- }, []>>, true>;
20
- modifier: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CheckResultBasedModifier", DB.Object<{
21
- arithmetic: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"CheckResultArithmetic", {
22
- Multiply: DB.EnumCase<null>;
23
- Divide: DB.EnumCase<null>;
24
- }, []>>, true>;
25
- value: DB.MemberDecl<DB.Integer, true>;
26
- }>, []>>, false>;
27
- }>, []>;
@@ -1,13 +1,4 @@
1
1
  import * as DB from "tsondb/schema/dsl";
2
- export const CheckResultValue = DB.Enum(import.meta.url, {
3
- name: "CheckResultValue",
4
- comment: "Defines the derived (unitless) value.",
5
- values: () => ({
6
- QualityLevels: DB.EnumCase({ type: null }),
7
- SkillPoints: DB.EnumCase({ type: null }),
8
- SkillRating: DB.EnumCase({ type: null }),
9
- }),
10
- });
11
2
  const CheckResultArithmetic = DB.Enum(import.meta.url, {
12
3
  name: "CheckResultArithmetic",
13
4
  comment: "Defines how the the `value` is set off against the check result.",
@@ -29,17 +20,3 @@ export const CheckResultBasedModifier = DB.TypeAlias(import.meta.url, {
29
20
  }),
30
21
  }),
31
22
  });
32
- export const CheckResultBased = DB.TypeAlias(import.meta.url, {
33
- name: "CheckResultBased",
34
- comment: "Defines a parameter being based on a check result.",
35
- type: () => DB.Object({
36
- base: DB.Required({
37
- comment: "The base value that is derived from the check result.",
38
- type: DB.IncludeIdentifier(CheckResultValue),
39
- }),
40
- modifier: DB.Optional({
41
- comment: "If defined, it modifies the base value.",
42
- type: DB.IncludeIdentifier(CheckResultBasedModifier),
43
- }),
44
- }),
45
- });
@@ -10,7 +10,12 @@ export declare const Enhancements: DB.TypeAlias<"Enhancements", DB.ChildEntities
10
10
  Ceremony: DB.EnumCase<DB.ReferenceIdentifier>;
11
11
  }, []>>, true>;
12
12
  skill_rating: DB.MemberDecl<DB.Integer, true>;
13
- adventure_points_modifier: DB.MemberDecl<DB.Integer, true>;
13
+ adventurePoints: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"EnhancementAdventurePoints", {
14
+ DerivedFromImprovementCost: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"DerivedEnhancementAdventurePoints", DB.Object<{
15
+ multiplier: DB.MemberDecl<DB.Integer, true>;
16
+ }>, []>>>;
17
+ Constant: DB.EnumCase<DB.Integer>;
18
+ }, []>>, true>;
14
19
  prerequisites: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"EnhancementPrerequisites", DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"PlainPrerequisites", DB.Array<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.Enum<"PrerequisitesElement", {
15
20
  Single: DB.EnumCase<DB.TypeArgument<DB.Param<"T", DB.Type>>>;
16
21
  Disjunction: DB.EnumCase<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"PrerequisitesDisjunction", DB.Object<{
@@ -79,6 +84,7 @@ export declare const Enhancements: DB.TypeAlias<"Enhancements", DB.ChildEntities
79
84
  translations: DB.MemberDecl<DB.NestedEntityMap<"EnhancementTranslation", {
80
85
  name: DB.MemberDecl<DB.String, true>;
81
86
  effect: DB.MemberDecl<DB.String, true>;
87
+ input: DB.MemberDecl<DB.String, false>;
82
88
  errata: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Errata", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"Erratum", DB.Object<{
83
89
  date: DB.MemberDecl<DB.Date, true>;
84
90
  description: DB.MemberDecl<DB.String, true>;
@@ -93,7 +99,12 @@ export declare const Enhancement: DB.Entity<"Enhancement", {
93
99
  Ceremony: DB.EnumCase<DB.ReferenceIdentifier>;
94
100
  }, []>>, true>;
95
101
  skill_rating: DB.MemberDecl<DB.Integer, true>;
96
- adventure_points_modifier: DB.MemberDecl<DB.Integer, true>;
102
+ adventurePoints: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"EnhancementAdventurePoints", {
103
+ DerivedFromImprovementCost: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"DerivedEnhancementAdventurePoints", DB.Object<{
104
+ multiplier: DB.MemberDecl<DB.Integer, true>;
105
+ }>, []>>>;
106
+ Constant: DB.EnumCase<DB.Integer>;
107
+ }, []>>, true>;
97
108
  prerequisites: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"EnhancementPrerequisites", DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"PlainPrerequisites", DB.Array<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.Enum<"PrerequisitesElement", {
98
109
  Single: DB.EnumCase<DB.TypeArgument<DB.Param<"T", DB.Type>>>;
99
110
  Disjunction: DB.EnumCase<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"PrerequisitesDisjunction", DB.Object<{
@@ -162,6 +173,7 @@ export declare const Enhancement: DB.Entity<"Enhancement", {
162
173
  translations: DB.MemberDecl<DB.NestedEntityMap<"EnhancementTranslation", {
163
174
  name: DB.MemberDecl<DB.String, true>;
164
175
  effect: DB.MemberDecl<DB.String, true>;
176
+ input: DB.MemberDecl<DB.String, false>;
165
177
  errata: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Errata", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"Erratum", DB.Object<{
166
178
  date: DB.MemberDecl<DB.Date, true>;
167
179
  description: DB.MemberDecl<DB.String, true>;
@@ -2,6 +2,7 @@
2
2
  * @title Enhancements
3
3
  */
4
4
  import * as DB from "tsondb/schema/dsl";
5
+ import { input } from "./_Activatable.js";
5
6
  import { SkillWithEnhancementsIdentifier } from "./_IdentifierGroup.js";
6
7
  import { EnhancementPrerequisites } from "./_Prerequisite.js";
7
8
  import { NestedTranslationMap } from "./Locale.js";
@@ -28,11 +29,9 @@ export const Enhancement = DB.Entity(import.meta.url, {
28
29
  multipleOf: 2,
29
30
  }),
30
31
  }),
31
- adventure_points_modifier: DB.Required({
32
- comment: "The value to multiply with the numeric representation of the associated skill's improvement cost to form the final AP cost of this enhancement.",
33
- type: DB.Integer({
34
- minimum: 1,
35
- }),
32
+ adventurePoints: DB.Required({
33
+ comment: "Defines how to determine the AP cost of an enhancement.",
34
+ type: DB.IncludeIdentifier(EnhancementAdventurePoints),
36
35
  }),
37
36
  prerequisites: DB.Optional({
38
37
  type: DB.IncludeIdentifier(EnhancementPrerequisites),
@@ -55,6 +54,7 @@ export const Enhancement = DB.Entity(import.meta.url, {
55
54
  markdown: "block",
56
55
  }),
57
56
  }),
57
+ input,
58
58
  errata: DB.Optional({
59
59
  type: DB.IncludeIdentifier(Errata),
60
60
  }),
@@ -78,3 +78,31 @@ export const Enhancement = DB.Entity(import.meta.url, {
78
78
  ],
79
79
  ],
80
80
  });
81
+ const EnhancementAdventurePoints = DB.Enum(import.meta.url, {
82
+ name: "EnhancementAdventurePoints",
83
+ comment: "Defines how to determine the AP cost of an enhancement.",
84
+ values: () => ({
85
+ DerivedFromImprovementCost: DB.EnumCase({
86
+ comment: "Use the numeric representation of the associated skill's improvement cost as the AP cost of this enhancement.",
87
+ type: DB.IncludeIdentifier(DerivedEnhancementAdventurePoints),
88
+ }),
89
+ Constant: DB.EnumCase({
90
+ comment: "Use the specified constant value as the AP cost of this enhancement.",
91
+ type: DB.Integer({
92
+ minimum: 1,
93
+ }),
94
+ }),
95
+ }),
96
+ });
97
+ const DerivedEnhancementAdventurePoints = DB.TypeAlias(import.meta.url, {
98
+ name: "DerivedEnhancementAdventurePoints",
99
+ type: () => DB.Object({
100
+ multiplier: DB.Required({
101
+ comment: "The value to multiply with the numeric representation of the associated skill's improvement cost to form the final AP cost of this enhancement.",
102
+ type: DB.Integer({
103
+ minimum: 1,
104
+ maximum: 3,
105
+ }),
106
+ }),
107
+ }),
108
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@optolith/database-schema",
3
- "version": "0.49.0",
3
+ "version": "0.50.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",