optolith-database-schema 0.37.0 → 0.38.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.38.0](https://github.com/elyukai/optolith-database-schema/compare/v0.37.0...v0.38.0) (2026-03-14)
6
+
7
+
8
+ ### ⚠ BREAKING CHANGES
9
+
10
+ * reconstruction and references can differ per edition
11
+
12
+ ### Features
13
+
14
+ * display names for new skill applications and uses ([e3eaca0](https://github.com/elyukai/optolith-database-schema/commit/e3eaca0c25f6597bed456f6ae2edd0ff4afd2dae))
15
+ * reconstruction and references can differ per edition ([8774da6](https://github.com/elyukai/optolith-database-schema/commit/8774da6c72786333b09235ee712d0864778dbbfe))
16
+
5
17
  ## [0.37.0](https://github.com/elyukai/optolith-database-schema/compare/v0.36.1...v0.37.0) (2026-03-14)
6
18
 
7
19
 
package/README.md CHANGED
@@ -15,3 +15,20 @@ If you want to contribute to the database schema itself, please open an issue or
15
15
  ## Usage
16
16
 
17
17
  If you want to use the database (or parts of it) in your own project (most likely to support Optolith export formats in your own application), you can use the TypeScript sources as a simple database reader, at least if you have a project targeting JavaScript interpreters as well. This way, you already have proper typings. You can extract the database from the installation folder of Optolith and then configure the database reader to your needs.
18
+
19
+ ## Semantic Versioning
20
+
21
+ The following situations are considered breaking changes:
22
+
23
+ - Underlying data must be changed in order to comply with the new schema. Examples:
24
+ - Existing optional properties are made required
25
+ - New required properties are added
26
+ - Properties or enumeration cases are removed
27
+ - Code that uses the data must be adjusted in order to use the new version. Examples:
28
+ - Existing required properties are made optional
29
+ - Enumeration cases are added
30
+ - Properties or enumeration cases are removed
31
+
32
+ This implies that breaking changes can occur quite frequently, even if the changes are very small.
33
+
34
+ A minor version bump can represent new optional properties, while patch version might represent adjustments in comments or display names for the editor.
package/gen/types.d.ts CHANGED
@@ -20289,16 +20289,6 @@ export interface PlainBookRules {
20289
20289
  export interface BookRulesByEdition {
20290
20290
  editions: BookRulesOfEdition[]
20291
20291
 
20292
- /**
20293
- * Rules for reconstructing certain skills or abilities from the book.
20294
- */
20295
- reconstruction?: string
20296
-
20297
- /**
20298
- * References to skills and abilities that, while mentioned in the book, cannot be learned from this book alone.
20299
- */
20300
- references?: string
20301
-
20302
20292
  /**
20303
20293
  * Additional rules text that comes after all other rules.
20304
20294
  */
@@ -20315,6 +20305,16 @@ export interface BookRulesOfEdition {
20315
20305
  * The rules text.
20316
20306
  */
20317
20307
  text: string
20308
+
20309
+ /**
20310
+ * Rules for reconstructing certain skills or abilities from the book.
20311
+ */
20312
+ reconstruction?: string
20313
+
20314
+ /**
20315
+ * References to skills and abilities that, while mentioned in the book, cannot be learned from this book alone.
20316
+ */
20317
+ references?: string
20318
20318
  }
20319
20319
 
20320
20320
  export interface CeremonialItem {
@@ -36,6 +36,7 @@ export const NewSkillApplication = DB.Entity(import.meta.url, {
36
36
  }),
37
37
  });
38
38
  export const skill_applications = DB.Required({
39
+ displayName: "New Skill Applications",
39
40
  comment: "Registers new skill applications, which get enabled once this entry is activated. It specifies an entry-unique identifier and the skill it belongs to. A translation can be left out if its name equals the name of the origin activatable entry.",
40
41
  type: DB.ChildEntities(NewSkillApplication),
41
42
  });
@@ -73,6 +74,7 @@ export const SkillUse = DB.Entity(import.meta.url, {
73
74
  }),
74
75
  });
75
76
  export const skill_uses = DB.Required({
77
+ displayName: "Skill Uses",
76
78
  comment: "Registers uses, which get enabled once this entry is activated. It specifies an entry-unique identifier and the skill it belongs to. A translation can be left out if its name equals the name of the origin activatable entry.",
77
79
  type: DB.ChildEntities(SkillUse),
78
80
  });
@@ -152,9 +152,9 @@ export declare const Book: DB.Entity<"Book", {
152
152
  editions: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"BookRulesOfEdition", DB.Object<{
153
153
  label: DB.MemberDecl<DB.String, true>;
154
154
  text: DB.MemberDecl<DB.String, true>;
155
+ reconstruction: DB.MemberDecl<DB.String, false>;
156
+ references: DB.MemberDecl<DB.String, false>;
155
157
  }>, []>>>, true>;
156
- reconstruction: DB.MemberDecl<DB.String, false>;
157
- references: DB.MemberDecl<DB.String, false>;
158
158
  textAfter: DB.MemberDecl<DB.String, false>;
159
159
  }>, []>>>;
160
160
  }, []>>, false>;
@@ -242,14 +242,6 @@ const BookRulesByEdition = DB.TypeAlias(import.meta.url, {
242
242
  editions: DB.Required({
243
243
  type: DB.Array(DB.IncludeIdentifier(BookRulesOfEdition), { minItems: 1 }),
244
244
  }),
245
- reconstruction: DB.Optional({
246
- comment: "Rules for reconstructing certain skills or abilities from the book.",
247
- type: DB.String({ minLength: 1, markdown: "block" }),
248
- }),
249
- references: DB.Optional({
250
- comment: "References to skills and abilities that, while mentioned in the book, cannot be learned from this book alone.",
251
- type: DB.String({ minLength: 1, markdown: "block" }),
252
- }),
253
245
  textAfter: DB.Optional({
254
246
  comment: "Additional rules text that comes after all other rules.",
255
247
  type: DB.String({ minLength: 1, markdown: "block" }),
@@ -267,5 +259,13 @@ const BookRulesOfEdition = DB.TypeAlias(import.meta.url, {
267
259
  comment: "The rules text.",
268
260
  type: DB.String({ minLength: 1, markdown: "block" }),
269
261
  }),
262
+ reconstruction: DB.Optional({
263
+ comment: "Rules for reconstructing certain skills or abilities from the book.",
264
+ type: DB.String({ minLength: 1, markdown: "block" }),
265
+ }),
266
+ references: DB.Optional({
267
+ comment: "References to skills and abilities that, while mentioned in the book, cannot be learned from this book alone.",
268
+ type: DB.String({ minLength: 1, markdown: "block" }),
269
+ }),
270
270
  }),
271
271
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "optolith-database-schema",
3
- "version": "0.37.0",
3
+ "version": "0.38.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",