optolith-database-schema 0.36.0 → 0.37.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 +18 -0
- package/gen/types.d.ts +151 -1
- package/lib/types/Ceremony.d.ts +4 -0
- package/lib/types/LiturgicalChant.d.ts +4 -0
- package/lib/types/Locale.d.ts +18 -0
- package/lib/types/Locale.js +19 -0
- package/lib/types/Ritual.d.ts +4 -0
- package/lib/types/Spell.d.ts +4 -0
- package/lib/types/_ActivatableSkill.d.ts +12 -0
- package/lib/types/_ActivatableSkillCost.d.ts +12 -0
- package/lib/types/_ActivatableSkillCost.js +12 -0
- package/lib/types/equipment/item/Book.d.ts +26 -1
- package/lib/types/equipment/item/Book.js +90 -0
- package/lib/types/magicalActions/GeodeRitual.d.ts +4 -0
- package/lib/types/magicalActions/ZibiljaRitual.d.ts +4 -0
- package/lib/types/specialAbility/MagicalSign.d.ts +4 -0
- package/package.json +1 -1
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.37.0](https://github.com/elyukai/optolith-database-schema/compare/v0.36.1...v0.37.0) (2026-03-14)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### ⚠ BREAKING CHANGES
|
|
9
|
+
|
|
10
|
+
* more detailed book rules and meta data
|
|
11
|
+
|
|
12
|
+
### Features
|
|
13
|
+
|
|
14
|
+
* more detailed book rules and meta data ([04b3a74](https://github.com/elyukai/optolith-database-schema/commit/04b3a7451e8ccc629b670da95b178f115085363b))
|
|
15
|
+
|
|
16
|
+
## [0.36.1](https://github.com/elyukai/optolith-database-schema/compare/v0.36.0...v0.36.1) (2026-03-13)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
### Features
|
|
20
|
+
|
|
21
|
+
* cost map style ([127cc6c](https://github.com/elyukai/optolith-database-schema/commit/127cc6cc48ea1c77ab4e31eb424ddc92c2cb248e))
|
|
22
|
+
|
|
5
23
|
## [0.36.0](https://github.com/elyukai/optolith-database-schema/compare/v0.35.0...v0.36.0) (2026-03-13)
|
|
6
24
|
|
|
7
25
|
|
package/gen/types.d.ts
CHANGED
|
@@ -237,8 +237,10 @@ export type EnumMap = {
|
|
|
237
237
|
BlessedTraditionType: BlessedTraditionType
|
|
238
238
|
BlessingDuration: BlessingDuration
|
|
239
239
|
BlessingRange: BlessingRange
|
|
240
|
+
BookContentQuality: BookContentQuality
|
|
240
241
|
BookCost: BookCost
|
|
241
242
|
BookCostVariant: BookCostVariant
|
|
243
|
+
BookRules: BookRules
|
|
242
244
|
BookType: BookType
|
|
243
245
|
BurningTime: BurningTime
|
|
244
246
|
CantripDuration: CantripDuration
|
|
@@ -325,6 +327,7 @@ export type EnumMap = {
|
|
|
325
327
|
MagicalSignCost: MagicalSignCost
|
|
326
328
|
MagicalTraditionPrerequisiteRestriction: MagicalTraditionPrerequisiteRestriction
|
|
327
329
|
MagicCommonProfessionConstraint: MagicCommonProfessionConstraint
|
|
330
|
+
MapStyle: MapStyle
|
|
328
331
|
MathOperation: MathOperation<unknown>
|
|
329
332
|
MaximumIndefiniteCurseDuration: MaximumIndefiniteCurseDuration
|
|
330
333
|
MaximumIndefiniteDominationRitualDuration: MaximumIndefiniteDominationRitualDuration
|
|
@@ -483,6 +486,8 @@ export type TypeAliasMap = {
|
|
|
483
486
|
BlessedTraditionPrerequisite: BlessedTraditionPrerequisite
|
|
484
487
|
BlessedTraditionsSelectOptionCategory: BlessedTraditionsSelectOptionCategory
|
|
485
488
|
BlessingPerformanceParameters: BlessingPerformanceParameters
|
|
489
|
+
BookRulesByEdition: BookRulesByEdition
|
|
490
|
+
BookRulesOfEdition: BookRulesOfEdition
|
|
486
491
|
BySizeCategory: BySizeCategory<unknown>
|
|
487
492
|
CalculationTranslation: CalculationTranslation
|
|
488
493
|
CantripPerformanceParameters: CantripPerformanceParameters
|
|
@@ -702,6 +707,7 @@ export type TypeAliasMap = {
|
|
|
702
707
|
PersonalityTraitEffect: PersonalityTraitEffect
|
|
703
708
|
PersonalityTraitPrerequisite: PersonalityTraitPrerequisite
|
|
704
709
|
PersonalityTraitPrerequisites: PersonalityTraitPrerequisites
|
|
710
|
+
PlainBookRules: PlainBookRules
|
|
705
711
|
PlainCommonProfessions: PlainCommonProfessions
|
|
706
712
|
PlainGeneralPrerequisites: PlainGeneralPrerequisites
|
|
707
713
|
PlainPrerequisites: PlainPrerequisites<unknown>
|
|
@@ -2433,6 +2439,24 @@ export interface Locale {
|
|
|
2433
2439
|
".input {$count :number} {{check required every {$count}. application in the same month}}": string & { __params: { "count": number } }
|
|
2434
2440
|
"see {$link}": string & { __params: { "link": StringableTranslationParameter } }
|
|
2435
2441
|
"CoD": string
|
|
2442
|
+
"Romance Novel": string
|
|
2443
|
+
"Poetry": string
|
|
2444
|
+
"Political Pamphlet": string
|
|
2445
|
+
"Crime Story": string
|
|
2446
|
+
"Fairy Tale": string
|
|
2447
|
+
"Novel": string
|
|
2448
|
+
"Professional Publication": string
|
|
2449
|
+
"Magical Book": string
|
|
2450
|
+
"Religious Works": string
|
|
2451
|
+
"Content Quality": string
|
|
2452
|
+
"Modest": string
|
|
2453
|
+
"Average": string
|
|
2454
|
+
"Demanding": string
|
|
2455
|
+
"CL {$level}": string & { __params: { "level": StringableTranslationParameter } }
|
|
2456
|
+
"Availability": string
|
|
2457
|
+
"Reconstruction": string
|
|
2458
|
+
"References": string
|
|
2459
|
+
"Entertainment": string
|
|
2436
2460
|
"Failed": string
|
|
2437
2461
|
"Progress": string
|
|
2438
2462
|
"Incubation Time": string
|
|
@@ -5839,6 +5863,11 @@ export interface OneTimeCostMap {
|
|
|
5839
5863
|
*/
|
|
5840
5864
|
options: OneTimeCostMapOption[]
|
|
5841
5865
|
|
|
5866
|
+
/**
|
|
5867
|
+
* The style of the generated string. It may either be displayed in a compressed way (e.g. `1/2/3 AE for a small/medium/large object`) or in a verbose way (e.g. `1 AE for a small object, 2 AE for a medium object, 3 AE for a large object`). The default is `compressed`.
|
|
5868
|
+
*/
|
|
5869
|
+
style?: MapStyle
|
|
5870
|
+
|
|
5842
5871
|
/**
|
|
5843
5872
|
* All translations for the entry, identified by IETF language tag (BCP47).
|
|
5844
5873
|
*/
|
|
@@ -5895,6 +5924,17 @@ export interface OneTimeCostMapOptionTranslation {
|
|
|
5895
5924
|
label_standalone?: ResponsiveTextOptional
|
|
5896
5925
|
}
|
|
5897
5926
|
|
|
5927
|
+
/**
|
|
5928
|
+
* The style of the generated string. It may either be displayed in a compressed way (e.g. `1/2/3 AE for a small/medium/large object`) or in a verbose way (e.g. `1 AE for a small object, 2 AE for a medium object, 3 AE for a large object`).
|
|
5929
|
+
*/
|
|
5930
|
+
export type MapStyle =
|
|
5931
|
+
| {
|
|
5932
|
+
kind: "Compressed"
|
|
5933
|
+
}
|
|
5934
|
+
| {
|
|
5935
|
+
kind: "Verbose"
|
|
5936
|
+
}
|
|
5937
|
+
|
|
5898
5938
|
export interface Range {
|
|
5899
5939
|
/**
|
|
5900
5940
|
* The range value.
|
|
@@ -19999,6 +20039,11 @@ export interface Book {
|
|
|
19999
20039
|
*/
|
|
20000
20040
|
structure_points?: StructurePoints
|
|
20001
20041
|
|
|
20042
|
+
/**
|
|
20043
|
+
* The quality of the book’s content.
|
|
20044
|
+
*/
|
|
20045
|
+
contentQuality?: BookContentQuality
|
|
20046
|
+
|
|
20002
20047
|
/**
|
|
20003
20048
|
* References to where in which publications this entry has been defined. Entries may also be added or removed in later printings.
|
|
20004
20049
|
*/
|
|
@@ -20046,7 +20091,22 @@ export interface BookTranslation {
|
|
|
20046
20091
|
/**
|
|
20047
20092
|
* Special rules text.
|
|
20048
20093
|
*/
|
|
20049
|
-
rules?:
|
|
20094
|
+
rules?: BookRules
|
|
20095
|
+
|
|
20096
|
+
/**
|
|
20097
|
+
* The legality of the item, if specified.
|
|
20098
|
+
*/
|
|
20099
|
+
legality?: string
|
|
20100
|
+
|
|
20101
|
+
/**
|
|
20102
|
+
* The availability of the item, if specified.
|
|
20103
|
+
*/
|
|
20104
|
+
availability?: string
|
|
20105
|
+
|
|
20106
|
+
/**
|
|
20107
|
+
* Special properties or features of the item.
|
|
20108
|
+
*/
|
|
20109
|
+
special?: string
|
|
20050
20110
|
|
|
20051
20111
|
errata?: Errata
|
|
20052
20112
|
}
|
|
@@ -20167,6 +20227,96 @@ export interface IndefiniteBookCostVariantTranslation {
|
|
|
20167
20227
|
description: string
|
|
20168
20228
|
}
|
|
20169
20229
|
|
|
20230
|
+
/**
|
|
20231
|
+
* The quality of the book’s content.
|
|
20232
|
+
*/
|
|
20233
|
+
export type BookContentQuality =
|
|
20234
|
+
| {
|
|
20235
|
+
kind: "Modest"
|
|
20236
|
+
}
|
|
20237
|
+
| {
|
|
20238
|
+
kind: "Average"
|
|
20239
|
+
}
|
|
20240
|
+
| {
|
|
20241
|
+
kind: "Demanding"
|
|
20242
|
+
Demanding: number
|
|
20243
|
+
}
|
|
20244
|
+
|
|
20245
|
+
/**
|
|
20246
|
+
* Skills and abilities you can learn by reading the book, as well as any other rules and effects concerning the book.
|
|
20247
|
+
*/
|
|
20248
|
+
export type BookRules =
|
|
20249
|
+
| {
|
|
20250
|
+
kind: "Plain"
|
|
20251
|
+
Plain: PlainBookRules
|
|
20252
|
+
}
|
|
20253
|
+
| {
|
|
20254
|
+
kind: "Entertainment"
|
|
20255
|
+
}
|
|
20256
|
+
| {
|
|
20257
|
+
kind: "ByEdition"
|
|
20258
|
+
ByEdition: BookRulesByEdition
|
|
20259
|
+
}
|
|
20260
|
+
|
|
20261
|
+
/**
|
|
20262
|
+
* The book’s rules without any special effects or conditions.
|
|
20263
|
+
*/
|
|
20264
|
+
export interface PlainBookRules {
|
|
20265
|
+
/**
|
|
20266
|
+
* The (main) rules text.
|
|
20267
|
+
*/
|
|
20268
|
+
text: string
|
|
20269
|
+
|
|
20270
|
+
/**
|
|
20271
|
+
* Rules for reconstructing certain skills or abilities from the book.
|
|
20272
|
+
*/
|
|
20273
|
+
reconstruction?: string
|
|
20274
|
+
|
|
20275
|
+
/**
|
|
20276
|
+
* References to skills and abilities that, while mentioned in the book, cannot be learned from this book alone.
|
|
20277
|
+
*/
|
|
20278
|
+
references?: string
|
|
20279
|
+
|
|
20280
|
+
/**
|
|
20281
|
+
* Additional rules text that comes after all other rules.
|
|
20282
|
+
*/
|
|
20283
|
+
textAfter?: string
|
|
20284
|
+
}
|
|
20285
|
+
|
|
20286
|
+
/**
|
|
20287
|
+
* The book’s rules with differences between each edition and more differentiation between types of rules.
|
|
20288
|
+
*/
|
|
20289
|
+
export interface BookRulesByEdition {
|
|
20290
|
+
editions: BookRulesOfEdition[]
|
|
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
|
+
/**
|
|
20303
|
+
* Additional rules text that comes after all other rules.
|
|
20304
|
+
*/
|
|
20305
|
+
textAfter?: string
|
|
20306
|
+
}
|
|
20307
|
+
|
|
20308
|
+
export interface BookRulesOfEdition {
|
|
20309
|
+
/**
|
|
20310
|
+
* The edition(s) the rules apply to.
|
|
20311
|
+
*/
|
|
20312
|
+
label: string
|
|
20313
|
+
|
|
20314
|
+
/**
|
|
20315
|
+
* The rules text.
|
|
20316
|
+
*/
|
|
20317
|
+
text: string
|
|
20318
|
+
}
|
|
20319
|
+
|
|
20170
20320
|
export interface CeremonialItem {
|
|
20171
20321
|
/**
|
|
20172
20322
|
* The cost in silverthalers.
|
package/lib/types/Ceremony.d.ts
CHANGED
|
@@ -149,6 +149,10 @@ export declare const Ceremony: DB.Entity<"Ceremony", {
|
|
|
149
149
|
}>, []>>, false>;
|
|
150
150
|
}>, false>;
|
|
151
151
|
}>, []>>>, true>;
|
|
152
|
+
style: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"MapStyle", {
|
|
153
|
+
Compressed: DB.EnumCase<null>;
|
|
154
|
+
Verbose: DB.EnumCase<null>;
|
|
155
|
+
}, []>>, false>;
|
|
152
156
|
translations: DB.MemberDecl<DB.NestedEntityMap<"OneTimeCostMapTranslation", {
|
|
153
157
|
list_prepend: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
|
|
154
158
|
full: DB.MemberDecl<DB.String, true>;
|
|
@@ -149,6 +149,10 @@ export declare const LiturgicalChant: DB.Entity<"LiturgicalChant", {
|
|
|
149
149
|
}>, []>>, false>;
|
|
150
150
|
}>, false>;
|
|
151
151
|
}>, []>>>, true>;
|
|
152
|
+
style: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"MapStyle", {
|
|
153
|
+
Compressed: DB.EnumCase<null>;
|
|
154
|
+
Verbose: DB.EnumCase<null>;
|
|
155
|
+
}, []>>, false>;
|
|
152
156
|
translations: DB.MemberDecl<DB.NestedEntityMap<"OneTimeCostMapTranslation", {
|
|
153
157
|
list_prepend: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
|
|
154
158
|
full: DB.MemberDecl<DB.String, true>;
|
package/lib/types/Locale.d.ts
CHANGED
|
@@ -1477,6 +1477,24 @@ export declare const Locale: DB.Entity<"Locale", {
|
|
|
1477
1477
|
".input {$count :number} {{check required every {$count}. application in the same month}}": null;
|
|
1478
1478
|
"see {$link}": null;
|
|
1479
1479
|
CoD: null;
|
|
1480
|
+
"Romance Novel": null;
|
|
1481
|
+
Poetry: null;
|
|
1482
|
+
"Political Pamphlet": null;
|
|
1483
|
+
"Crime Story": null;
|
|
1484
|
+
"Fairy Tale": null;
|
|
1485
|
+
Novel: null;
|
|
1486
|
+
"Professional Publication": null;
|
|
1487
|
+
"Magical Book": null;
|
|
1488
|
+
"Religious Works": null;
|
|
1489
|
+
"Content Quality": null;
|
|
1490
|
+
Modest: null;
|
|
1491
|
+
Average: null;
|
|
1492
|
+
Demanding: null;
|
|
1493
|
+
"CL {$level}": null;
|
|
1494
|
+
Availability: null;
|
|
1495
|
+
Reconstruction: null;
|
|
1496
|
+
References: null;
|
|
1497
|
+
Entertainment: null;
|
|
1480
1498
|
Failed: null;
|
|
1481
1499
|
Progress: null;
|
|
1482
1500
|
"Incubation Time": null;
|
package/lib/types/Locale.js
CHANGED
|
@@ -1518,6 +1518,25 @@ export const Locale = DB.Entity(import.meta.url, {
|
|
|
1518
1518
|
".input {$count :number} {{check required every {$count}. application in the same month}}": null,
|
|
1519
1519
|
"see {$link}": null,
|
|
1520
1520
|
"CoD": null,
|
|
1521
|
+
// books
|
|
1522
|
+
"Romance Novel": null,
|
|
1523
|
+
"Poetry": null,
|
|
1524
|
+
"Political Pamphlet": null,
|
|
1525
|
+
"Crime Story": null,
|
|
1526
|
+
"Fairy Tale": null,
|
|
1527
|
+
"Novel": null,
|
|
1528
|
+
"Professional Publication": null,
|
|
1529
|
+
"Magical Book": null,
|
|
1530
|
+
"Religious Works": null,
|
|
1531
|
+
"Content Quality": null,
|
|
1532
|
+
"Modest": null,
|
|
1533
|
+
"Average": null,
|
|
1534
|
+
"Demanding": null,
|
|
1535
|
+
"CL {$level}": null,
|
|
1536
|
+
"Availability": null,
|
|
1537
|
+
"Reconstruction": null,
|
|
1538
|
+
"References": null,
|
|
1539
|
+
"Entertainment": null,
|
|
1521
1540
|
// sex practices
|
|
1522
1541
|
"Failed": null,
|
|
1523
1542
|
// diseases
|
package/lib/types/Ritual.d.ts
CHANGED
|
@@ -149,6 +149,10 @@ export declare const Ritual: DB.Entity<"Ritual", {
|
|
|
149
149
|
}>, []>>, false>;
|
|
150
150
|
}>, false>;
|
|
151
151
|
}>, []>>>, true>;
|
|
152
|
+
style: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"MapStyle", {
|
|
153
|
+
Compressed: DB.EnumCase<null>;
|
|
154
|
+
Verbose: DB.EnumCase<null>;
|
|
155
|
+
}, []>>, false>;
|
|
152
156
|
translations: DB.MemberDecl<DB.NestedEntityMap<"OneTimeCostMapTranslation", {
|
|
153
157
|
list_prepend: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
|
|
154
158
|
full: DB.MemberDecl<DB.String, true>;
|
package/lib/types/Spell.d.ts
CHANGED
|
@@ -149,6 +149,10 @@ export declare const Spell: DB.Entity<"Spell", {
|
|
|
149
149
|
}>, []>>, false>;
|
|
150
150
|
}>, false>;
|
|
151
151
|
}>, []>>>, true>;
|
|
152
|
+
style: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"MapStyle", {
|
|
153
|
+
Compressed: DB.EnumCase<null>;
|
|
154
|
+
Verbose: DB.EnumCase<null>;
|
|
155
|
+
}, []>>, false>;
|
|
152
156
|
translations: DB.MemberDecl<DB.NestedEntityMap<"OneTimeCostMapTranslation", {
|
|
153
157
|
list_prepend: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
|
|
154
158
|
full: DB.MemberDecl<DB.String, true>;
|
|
@@ -140,6 +140,10 @@ export declare const OneTimePerformanceParameters: DB.TypeAlias<"OneTimePerforma
|
|
|
140
140
|
}>, []>>, false>;
|
|
141
141
|
}>, false>;
|
|
142
142
|
}>, []>>>, true>;
|
|
143
|
+
style: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"MapStyle", {
|
|
144
|
+
Compressed: DB.EnumCase<null>;
|
|
145
|
+
Verbose: DB.EnumCase<null>;
|
|
146
|
+
}, []>>, false>;
|
|
143
147
|
translations: DB.MemberDecl<DB.NestedEntityMap<"OneTimeCostMapTranslation", {
|
|
144
148
|
list_prepend: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
|
|
145
149
|
full: DB.MemberDecl<DB.String, true>;
|
|
@@ -442,6 +446,10 @@ export declare const FastPerformanceParameters: DB.Enum<"FastPerformanceParamete
|
|
|
442
446
|
}>, []>>, false>;
|
|
443
447
|
}>, false>;
|
|
444
448
|
}>, []>>>, true>;
|
|
449
|
+
style: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"MapStyle", {
|
|
450
|
+
Compressed: DB.EnumCase<null>;
|
|
451
|
+
Verbose: DB.EnumCase<null>;
|
|
452
|
+
}, []>>, false>;
|
|
445
453
|
translations: DB.MemberDecl<DB.NestedEntityMap<"OneTimeCostMapTranslation", {
|
|
446
454
|
list_prepend: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
|
|
447
455
|
full: DB.MemberDecl<DB.String, true>;
|
|
@@ -893,6 +901,10 @@ export declare const SlowPerformanceParameters: DB.Enum<"SlowPerformanceParamete
|
|
|
893
901
|
}>, []>>, false>;
|
|
894
902
|
}>, false>;
|
|
895
903
|
}>, []>>>, true>;
|
|
904
|
+
style: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"MapStyle", {
|
|
905
|
+
Compressed: DB.EnumCase<null>;
|
|
906
|
+
Verbose: DB.EnumCase<null>;
|
|
907
|
+
}, []>>, false>;
|
|
896
908
|
translations: DB.MemberDecl<DB.NestedEntityMap<"OneTimeCostMapTranslation", {
|
|
897
909
|
list_prepend: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
|
|
898
910
|
full: DB.MemberDecl<DB.String, true>;
|
|
@@ -135,6 +135,10 @@ export declare const OneTimeCost: DB.Enum<"OneTimeCost", {
|
|
|
135
135
|
}>, []>>, false>;
|
|
136
136
|
}>, false>;
|
|
137
137
|
}>, []>>>, true>;
|
|
138
|
+
style: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"MapStyle", {
|
|
139
|
+
Compressed: DB.EnumCase<null>;
|
|
140
|
+
Verbose: DB.EnumCase<null>;
|
|
141
|
+
}, []>>, false>;
|
|
138
142
|
translations: DB.MemberDecl<DB.NestedEntityMap<"OneTimeCostMapTranslation", {
|
|
139
143
|
list_prepend: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
|
|
140
144
|
full: DB.MemberDecl<DB.String, true>;
|
|
@@ -183,6 +187,10 @@ export declare const OneTimeCostMap: DB.TypeAlias<"OneTimeCostMap", DB.Object<{
|
|
|
183
187
|
}>, []>>, false>;
|
|
184
188
|
}>, false>;
|
|
185
189
|
}>, []>>>, true>;
|
|
190
|
+
style: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"MapStyle", {
|
|
191
|
+
Compressed: DB.EnumCase<null>;
|
|
192
|
+
Verbose: DB.EnumCase<null>;
|
|
193
|
+
}, []>>, false>;
|
|
186
194
|
translations: DB.MemberDecl<DB.NestedEntityMap<"OneTimeCostMapTranslation", {
|
|
187
195
|
list_prepend: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
|
|
188
196
|
full: DB.MemberDecl<DB.String, true>;
|
|
@@ -198,6 +206,10 @@ export declare const OneTimeCostMap: DB.TypeAlias<"OneTimeCostMap", DB.Object<{
|
|
|
198
206
|
}>, []>>, false>;
|
|
199
207
|
}>, false>;
|
|
200
208
|
}>, []>;
|
|
209
|
+
export declare const MapStyle: DB.Enum<"MapStyle", {
|
|
210
|
+
Compressed: DB.EnumCase<null>;
|
|
211
|
+
Verbose: DB.EnumCase<null>;
|
|
212
|
+
}, []>;
|
|
201
213
|
export declare const SustainedCost: DB.Enum<"SustainedCost", {
|
|
202
214
|
Modifiable: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ModifiableSustainedCost", DB.Object<{
|
|
203
215
|
initial_modification_level: DB.MemberDecl<DB.ReferenceIdentifier, true>;
|
|
@@ -123,6 +123,10 @@ This will generate the exact same string as seen above – given it is set for a
|
|
|
123
123
|
minItems: 2,
|
|
124
124
|
}),
|
|
125
125
|
}),
|
|
126
|
+
style: DB.Optional({
|
|
127
|
+
comment: "The style of the generated string. It may either be displayed in a compressed way (e.g. `1/2/3 AE for a small/medium/large object`) or in a verbose way (e.g. `1 AE for a small object, 2 AE for a medium object, 3 AE for a large object`). The default is `compressed`.",
|
|
128
|
+
type: DB.IncludeIdentifier(MapStyle),
|
|
129
|
+
}),
|
|
126
130
|
translations: NestedTranslationMap(DB.Optional, "OneTimeCostMap", DB.Object({
|
|
127
131
|
list_prepend: DB.Optional({
|
|
128
132
|
comment: "Place a string between the `for` and the grouped map option labels.",
|
|
@@ -162,6 +166,14 @@ const OneTimeCostMapOption = DB.TypeAlias(import.meta.url, {
|
|
|
162
166
|
})),
|
|
163
167
|
}),
|
|
164
168
|
});
|
|
169
|
+
export const MapStyle = DB.Enum(import.meta.url, {
|
|
170
|
+
name: "MapStyle",
|
|
171
|
+
comment: "The style of the generated string. It may either be displayed in a compressed way (e.g. `1/2/3 AE for a small/medium/large object`) or in a verbose way (e.g. `1 AE for a small object, 2 AE for a medium object, 3 AE for a large object`).",
|
|
172
|
+
values: () => ({
|
|
173
|
+
Compressed: DB.EnumCase({ type: null }),
|
|
174
|
+
Verbose: DB.EnumCase({ type: null }),
|
|
175
|
+
}),
|
|
176
|
+
});
|
|
165
177
|
export const SustainedCost = DB.Enum(import.meta.url, {
|
|
166
178
|
name: "SustainedCost",
|
|
167
179
|
values: () => ({
|
|
@@ -88,6 +88,11 @@ export declare const Book: DB.Entity<"Book", {
|
|
|
88
88
|
structure_points: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePoints", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsComponent", DB.Object<{
|
|
89
89
|
points: DB.MemberDecl<DB.Integer, true>;
|
|
90
90
|
}>, []>>>, []>>, false>;
|
|
91
|
+
contentQuality: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"BookContentQuality", {
|
|
92
|
+
Modest: DB.EnumCase<null>;
|
|
93
|
+
Average: DB.EnumCase<null>;
|
|
94
|
+
Demanding: DB.EnumCase<DB.Integer>;
|
|
95
|
+
}, []>>, false>;
|
|
91
96
|
src: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"PublicationRefs", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"PublicationRef", DB.Object<{
|
|
92
97
|
id: DB.MemberDecl<DB.ReferenceIdentifier, true>;
|
|
93
98
|
occurrences: DB.MemberDecl<DB.NestedEntityMap<string, {
|
|
@@ -135,7 +140,27 @@ export declare const Book: DB.Entity<"Book", {
|
|
|
135
140
|
language: DB.MemberDecl<DB.String, false>;
|
|
136
141
|
script: DB.MemberDecl<DB.String, false>;
|
|
137
142
|
note: DB.MemberDecl<DB.String, false>;
|
|
138
|
-
rules: DB.MemberDecl<DB.
|
|
143
|
+
rules: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"BookRules", {
|
|
144
|
+
Plain: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"PlainBookRules", DB.Object<{
|
|
145
|
+
text: DB.MemberDecl<DB.String, true>;
|
|
146
|
+
reconstruction: DB.MemberDecl<DB.String, false>;
|
|
147
|
+
references: DB.MemberDecl<DB.String, false>;
|
|
148
|
+
textAfter: DB.MemberDecl<DB.String, false>;
|
|
149
|
+
}>, []>>>;
|
|
150
|
+
Entertainment: DB.EnumCase<null>;
|
|
151
|
+
ByEdition: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"BookRulesByEdition", DB.Object<{
|
|
152
|
+
editions: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"BookRulesOfEdition", DB.Object<{
|
|
153
|
+
label: DB.MemberDecl<DB.String, true>;
|
|
154
|
+
text: DB.MemberDecl<DB.String, true>;
|
|
155
|
+
}>, []>>>, true>;
|
|
156
|
+
reconstruction: DB.MemberDecl<DB.String, false>;
|
|
157
|
+
references: DB.MemberDecl<DB.String, false>;
|
|
158
|
+
textAfter: DB.MemberDecl<DB.String, false>;
|
|
159
|
+
}>, []>>>;
|
|
160
|
+
}, []>>, false>;
|
|
161
|
+
legality: DB.MemberDecl<DB.String, false>;
|
|
162
|
+
availability: DB.MemberDecl<DB.String, false>;
|
|
163
|
+
special: DB.MemberDecl<DB.String, false>;
|
|
139
164
|
errata: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Errata", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"Erratum", DB.Object<{
|
|
140
165
|
date: DB.MemberDecl<DB.Date, true>;
|
|
141
166
|
description: DB.MemberDecl<DB.String, true>;
|
|
@@ -28,6 +28,10 @@ export const Book = DB.Entity(import.meta.url, {
|
|
|
28
28
|
comment: "The structure points of the item. Use an array if the item consists of multiple components that have individual structure points.",
|
|
29
29
|
type: DB.IncludeIdentifier(StructurePoints),
|
|
30
30
|
}),
|
|
31
|
+
contentQuality: DB.Optional({
|
|
32
|
+
comment: "The quality of the book’s content.",
|
|
33
|
+
type: DB.IncludeIdentifier(BookContentQuality),
|
|
34
|
+
}),
|
|
31
35
|
src,
|
|
32
36
|
translations: NestedTranslationMap(DB.Required, "Book", DB.Object({
|
|
33
37
|
name: DB.Required({
|
|
@@ -52,6 +56,18 @@ export const Book = DB.Entity(import.meta.url, {
|
|
|
52
56
|
}),
|
|
53
57
|
rules: DB.Optional({
|
|
54
58
|
comment: "Special rules text.",
|
|
59
|
+
type: DB.IncludeIdentifier(BookRules),
|
|
60
|
+
}),
|
|
61
|
+
legality: DB.Optional({
|
|
62
|
+
comment: "The legality of the item, if specified.",
|
|
63
|
+
type: DB.String({ minLength: 1, markdown: "inline" }),
|
|
64
|
+
}),
|
|
65
|
+
availability: DB.Optional({
|
|
66
|
+
comment: "The availability of the item, if specified.",
|
|
67
|
+
type: DB.String({ minLength: 1, markdown: "inline" }),
|
|
68
|
+
}),
|
|
69
|
+
special: DB.Optional({
|
|
70
|
+
comment: "Special properties or features of the item.",
|
|
55
71
|
type: DB.String({ minLength: 1, markdown: "block" }),
|
|
56
72
|
}),
|
|
57
73
|
errata: DB.Optional({
|
|
@@ -179,3 +195,77 @@ const IndefiniteBookCostVariant = DB.TypeAlias(import.meta.url, {
|
|
|
179
195
|
})),
|
|
180
196
|
}),
|
|
181
197
|
});
|
|
198
|
+
const BookContentQuality = DB.Enum(import.meta.url, {
|
|
199
|
+
name: "BookContentQuality",
|
|
200
|
+
comment: "The quality of the book’s content.",
|
|
201
|
+
values: () => ({
|
|
202
|
+
Modest: DB.EnumCase({ type: null }),
|
|
203
|
+
Average: DB.EnumCase({ type: null }),
|
|
204
|
+
Demanding: DB.EnumCase({ type: DB.Integer({ minimum: 1, maximum: 3 }) }),
|
|
205
|
+
}),
|
|
206
|
+
});
|
|
207
|
+
const BookRules = DB.Enum(import.meta.url, {
|
|
208
|
+
name: "BookRules",
|
|
209
|
+
comment: "Skills and abilities you can learn by reading the book, as well as any other rules and effects concerning the book.",
|
|
210
|
+
values: () => ({
|
|
211
|
+
Plain: DB.EnumCase({ type: DB.IncludeIdentifier(PlainBookRules) }),
|
|
212
|
+
Entertainment: DB.EnumCase({ type: null }),
|
|
213
|
+
ByEdition: DB.EnumCase({ type: DB.IncludeIdentifier(BookRulesByEdition) }),
|
|
214
|
+
}),
|
|
215
|
+
});
|
|
216
|
+
const PlainBookRules = DB.TypeAlias(import.meta.url, {
|
|
217
|
+
name: "PlainBookRules",
|
|
218
|
+
comment: "The book’s rules without any special effects or conditions.",
|
|
219
|
+
type: () => DB.Object({
|
|
220
|
+
text: DB.Required({
|
|
221
|
+
comment: "The (main) rules text.",
|
|
222
|
+
type: DB.String({ minLength: 1, markdown: "block" }),
|
|
223
|
+
}),
|
|
224
|
+
reconstruction: DB.Optional({
|
|
225
|
+
comment: "Rules for reconstructing certain skills or abilities from the book.",
|
|
226
|
+
type: DB.String({ minLength: 1, markdown: "block" }),
|
|
227
|
+
}),
|
|
228
|
+
references: DB.Optional({
|
|
229
|
+
comment: "References to skills and abilities that, while mentioned in the book, cannot be learned from this book alone.",
|
|
230
|
+
type: DB.String({ minLength: 1, markdown: "block" }),
|
|
231
|
+
}),
|
|
232
|
+
textAfter: DB.Optional({
|
|
233
|
+
comment: "Additional rules text that comes after all other rules.",
|
|
234
|
+
type: DB.String({ minLength: 1, markdown: "block" }),
|
|
235
|
+
}),
|
|
236
|
+
}),
|
|
237
|
+
});
|
|
238
|
+
const BookRulesByEdition = DB.TypeAlias(import.meta.url, {
|
|
239
|
+
name: "BookRulesByEdition",
|
|
240
|
+
comment: "The book’s rules with differences between each edition and more differentiation between types of rules.",
|
|
241
|
+
type: () => DB.Object({
|
|
242
|
+
editions: DB.Required({
|
|
243
|
+
type: DB.Array(DB.IncludeIdentifier(BookRulesOfEdition), { minItems: 1 }),
|
|
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
|
+
textAfter: DB.Optional({
|
|
254
|
+
comment: "Additional rules text that comes after all other rules.",
|
|
255
|
+
type: DB.String({ minLength: 1, markdown: "block" }),
|
|
256
|
+
}),
|
|
257
|
+
}),
|
|
258
|
+
});
|
|
259
|
+
const BookRulesOfEdition = DB.TypeAlias(import.meta.url, {
|
|
260
|
+
name: "BookRulesOfEdition",
|
|
261
|
+
type: () => DB.Object({
|
|
262
|
+
label: DB.Required({
|
|
263
|
+
comment: "The edition(s) the rules apply to.",
|
|
264
|
+
type: DB.String({ minLength: 1 }),
|
|
265
|
+
}),
|
|
266
|
+
text: DB.Required({
|
|
267
|
+
comment: "The rules text.",
|
|
268
|
+
type: DB.String({ minLength: 1, markdown: "block" }),
|
|
269
|
+
}),
|
|
270
|
+
}),
|
|
271
|
+
});
|
|
@@ -28,6 +28,10 @@ export declare const GeodeRitual: DB.Entity<"GeodeRitual", {
|
|
|
28
28
|
}>, []>>, false>;
|
|
29
29
|
}>, false>;
|
|
30
30
|
}>, []>>>, true>;
|
|
31
|
+
style: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"MapStyle", {
|
|
32
|
+
Compressed: DB.EnumCase<null>;
|
|
33
|
+
Verbose: DB.EnumCase<null>;
|
|
34
|
+
}, []>>, false>;
|
|
31
35
|
translations: DB.MemberDecl<DB.NestedEntityMap<"OneTimeCostMapTranslation", {
|
|
32
36
|
list_prepend: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
|
|
33
37
|
full: DB.MemberDecl<DB.String, true>;
|
|
@@ -148,6 +148,10 @@ export declare const ZibiljaRitual: DB.Entity<"ZibiljaRitual", {
|
|
|
148
148
|
}>, []>>, false>;
|
|
149
149
|
}>, false>;
|
|
150
150
|
}>, []>>>, true>;
|
|
151
|
+
style: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"MapStyle", {
|
|
152
|
+
Compressed: DB.EnumCase<null>;
|
|
153
|
+
Verbose: DB.EnumCase<null>;
|
|
154
|
+
}, []>>, false>;
|
|
151
155
|
translations: DB.MemberDecl<DB.NestedEntityMap<"OneTimeCostMapTranslation", {
|
|
152
156
|
list_prepend: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
|
|
153
157
|
full: DB.MemberDecl<DB.String, true>;
|
|
@@ -47,6 +47,10 @@ export declare const MagicalSign: DB.Entity<"MagicalSign", {
|
|
|
47
47
|
}>, []>>, false>;
|
|
48
48
|
}>, false>;
|
|
49
49
|
}>, []>>>, true>;
|
|
50
|
+
style: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"MapStyle", {
|
|
51
|
+
Compressed: DB.EnumCase<null>;
|
|
52
|
+
Verbose: DB.EnumCase<null>;
|
|
53
|
+
}, []>>, false>;
|
|
50
54
|
translations: DB.MemberDecl<DB.NestedEntityMap<"OneTimeCostMapTranslation", {
|
|
51
55
|
list_prepend: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"ResponsiveTextOptional", DB.Object<{
|
|
52
56
|
full: DB.MemberDecl<DB.String, true>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "optolith-database-schema",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.37.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",
|