optolith-database-schema 0.18.8 → 0.18.9
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 +7 -0
- package/lib/main.js +3 -1
- package/lib/types/_Identifier.d.ts +2 -0
- package/lib/types/_Identifier.js +4 -0
- package/lib/types/index.d.ts +2 -0
- package/lib/types/index.js +2 -0
- package/lib/types/rule/AlternativeRule.d.ts +53 -0
- package/lib/types/rule/AlternativeRule.js +34 -0
- package/lib/types/rule/AlternativeRule_PlayerType.d.ts +6 -0
- package/lib/types/rule/AlternativeRule_PlayerType.js +16 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,13 @@
|
|
|
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.18.9](https://github.com/elyukai/optolith-database-schema/compare/v0.18.8...v0.18.9) (2025-10-15)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* add alternative rule and player type entities ([034a2ed](https://github.com/elyukai/optolith-database-schema/commit/034a2ed6849a5581951fe1757c5c7179509f76bd))
|
|
11
|
+
|
|
5
12
|
## [0.18.8](https://github.com/elyukai/optolith-database-schema/compare/v0.18.7...v0.18.8) (2025-10-14)
|
|
6
13
|
|
|
7
14
|
## [0.18.7](https://github.com/elyukai/optolith-database-schema/compare/v0.18.6...v0.18.7) (2025-10-14)
|
package/lib/main.js
CHANGED
|
@@ -76,7 +76,7 @@ import { Weapon } from "./types/equipment/item/Weapon.js";
|
|
|
76
76
|
import { WeaponAccessory } from "./types/equipment/item/WeaponAccessory.js";
|
|
77
77
|
import { ArmorType } from "./types/equipment/item/sub/ArmorType.js";
|
|
78
78
|
import { Reach } from "./types/equipment/item/sub/Reach.js";
|
|
79
|
-
import { ClothingPackage, Laboratory } from "./types/index.js";
|
|
79
|
+
import { AlternativeRule, ClothingPackage, Laboratory, PlayerType } from "./types/index.js";
|
|
80
80
|
import { AnimistPower } from "./types/magicalActions/AnimistPower.js";
|
|
81
81
|
import { Tribe } from "./types/magicalActions/AnimistPower_Tribe.js";
|
|
82
82
|
import { Curse } from "./types/magicalActions/Curse.js";
|
|
@@ -154,6 +154,7 @@ export const schema = Schema([
|
|
|
154
154
|
AdvancedMagicalSpecialAbility,
|
|
155
155
|
AdvancedSkillSpecialAbility,
|
|
156
156
|
Advantage,
|
|
157
|
+
AlternativeRule,
|
|
157
158
|
Ammunition,
|
|
158
159
|
AncestorGlyph,
|
|
159
160
|
AnimalCare,
|
|
@@ -255,6 +256,7 @@ export const schema = Schema([
|
|
|
255
256
|
PatronCategory,
|
|
256
257
|
Patron,
|
|
257
258
|
PersonalityTrait,
|
|
259
|
+
PlayerType,
|
|
258
260
|
Poison,
|
|
259
261
|
Profession,
|
|
260
262
|
Property,
|
|
@@ -4,6 +4,7 @@ export declare const AdvancedKarmaSpecialAbilityIdentifier: () => R;
|
|
|
4
4
|
export declare const AdvancedMagicalSpecialAbilityIdentifier: () => R;
|
|
5
5
|
export declare const AdvancedSkillSpecialAbilityIdentifier: () => R;
|
|
6
6
|
export declare const AdvantageIdentifier: () => R;
|
|
7
|
+
export declare const AlternativeRuleIdentifier: () => R;
|
|
7
8
|
export declare const AmmunitionIdentifier: () => R;
|
|
8
9
|
export declare const AncestorGlyphIdentifier: () => R;
|
|
9
10
|
export declare const AnimalCareIdentifier: () => R;
|
|
@@ -107,6 +108,7 @@ export declare const PactTypeIdentifier: () => R;
|
|
|
107
108
|
export declare const PatronCategoryIdentifier: () => R;
|
|
108
109
|
export declare const PatronIdentifier: () => R;
|
|
109
110
|
export declare const PersonalityTraitIdentifier: () => R;
|
|
111
|
+
export declare const PlayerTypeIdentifier: () => R;
|
|
110
112
|
export declare const PoisonIdentifier: () => R;
|
|
111
113
|
export declare const ProfessionIdentifier: () => R;
|
|
112
114
|
export declare const ProfessionPackageIdentifier: () => R;
|
package/lib/types/_Identifier.js
CHANGED
|
@@ -75,6 +75,8 @@ import { Profession, ProfessionPackage, ProfessionVariant, ProfessionVersion, }
|
|
|
75
75
|
import { Property } from "./Property.js";
|
|
76
76
|
import { Race, RaceVariant } from "./Race.js";
|
|
77
77
|
import { Ritual } from "./Ritual.js";
|
|
78
|
+
import { AlternativeRule } from "./rule/AlternativeRule.js";
|
|
79
|
+
import { PlayerType } from "./rule/AlternativeRule_PlayerType.js";
|
|
78
80
|
import { CoreRule } from "./rule/CoreRule.js";
|
|
79
81
|
import { FocusRule } from "./rule/FocusRule.js";
|
|
80
82
|
import { Subject } from "./rule/FocusRule_Subject.js";
|
|
@@ -148,6 +150,7 @@ export const AdvancedKarmaSpecialAbilityIdentifier = () => R(AdvancedKarmaSpecia
|
|
|
148
150
|
export const AdvancedMagicalSpecialAbilityIdentifier = () => R(AdvancedMagicalSpecialAbility);
|
|
149
151
|
export const AdvancedSkillSpecialAbilityIdentifier = () => R(AdvancedSkillSpecialAbility);
|
|
150
152
|
export const AdvantageIdentifier = () => R(Advantage);
|
|
153
|
+
export const AlternativeRuleIdentifier = () => R(AlternativeRule);
|
|
151
154
|
export const AmmunitionIdentifier = () => R(Ammunition);
|
|
152
155
|
export const AncestorGlyphIdentifier = () => R(AncestorGlyph);
|
|
153
156
|
export const AnimalCareIdentifier = () => R(AnimalCare);
|
|
@@ -251,6 +254,7 @@ export const PactTypeIdentifier = () => R(PactType);
|
|
|
251
254
|
export const PatronCategoryIdentifier = () => R(PatronCategory);
|
|
252
255
|
export const PatronIdentifier = () => R(Patron);
|
|
253
256
|
export const PersonalityTraitIdentifier = () => R(PersonalityTrait);
|
|
257
|
+
export const PlayerTypeIdentifier = () => R(PlayerType);
|
|
254
258
|
export const PoisonIdentifier = () => R(Poison);
|
|
255
259
|
export const ProfessionIdentifier = () => R(Profession);
|
|
256
260
|
export const ProfessionPackageIdentifier = () => R(ProfessionPackage);
|
package/lib/types/index.d.ts
CHANGED
|
@@ -78,6 +78,8 @@ export { Property } from "./Property.js";
|
|
|
78
78
|
export { Race } from "./Race.js";
|
|
79
79
|
export { Region } from "./Region.js";
|
|
80
80
|
export { Ritual } from "./Ritual.js";
|
|
81
|
+
export { AlternativeRule } from "./rule/AlternativeRule.js";
|
|
82
|
+
export { PlayerType } from "./rule/AlternativeRule_PlayerType.js";
|
|
81
83
|
export { CoreRule } from "./rule/CoreRule.js";
|
|
82
84
|
export { FocusRule } from "./rule/FocusRule.js";
|
|
83
85
|
export { Subject } from "./rule/FocusRule_Subject.js";
|
package/lib/types/index.js
CHANGED
|
@@ -78,6 +78,8 @@ export { Property } from "./Property.js";
|
|
|
78
78
|
export { Race } from "./Race.js";
|
|
79
79
|
export { Region } from "./Region.js";
|
|
80
80
|
export { Ritual } from "./Ritual.js";
|
|
81
|
+
export { AlternativeRule } from "./rule/AlternativeRule.js";
|
|
82
|
+
export { PlayerType } from "./rule/AlternativeRule_PlayerType.js";
|
|
81
83
|
export { CoreRule } from "./rule/CoreRule.js";
|
|
82
84
|
export { FocusRule } from "./rule/FocusRule.js";
|
|
83
85
|
export { Subject } from "./rule/FocusRule_Subject.js";
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { Array, Boolean, Entity, IncludeIdentifier, Object, String } from "tsondb/schema/def";
|
|
2
|
+
export declare const AlternativeRule: Entity<"AlternativeRule", {
|
|
3
|
+
playerTypes: import("tsondb/schema/def").MemberDecl<Array<import("tsondb/schema/def").ReferenceIdentifierType>, true>;
|
|
4
|
+
isMissingImplementation: import("tsondb/schema/def").MemberDecl<Boolean, true>;
|
|
5
|
+
src: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"PublicationRefs", Array<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"PublicationRef", Object<{
|
|
6
|
+
id: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ReferenceIdentifierType, true>;
|
|
7
|
+
occurrences: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").NestedEntityMapType<string, {
|
|
8
|
+
initial: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"InitialOccurrence", Object<{
|
|
9
|
+
printing: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").IntegerType, false>;
|
|
10
|
+
pages: import("tsondb/schema/def").MemberDecl<Array<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"PageRange", Object<{
|
|
11
|
+
first_page: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").EnumDecl<"Page", {
|
|
12
|
+
InsideCoverFront: import("tsondb/schema/def").EnumCaseDecl<null>;
|
|
13
|
+
InsideCoverBack: import("tsondb/schema/def").EnumCaseDecl<null>;
|
|
14
|
+
Numbered: import("tsondb/schema/def").EnumCaseDecl<import("tsondb/schema/def").IntegerType>;
|
|
15
|
+
}, []>>, true>;
|
|
16
|
+
last_page: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").EnumDecl<"Page", {
|
|
17
|
+
InsideCoverFront: import("tsondb/schema/def").EnumCaseDecl<null>;
|
|
18
|
+
InsideCoverBack: import("tsondb/schema/def").EnumCaseDecl<null>;
|
|
19
|
+
Numbered: import("tsondb/schema/def").EnumCaseDecl<import("tsondb/schema/def").IntegerType>;
|
|
20
|
+
}, []>>, false>;
|
|
21
|
+
}>, []>>>, true>;
|
|
22
|
+
}>, []>>, true>;
|
|
23
|
+
revisions: import("tsondb/schema/def").MemberDecl<Array<IncludeIdentifier<[], import("tsondb/schema/def").EnumDecl<"Revision", {
|
|
24
|
+
Since: import("tsondb/schema/def").EnumCaseDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"Since", Object<{
|
|
25
|
+
printing: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").IntegerType, true>;
|
|
26
|
+
pages: import("tsondb/schema/def").MemberDecl<Array<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"PageRange", Object<{
|
|
27
|
+
first_page: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").EnumDecl<"Page", {
|
|
28
|
+
InsideCoverFront: import("tsondb/schema/def").EnumCaseDecl<null>;
|
|
29
|
+
InsideCoverBack: import("tsondb/schema/def").EnumCaseDecl<null>;
|
|
30
|
+
Numbered: import("tsondb/schema/def").EnumCaseDecl<import("tsondb/schema/def").IntegerType>;
|
|
31
|
+
}, []>>, true>;
|
|
32
|
+
last_page: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").EnumDecl<"Page", {
|
|
33
|
+
InsideCoverFront: import("tsondb/schema/def").EnumCaseDecl<null>;
|
|
34
|
+
InsideCoverBack: import("tsondb/schema/def").EnumCaseDecl<null>;
|
|
35
|
+
Numbered: import("tsondb/schema/def").EnumCaseDecl<import("tsondb/schema/def").IntegerType>;
|
|
36
|
+
}, []>>, false>;
|
|
37
|
+
}>, []>>>, true>;
|
|
38
|
+
}>, []>>>;
|
|
39
|
+
Deprecated: import("tsondb/schema/def").EnumCaseDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"Deprecation", Object<{
|
|
40
|
+
printing: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").IntegerType, true>;
|
|
41
|
+
}>, []>>>;
|
|
42
|
+
}, []>>>, false>;
|
|
43
|
+
}>, true>;
|
|
44
|
+
}>, []>>>, []>>, true>;
|
|
45
|
+
translations: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").NestedEntityMapType<"AlternativeRuleTranslation", {
|
|
46
|
+
name: import("tsondb/schema/def").MemberDecl<String, true>;
|
|
47
|
+
description: import("tsondb/schema/def").MemberDecl<String, true>;
|
|
48
|
+
errata: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"Errata", Array<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"Erratum", Object<{
|
|
49
|
+
date: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").DateType, true>;
|
|
50
|
+
description: import("tsondb/schema/def").MemberDecl<String, true>;
|
|
51
|
+
}>, []>>>, []>>, false>;
|
|
52
|
+
}>, true>;
|
|
53
|
+
}, undefined>;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Array, Boolean, Entity, IncludeIdentifier, Object, Optional, Required, String, } from "tsondb/schema/def";
|
|
2
|
+
import { PlayerTypeIdentifier } from "../_Identifier.js";
|
|
3
|
+
import { NestedTranslationMap } from "../Locale.js";
|
|
4
|
+
import { Errata } from "../source/_Erratum.js";
|
|
5
|
+
import { src } from "../source/_PublicationRef.js";
|
|
6
|
+
export const AlternativeRule = Entity(import.meta.url, {
|
|
7
|
+
name: "AlternativeRule",
|
|
8
|
+
namePlural: "AlternativeRules",
|
|
9
|
+
type: () => Object({
|
|
10
|
+
playerTypes: Required({
|
|
11
|
+
comment: "The player types this alternative rule is suitable for.",
|
|
12
|
+
type: Array(PlayerTypeIdentifier(), { minItems: 1, uniqueItems: true }),
|
|
13
|
+
}),
|
|
14
|
+
isMissingImplementation: Required({
|
|
15
|
+
comment: "Has the alternative rule not been implemented in Optolith yet? This is also true if the alternative rule does not (currently) apply to any Optolith feature.",
|
|
16
|
+
type: Boolean(),
|
|
17
|
+
}),
|
|
18
|
+
src,
|
|
19
|
+
translations: NestedTranslationMap(Required, "AlternativeRule", Object({
|
|
20
|
+
name: Required({
|
|
21
|
+
comment: "The alternative rule’s name.",
|
|
22
|
+
type: String({ minLength: 1 }),
|
|
23
|
+
}),
|
|
24
|
+
description: Required({
|
|
25
|
+
comment: "The description of the alternative rule.",
|
|
26
|
+
type: String({ minLength: 1, isMarkdown: true }),
|
|
27
|
+
}),
|
|
28
|
+
errata: Optional({
|
|
29
|
+
type: IncludeIdentifier(Errata),
|
|
30
|
+
}),
|
|
31
|
+
})),
|
|
32
|
+
}),
|
|
33
|
+
displayName: {},
|
|
34
|
+
});
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Entity, String } from "tsondb/schema/def";
|
|
2
|
+
export declare const PlayerType: Entity<"PlayerType", {
|
|
3
|
+
translations: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").NestedEntityMapType<"PlayerTypeTranslation", {
|
|
4
|
+
name: import("tsondb/schema/def").MemberDecl<String, true>;
|
|
5
|
+
}>, true>;
|
|
6
|
+
}, undefined>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Entity, Object, Required, String } from "tsondb/schema/def";
|
|
2
|
+
import { NestedTranslationMap } from "../Locale.js";
|
|
3
|
+
export const PlayerType = Entity(import.meta.url, {
|
|
4
|
+
name: "PlayerType",
|
|
5
|
+
namePlural: "PlayerTypes",
|
|
6
|
+
comment: "Player types describe different playing styles, expectations and wishes of players.",
|
|
7
|
+
type: () => Object({
|
|
8
|
+
translations: NestedTranslationMap(Required, "PlayerType", Object({
|
|
9
|
+
name: Required({
|
|
10
|
+
comment: "The player type.",
|
|
11
|
+
type: String({ minLength: 1 }),
|
|
12
|
+
}),
|
|
13
|
+
})),
|
|
14
|
+
}),
|
|
15
|
+
displayName: {},
|
|
16
|
+
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "optolith-database-schema",
|
|
3
|
-
"version": "0.18.
|
|
3
|
+
"version": "0.18.9",
|
|
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",
|