@onlyworlds/sdk 3.1.0 → 4.0.0-alpha.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/AGENTS.md +4 -0
- package/CHANGELOG.md +86 -44
- package/README.md +83 -271
- package/SCHEMA.md +630 -0
- package/dist/index.d.ts +463 -1469
- package/dist/index.js +691 -994
- package/package.json +14 -6
- package/dist/index.d.mts +0 -3517
- package/dist/index.mjs +0 -1576
package/dist/index.d.mts
DELETED
|
@@ -1,3517 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Modern branded types for type-safe element relationships
|
|
3
|
-
* Provides compile-time safety while maintaining zero runtime overhead
|
|
4
|
-
*/
|
|
5
|
-
declare const __brand: unique symbol;
|
|
6
|
-
type Brand<B> = {
|
|
7
|
-
[__brand]: B;
|
|
8
|
-
};
|
|
9
|
-
/**
|
|
10
|
-
* Branded type for element IDs - ensures type safety for relationships
|
|
11
|
-
* @template T The element type this ID references
|
|
12
|
-
*/
|
|
13
|
-
type ElementId<T extends ElementType$1> = string & Brand<T>;
|
|
14
|
-
/**
|
|
15
|
-
* Branded type for arrays of element IDs
|
|
16
|
-
* @template T The element type these IDs reference
|
|
17
|
-
*/
|
|
18
|
-
type ElementIds<T extends ElementType$1> = ElementId<T>[];
|
|
19
|
-
/**
|
|
20
|
-
* Special type for IDs that can reference ANY element type
|
|
21
|
-
* Used in cases like Pin.element_type where the target can be any OnlyWorlds element
|
|
22
|
-
*/
|
|
23
|
-
type AnyElementId = ElementId<ElementType$1>;
|
|
24
|
-
/**
|
|
25
|
-
* Base fields shared by all OnlyWorlds elements
|
|
26
|
-
*/
|
|
27
|
-
interface BaseElement {
|
|
28
|
-
id?: string;
|
|
29
|
-
name: string;
|
|
30
|
-
description?: string;
|
|
31
|
-
image_url?: string;
|
|
32
|
-
supertype?: string;
|
|
33
|
-
subtype?: string;
|
|
34
|
-
world?: string;
|
|
35
|
-
created_at?: string;
|
|
36
|
-
updated_at?: string;
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* World element type
|
|
40
|
-
*/
|
|
41
|
-
interface World {
|
|
42
|
-
id?: string;
|
|
43
|
-
api_key: string;
|
|
44
|
-
name: string;
|
|
45
|
-
description?: string;
|
|
46
|
-
version?: string;
|
|
47
|
-
image_url?: string;
|
|
48
|
-
time_format_equivalents?: any[];
|
|
49
|
-
time_format_names?: any[];
|
|
50
|
-
time_basic_unit?: string;
|
|
51
|
-
time_range_min?: number;
|
|
52
|
-
time_range_max?: number;
|
|
53
|
-
time_current?: number;
|
|
54
|
-
user?: string;
|
|
55
|
-
created_at?: string;
|
|
56
|
-
updated_at?: string;
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* World input type for creation/updates
|
|
60
|
-
*/
|
|
61
|
-
interface WorldInput {
|
|
62
|
-
name: string;
|
|
63
|
-
description?: string;
|
|
64
|
-
version?: string;
|
|
65
|
-
image_url?: string;
|
|
66
|
-
time_format_equivalents?: any[];
|
|
67
|
-
time_format_names?: any[];
|
|
68
|
-
time_basic_unit?: string;
|
|
69
|
-
time_range_min?: number;
|
|
70
|
-
time_range_max?: number;
|
|
71
|
-
time_current?: number;
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Ability element type
|
|
75
|
-
* Fields organized by sections: Mechanics, World
|
|
76
|
-
*/
|
|
77
|
-
interface Ability extends BaseElement {
|
|
78
|
-
activation?: string;
|
|
79
|
-
duration?: number;
|
|
80
|
-
potency?: number;
|
|
81
|
-
range?: number;
|
|
82
|
-
effects?: ElementIds<ElementType$1.Phenomenon>;
|
|
83
|
-
challenges?: string;
|
|
84
|
-
talents?: ElementIds<ElementType$1.Trait>;
|
|
85
|
-
requisites?: ElementIds<ElementType$1.Construct>;
|
|
86
|
-
prevalence?: string;
|
|
87
|
-
tradition?: ElementId<ElementType$1.Construct>;
|
|
88
|
-
source?: ElementId<ElementType$1.Phenomenon>;
|
|
89
|
-
locus?: ElementId<ElementType$1.Location>;
|
|
90
|
-
instruments?: ElementIds<ElementType$1.Object>;
|
|
91
|
-
systems?: ElementIds<ElementType$1.Construct>;
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Object element type
|
|
95
|
-
* Fields organized by sections: Form, Function, World
|
|
96
|
-
*/
|
|
97
|
-
interface Object$1 extends BaseElement {
|
|
98
|
-
aesthetics?: string;
|
|
99
|
-
weight?: number;
|
|
100
|
-
amount?: number;
|
|
101
|
-
parent_object?: ElementId<ElementType$1.Object>;
|
|
102
|
-
materials?: ElementIds<ElementType$1.Construct>;
|
|
103
|
-
technology?: ElementIds<ElementType$1.Construct>;
|
|
104
|
-
utility?: string;
|
|
105
|
-
effects?: ElementIds<ElementType$1.Phenomenon>;
|
|
106
|
-
abilities?: ElementIds<ElementType$1.Ability>;
|
|
107
|
-
consumes?: ElementIds<ElementType$1.Construct>;
|
|
108
|
-
origins?: string;
|
|
109
|
-
location?: ElementId<ElementType$1.Location>;
|
|
110
|
-
language?: ElementId<ElementType$1.Language>;
|
|
111
|
-
affinities?: ElementIds<ElementType$1.Trait>;
|
|
112
|
-
}
|
|
113
|
-
/**
|
|
114
|
-
* Character element type
|
|
115
|
-
* Fields organized by sections: Constitution, Origins, World, Personality, Social, TTRPG
|
|
116
|
-
*/
|
|
117
|
-
interface Character extends BaseElement {
|
|
118
|
-
physicality?: string;
|
|
119
|
-
mentality?: string;
|
|
120
|
-
height?: number;
|
|
121
|
-
weight?: number;
|
|
122
|
-
species?: ElementIds<ElementType$1.Species>;
|
|
123
|
-
traits?: ElementIds<ElementType$1.Trait>;
|
|
124
|
-
abilities?: ElementIds<ElementType$1.Ability>;
|
|
125
|
-
background?: string;
|
|
126
|
-
motivations?: string;
|
|
127
|
-
birth_date?: number;
|
|
128
|
-
birthplace?: ElementId<ElementType$1.Location>;
|
|
129
|
-
languages?: ElementIds<ElementType$1.Language>;
|
|
130
|
-
reputation?: string;
|
|
131
|
-
location?: ElementId<ElementType$1.Location>;
|
|
132
|
-
objects?: ElementIds<ElementType$1.Object>;
|
|
133
|
-
institutions?: ElementIds<ElementType$1.Institution>;
|
|
134
|
-
charisma?: number;
|
|
135
|
-
coercion?: number;
|
|
136
|
-
competence?: number;
|
|
137
|
-
compassion?: number;
|
|
138
|
-
creativity?: number;
|
|
139
|
-
courage?: number;
|
|
140
|
-
family?: ElementIds<ElementType$1.Family>;
|
|
141
|
-
friends?: ElementIds<ElementType$1.Character>;
|
|
142
|
-
rivals?: ElementIds<ElementType$1.Character>;
|
|
143
|
-
level?: number;
|
|
144
|
-
hit_points?: number;
|
|
145
|
-
STR?: number;
|
|
146
|
-
DEX?: number;
|
|
147
|
-
CON?: number;
|
|
148
|
-
INT?: number;
|
|
149
|
-
WIS?: number;
|
|
150
|
-
CHA?: number;
|
|
151
|
-
}
|
|
152
|
-
/**
|
|
153
|
-
* Collective element type
|
|
154
|
-
* Fields organized by sections: Formation, Dynamics, World
|
|
155
|
-
*/
|
|
156
|
-
interface Collective extends BaseElement {
|
|
157
|
-
composition?: string;
|
|
158
|
-
count?: number;
|
|
159
|
-
formation_date?: number;
|
|
160
|
-
operator?: ElementId<ElementType$1.Institution>;
|
|
161
|
-
equipment?: ElementIds<ElementType$1.Construct>;
|
|
162
|
-
activity?: string;
|
|
163
|
-
disposition?: string;
|
|
164
|
-
state?: string;
|
|
165
|
-
abilities?: ElementIds<ElementType$1.Ability>;
|
|
166
|
-
symbolism?: ElementIds<ElementType$1.Construct>;
|
|
167
|
-
species?: ElementIds<ElementType$1.Species>;
|
|
168
|
-
characters?: ElementIds<ElementType$1.Character>;
|
|
169
|
-
creatures?: ElementIds<ElementType$1.Creature>;
|
|
170
|
-
phenomena?: ElementIds<ElementType$1.Phenomenon>;
|
|
171
|
-
}
|
|
172
|
-
/**
|
|
173
|
-
* Construct element type
|
|
174
|
-
* Fields organized by sections: Nature, Involves
|
|
175
|
-
*/
|
|
176
|
-
interface Construct extends BaseElement {
|
|
177
|
-
rationale?: string;
|
|
178
|
-
history?: string;
|
|
179
|
-
status?: string;
|
|
180
|
-
reach?: string;
|
|
181
|
-
start_date?: number;
|
|
182
|
-
end_date?: number;
|
|
183
|
-
founder?: ElementId<ElementType$1.Character>;
|
|
184
|
-
custodian?: ElementId<ElementType$1.Institution>;
|
|
185
|
-
characters?: ElementIds<ElementType$1.Character>;
|
|
186
|
-
objects?: ElementIds<ElementType$1.Object>;
|
|
187
|
-
locations?: ElementIds<ElementType$1.Location>;
|
|
188
|
-
species?: ElementIds<ElementType$1.Species>;
|
|
189
|
-
creatures?: ElementIds<ElementType$1.Creature>;
|
|
190
|
-
institutions?: ElementIds<ElementType$1.Institution>;
|
|
191
|
-
traits?: ElementIds<ElementType$1.Trait>;
|
|
192
|
-
collectives?: ElementIds<ElementType$1.Collective>;
|
|
193
|
-
zones?: ElementIds<ElementType$1.Zone>;
|
|
194
|
-
abilities?: ElementIds<ElementType$1.Ability>;
|
|
195
|
-
phenomena?: ElementIds<ElementType$1.Phenomenon>;
|
|
196
|
-
languages?: ElementIds<ElementType$1.Language>;
|
|
197
|
-
families?: ElementIds<ElementType$1.Family>;
|
|
198
|
-
relations?: ElementIds<ElementType$1.Relation>;
|
|
199
|
-
titles?: ElementIds<ElementType$1.Title>;
|
|
200
|
-
constructs?: ElementIds<ElementType$1.Construct>;
|
|
201
|
-
events?: ElementIds<ElementType$1.Event>;
|
|
202
|
-
narratives?: ElementIds<ElementType$1.Narrative>;
|
|
203
|
-
}
|
|
204
|
-
/**
|
|
205
|
-
* Creature element type
|
|
206
|
-
* Fields organized by sections: Biology, Behaviour, World, TTRPG
|
|
207
|
-
*/
|
|
208
|
-
interface Creature extends BaseElement {
|
|
209
|
-
appearance?: string;
|
|
210
|
-
weight?: number;
|
|
211
|
-
height?: number;
|
|
212
|
-
species?: ElementIds<ElementType$1.Species>;
|
|
213
|
-
habits?: string;
|
|
214
|
-
demeanor?: string;
|
|
215
|
-
traits?: ElementIds<ElementType$1.Trait>;
|
|
216
|
-
abilities?: ElementIds<ElementType$1.Ability>;
|
|
217
|
-
languages?: ElementIds<ElementType$1.Language>;
|
|
218
|
-
status?: string;
|
|
219
|
-
birth_date?: number;
|
|
220
|
-
location?: ElementId<ElementType$1.Location>;
|
|
221
|
-
zone?: ElementId<ElementType$1.Zone>;
|
|
222
|
-
challenge_rating?: number;
|
|
223
|
-
hit_points?: number;
|
|
224
|
-
armor_class?: number;
|
|
225
|
-
speed?: number;
|
|
226
|
-
actions?: ElementIds<ElementType$1.Ability>;
|
|
227
|
-
}
|
|
228
|
-
/**
|
|
229
|
-
* Event element type
|
|
230
|
-
* Fields organized by sections: Nature, Involves
|
|
231
|
-
*/
|
|
232
|
-
interface Event extends BaseElement {
|
|
233
|
-
history?: string;
|
|
234
|
-
challenges?: string;
|
|
235
|
-
consequences?: string;
|
|
236
|
-
start_date?: number;
|
|
237
|
-
end_date?: number;
|
|
238
|
-
triggers?: ElementIds<ElementType$1.Event>;
|
|
239
|
-
characters?: ElementIds<ElementType$1.Character>;
|
|
240
|
-
objects?: ElementIds<ElementType$1.Object>;
|
|
241
|
-
locations?: ElementIds<ElementType$1.Location>;
|
|
242
|
-
species?: ElementIds<ElementType$1.Species>;
|
|
243
|
-
creatures?: ElementIds<ElementType$1.Creature>;
|
|
244
|
-
institutions?: ElementIds<ElementType$1.Institution>;
|
|
245
|
-
traits?: ElementIds<ElementType$1.Trait>;
|
|
246
|
-
collectives?: ElementIds<ElementType$1.Collective>;
|
|
247
|
-
zones?: ElementIds<ElementType$1.Zone>;
|
|
248
|
-
abilities?: ElementIds<ElementType$1.Ability>;
|
|
249
|
-
phenomena?: ElementIds<ElementType$1.Phenomenon>;
|
|
250
|
-
languages?: ElementIds<ElementType$1.Language>;
|
|
251
|
-
families?: ElementIds<ElementType$1.Family>;
|
|
252
|
-
relations?: ElementIds<ElementType$1.Relation>;
|
|
253
|
-
titles?: ElementIds<ElementType$1.Title>;
|
|
254
|
-
constructs?: ElementIds<ElementType$1.Construct>;
|
|
255
|
-
}
|
|
256
|
-
/**
|
|
257
|
-
* Family element type
|
|
258
|
-
* Fields organized by sections: Identity, World
|
|
259
|
-
*/
|
|
260
|
-
interface Family extends BaseElement {
|
|
261
|
-
spirit?: string;
|
|
262
|
-
history?: string;
|
|
263
|
-
traditions?: ElementIds<ElementType$1.Construct>;
|
|
264
|
-
traits?: ElementIds<ElementType$1.Trait>;
|
|
265
|
-
abilities?: ElementIds<ElementType$1.Ability>;
|
|
266
|
-
languages?: ElementIds<ElementType$1.Language>;
|
|
267
|
-
ancestors?: ElementIds<ElementType$1.Character>;
|
|
268
|
-
reputation?: string;
|
|
269
|
-
estates?: ElementIds<ElementType$1.Location>;
|
|
270
|
-
governs?: ElementIds<ElementType$1.Institution>;
|
|
271
|
-
heirlooms?: ElementIds<ElementType$1.Object>;
|
|
272
|
-
creatures?: ElementIds<ElementType$1.Creature>;
|
|
273
|
-
}
|
|
274
|
-
/**
|
|
275
|
-
* Institution element type
|
|
276
|
-
* Fields organized by sections: Foundation, Claims, World
|
|
277
|
-
*/
|
|
278
|
-
interface Institution extends BaseElement {
|
|
279
|
-
doctrine?: string;
|
|
280
|
-
founding_date?: number;
|
|
281
|
-
parent_institution?: ElementId<ElementType$1.Institution>;
|
|
282
|
-
zones?: ElementIds<ElementType$1.Zone>;
|
|
283
|
-
objects?: ElementIds<ElementType$1.Object>;
|
|
284
|
-
creatures?: ElementIds<ElementType$1.Creature>;
|
|
285
|
-
status?: string;
|
|
286
|
-
allies?: ElementIds<ElementType$1.Institution>;
|
|
287
|
-
adversaries?: ElementIds<ElementType$1.Institution>;
|
|
288
|
-
constructs?: ElementIds<ElementType$1.Construct>;
|
|
289
|
-
}
|
|
290
|
-
/**
|
|
291
|
-
* Language element type
|
|
292
|
-
* Fields organized by sections: Structure, World
|
|
293
|
-
*/
|
|
294
|
-
interface Language extends BaseElement {
|
|
295
|
-
phonology?: string;
|
|
296
|
-
grammar?: string;
|
|
297
|
-
lexicon?: string;
|
|
298
|
-
writing?: string;
|
|
299
|
-
classification?: ElementId<ElementType$1.Construct>;
|
|
300
|
-
status?: string;
|
|
301
|
-
spread?: ElementIds<ElementType$1.Location>;
|
|
302
|
-
dialects?: ElementIds<ElementType$1.Language>;
|
|
303
|
-
}
|
|
304
|
-
/**
|
|
305
|
-
* Law element type
|
|
306
|
-
* Fields organized by sections: Code, World
|
|
307
|
-
*/
|
|
308
|
-
interface Law extends BaseElement {
|
|
309
|
-
declaration?: string;
|
|
310
|
-
purpose?: string;
|
|
311
|
-
date?: number;
|
|
312
|
-
parent_law?: ElementId<ElementType$1.Law>;
|
|
313
|
-
penalties?: ElementIds<ElementType$1.Construct>;
|
|
314
|
-
author?: ElementId<ElementType$1.Institution>;
|
|
315
|
-
locations?: ElementIds<ElementType$1.Location>;
|
|
316
|
-
zones?: ElementIds<ElementType$1.Zone>;
|
|
317
|
-
prohibitions?: ElementIds<ElementType$1.Construct>;
|
|
318
|
-
adjudicators?: ElementIds<ElementType$1.Title>;
|
|
319
|
-
enforcers?: ElementIds<ElementType$1.Title>;
|
|
320
|
-
}
|
|
321
|
-
/**
|
|
322
|
-
* Location element type
|
|
323
|
-
* Fields organized by sections: Setting, Politics, World, Production, Commerce, Construction, Defense
|
|
324
|
-
*/
|
|
325
|
-
interface Location extends BaseElement {
|
|
326
|
-
form?: string;
|
|
327
|
-
function?: string;
|
|
328
|
-
founding_date?: number;
|
|
329
|
-
parent_location?: ElementId<ElementType$1.Location>;
|
|
330
|
-
populations?: ElementIds<ElementType$1.Collective>;
|
|
331
|
-
political_climate?: string;
|
|
332
|
-
primary_power?: ElementId<ElementType$1.Institution>;
|
|
333
|
-
governing_title?: ElementId<ElementType$1.Title>;
|
|
334
|
-
secondary_powers?: ElementIds<ElementType$1.Institution>;
|
|
335
|
-
zone?: ElementId<ElementType$1.Zone>;
|
|
336
|
-
rival?: ElementId<ElementType$1.Location>;
|
|
337
|
-
partner?: ElementId<ElementType$1.Location>;
|
|
338
|
-
customs?: string;
|
|
339
|
-
founders?: ElementIds<ElementType$1.Character>;
|
|
340
|
-
cults?: ElementIds<ElementType$1.Construct>;
|
|
341
|
-
delicacies?: ElementIds<ElementType$1.Species>;
|
|
342
|
-
extraction_methods?: ElementIds<ElementType$1.Construct>;
|
|
343
|
-
extraction_goods?: ElementIds<ElementType$1.Construct>;
|
|
344
|
-
industry_methods?: ElementIds<ElementType$1.Construct>;
|
|
345
|
-
industry_goods?: ElementIds<ElementType$1.Construct>;
|
|
346
|
-
infrastructure?: string;
|
|
347
|
-
extraction_markets?: ElementIds<ElementType$1.Location>;
|
|
348
|
-
industry_markets?: ElementIds<ElementType$1.Location>;
|
|
349
|
-
currencies?: ElementIds<ElementType$1.Construct>;
|
|
350
|
-
architecture?: string;
|
|
351
|
-
buildings?: ElementIds<ElementType$1.Object>;
|
|
352
|
-
building_methods?: ElementIds<ElementType$1.Construct>;
|
|
353
|
-
defensibility?: string;
|
|
354
|
-
elevation?: number;
|
|
355
|
-
fighters?: ElementIds<ElementType$1.Construct>;
|
|
356
|
-
defensive_objects?: ElementIds<ElementType$1.Object>;
|
|
357
|
-
}
|
|
358
|
-
/**
|
|
359
|
-
* Phenomenon element type
|
|
360
|
-
* Fields organized by sections: Mechanics, World
|
|
361
|
-
*/
|
|
362
|
-
interface Phenomenon extends BaseElement {
|
|
363
|
-
expression?: string;
|
|
364
|
-
effects?: string;
|
|
365
|
-
duration?: number;
|
|
366
|
-
catalysts?: ElementIds<ElementType$1.Object>;
|
|
367
|
-
empowerments?: ElementIds<ElementType$1.Ability>;
|
|
368
|
-
mythology?: string;
|
|
369
|
-
system?: ElementId<ElementType$1.Phenomenon>;
|
|
370
|
-
triggers?: ElementIds<ElementType$1.Construct>;
|
|
371
|
-
wielders?: ElementIds<ElementType$1.Character>;
|
|
372
|
-
environments?: ElementIds<ElementType$1.Location>;
|
|
373
|
-
}
|
|
374
|
-
/**
|
|
375
|
-
* Relation element type
|
|
376
|
-
* Fields organized by sections: Nature, Involves
|
|
377
|
-
*/
|
|
378
|
-
interface Relation extends BaseElement {
|
|
379
|
-
background?: string;
|
|
380
|
-
start_date?: number;
|
|
381
|
-
end_date?: number;
|
|
382
|
-
intensity?: number;
|
|
383
|
-
actor?: ElementId<ElementType$1.Character>;
|
|
384
|
-
events?: ElementIds<ElementType$1.Event>;
|
|
385
|
-
characters?: ElementIds<ElementType$1.Character>;
|
|
386
|
-
objects?: ElementIds<ElementType$1.Object>;
|
|
387
|
-
locations?: ElementIds<ElementType$1.Location>;
|
|
388
|
-
species?: ElementIds<ElementType$1.Species>;
|
|
389
|
-
creatures?: ElementIds<ElementType$1.Creature>;
|
|
390
|
-
institutions?: ElementIds<ElementType$1.Institution>;
|
|
391
|
-
traits?: ElementIds<ElementType$1.Trait>;
|
|
392
|
-
collectives?: ElementIds<ElementType$1.Collective>;
|
|
393
|
-
zones?: ElementIds<ElementType$1.Zone>;
|
|
394
|
-
abilities?: ElementIds<ElementType$1.Ability>;
|
|
395
|
-
phenomena?: ElementIds<ElementType$1.Phenomenon>;
|
|
396
|
-
languages?: ElementIds<ElementType$1.Language>;
|
|
397
|
-
families?: ElementIds<ElementType$1.Family>;
|
|
398
|
-
titles?: ElementIds<ElementType$1.Title>;
|
|
399
|
-
constructs?: ElementIds<ElementType$1.Construct>;
|
|
400
|
-
narratives?: ElementIds<ElementType$1.Narrative>;
|
|
401
|
-
}
|
|
402
|
-
/**
|
|
403
|
-
* Species element type
|
|
404
|
-
* Fields organized by sections: Biology, Psychology, World
|
|
405
|
-
*/
|
|
406
|
-
interface Species extends BaseElement {
|
|
407
|
-
appearance?: string;
|
|
408
|
-
life_span?: number;
|
|
409
|
-
weight?: number;
|
|
410
|
-
nourishment?: ElementIds<ElementType$1.Species>;
|
|
411
|
-
reproduction?: ElementIds<ElementType$1.Construct>;
|
|
412
|
-
adaptations?: ElementIds<ElementType$1.Ability>;
|
|
413
|
-
instincts?: string;
|
|
414
|
-
sociality?: string;
|
|
415
|
-
temperament?: string;
|
|
416
|
-
communication?: string;
|
|
417
|
-
aggression?: number;
|
|
418
|
-
traits?: ElementIds<ElementType$1.Trait>;
|
|
419
|
-
role?: string;
|
|
420
|
-
parent_species?: ElementId<ElementType$1.Species>;
|
|
421
|
-
locations?: ElementIds<ElementType$1.Location>;
|
|
422
|
-
zones?: ElementIds<ElementType$1.Zone>;
|
|
423
|
-
affinities?: ElementIds<ElementType$1.Phenomenon>;
|
|
424
|
-
}
|
|
425
|
-
/**
|
|
426
|
-
* Zone element type
|
|
427
|
-
* Fields organized by sections: Scope, World
|
|
428
|
-
*/
|
|
429
|
-
interface Zone extends BaseElement {
|
|
430
|
-
role?: string;
|
|
431
|
-
start_date?: number;
|
|
432
|
-
end_date?: number;
|
|
433
|
-
phenomena?: ElementIds<ElementType$1.Phenomenon>;
|
|
434
|
-
linked_zones?: ElementIds<ElementType$1.Zone>;
|
|
435
|
-
context?: string;
|
|
436
|
-
populations?: ElementIds<ElementType$1.Collective>;
|
|
437
|
-
titles?: ElementIds<ElementType$1.Title>;
|
|
438
|
-
principles?: ElementIds<ElementType$1.Construct>;
|
|
439
|
-
}
|
|
440
|
-
/**
|
|
441
|
-
* Title element type
|
|
442
|
-
* Fields organized by sections: Mandate, World
|
|
443
|
-
*/
|
|
444
|
-
interface Title extends BaseElement {
|
|
445
|
-
authority?: string;
|
|
446
|
-
eligibility?: string;
|
|
447
|
-
grant_date?: number;
|
|
448
|
-
revoke_date?: number;
|
|
449
|
-
issuer?: ElementId<ElementType$1.Institution>;
|
|
450
|
-
body?: ElementId<ElementType$1.Institution>;
|
|
451
|
-
superior_title?: ElementId<ElementType$1.Title>;
|
|
452
|
-
holders?: ElementIds<ElementType$1.Character>;
|
|
453
|
-
symbols?: ElementIds<ElementType$1.Object>;
|
|
454
|
-
status?: string;
|
|
455
|
-
history?: string;
|
|
456
|
-
characters?: ElementIds<ElementType$1.Character>;
|
|
457
|
-
institutions?: ElementIds<ElementType$1.Institution>;
|
|
458
|
-
families?: ElementIds<ElementType$1.Family>;
|
|
459
|
-
zones?: ElementIds<ElementType$1.Zone>;
|
|
460
|
-
locations?: ElementIds<ElementType$1.Location>;
|
|
461
|
-
objects?: ElementIds<ElementType$1.Object>;
|
|
462
|
-
constructs?: ElementIds<ElementType$1.Construct>;
|
|
463
|
-
laws?: ElementIds<ElementType$1.Law>;
|
|
464
|
-
collectives?: ElementIds<ElementType$1.Collective>;
|
|
465
|
-
creatures?: ElementIds<ElementType$1.Creature>;
|
|
466
|
-
phenomena?: ElementIds<ElementType$1.Phenomenon>;
|
|
467
|
-
species?: ElementIds<ElementType$1.Species>;
|
|
468
|
-
languages?: ElementIds<ElementType$1.Language>;
|
|
469
|
-
}
|
|
470
|
-
/**
|
|
471
|
-
* Trait element type
|
|
472
|
-
* Fields organized by sections: Qualitative, Quantitative, World
|
|
473
|
-
*/
|
|
474
|
-
interface Trait extends BaseElement {
|
|
475
|
-
social_effects?: string;
|
|
476
|
-
physical_effects?: string;
|
|
477
|
-
functional_effects?: string;
|
|
478
|
-
personality_effects?: string;
|
|
479
|
-
behaviour_effects?: string;
|
|
480
|
-
charisma?: number;
|
|
481
|
-
coercion?: number;
|
|
482
|
-
competence?: number;
|
|
483
|
-
compassion?: number;
|
|
484
|
-
creativity?: number;
|
|
485
|
-
courage?: number;
|
|
486
|
-
significance?: string;
|
|
487
|
-
anti_trait?: ElementId<ElementType$1.Trait>;
|
|
488
|
-
empowered_abilities?: ElementIds<ElementType$1.Ability>;
|
|
489
|
-
}
|
|
490
|
-
/**
|
|
491
|
-
* Narrative element type
|
|
492
|
-
* Fields organized by sections: Context, Involves
|
|
493
|
-
*/
|
|
494
|
-
interface Narrative extends BaseElement {
|
|
495
|
-
story?: string;
|
|
496
|
-
consequences?: string;
|
|
497
|
-
start_date?: number;
|
|
498
|
-
end_date?: number;
|
|
499
|
-
order?: number;
|
|
500
|
-
parent_narrative?: ElementId<ElementType$1.Narrative>;
|
|
501
|
-
protagonist?: ElementId<ElementType$1.Character>;
|
|
502
|
-
antagonist?: ElementId<ElementType$1.Character>;
|
|
503
|
-
narrator?: ElementId<ElementType$1.Character>;
|
|
504
|
-
conservator?: ElementId<ElementType$1.Institution>;
|
|
505
|
-
events?: ElementIds<ElementType$1.Event>;
|
|
506
|
-
characters?: ElementIds<ElementType$1.Character>;
|
|
507
|
-
objects?: ElementIds<ElementType$1.Object>;
|
|
508
|
-
locations?: ElementIds<ElementType$1.Location>;
|
|
509
|
-
species?: ElementIds<ElementType$1.Species>;
|
|
510
|
-
creatures?: ElementIds<ElementType$1.Creature>;
|
|
511
|
-
institutions?: ElementIds<ElementType$1.Institution>;
|
|
512
|
-
traits?: ElementIds<ElementType$1.Trait>;
|
|
513
|
-
collectives?: ElementIds<ElementType$1.Collective>;
|
|
514
|
-
zones?: ElementIds<ElementType$1.Zone>;
|
|
515
|
-
abilities?: ElementIds<ElementType$1.Ability>;
|
|
516
|
-
phenomena?: ElementIds<ElementType$1.Phenomenon>;
|
|
517
|
-
languages?: ElementIds<ElementType$1.Language>;
|
|
518
|
-
families?: ElementIds<ElementType$1.Family>;
|
|
519
|
-
relations?: ElementIds<ElementType$1.Relation>;
|
|
520
|
-
titles?: ElementIds<ElementType$1.Title>;
|
|
521
|
-
constructs?: ElementIds<ElementType$1.Construct>;
|
|
522
|
-
laws?: ElementIds<ElementType$1.Law>;
|
|
523
|
-
}
|
|
524
|
-
/**
|
|
525
|
-
* Map element type
|
|
526
|
-
* Fields organized by sections: Details
|
|
527
|
-
*/
|
|
528
|
-
interface Map extends BaseElement {
|
|
529
|
-
background_color?: string;
|
|
530
|
-
hierarchy?: number;
|
|
531
|
-
width?: number;
|
|
532
|
-
height?: number;
|
|
533
|
-
depth?: number;
|
|
534
|
-
parent_map?: ElementId<ElementType$1.Map>;
|
|
535
|
-
location?: ElementId<ElementType$1.Location>;
|
|
536
|
-
}
|
|
537
|
-
/**
|
|
538
|
-
* Marker element type
|
|
539
|
-
* Fields organized by sections: Details
|
|
540
|
-
*/
|
|
541
|
-
interface Marker extends BaseElement {
|
|
542
|
-
map?: ElementId<ElementType$1.Map>;
|
|
543
|
-
zone?: ElementId<ElementType$1.Zone>;
|
|
544
|
-
x?: number;
|
|
545
|
-
y?: number;
|
|
546
|
-
z?: number;
|
|
547
|
-
order?: number;
|
|
548
|
-
}
|
|
549
|
-
/**
|
|
550
|
-
* Pin element type
|
|
551
|
-
* Fields organized by sections: Details
|
|
552
|
-
*/
|
|
553
|
-
interface Pin extends BaseElement {
|
|
554
|
-
map?: ElementId<ElementType$1.Map>;
|
|
555
|
-
element_type?: ElementType$1;
|
|
556
|
-
element_id?: AnyElementId;
|
|
557
|
-
/**
|
|
558
|
-
* X coordinate on map (must be integer)
|
|
559
|
-
* The API requires integer values. Float coordinates from mouse events
|
|
560
|
-
* or calculations should be rounded: Math.round(x)
|
|
561
|
-
*/
|
|
562
|
-
x?: number;
|
|
563
|
-
/**
|
|
564
|
-
* Y coordinate on map (must be integer)
|
|
565
|
-
* The API requires integer values. Float coordinates from mouse events
|
|
566
|
-
* or calculations should be rounded: Math.round(y)
|
|
567
|
-
*/
|
|
568
|
-
y?: number;
|
|
569
|
-
/**
|
|
570
|
-
* Z coordinate for 3D positioning (must be integer)
|
|
571
|
-
* The API requires integer values. Float coordinates should be rounded: Math.round(z)
|
|
572
|
-
*/
|
|
573
|
-
z?: number;
|
|
574
|
-
}
|
|
575
|
-
/**
|
|
576
|
-
* Input types for API requests
|
|
577
|
-
* Use field names without _id/_ids suffix - prepareRelations() handles conversion
|
|
578
|
-
*/
|
|
579
|
-
interface AbilityInput extends Omit<Ability, 'tradition' | 'source' | 'locus' | 'effects' | 'talents' | 'requisites' | 'instruments' | 'systems'> {
|
|
580
|
-
tradition?: string;
|
|
581
|
-
source?: string;
|
|
582
|
-
locus?: string;
|
|
583
|
-
effects?: string[];
|
|
584
|
-
talents?: string[];
|
|
585
|
-
requisites?: string[];
|
|
586
|
-
instruments?: string[];
|
|
587
|
-
systems?: string[];
|
|
588
|
-
}
|
|
589
|
-
interface ObjectInput extends Omit<Object$1, 'parent_object' | 'location' | 'language' | 'materials' | 'technology' | 'effects' | 'abilities' | 'consumes' | 'affinities'> {
|
|
590
|
-
parent_object?: string;
|
|
591
|
-
location?: string;
|
|
592
|
-
language?: string;
|
|
593
|
-
materials?: string[];
|
|
594
|
-
technology?: string[];
|
|
595
|
-
effects?: string[];
|
|
596
|
-
abilities?: string[];
|
|
597
|
-
consumes?: string[];
|
|
598
|
-
affinities?: string[];
|
|
599
|
-
}
|
|
600
|
-
interface CharacterInput extends Omit<Character, 'birthplace' | 'location' | 'species' | 'traits' | 'abilities' | 'languages' | 'objects' | 'institutions' | 'family' | 'friends' | 'rivals'> {
|
|
601
|
-
birthplace?: string;
|
|
602
|
-
location?: string;
|
|
603
|
-
species?: string[];
|
|
604
|
-
traits?: string[];
|
|
605
|
-
abilities?: string[];
|
|
606
|
-
languages?: string[];
|
|
607
|
-
objects?: string[];
|
|
608
|
-
institutions?: string[];
|
|
609
|
-
family?: string[];
|
|
610
|
-
friends?: string[];
|
|
611
|
-
rivals?: string[];
|
|
612
|
-
}
|
|
613
|
-
interface CollectiveInput extends Omit<Collective, 'operator' | 'equipment' | 'abilities' | 'symbolism' | 'species' | 'characters' | 'creatures' | 'phenomena'> {
|
|
614
|
-
operator?: string;
|
|
615
|
-
equipment?: string[];
|
|
616
|
-
abilities?: string[];
|
|
617
|
-
symbolism?: string[];
|
|
618
|
-
species?: string[];
|
|
619
|
-
characters?: string[];
|
|
620
|
-
creatures?: string[];
|
|
621
|
-
phenomena?: string[];
|
|
622
|
-
}
|
|
623
|
-
interface ConstructInput extends Omit<Construct, 'founder' | 'custodian' | 'characters' | 'objects' | 'locations' | 'species' | 'creatures' | 'institutions' | 'traits' | 'collectives' | 'zones' | 'abilities' | 'phenomena' | 'languages' | 'families' | 'relations' | 'titles' | 'constructs' | 'events' | 'narratives'> {
|
|
624
|
-
founder?: string;
|
|
625
|
-
custodian?: string;
|
|
626
|
-
characters?: string[];
|
|
627
|
-
objects?: string[];
|
|
628
|
-
locations?: string[];
|
|
629
|
-
species?: string[];
|
|
630
|
-
creatures?: string[];
|
|
631
|
-
institutions?: string[];
|
|
632
|
-
traits?: string[];
|
|
633
|
-
collectives?: string[];
|
|
634
|
-
zones?: string[];
|
|
635
|
-
abilities?: string[];
|
|
636
|
-
phenomena?: string[];
|
|
637
|
-
languages?: string[];
|
|
638
|
-
families?: string[];
|
|
639
|
-
relations?: string[];
|
|
640
|
-
titles?: string[];
|
|
641
|
-
constructs?: string[];
|
|
642
|
-
events?: string[];
|
|
643
|
-
narratives?: string[];
|
|
644
|
-
}
|
|
645
|
-
interface CreatureInput extends Omit<Creature, 'location' | 'zone' | 'species' | 'traits' | 'abilities' | 'languages' | 'actions'> {
|
|
646
|
-
location?: string;
|
|
647
|
-
zone?: string;
|
|
648
|
-
species?: string[];
|
|
649
|
-
traits?: string[];
|
|
650
|
-
abilities?: string[];
|
|
651
|
-
languages?: string[];
|
|
652
|
-
actions?: string[];
|
|
653
|
-
}
|
|
654
|
-
interface EventInput extends Omit<Event, 'triggers' | 'characters' | 'objects' | 'locations' | 'species' | 'creatures' | 'institutions' | 'traits' | 'collectives' | 'zones' | 'abilities' | 'phenomena' | 'languages' | 'families' | 'relations' | 'titles' | 'constructs'> {
|
|
655
|
-
triggers?: string[];
|
|
656
|
-
characters?: string[];
|
|
657
|
-
objects?: string[];
|
|
658
|
-
locations?: string[];
|
|
659
|
-
species?: string[];
|
|
660
|
-
creatures?: string[];
|
|
661
|
-
institutions?: string[];
|
|
662
|
-
traits?: string[];
|
|
663
|
-
collectives?: string[];
|
|
664
|
-
zones?: string[];
|
|
665
|
-
abilities?: string[];
|
|
666
|
-
phenomena?: string[];
|
|
667
|
-
languages?: string[];
|
|
668
|
-
families?: string[];
|
|
669
|
-
relations?: string[];
|
|
670
|
-
titles?: string[];
|
|
671
|
-
constructs?: string[];
|
|
672
|
-
}
|
|
673
|
-
interface FamilyInput extends Omit<Family, 'traditions' | 'traits' | 'abilities' | 'languages' | 'ancestors' | 'estates' | 'governs' | 'heirlooms' | 'creatures'> {
|
|
674
|
-
traditions?: string[];
|
|
675
|
-
traits?: string[];
|
|
676
|
-
abilities?: string[];
|
|
677
|
-
languages?: string[];
|
|
678
|
-
ancestors?: string[];
|
|
679
|
-
estates?: string[];
|
|
680
|
-
governs?: string[];
|
|
681
|
-
heirlooms?: string[];
|
|
682
|
-
creatures?: string[];
|
|
683
|
-
}
|
|
684
|
-
interface InstitutionInput extends Omit<Institution, 'parent_institution' | 'zones' | 'objects' | 'creatures' | 'allies' | 'adversaries' | 'constructs'> {
|
|
685
|
-
parent_institution?: string;
|
|
686
|
-
zones?: string[];
|
|
687
|
-
objects?: string[];
|
|
688
|
-
creatures?: string[];
|
|
689
|
-
allies?: string[];
|
|
690
|
-
adversaries?: string[];
|
|
691
|
-
constructs?: string[];
|
|
692
|
-
}
|
|
693
|
-
interface LanguageInput extends Omit<Language, 'classification' | 'spread' | 'dialects'> {
|
|
694
|
-
classification?: string;
|
|
695
|
-
spread?: string[];
|
|
696
|
-
dialects?: string[];
|
|
697
|
-
}
|
|
698
|
-
interface LawInput extends Omit<Law, 'parent_law' | 'author' | 'penalties' | 'locations' | 'zones' | 'prohibitions' | 'adjudicators' | 'enforcers'> {
|
|
699
|
-
parent_law?: string;
|
|
700
|
-
author?: string;
|
|
701
|
-
penalties?: string[];
|
|
702
|
-
locations?: string[];
|
|
703
|
-
zones?: string[];
|
|
704
|
-
prohibitions?: string[];
|
|
705
|
-
adjudicators?: string[];
|
|
706
|
-
enforcers?: string[];
|
|
707
|
-
}
|
|
708
|
-
interface LocationInput extends Omit<Location, 'parent_location' | 'primary_power' | 'governing_title' | 'zone' | 'rival' | 'partner' | 'populations' | 'secondary_powers' | 'founders' | 'cults' | 'delicacies' | 'extraction_methods' | 'extraction_goods' | 'industry_methods' | 'industry_goods' | 'extraction_markets' | 'industry_markets' | 'currencies' | 'buildings' | 'building_methods' | 'fighters' | 'defensive_objects'> {
|
|
709
|
-
parent_location?: string;
|
|
710
|
-
primary_power?: string;
|
|
711
|
-
governing_title?: string;
|
|
712
|
-
zone?: string;
|
|
713
|
-
rival?: string;
|
|
714
|
-
partner?: string;
|
|
715
|
-
populations?: string[];
|
|
716
|
-
secondary_powers?: string[];
|
|
717
|
-
founders?: string[];
|
|
718
|
-
cults?: string[];
|
|
719
|
-
delicacies?: string[];
|
|
720
|
-
extraction_methods?: string[];
|
|
721
|
-
extraction_goods?: string[];
|
|
722
|
-
industry_methods?: string[];
|
|
723
|
-
industry_goods?: string[];
|
|
724
|
-
extraction_markets?: string[];
|
|
725
|
-
industry_markets?: string[];
|
|
726
|
-
currencies?: string[];
|
|
727
|
-
buildings?: string[];
|
|
728
|
-
building_methods?: string[];
|
|
729
|
-
fighters?: string[];
|
|
730
|
-
defensive_objects?: string[];
|
|
731
|
-
}
|
|
732
|
-
interface PhenomenonInput extends Omit<Phenomenon, 'system' | 'catalysts' | 'empowerments' | 'triggers' | 'wielders' | 'environments'> {
|
|
733
|
-
system?: string;
|
|
734
|
-
catalysts?: string[];
|
|
735
|
-
empowerments?: string[];
|
|
736
|
-
triggers?: string[];
|
|
737
|
-
wielders?: string[];
|
|
738
|
-
environments?: string[];
|
|
739
|
-
}
|
|
740
|
-
interface RelationInput extends Omit<Relation, 'actor' | 'characters' | 'objects' | 'locations' | 'species' | 'creatures' | 'institutions' | 'traits' | 'collectives' | 'zones' | 'abilities' | 'phenomena' | 'languages' | 'families' | 'titles' | 'constructs' | 'events' | 'narratives'> {
|
|
741
|
-
actor?: string;
|
|
742
|
-
characters?: string[];
|
|
743
|
-
objects?: string[];
|
|
744
|
-
locations?: string[];
|
|
745
|
-
species?: string[];
|
|
746
|
-
creatures?: string[];
|
|
747
|
-
institutions?: string[];
|
|
748
|
-
traits?: string[];
|
|
749
|
-
collectives?: string[];
|
|
750
|
-
zones?: string[];
|
|
751
|
-
abilities?: string[];
|
|
752
|
-
phenomena?: string[];
|
|
753
|
-
languages?: string[];
|
|
754
|
-
families?: string[];
|
|
755
|
-
titles?: string[];
|
|
756
|
-
constructs?: string[];
|
|
757
|
-
events?: string[];
|
|
758
|
-
narratives?: string[];
|
|
759
|
-
}
|
|
760
|
-
interface SpeciesInput extends Omit<Species, 'parent_species' | 'nourishment' | 'reproduction' | 'adaptations' | 'traits' | 'locations' | 'zones' | 'affinities'> {
|
|
761
|
-
parent_species?: string;
|
|
762
|
-
nourishment?: string[];
|
|
763
|
-
reproduction?: string[];
|
|
764
|
-
adaptations?: string[];
|
|
765
|
-
traits?: string[];
|
|
766
|
-
locations?: string[];
|
|
767
|
-
zones?: string[];
|
|
768
|
-
affinities?: string[];
|
|
769
|
-
}
|
|
770
|
-
interface ZoneInput extends Omit<Zone, 'phenomena' | 'linked_zones' | 'populations' | 'titles' | 'principles'> {
|
|
771
|
-
phenomena?: string[];
|
|
772
|
-
linked_zones?: string[];
|
|
773
|
-
populations?: string[];
|
|
774
|
-
titles?: string[];
|
|
775
|
-
principles?: string[];
|
|
776
|
-
}
|
|
777
|
-
interface TitleInput extends Omit<Title, 'issuer' | 'body' | 'superior_title' | 'holders' | 'symbols' | 'characters' | 'institutions' | 'families' | 'zones' | 'locations' | 'objects' | 'constructs' | 'laws' | 'collectives' | 'creatures' | 'phenomena' | 'species' | 'languages'> {
|
|
778
|
-
issuer?: string;
|
|
779
|
-
body?: string;
|
|
780
|
-
superior_title?: string;
|
|
781
|
-
holders?: string[];
|
|
782
|
-
symbols?: string[];
|
|
783
|
-
characters?: string[];
|
|
784
|
-
institutions?: string[];
|
|
785
|
-
families?: string[];
|
|
786
|
-
zones?: string[];
|
|
787
|
-
locations?: string[];
|
|
788
|
-
objects?: string[];
|
|
789
|
-
constructs?: string[];
|
|
790
|
-
laws?: string[];
|
|
791
|
-
collectives?: string[];
|
|
792
|
-
creatures?: string[];
|
|
793
|
-
phenomena?: string[];
|
|
794
|
-
species?: string[];
|
|
795
|
-
languages?: string[];
|
|
796
|
-
}
|
|
797
|
-
interface TraitInput extends Omit<Trait, 'anti_trait' | 'empowered_abilities'> {
|
|
798
|
-
anti_trait?: string;
|
|
799
|
-
empowered_abilities?: string[];
|
|
800
|
-
}
|
|
801
|
-
interface NarrativeInput extends Omit<Narrative, 'parent_narrative' | 'protagonist' | 'antagonist' | 'narrator' | 'conservator' | 'events' | 'characters' | 'objects' | 'locations' | 'species' | 'creatures' | 'institutions' | 'traits' | 'collectives' | 'zones' | 'abilities' | 'phenomena' | 'languages' | 'families' | 'relations' | 'titles' | 'constructs' | 'laws'> {
|
|
802
|
-
parent_narrative?: string;
|
|
803
|
-
protagonist?: string;
|
|
804
|
-
antagonist?: string;
|
|
805
|
-
narrator?: string;
|
|
806
|
-
conservator?: string;
|
|
807
|
-
events?: string[];
|
|
808
|
-
characters?: string[];
|
|
809
|
-
objects?: string[];
|
|
810
|
-
locations?: string[];
|
|
811
|
-
species?: string[];
|
|
812
|
-
creatures?: string[];
|
|
813
|
-
institutions?: string[];
|
|
814
|
-
traits?: string[];
|
|
815
|
-
collectives?: string[];
|
|
816
|
-
zones?: string[];
|
|
817
|
-
abilities?: string[];
|
|
818
|
-
phenomena?: string[];
|
|
819
|
-
languages?: string[];
|
|
820
|
-
families?: string[];
|
|
821
|
-
relations?: string[];
|
|
822
|
-
titles?: string[];
|
|
823
|
-
constructs?: string[];
|
|
824
|
-
laws?: string[];
|
|
825
|
-
}
|
|
826
|
-
interface MapInput extends Omit<Map, 'parent_map' | 'location'> {
|
|
827
|
-
parent_map?: string;
|
|
828
|
-
location?: string;
|
|
829
|
-
}
|
|
830
|
-
interface MarkerInput extends Omit<Marker, 'map' | 'zone'> {
|
|
831
|
-
map?: string;
|
|
832
|
-
zone?: string;
|
|
833
|
-
}
|
|
834
|
-
interface PinInput extends Omit<Pin, 'map' | 'element_id'> {
|
|
835
|
-
map?: string;
|
|
836
|
-
element_id?: string;
|
|
837
|
-
}
|
|
838
|
-
/**
|
|
839
|
-
* All available element types in OnlyWorlds
|
|
840
|
-
*/
|
|
841
|
-
declare enum ElementType$1 {
|
|
842
|
-
Ability = "ability",
|
|
843
|
-
Character = "character",
|
|
844
|
-
Collective = "collective",
|
|
845
|
-
Construct = "construct",
|
|
846
|
-
Creature = "creature",
|
|
847
|
-
Event = "event",
|
|
848
|
-
Family = "family",
|
|
849
|
-
Institution = "institution",
|
|
850
|
-
Language = "language",
|
|
851
|
-
Law = "law",
|
|
852
|
-
Location = "location",
|
|
853
|
-
Map = "map",
|
|
854
|
-
Marker = "marker",
|
|
855
|
-
Narrative = "narrative",
|
|
856
|
-
Object = "object",
|
|
857
|
-
Phenomenon = "phenomenon",
|
|
858
|
-
Pin = "pin",
|
|
859
|
-
Relation = "relation",
|
|
860
|
-
Species = "species",
|
|
861
|
-
Title = "title",
|
|
862
|
-
Trait = "trait",
|
|
863
|
-
Zone = "zone"
|
|
864
|
-
}
|
|
865
|
-
/**
|
|
866
|
-
* UI labels for element types - provides proper plural forms
|
|
867
|
-
* Useful for displaying element type names in user interfaces
|
|
868
|
-
*/
|
|
869
|
-
declare const ELEMENT_LABELS: Record<ElementType$1, string>;
|
|
870
|
-
/**
|
|
871
|
-
* Get the plural label for an element type
|
|
872
|
-
* @param elementType The element type
|
|
873
|
-
* @returns The plural label string
|
|
874
|
-
*/
|
|
875
|
-
declare function getElementLabel(elementType: ElementType$1): string;
|
|
876
|
-
/**
|
|
877
|
-
* Section metadata for OnlyWorlds elements
|
|
878
|
-
* Source: sectioned_schema.json
|
|
879
|
-
*/
|
|
880
|
-
interface SectionInfo {
|
|
881
|
-
name: string;
|
|
882
|
-
order: number;
|
|
883
|
-
fields: string[];
|
|
884
|
-
}
|
|
885
|
-
/**
|
|
886
|
-
* Element section definitions - provides organized field groupings for each element type
|
|
887
|
-
* Enables UI components to display fields in logical sections with proper ordering
|
|
888
|
-
*/
|
|
889
|
-
declare const ELEMENT_SECTIONS: Record<ElementType$1, SectionInfo[]>;
|
|
890
|
-
/**
|
|
891
|
-
* Get sections for an element type
|
|
892
|
-
* @param elementType The element type
|
|
893
|
-
* @returns Array of section information for the element type
|
|
894
|
-
*/
|
|
895
|
-
declare function getElementSections(elementType: ElementType$1): SectionInfo[];
|
|
896
|
-
/**
|
|
897
|
-
* Current OnlyWorlds version
|
|
898
|
-
* Synced with https://github.com/OnlyWorlds/OnlyWorlds/blob/main/VERSION
|
|
899
|
-
*/
|
|
900
|
-
declare const ONLYWORLDS_VERSION: "00.30.00";
|
|
901
|
-
/**
|
|
902
|
-
* Material Design icons for element types
|
|
903
|
-
* These are the uniform, monochrome icons used in the OnlyWorlds frontend
|
|
904
|
-
* Compatible with Google Material Icons font
|
|
905
|
-
*/
|
|
906
|
-
declare const ELEMENT_ICONS: Record<ElementType$1, string>;
|
|
907
|
-
/**
|
|
908
|
-
* Field type definitions for OnlyWorlds elements
|
|
909
|
-
*/
|
|
910
|
-
type FieldType = 'text' | 'integer' | 'integer_max' | 'number' | 'single_link' | 'multi_link';
|
|
911
|
-
/**
|
|
912
|
-
* Field metadata structure
|
|
913
|
-
*/
|
|
914
|
-
interface FieldInfo {
|
|
915
|
-
type: FieldType;
|
|
916
|
-
target?: string;
|
|
917
|
-
max?: number;
|
|
918
|
-
required?: boolean;
|
|
919
|
-
}
|
|
920
|
-
/**
|
|
921
|
-
* Comprehensive field schema - provides complete metadata for all fields
|
|
922
|
-
* Maps element types to their field definitions including types and cardinality
|
|
923
|
-
*/
|
|
924
|
-
declare const FIELD_SCHEMA: {
|
|
925
|
-
readonly ability: {
|
|
926
|
-
readonly name: {
|
|
927
|
-
readonly type: "text";
|
|
928
|
-
readonly required: true;
|
|
929
|
-
};
|
|
930
|
-
readonly description: {
|
|
931
|
-
readonly type: "text";
|
|
932
|
-
readonly required: false;
|
|
933
|
-
};
|
|
934
|
-
readonly supertype: {
|
|
935
|
-
readonly type: "text";
|
|
936
|
-
readonly required: false;
|
|
937
|
-
};
|
|
938
|
-
readonly subtype: {
|
|
939
|
-
readonly type: "text";
|
|
940
|
-
readonly required: false;
|
|
941
|
-
};
|
|
942
|
-
readonly image_url: {
|
|
943
|
-
readonly type: "text";
|
|
944
|
-
readonly required: false;
|
|
945
|
-
};
|
|
946
|
-
readonly activation: {
|
|
947
|
-
readonly type: "text";
|
|
948
|
-
};
|
|
949
|
-
readonly duration: {
|
|
950
|
-
readonly type: "number";
|
|
951
|
-
};
|
|
952
|
-
readonly potency: {
|
|
953
|
-
readonly type: "number";
|
|
954
|
-
};
|
|
955
|
-
readonly range: {
|
|
956
|
-
readonly type: "number";
|
|
957
|
-
};
|
|
958
|
-
readonly effects: {
|
|
959
|
-
readonly type: "multi_link";
|
|
960
|
-
readonly target: "phenomenon";
|
|
961
|
-
};
|
|
962
|
-
readonly challenges: {
|
|
963
|
-
readonly type: "text";
|
|
964
|
-
};
|
|
965
|
-
readonly talents: {
|
|
966
|
-
readonly type: "multi_link";
|
|
967
|
-
readonly target: "trait";
|
|
968
|
-
};
|
|
969
|
-
readonly requisites: {
|
|
970
|
-
readonly type: "multi_link";
|
|
971
|
-
readonly target: "construct";
|
|
972
|
-
};
|
|
973
|
-
readonly prevalence: {
|
|
974
|
-
readonly type: "text";
|
|
975
|
-
};
|
|
976
|
-
readonly tradition: {
|
|
977
|
-
readonly type: "single_link";
|
|
978
|
-
readonly target: "construct";
|
|
979
|
-
};
|
|
980
|
-
readonly source: {
|
|
981
|
-
readonly type: "single_link";
|
|
982
|
-
readonly target: "phenomenon";
|
|
983
|
-
};
|
|
984
|
-
readonly locus: {
|
|
985
|
-
readonly type: "single_link";
|
|
986
|
-
readonly target: "location";
|
|
987
|
-
};
|
|
988
|
-
readonly instruments: {
|
|
989
|
-
readonly type: "multi_link";
|
|
990
|
-
readonly target: "object";
|
|
991
|
-
};
|
|
992
|
-
readonly systems: {
|
|
993
|
-
readonly type: "multi_link";
|
|
994
|
-
readonly target: "construct";
|
|
995
|
-
};
|
|
996
|
-
};
|
|
997
|
-
readonly character: {
|
|
998
|
-
readonly name: {
|
|
999
|
-
readonly type: "text";
|
|
1000
|
-
readonly required: true;
|
|
1001
|
-
};
|
|
1002
|
-
readonly description: {
|
|
1003
|
-
readonly type: "text";
|
|
1004
|
-
readonly required: false;
|
|
1005
|
-
};
|
|
1006
|
-
readonly supertype: {
|
|
1007
|
-
readonly type: "text";
|
|
1008
|
-
readonly required: false;
|
|
1009
|
-
};
|
|
1010
|
-
readonly subtype: {
|
|
1011
|
-
readonly type: "text";
|
|
1012
|
-
readonly required: false;
|
|
1013
|
-
};
|
|
1014
|
-
readonly image_url: {
|
|
1015
|
-
readonly type: "text";
|
|
1016
|
-
readonly required: false;
|
|
1017
|
-
};
|
|
1018
|
-
readonly physicality: {
|
|
1019
|
-
readonly type: "text";
|
|
1020
|
-
};
|
|
1021
|
-
readonly mentality: {
|
|
1022
|
-
readonly type: "text";
|
|
1023
|
-
};
|
|
1024
|
-
readonly height: {
|
|
1025
|
-
readonly type: "number";
|
|
1026
|
-
};
|
|
1027
|
-
readonly weight: {
|
|
1028
|
-
readonly type: "number";
|
|
1029
|
-
};
|
|
1030
|
-
readonly species: {
|
|
1031
|
-
readonly type: "multi_link";
|
|
1032
|
-
readonly target: "species";
|
|
1033
|
-
};
|
|
1034
|
-
readonly traits: {
|
|
1035
|
-
readonly type: "multi_link";
|
|
1036
|
-
readonly target: "trait";
|
|
1037
|
-
};
|
|
1038
|
-
readonly abilities: {
|
|
1039
|
-
readonly type: "multi_link";
|
|
1040
|
-
readonly target: "ability";
|
|
1041
|
-
};
|
|
1042
|
-
readonly background: {
|
|
1043
|
-
readonly type: "text";
|
|
1044
|
-
};
|
|
1045
|
-
readonly motivations: {
|
|
1046
|
-
readonly type: "text";
|
|
1047
|
-
};
|
|
1048
|
-
readonly birth_date: {
|
|
1049
|
-
readonly type: "number";
|
|
1050
|
-
};
|
|
1051
|
-
readonly birthplace: {
|
|
1052
|
-
readonly type: "single_link";
|
|
1053
|
-
readonly target: "location";
|
|
1054
|
-
};
|
|
1055
|
-
readonly languages: {
|
|
1056
|
-
readonly type: "multi_link";
|
|
1057
|
-
readonly target: "language";
|
|
1058
|
-
};
|
|
1059
|
-
readonly reputation: {
|
|
1060
|
-
readonly type: "text";
|
|
1061
|
-
};
|
|
1062
|
-
readonly location: {
|
|
1063
|
-
readonly type: "single_link";
|
|
1064
|
-
readonly target: "location";
|
|
1065
|
-
};
|
|
1066
|
-
readonly objects: {
|
|
1067
|
-
readonly type: "multi_link";
|
|
1068
|
-
readonly target: "object";
|
|
1069
|
-
};
|
|
1070
|
-
readonly institutions: {
|
|
1071
|
-
readonly type: "multi_link";
|
|
1072
|
-
readonly target: "institution";
|
|
1073
|
-
};
|
|
1074
|
-
readonly charisma: {
|
|
1075
|
-
readonly type: "number";
|
|
1076
|
-
};
|
|
1077
|
-
readonly coercion: {
|
|
1078
|
-
readonly type: "number";
|
|
1079
|
-
};
|
|
1080
|
-
readonly competence: {
|
|
1081
|
-
readonly type: "number";
|
|
1082
|
-
};
|
|
1083
|
-
readonly compassion: {
|
|
1084
|
-
readonly type: "number";
|
|
1085
|
-
};
|
|
1086
|
-
readonly creativity: {
|
|
1087
|
-
readonly type: "number";
|
|
1088
|
-
};
|
|
1089
|
-
readonly courage: {
|
|
1090
|
-
readonly type: "number";
|
|
1091
|
-
};
|
|
1092
|
-
readonly family: {
|
|
1093
|
-
readonly type: "multi_link";
|
|
1094
|
-
readonly target: "family";
|
|
1095
|
-
};
|
|
1096
|
-
readonly friends: {
|
|
1097
|
-
readonly type: "multi_link";
|
|
1098
|
-
readonly target: "character";
|
|
1099
|
-
};
|
|
1100
|
-
readonly rivals: {
|
|
1101
|
-
readonly type: "multi_link";
|
|
1102
|
-
readonly target: "character";
|
|
1103
|
-
};
|
|
1104
|
-
readonly level: {
|
|
1105
|
-
readonly type: "number";
|
|
1106
|
-
};
|
|
1107
|
-
readonly hit_points: {
|
|
1108
|
-
readonly type: "number";
|
|
1109
|
-
};
|
|
1110
|
-
readonly STR: {
|
|
1111
|
-
readonly type: "number";
|
|
1112
|
-
};
|
|
1113
|
-
readonly DEX: {
|
|
1114
|
-
readonly type: "number";
|
|
1115
|
-
};
|
|
1116
|
-
readonly CON: {
|
|
1117
|
-
readonly type: "number";
|
|
1118
|
-
};
|
|
1119
|
-
readonly INT: {
|
|
1120
|
-
readonly type: "number";
|
|
1121
|
-
};
|
|
1122
|
-
readonly WIS: {
|
|
1123
|
-
readonly type: "number";
|
|
1124
|
-
};
|
|
1125
|
-
readonly CHA: {
|
|
1126
|
-
readonly type: "number";
|
|
1127
|
-
};
|
|
1128
|
-
};
|
|
1129
|
-
readonly collective: {
|
|
1130
|
-
readonly name: {
|
|
1131
|
-
readonly type: "text";
|
|
1132
|
-
readonly required: true;
|
|
1133
|
-
};
|
|
1134
|
-
readonly description: {
|
|
1135
|
-
readonly type: "text";
|
|
1136
|
-
readonly required: false;
|
|
1137
|
-
};
|
|
1138
|
-
readonly supertype: {
|
|
1139
|
-
readonly type: "text";
|
|
1140
|
-
readonly required: false;
|
|
1141
|
-
};
|
|
1142
|
-
readonly subtype: {
|
|
1143
|
-
readonly type: "text";
|
|
1144
|
-
readonly required: false;
|
|
1145
|
-
};
|
|
1146
|
-
readonly image_url: {
|
|
1147
|
-
readonly type: "text";
|
|
1148
|
-
readonly required: false;
|
|
1149
|
-
};
|
|
1150
|
-
readonly composition: {
|
|
1151
|
-
readonly type: "text";
|
|
1152
|
-
};
|
|
1153
|
-
readonly count: {
|
|
1154
|
-
readonly type: "number";
|
|
1155
|
-
};
|
|
1156
|
-
readonly formation_date: {
|
|
1157
|
-
readonly type: "number";
|
|
1158
|
-
};
|
|
1159
|
-
readonly operator: {
|
|
1160
|
-
readonly type: "single_link";
|
|
1161
|
-
readonly target: "institution";
|
|
1162
|
-
};
|
|
1163
|
-
readonly equipment: {
|
|
1164
|
-
readonly type: "multi_link";
|
|
1165
|
-
readonly target: "construct";
|
|
1166
|
-
};
|
|
1167
|
-
readonly activity: {
|
|
1168
|
-
readonly type: "text";
|
|
1169
|
-
};
|
|
1170
|
-
readonly disposition: {
|
|
1171
|
-
readonly type: "text";
|
|
1172
|
-
};
|
|
1173
|
-
readonly state: {
|
|
1174
|
-
readonly type: "text";
|
|
1175
|
-
};
|
|
1176
|
-
readonly abilities: {
|
|
1177
|
-
readonly type: "multi_link";
|
|
1178
|
-
readonly target: "ability";
|
|
1179
|
-
};
|
|
1180
|
-
readonly symbolism: {
|
|
1181
|
-
readonly type: "multi_link";
|
|
1182
|
-
readonly target: "construct";
|
|
1183
|
-
};
|
|
1184
|
-
readonly species: {
|
|
1185
|
-
readonly type: "multi_link";
|
|
1186
|
-
readonly target: "species";
|
|
1187
|
-
};
|
|
1188
|
-
readonly characters: {
|
|
1189
|
-
readonly type: "multi_link";
|
|
1190
|
-
readonly target: "character";
|
|
1191
|
-
};
|
|
1192
|
-
readonly creatures: {
|
|
1193
|
-
readonly type: "multi_link";
|
|
1194
|
-
readonly target: "creature";
|
|
1195
|
-
};
|
|
1196
|
-
readonly phenomena: {
|
|
1197
|
-
readonly type: "multi_link";
|
|
1198
|
-
readonly target: "phenomenon";
|
|
1199
|
-
};
|
|
1200
|
-
};
|
|
1201
|
-
readonly construct: {
|
|
1202
|
-
readonly name: {
|
|
1203
|
-
readonly type: "text";
|
|
1204
|
-
readonly required: true;
|
|
1205
|
-
};
|
|
1206
|
-
readonly description: {
|
|
1207
|
-
readonly type: "text";
|
|
1208
|
-
readonly required: false;
|
|
1209
|
-
};
|
|
1210
|
-
readonly supertype: {
|
|
1211
|
-
readonly type: "text";
|
|
1212
|
-
readonly required: false;
|
|
1213
|
-
};
|
|
1214
|
-
readonly subtype: {
|
|
1215
|
-
readonly type: "text";
|
|
1216
|
-
readonly required: false;
|
|
1217
|
-
};
|
|
1218
|
-
readonly image_url: {
|
|
1219
|
-
readonly type: "text";
|
|
1220
|
-
readonly required: false;
|
|
1221
|
-
};
|
|
1222
|
-
readonly rationale: {
|
|
1223
|
-
readonly type: "text";
|
|
1224
|
-
};
|
|
1225
|
-
readonly history: {
|
|
1226
|
-
readonly type: "text";
|
|
1227
|
-
};
|
|
1228
|
-
readonly status: {
|
|
1229
|
-
readonly type: "text";
|
|
1230
|
-
};
|
|
1231
|
-
readonly reach: {
|
|
1232
|
-
readonly type: "text";
|
|
1233
|
-
};
|
|
1234
|
-
readonly start_date: {
|
|
1235
|
-
readonly type: "number";
|
|
1236
|
-
};
|
|
1237
|
-
readonly end_date: {
|
|
1238
|
-
readonly type: "number";
|
|
1239
|
-
};
|
|
1240
|
-
readonly founder: {
|
|
1241
|
-
readonly type: "single_link";
|
|
1242
|
-
readonly target: "character";
|
|
1243
|
-
};
|
|
1244
|
-
readonly custodian: {
|
|
1245
|
-
readonly type: "single_link";
|
|
1246
|
-
readonly target: "institution";
|
|
1247
|
-
};
|
|
1248
|
-
readonly characters: {
|
|
1249
|
-
readonly type: "multi_link";
|
|
1250
|
-
readonly target: "character";
|
|
1251
|
-
};
|
|
1252
|
-
readonly objects: {
|
|
1253
|
-
readonly type: "multi_link";
|
|
1254
|
-
readonly target: "object";
|
|
1255
|
-
};
|
|
1256
|
-
readonly locations: {
|
|
1257
|
-
readonly type: "multi_link";
|
|
1258
|
-
readonly target: "location";
|
|
1259
|
-
};
|
|
1260
|
-
readonly species: {
|
|
1261
|
-
readonly type: "multi_link";
|
|
1262
|
-
readonly target: "species";
|
|
1263
|
-
};
|
|
1264
|
-
readonly creatures: {
|
|
1265
|
-
readonly type: "multi_link";
|
|
1266
|
-
readonly target: "creature";
|
|
1267
|
-
};
|
|
1268
|
-
readonly institutions: {
|
|
1269
|
-
readonly type: "multi_link";
|
|
1270
|
-
readonly target: "institution";
|
|
1271
|
-
};
|
|
1272
|
-
readonly traits: {
|
|
1273
|
-
readonly type: "multi_link";
|
|
1274
|
-
readonly target: "trait";
|
|
1275
|
-
};
|
|
1276
|
-
readonly collectives: {
|
|
1277
|
-
readonly type: "multi_link";
|
|
1278
|
-
readonly target: "collective";
|
|
1279
|
-
};
|
|
1280
|
-
readonly zones: {
|
|
1281
|
-
readonly type: "multi_link";
|
|
1282
|
-
readonly target: "zone";
|
|
1283
|
-
};
|
|
1284
|
-
readonly abilities: {
|
|
1285
|
-
readonly type: "multi_link";
|
|
1286
|
-
readonly target: "ability";
|
|
1287
|
-
};
|
|
1288
|
-
readonly phenomena: {
|
|
1289
|
-
readonly type: "multi_link";
|
|
1290
|
-
readonly target: "phenomenon";
|
|
1291
|
-
};
|
|
1292
|
-
readonly languages: {
|
|
1293
|
-
readonly type: "multi_link";
|
|
1294
|
-
readonly target: "language";
|
|
1295
|
-
};
|
|
1296
|
-
readonly families: {
|
|
1297
|
-
readonly type: "multi_link";
|
|
1298
|
-
readonly target: "family";
|
|
1299
|
-
};
|
|
1300
|
-
readonly relations: {
|
|
1301
|
-
readonly type: "multi_link";
|
|
1302
|
-
readonly target: "relation";
|
|
1303
|
-
};
|
|
1304
|
-
readonly titles: {
|
|
1305
|
-
readonly type: "multi_link";
|
|
1306
|
-
readonly target: "title";
|
|
1307
|
-
};
|
|
1308
|
-
readonly constructs: {
|
|
1309
|
-
readonly type: "multi_link";
|
|
1310
|
-
readonly target: "construct";
|
|
1311
|
-
};
|
|
1312
|
-
readonly events: {
|
|
1313
|
-
readonly type: "multi_link";
|
|
1314
|
-
readonly target: "event";
|
|
1315
|
-
};
|
|
1316
|
-
readonly narratives: {
|
|
1317
|
-
readonly type: "multi_link";
|
|
1318
|
-
readonly target: "narrative";
|
|
1319
|
-
};
|
|
1320
|
-
};
|
|
1321
|
-
readonly creature: {
|
|
1322
|
-
readonly name: {
|
|
1323
|
-
readonly type: "text";
|
|
1324
|
-
readonly required: true;
|
|
1325
|
-
};
|
|
1326
|
-
readonly description: {
|
|
1327
|
-
readonly type: "text";
|
|
1328
|
-
readonly required: false;
|
|
1329
|
-
};
|
|
1330
|
-
readonly supertype: {
|
|
1331
|
-
readonly type: "text";
|
|
1332
|
-
readonly required: false;
|
|
1333
|
-
};
|
|
1334
|
-
readonly subtype: {
|
|
1335
|
-
readonly type: "text";
|
|
1336
|
-
readonly required: false;
|
|
1337
|
-
};
|
|
1338
|
-
readonly image_url: {
|
|
1339
|
-
readonly type: "text";
|
|
1340
|
-
readonly required: false;
|
|
1341
|
-
};
|
|
1342
|
-
readonly appearance: {
|
|
1343
|
-
readonly type: "text";
|
|
1344
|
-
};
|
|
1345
|
-
readonly weight: {
|
|
1346
|
-
readonly type: "number";
|
|
1347
|
-
};
|
|
1348
|
-
readonly height: {
|
|
1349
|
-
readonly type: "number";
|
|
1350
|
-
};
|
|
1351
|
-
readonly species: {
|
|
1352
|
-
readonly type: "multi_link";
|
|
1353
|
-
readonly target: "species";
|
|
1354
|
-
};
|
|
1355
|
-
readonly habits: {
|
|
1356
|
-
readonly type: "text";
|
|
1357
|
-
};
|
|
1358
|
-
readonly demeanor: {
|
|
1359
|
-
readonly type: "text";
|
|
1360
|
-
};
|
|
1361
|
-
readonly traits: {
|
|
1362
|
-
readonly type: "multi_link";
|
|
1363
|
-
readonly target: "trait";
|
|
1364
|
-
};
|
|
1365
|
-
readonly abilities: {
|
|
1366
|
-
readonly type: "multi_link";
|
|
1367
|
-
readonly target: "ability";
|
|
1368
|
-
};
|
|
1369
|
-
readonly languages: {
|
|
1370
|
-
readonly type: "multi_link";
|
|
1371
|
-
readonly target: "language";
|
|
1372
|
-
};
|
|
1373
|
-
readonly status: {
|
|
1374
|
-
readonly type: "text";
|
|
1375
|
-
};
|
|
1376
|
-
readonly birth_date: {
|
|
1377
|
-
readonly type: "number";
|
|
1378
|
-
};
|
|
1379
|
-
readonly location: {
|
|
1380
|
-
readonly type: "single_link";
|
|
1381
|
-
readonly target: "location";
|
|
1382
|
-
};
|
|
1383
|
-
readonly zone: {
|
|
1384
|
-
readonly type: "single_link";
|
|
1385
|
-
readonly target: "zone";
|
|
1386
|
-
};
|
|
1387
|
-
readonly challenge_rating: {
|
|
1388
|
-
readonly type: "number";
|
|
1389
|
-
};
|
|
1390
|
-
readonly hit_points: {
|
|
1391
|
-
readonly type: "number";
|
|
1392
|
-
};
|
|
1393
|
-
readonly armor_class: {
|
|
1394
|
-
readonly type: "number";
|
|
1395
|
-
};
|
|
1396
|
-
readonly speed: {
|
|
1397
|
-
readonly type: "number";
|
|
1398
|
-
};
|
|
1399
|
-
readonly actions: {
|
|
1400
|
-
readonly type: "multi_link";
|
|
1401
|
-
readonly target: "ability";
|
|
1402
|
-
};
|
|
1403
|
-
};
|
|
1404
|
-
readonly event: {
|
|
1405
|
-
readonly name: {
|
|
1406
|
-
readonly type: "text";
|
|
1407
|
-
readonly required: true;
|
|
1408
|
-
};
|
|
1409
|
-
readonly description: {
|
|
1410
|
-
readonly type: "text";
|
|
1411
|
-
readonly required: false;
|
|
1412
|
-
};
|
|
1413
|
-
readonly supertype: {
|
|
1414
|
-
readonly type: "text";
|
|
1415
|
-
readonly required: false;
|
|
1416
|
-
};
|
|
1417
|
-
readonly subtype: {
|
|
1418
|
-
readonly type: "text";
|
|
1419
|
-
readonly required: false;
|
|
1420
|
-
};
|
|
1421
|
-
readonly image_url: {
|
|
1422
|
-
readonly type: "text";
|
|
1423
|
-
readonly required: false;
|
|
1424
|
-
};
|
|
1425
|
-
readonly history: {
|
|
1426
|
-
readonly type: "text";
|
|
1427
|
-
};
|
|
1428
|
-
readonly challenges: {
|
|
1429
|
-
readonly type: "text";
|
|
1430
|
-
};
|
|
1431
|
-
readonly consequences: {
|
|
1432
|
-
readonly type: "text";
|
|
1433
|
-
};
|
|
1434
|
-
readonly start_date: {
|
|
1435
|
-
readonly type: "number";
|
|
1436
|
-
};
|
|
1437
|
-
readonly end_date: {
|
|
1438
|
-
readonly type: "number";
|
|
1439
|
-
};
|
|
1440
|
-
readonly triggers: {
|
|
1441
|
-
readonly type: "multi_link";
|
|
1442
|
-
readonly target: "event";
|
|
1443
|
-
};
|
|
1444
|
-
readonly characters: {
|
|
1445
|
-
readonly type: "multi_link";
|
|
1446
|
-
readonly target: "character";
|
|
1447
|
-
};
|
|
1448
|
-
readonly objects: {
|
|
1449
|
-
readonly type: "multi_link";
|
|
1450
|
-
readonly target: "object";
|
|
1451
|
-
};
|
|
1452
|
-
readonly locations: {
|
|
1453
|
-
readonly type: "multi_link";
|
|
1454
|
-
readonly target: "location";
|
|
1455
|
-
};
|
|
1456
|
-
readonly species: {
|
|
1457
|
-
readonly type: "multi_link";
|
|
1458
|
-
readonly target: "species";
|
|
1459
|
-
};
|
|
1460
|
-
readonly creatures: {
|
|
1461
|
-
readonly type: "multi_link";
|
|
1462
|
-
readonly target: "creature";
|
|
1463
|
-
};
|
|
1464
|
-
readonly institutions: {
|
|
1465
|
-
readonly type: "multi_link";
|
|
1466
|
-
readonly target: "institution";
|
|
1467
|
-
};
|
|
1468
|
-
readonly traits: {
|
|
1469
|
-
readonly type: "multi_link";
|
|
1470
|
-
readonly target: "trait";
|
|
1471
|
-
};
|
|
1472
|
-
readonly collectives: {
|
|
1473
|
-
readonly type: "multi_link";
|
|
1474
|
-
readonly target: "collective";
|
|
1475
|
-
};
|
|
1476
|
-
readonly zones: {
|
|
1477
|
-
readonly type: "multi_link";
|
|
1478
|
-
readonly target: "zone";
|
|
1479
|
-
};
|
|
1480
|
-
readonly abilities: {
|
|
1481
|
-
readonly type: "multi_link";
|
|
1482
|
-
readonly target: "ability";
|
|
1483
|
-
};
|
|
1484
|
-
readonly phenomena: {
|
|
1485
|
-
readonly type: "multi_link";
|
|
1486
|
-
readonly target: "phenomenon";
|
|
1487
|
-
};
|
|
1488
|
-
readonly languages: {
|
|
1489
|
-
readonly type: "multi_link";
|
|
1490
|
-
readonly target: "language";
|
|
1491
|
-
};
|
|
1492
|
-
readonly families: {
|
|
1493
|
-
readonly type: "multi_link";
|
|
1494
|
-
readonly target: "family";
|
|
1495
|
-
};
|
|
1496
|
-
readonly relations: {
|
|
1497
|
-
readonly type: "multi_link";
|
|
1498
|
-
readonly target: "relation";
|
|
1499
|
-
};
|
|
1500
|
-
readonly titles: {
|
|
1501
|
-
readonly type: "multi_link";
|
|
1502
|
-
readonly target: "title";
|
|
1503
|
-
};
|
|
1504
|
-
readonly constructs: {
|
|
1505
|
-
readonly type: "multi_link";
|
|
1506
|
-
readonly target: "construct";
|
|
1507
|
-
};
|
|
1508
|
-
};
|
|
1509
|
-
readonly family: {
|
|
1510
|
-
readonly name: {
|
|
1511
|
-
readonly type: "text";
|
|
1512
|
-
readonly required: true;
|
|
1513
|
-
};
|
|
1514
|
-
readonly description: {
|
|
1515
|
-
readonly type: "text";
|
|
1516
|
-
readonly required: false;
|
|
1517
|
-
};
|
|
1518
|
-
readonly supertype: {
|
|
1519
|
-
readonly type: "text";
|
|
1520
|
-
readonly required: false;
|
|
1521
|
-
};
|
|
1522
|
-
readonly subtype: {
|
|
1523
|
-
readonly type: "text";
|
|
1524
|
-
readonly required: false;
|
|
1525
|
-
};
|
|
1526
|
-
readonly image_url: {
|
|
1527
|
-
readonly type: "text";
|
|
1528
|
-
readonly required: false;
|
|
1529
|
-
};
|
|
1530
|
-
readonly spirit: {
|
|
1531
|
-
readonly type: "text";
|
|
1532
|
-
};
|
|
1533
|
-
readonly history: {
|
|
1534
|
-
readonly type: "text";
|
|
1535
|
-
};
|
|
1536
|
-
readonly traditions: {
|
|
1537
|
-
readonly type: "multi_link";
|
|
1538
|
-
readonly target: "construct";
|
|
1539
|
-
};
|
|
1540
|
-
readonly traits: {
|
|
1541
|
-
readonly type: "multi_link";
|
|
1542
|
-
readonly target: "trait";
|
|
1543
|
-
};
|
|
1544
|
-
readonly abilities: {
|
|
1545
|
-
readonly type: "multi_link";
|
|
1546
|
-
readonly target: "ability";
|
|
1547
|
-
};
|
|
1548
|
-
readonly languages: {
|
|
1549
|
-
readonly type: "multi_link";
|
|
1550
|
-
readonly target: "language";
|
|
1551
|
-
};
|
|
1552
|
-
readonly ancestors: {
|
|
1553
|
-
readonly type: "multi_link";
|
|
1554
|
-
readonly target: "character";
|
|
1555
|
-
};
|
|
1556
|
-
readonly reputation: {
|
|
1557
|
-
readonly type: "text";
|
|
1558
|
-
};
|
|
1559
|
-
readonly estates: {
|
|
1560
|
-
readonly type: "multi_link";
|
|
1561
|
-
readonly target: "location";
|
|
1562
|
-
};
|
|
1563
|
-
readonly governs: {
|
|
1564
|
-
readonly type: "multi_link";
|
|
1565
|
-
readonly target: "institution";
|
|
1566
|
-
};
|
|
1567
|
-
readonly heirlooms: {
|
|
1568
|
-
readonly type: "multi_link";
|
|
1569
|
-
readonly target: "object";
|
|
1570
|
-
};
|
|
1571
|
-
readonly creatures: {
|
|
1572
|
-
readonly type: "multi_link";
|
|
1573
|
-
readonly target: "creature";
|
|
1574
|
-
};
|
|
1575
|
-
};
|
|
1576
|
-
readonly institution: {
|
|
1577
|
-
readonly name: {
|
|
1578
|
-
readonly type: "text";
|
|
1579
|
-
readonly required: true;
|
|
1580
|
-
};
|
|
1581
|
-
readonly description: {
|
|
1582
|
-
readonly type: "text";
|
|
1583
|
-
readonly required: false;
|
|
1584
|
-
};
|
|
1585
|
-
readonly supertype: {
|
|
1586
|
-
readonly type: "text";
|
|
1587
|
-
readonly required: false;
|
|
1588
|
-
};
|
|
1589
|
-
readonly subtype: {
|
|
1590
|
-
readonly type: "text";
|
|
1591
|
-
readonly required: false;
|
|
1592
|
-
};
|
|
1593
|
-
readonly image_url: {
|
|
1594
|
-
readonly type: "text";
|
|
1595
|
-
readonly required: false;
|
|
1596
|
-
};
|
|
1597
|
-
readonly doctrine: {
|
|
1598
|
-
readonly type: "text";
|
|
1599
|
-
};
|
|
1600
|
-
readonly founding_date: {
|
|
1601
|
-
readonly type: "number";
|
|
1602
|
-
};
|
|
1603
|
-
readonly parent_institution: {
|
|
1604
|
-
readonly type: "single_link";
|
|
1605
|
-
readonly target: "institution";
|
|
1606
|
-
};
|
|
1607
|
-
readonly zones: {
|
|
1608
|
-
readonly type: "multi_link";
|
|
1609
|
-
readonly target: "zone";
|
|
1610
|
-
};
|
|
1611
|
-
readonly objects: {
|
|
1612
|
-
readonly type: "multi_link";
|
|
1613
|
-
readonly target: "object";
|
|
1614
|
-
};
|
|
1615
|
-
readonly creatures: {
|
|
1616
|
-
readonly type: "multi_link";
|
|
1617
|
-
readonly target: "creature";
|
|
1618
|
-
};
|
|
1619
|
-
readonly status: {
|
|
1620
|
-
readonly type: "text";
|
|
1621
|
-
};
|
|
1622
|
-
readonly allies: {
|
|
1623
|
-
readonly type: "multi_link";
|
|
1624
|
-
readonly target: "institution";
|
|
1625
|
-
};
|
|
1626
|
-
readonly adversaries: {
|
|
1627
|
-
readonly type: "multi_link";
|
|
1628
|
-
readonly target: "institution";
|
|
1629
|
-
};
|
|
1630
|
-
readonly constructs: {
|
|
1631
|
-
readonly type: "multi_link";
|
|
1632
|
-
readonly target: "construct";
|
|
1633
|
-
};
|
|
1634
|
-
};
|
|
1635
|
-
readonly language: {
|
|
1636
|
-
readonly name: {
|
|
1637
|
-
readonly type: "text";
|
|
1638
|
-
readonly required: true;
|
|
1639
|
-
};
|
|
1640
|
-
readonly description: {
|
|
1641
|
-
readonly type: "text";
|
|
1642
|
-
readonly required: false;
|
|
1643
|
-
};
|
|
1644
|
-
readonly supertype: {
|
|
1645
|
-
readonly type: "text";
|
|
1646
|
-
readonly required: false;
|
|
1647
|
-
};
|
|
1648
|
-
readonly subtype: {
|
|
1649
|
-
readonly type: "text";
|
|
1650
|
-
readonly required: false;
|
|
1651
|
-
};
|
|
1652
|
-
readonly image_url: {
|
|
1653
|
-
readonly type: "text";
|
|
1654
|
-
readonly required: false;
|
|
1655
|
-
};
|
|
1656
|
-
readonly phonology: {
|
|
1657
|
-
readonly type: "text";
|
|
1658
|
-
};
|
|
1659
|
-
readonly grammar: {
|
|
1660
|
-
readonly type: "text";
|
|
1661
|
-
};
|
|
1662
|
-
readonly lexicon: {
|
|
1663
|
-
readonly type: "text";
|
|
1664
|
-
};
|
|
1665
|
-
readonly writing: {
|
|
1666
|
-
readonly type: "text";
|
|
1667
|
-
};
|
|
1668
|
-
readonly classification: {
|
|
1669
|
-
readonly type: "single_link";
|
|
1670
|
-
readonly target: "construct";
|
|
1671
|
-
};
|
|
1672
|
-
readonly status: {
|
|
1673
|
-
readonly type: "text";
|
|
1674
|
-
};
|
|
1675
|
-
readonly spread: {
|
|
1676
|
-
readonly type: "multi_link";
|
|
1677
|
-
readonly target: "location";
|
|
1678
|
-
};
|
|
1679
|
-
readonly dialects: {
|
|
1680
|
-
readonly type: "multi_link";
|
|
1681
|
-
readonly target: "language";
|
|
1682
|
-
};
|
|
1683
|
-
};
|
|
1684
|
-
readonly law: {
|
|
1685
|
-
readonly name: {
|
|
1686
|
-
readonly type: "text";
|
|
1687
|
-
readonly required: true;
|
|
1688
|
-
};
|
|
1689
|
-
readonly description: {
|
|
1690
|
-
readonly type: "text";
|
|
1691
|
-
readonly required: false;
|
|
1692
|
-
};
|
|
1693
|
-
readonly supertype: {
|
|
1694
|
-
readonly type: "text";
|
|
1695
|
-
readonly required: false;
|
|
1696
|
-
};
|
|
1697
|
-
readonly subtype: {
|
|
1698
|
-
readonly type: "text";
|
|
1699
|
-
readonly required: false;
|
|
1700
|
-
};
|
|
1701
|
-
readonly image_url: {
|
|
1702
|
-
readonly type: "text";
|
|
1703
|
-
readonly required: false;
|
|
1704
|
-
};
|
|
1705
|
-
readonly declaration: {
|
|
1706
|
-
readonly type: "text";
|
|
1707
|
-
};
|
|
1708
|
-
readonly purpose: {
|
|
1709
|
-
readonly type: "text";
|
|
1710
|
-
};
|
|
1711
|
-
readonly date: {
|
|
1712
|
-
readonly type: "number";
|
|
1713
|
-
};
|
|
1714
|
-
readonly parent_law: {
|
|
1715
|
-
readonly type: "single_link";
|
|
1716
|
-
readonly target: "law";
|
|
1717
|
-
};
|
|
1718
|
-
readonly penalties: {
|
|
1719
|
-
readonly type: "multi_link";
|
|
1720
|
-
readonly target: "construct";
|
|
1721
|
-
};
|
|
1722
|
-
readonly author: {
|
|
1723
|
-
readonly type: "single_link";
|
|
1724
|
-
readonly target: "institution";
|
|
1725
|
-
};
|
|
1726
|
-
readonly locations: {
|
|
1727
|
-
readonly type: "multi_link";
|
|
1728
|
-
readonly target: "location";
|
|
1729
|
-
};
|
|
1730
|
-
readonly zones: {
|
|
1731
|
-
readonly type: "multi_link";
|
|
1732
|
-
readonly target: "zone";
|
|
1733
|
-
};
|
|
1734
|
-
readonly prohibitions: {
|
|
1735
|
-
readonly type: "multi_link";
|
|
1736
|
-
readonly target: "construct";
|
|
1737
|
-
};
|
|
1738
|
-
readonly adjudicators: {
|
|
1739
|
-
readonly type: "multi_link";
|
|
1740
|
-
readonly target: "title";
|
|
1741
|
-
};
|
|
1742
|
-
readonly enforcers: {
|
|
1743
|
-
readonly type: "multi_link";
|
|
1744
|
-
readonly target: "title";
|
|
1745
|
-
};
|
|
1746
|
-
};
|
|
1747
|
-
readonly location: {
|
|
1748
|
-
readonly name: {
|
|
1749
|
-
readonly type: "text";
|
|
1750
|
-
readonly required: true;
|
|
1751
|
-
};
|
|
1752
|
-
readonly description: {
|
|
1753
|
-
readonly type: "text";
|
|
1754
|
-
readonly required: false;
|
|
1755
|
-
};
|
|
1756
|
-
readonly supertype: {
|
|
1757
|
-
readonly type: "text";
|
|
1758
|
-
readonly required: false;
|
|
1759
|
-
};
|
|
1760
|
-
readonly subtype: {
|
|
1761
|
-
readonly type: "text";
|
|
1762
|
-
readonly required: false;
|
|
1763
|
-
};
|
|
1764
|
-
readonly image_url: {
|
|
1765
|
-
readonly type: "text";
|
|
1766
|
-
readonly required: false;
|
|
1767
|
-
};
|
|
1768
|
-
readonly form: {
|
|
1769
|
-
readonly type: "text";
|
|
1770
|
-
};
|
|
1771
|
-
readonly function: {
|
|
1772
|
-
readonly type: "text";
|
|
1773
|
-
};
|
|
1774
|
-
readonly founding_date: {
|
|
1775
|
-
readonly type: "number";
|
|
1776
|
-
};
|
|
1777
|
-
readonly parent_location: {
|
|
1778
|
-
readonly type: "single_link";
|
|
1779
|
-
readonly target: "location";
|
|
1780
|
-
};
|
|
1781
|
-
readonly populations: {
|
|
1782
|
-
readonly type: "multi_link";
|
|
1783
|
-
readonly target: "collective";
|
|
1784
|
-
};
|
|
1785
|
-
readonly political_climate: {
|
|
1786
|
-
readonly type: "text";
|
|
1787
|
-
};
|
|
1788
|
-
readonly primary_power: {
|
|
1789
|
-
readonly type: "single_link";
|
|
1790
|
-
readonly target: "institution";
|
|
1791
|
-
};
|
|
1792
|
-
readonly governing_title: {
|
|
1793
|
-
readonly type: "single_link";
|
|
1794
|
-
readonly target: "title";
|
|
1795
|
-
};
|
|
1796
|
-
readonly secondary_powers: {
|
|
1797
|
-
readonly type: "multi_link";
|
|
1798
|
-
readonly target: "institution";
|
|
1799
|
-
};
|
|
1800
|
-
readonly zone: {
|
|
1801
|
-
readonly type: "single_link";
|
|
1802
|
-
readonly target: "zone";
|
|
1803
|
-
};
|
|
1804
|
-
readonly rival: {
|
|
1805
|
-
readonly type: "single_link";
|
|
1806
|
-
readonly target: "location";
|
|
1807
|
-
};
|
|
1808
|
-
readonly partner: {
|
|
1809
|
-
readonly type: "single_link";
|
|
1810
|
-
readonly target: "location";
|
|
1811
|
-
};
|
|
1812
|
-
readonly customs: {
|
|
1813
|
-
readonly type: "text";
|
|
1814
|
-
};
|
|
1815
|
-
readonly founders: {
|
|
1816
|
-
readonly type: "multi_link";
|
|
1817
|
-
readonly target: "character";
|
|
1818
|
-
};
|
|
1819
|
-
readonly cults: {
|
|
1820
|
-
readonly type: "multi_link";
|
|
1821
|
-
readonly target: "construct";
|
|
1822
|
-
};
|
|
1823
|
-
readonly delicacies: {
|
|
1824
|
-
readonly type: "multi_link";
|
|
1825
|
-
readonly target: "species";
|
|
1826
|
-
};
|
|
1827
|
-
readonly extraction_methods: {
|
|
1828
|
-
readonly type: "multi_link";
|
|
1829
|
-
readonly target: "construct";
|
|
1830
|
-
};
|
|
1831
|
-
readonly extraction_goods: {
|
|
1832
|
-
readonly type: "multi_link";
|
|
1833
|
-
readonly target: "construct";
|
|
1834
|
-
};
|
|
1835
|
-
readonly industry_methods: {
|
|
1836
|
-
readonly type: "multi_link";
|
|
1837
|
-
readonly target: "construct";
|
|
1838
|
-
};
|
|
1839
|
-
readonly industry_goods: {
|
|
1840
|
-
readonly type: "multi_link";
|
|
1841
|
-
readonly target: "construct";
|
|
1842
|
-
};
|
|
1843
|
-
readonly infrastructure: {
|
|
1844
|
-
readonly type: "text";
|
|
1845
|
-
};
|
|
1846
|
-
readonly extraction_markets: {
|
|
1847
|
-
readonly type: "multi_link";
|
|
1848
|
-
readonly target: "location";
|
|
1849
|
-
};
|
|
1850
|
-
readonly industry_markets: {
|
|
1851
|
-
readonly type: "multi_link";
|
|
1852
|
-
readonly target: "location";
|
|
1853
|
-
};
|
|
1854
|
-
readonly currencies: {
|
|
1855
|
-
readonly type: "multi_link";
|
|
1856
|
-
readonly target: "construct";
|
|
1857
|
-
};
|
|
1858
|
-
readonly architecture: {
|
|
1859
|
-
readonly type: "text";
|
|
1860
|
-
};
|
|
1861
|
-
readonly buildings: {
|
|
1862
|
-
readonly type: "multi_link";
|
|
1863
|
-
readonly target: "object";
|
|
1864
|
-
};
|
|
1865
|
-
readonly building_methods: {
|
|
1866
|
-
readonly type: "multi_link";
|
|
1867
|
-
readonly target: "construct";
|
|
1868
|
-
};
|
|
1869
|
-
readonly defensibility: {
|
|
1870
|
-
readonly type: "text";
|
|
1871
|
-
};
|
|
1872
|
-
readonly elevation: {
|
|
1873
|
-
readonly type: "number";
|
|
1874
|
-
};
|
|
1875
|
-
readonly fighters: {
|
|
1876
|
-
readonly type: "multi_link";
|
|
1877
|
-
readonly target: "construct";
|
|
1878
|
-
};
|
|
1879
|
-
readonly defensive_objects: {
|
|
1880
|
-
readonly type: "multi_link";
|
|
1881
|
-
readonly target: "object";
|
|
1882
|
-
};
|
|
1883
|
-
};
|
|
1884
|
-
readonly map: {
|
|
1885
|
-
readonly name: {
|
|
1886
|
-
readonly type: "text";
|
|
1887
|
-
readonly required: true;
|
|
1888
|
-
};
|
|
1889
|
-
readonly description: {
|
|
1890
|
-
readonly type: "text";
|
|
1891
|
-
readonly required: false;
|
|
1892
|
-
};
|
|
1893
|
-
readonly supertype: {
|
|
1894
|
-
readonly type: "text";
|
|
1895
|
-
readonly required: false;
|
|
1896
|
-
};
|
|
1897
|
-
readonly subtype: {
|
|
1898
|
-
readonly type: "text";
|
|
1899
|
-
readonly required: false;
|
|
1900
|
-
};
|
|
1901
|
-
readonly image_url: {
|
|
1902
|
-
readonly type: "text";
|
|
1903
|
-
readonly required: false;
|
|
1904
|
-
};
|
|
1905
|
-
readonly background_color: {
|
|
1906
|
-
readonly type: "text";
|
|
1907
|
-
};
|
|
1908
|
-
readonly hierarchy: {
|
|
1909
|
-
readonly type: "number";
|
|
1910
|
-
};
|
|
1911
|
-
readonly width: {
|
|
1912
|
-
readonly type: "number";
|
|
1913
|
-
};
|
|
1914
|
-
readonly height: {
|
|
1915
|
-
readonly type: "number";
|
|
1916
|
-
};
|
|
1917
|
-
readonly depth: {
|
|
1918
|
-
readonly type: "number";
|
|
1919
|
-
};
|
|
1920
|
-
readonly parent_map: {
|
|
1921
|
-
readonly type: "single_link";
|
|
1922
|
-
readonly target: "map";
|
|
1923
|
-
};
|
|
1924
|
-
readonly location: {
|
|
1925
|
-
readonly type: "single_link";
|
|
1926
|
-
readonly target: "location";
|
|
1927
|
-
};
|
|
1928
|
-
};
|
|
1929
|
-
readonly marker: {
|
|
1930
|
-
readonly name: {
|
|
1931
|
-
readonly type: "text";
|
|
1932
|
-
readonly required: true;
|
|
1933
|
-
};
|
|
1934
|
-
readonly description: {
|
|
1935
|
-
readonly type: "text";
|
|
1936
|
-
readonly required: false;
|
|
1937
|
-
};
|
|
1938
|
-
readonly supertype: {
|
|
1939
|
-
readonly type: "text";
|
|
1940
|
-
readonly required: false;
|
|
1941
|
-
};
|
|
1942
|
-
readonly subtype: {
|
|
1943
|
-
readonly type: "text";
|
|
1944
|
-
readonly required: false;
|
|
1945
|
-
};
|
|
1946
|
-
readonly image_url: {
|
|
1947
|
-
readonly type: "text";
|
|
1948
|
-
readonly required: false;
|
|
1949
|
-
};
|
|
1950
|
-
readonly map: {
|
|
1951
|
-
readonly type: "single_link";
|
|
1952
|
-
readonly target: "map";
|
|
1953
|
-
readonly required: true;
|
|
1954
|
-
};
|
|
1955
|
-
readonly zone: {
|
|
1956
|
-
readonly type: "single_link";
|
|
1957
|
-
readonly target: "zone";
|
|
1958
|
-
readonly required: true;
|
|
1959
|
-
};
|
|
1960
|
-
readonly x: {
|
|
1961
|
-
readonly type: "number";
|
|
1962
|
-
readonly required: true;
|
|
1963
|
-
};
|
|
1964
|
-
readonly y: {
|
|
1965
|
-
readonly type: "number";
|
|
1966
|
-
readonly required: true;
|
|
1967
|
-
};
|
|
1968
|
-
readonly z: {
|
|
1969
|
-
readonly type: "number";
|
|
1970
|
-
};
|
|
1971
|
-
readonly order: {
|
|
1972
|
-
readonly type: "number";
|
|
1973
|
-
readonly required: true;
|
|
1974
|
-
};
|
|
1975
|
-
};
|
|
1976
|
-
readonly narrative: {
|
|
1977
|
-
readonly name: {
|
|
1978
|
-
readonly type: "text";
|
|
1979
|
-
readonly required: true;
|
|
1980
|
-
};
|
|
1981
|
-
readonly description: {
|
|
1982
|
-
readonly type: "text";
|
|
1983
|
-
readonly required: false;
|
|
1984
|
-
};
|
|
1985
|
-
readonly supertype: {
|
|
1986
|
-
readonly type: "text";
|
|
1987
|
-
readonly required: false;
|
|
1988
|
-
};
|
|
1989
|
-
readonly subtype: {
|
|
1990
|
-
readonly type: "text";
|
|
1991
|
-
readonly required: false;
|
|
1992
|
-
};
|
|
1993
|
-
readonly image_url: {
|
|
1994
|
-
readonly type: "text";
|
|
1995
|
-
readonly required: false;
|
|
1996
|
-
};
|
|
1997
|
-
readonly story: {
|
|
1998
|
-
readonly type: "text";
|
|
1999
|
-
};
|
|
2000
|
-
readonly consequences: {
|
|
2001
|
-
readonly type: "text";
|
|
2002
|
-
};
|
|
2003
|
-
readonly start_date: {
|
|
2004
|
-
readonly type: "number";
|
|
2005
|
-
};
|
|
2006
|
-
readonly end_date: {
|
|
2007
|
-
readonly type: "number";
|
|
2008
|
-
};
|
|
2009
|
-
readonly order: {
|
|
2010
|
-
readonly type: "number";
|
|
2011
|
-
};
|
|
2012
|
-
readonly parent_narrative: {
|
|
2013
|
-
readonly type: "single_link";
|
|
2014
|
-
readonly target: "narrative";
|
|
2015
|
-
};
|
|
2016
|
-
readonly protagonist: {
|
|
2017
|
-
readonly type: "single_link";
|
|
2018
|
-
readonly target: "character";
|
|
2019
|
-
};
|
|
2020
|
-
readonly antagonist: {
|
|
2021
|
-
readonly type: "single_link";
|
|
2022
|
-
readonly target: "character";
|
|
2023
|
-
};
|
|
2024
|
-
readonly narrator: {
|
|
2025
|
-
readonly type: "single_link";
|
|
2026
|
-
readonly target: "character";
|
|
2027
|
-
};
|
|
2028
|
-
readonly conservator: {
|
|
2029
|
-
readonly type: "single_link";
|
|
2030
|
-
readonly target: "institution";
|
|
2031
|
-
};
|
|
2032
|
-
readonly events: {
|
|
2033
|
-
readonly type: "multi_link";
|
|
2034
|
-
readonly target: "event";
|
|
2035
|
-
};
|
|
2036
|
-
readonly characters: {
|
|
2037
|
-
readonly type: "multi_link";
|
|
2038
|
-
readonly target: "character";
|
|
2039
|
-
};
|
|
2040
|
-
readonly objects: {
|
|
2041
|
-
readonly type: "multi_link";
|
|
2042
|
-
readonly target: "object";
|
|
2043
|
-
};
|
|
2044
|
-
readonly locations: {
|
|
2045
|
-
readonly type: "multi_link";
|
|
2046
|
-
readonly target: "location";
|
|
2047
|
-
};
|
|
2048
|
-
readonly species: {
|
|
2049
|
-
readonly type: "multi_link";
|
|
2050
|
-
readonly target: "species";
|
|
2051
|
-
};
|
|
2052
|
-
readonly creatures: {
|
|
2053
|
-
readonly type: "multi_link";
|
|
2054
|
-
readonly target: "creature";
|
|
2055
|
-
};
|
|
2056
|
-
readonly institutions: {
|
|
2057
|
-
readonly type: "multi_link";
|
|
2058
|
-
readonly target: "institution";
|
|
2059
|
-
};
|
|
2060
|
-
readonly traits: {
|
|
2061
|
-
readonly type: "multi_link";
|
|
2062
|
-
readonly target: "trait";
|
|
2063
|
-
};
|
|
2064
|
-
readonly collectives: {
|
|
2065
|
-
readonly type: "multi_link";
|
|
2066
|
-
readonly target: "collective";
|
|
2067
|
-
};
|
|
2068
|
-
readonly zones: {
|
|
2069
|
-
readonly type: "multi_link";
|
|
2070
|
-
readonly target: "zone";
|
|
2071
|
-
};
|
|
2072
|
-
readonly abilities: {
|
|
2073
|
-
readonly type: "multi_link";
|
|
2074
|
-
readonly target: "ability";
|
|
2075
|
-
};
|
|
2076
|
-
readonly phenomena: {
|
|
2077
|
-
readonly type: "multi_link";
|
|
2078
|
-
readonly target: "phenomenon";
|
|
2079
|
-
};
|
|
2080
|
-
readonly languages: {
|
|
2081
|
-
readonly type: "multi_link";
|
|
2082
|
-
readonly target: "language";
|
|
2083
|
-
};
|
|
2084
|
-
readonly families: {
|
|
2085
|
-
readonly type: "multi_link";
|
|
2086
|
-
readonly target: "family";
|
|
2087
|
-
};
|
|
2088
|
-
readonly relations: {
|
|
2089
|
-
readonly type: "multi_link";
|
|
2090
|
-
readonly target: "relation";
|
|
2091
|
-
};
|
|
2092
|
-
readonly titles: {
|
|
2093
|
-
readonly type: "multi_link";
|
|
2094
|
-
readonly target: "title";
|
|
2095
|
-
};
|
|
2096
|
-
readonly constructs: {
|
|
2097
|
-
readonly type: "multi_link";
|
|
2098
|
-
readonly target: "construct";
|
|
2099
|
-
};
|
|
2100
|
-
readonly laws: {
|
|
2101
|
-
readonly type: "multi_link";
|
|
2102
|
-
readonly target: "law";
|
|
2103
|
-
};
|
|
2104
|
-
};
|
|
2105
|
-
readonly object: {
|
|
2106
|
-
readonly name: {
|
|
2107
|
-
readonly type: "text";
|
|
2108
|
-
readonly required: true;
|
|
2109
|
-
};
|
|
2110
|
-
readonly description: {
|
|
2111
|
-
readonly type: "text";
|
|
2112
|
-
readonly required: false;
|
|
2113
|
-
};
|
|
2114
|
-
readonly supertype: {
|
|
2115
|
-
readonly type: "text";
|
|
2116
|
-
readonly required: false;
|
|
2117
|
-
};
|
|
2118
|
-
readonly subtype: {
|
|
2119
|
-
readonly type: "text";
|
|
2120
|
-
readonly required: false;
|
|
2121
|
-
};
|
|
2122
|
-
readonly image_url: {
|
|
2123
|
-
readonly type: "text";
|
|
2124
|
-
readonly required: false;
|
|
2125
|
-
};
|
|
2126
|
-
readonly aesthetics: {
|
|
2127
|
-
readonly type: "text";
|
|
2128
|
-
};
|
|
2129
|
-
readonly weight: {
|
|
2130
|
-
readonly type: "number";
|
|
2131
|
-
};
|
|
2132
|
-
readonly amount: {
|
|
2133
|
-
readonly type: "number";
|
|
2134
|
-
};
|
|
2135
|
-
readonly parent_object: {
|
|
2136
|
-
readonly type: "single_link";
|
|
2137
|
-
readonly target: "object";
|
|
2138
|
-
};
|
|
2139
|
-
readonly materials: {
|
|
2140
|
-
readonly type: "multi_link";
|
|
2141
|
-
readonly target: "construct";
|
|
2142
|
-
};
|
|
2143
|
-
readonly technology: {
|
|
2144
|
-
readonly type: "multi_link";
|
|
2145
|
-
readonly target: "construct";
|
|
2146
|
-
};
|
|
2147
|
-
readonly utility: {
|
|
2148
|
-
readonly type: "text";
|
|
2149
|
-
};
|
|
2150
|
-
readonly effects: {
|
|
2151
|
-
readonly type: "multi_link";
|
|
2152
|
-
readonly target: "phenomenon";
|
|
2153
|
-
};
|
|
2154
|
-
readonly abilities: {
|
|
2155
|
-
readonly type: "multi_link";
|
|
2156
|
-
readonly target: "ability";
|
|
2157
|
-
};
|
|
2158
|
-
readonly consumes: {
|
|
2159
|
-
readonly type: "multi_link";
|
|
2160
|
-
readonly target: "construct";
|
|
2161
|
-
};
|
|
2162
|
-
readonly origins: {
|
|
2163
|
-
readonly type: "text";
|
|
2164
|
-
};
|
|
2165
|
-
readonly location: {
|
|
2166
|
-
readonly type: "single_link";
|
|
2167
|
-
readonly target: "location";
|
|
2168
|
-
};
|
|
2169
|
-
readonly language: {
|
|
2170
|
-
readonly type: "single_link";
|
|
2171
|
-
readonly target: "language";
|
|
2172
|
-
};
|
|
2173
|
-
readonly affinities: {
|
|
2174
|
-
readonly type: "multi_link";
|
|
2175
|
-
readonly target: "trait";
|
|
2176
|
-
};
|
|
2177
|
-
};
|
|
2178
|
-
readonly phenomenon: {
|
|
2179
|
-
readonly name: {
|
|
2180
|
-
readonly type: "text";
|
|
2181
|
-
readonly required: true;
|
|
2182
|
-
};
|
|
2183
|
-
readonly description: {
|
|
2184
|
-
readonly type: "text";
|
|
2185
|
-
readonly required: false;
|
|
2186
|
-
};
|
|
2187
|
-
readonly supertype: {
|
|
2188
|
-
readonly type: "text";
|
|
2189
|
-
readonly required: false;
|
|
2190
|
-
};
|
|
2191
|
-
readonly subtype: {
|
|
2192
|
-
readonly type: "text";
|
|
2193
|
-
readonly required: false;
|
|
2194
|
-
};
|
|
2195
|
-
readonly image_url: {
|
|
2196
|
-
readonly type: "text";
|
|
2197
|
-
readonly required: false;
|
|
2198
|
-
};
|
|
2199
|
-
readonly expression: {
|
|
2200
|
-
readonly type: "text";
|
|
2201
|
-
};
|
|
2202
|
-
readonly effects: {
|
|
2203
|
-
readonly type: "text";
|
|
2204
|
-
};
|
|
2205
|
-
readonly duration: {
|
|
2206
|
-
readonly type: "number";
|
|
2207
|
-
};
|
|
2208
|
-
readonly catalysts: {
|
|
2209
|
-
readonly type: "multi_link";
|
|
2210
|
-
readonly target: "object";
|
|
2211
|
-
};
|
|
2212
|
-
readonly empowerments: {
|
|
2213
|
-
readonly type: "multi_link";
|
|
2214
|
-
readonly target: "ability";
|
|
2215
|
-
};
|
|
2216
|
-
readonly mythology: {
|
|
2217
|
-
readonly type: "text";
|
|
2218
|
-
};
|
|
2219
|
-
readonly system: {
|
|
2220
|
-
readonly type: "single_link";
|
|
2221
|
-
readonly target: "phenomenon";
|
|
2222
|
-
};
|
|
2223
|
-
readonly triggers: {
|
|
2224
|
-
readonly type: "multi_link";
|
|
2225
|
-
readonly target: "construct";
|
|
2226
|
-
};
|
|
2227
|
-
readonly wielders: {
|
|
2228
|
-
readonly type: "multi_link";
|
|
2229
|
-
readonly target: "character";
|
|
2230
|
-
};
|
|
2231
|
-
readonly environments: {
|
|
2232
|
-
readonly type: "multi_link";
|
|
2233
|
-
readonly target: "location";
|
|
2234
|
-
};
|
|
2235
|
-
};
|
|
2236
|
-
readonly pin: {
|
|
2237
|
-
readonly name: {
|
|
2238
|
-
readonly type: "text";
|
|
2239
|
-
readonly required: true;
|
|
2240
|
-
};
|
|
2241
|
-
readonly description: {
|
|
2242
|
-
readonly type: "text";
|
|
2243
|
-
readonly required: false;
|
|
2244
|
-
};
|
|
2245
|
-
readonly supertype: {
|
|
2246
|
-
readonly type: "text";
|
|
2247
|
-
readonly required: false;
|
|
2248
|
-
};
|
|
2249
|
-
readonly subtype: {
|
|
2250
|
-
readonly type: "text";
|
|
2251
|
-
readonly required: false;
|
|
2252
|
-
};
|
|
2253
|
-
readonly image_url: {
|
|
2254
|
-
readonly type: "text";
|
|
2255
|
-
readonly required: false;
|
|
2256
|
-
};
|
|
2257
|
-
readonly map: {
|
|
2258
|
-
readonly type: "single_link";
|
|
2259
|
-
readonly target: "map";
|
|
2260
|
-
readonly required: true;
|
|
2261
|
-
};
|
|
2262
|
-
readonly element_type: {
|
|
2263
|
-
readonly type: "text";
|
|
2264
|
-
readonly required: true;
|
|
2265
|
-
};
|
|
2266
|
-
readonly element_id: {
|
|
2267
|
-
readonly type: "single_link";
|
|
2268
|
-
readonly target: "any";
|
|
2269
|
-
readonly required: true;
|
|
2270
|
-
};
|
|
2271
|
-
readonly x: {
|
|
2272
|
-
readonly type: "number";
|
|
2273
|
-
readonly required: true;
|
|
2274
|
-
};
|
|
2275
|
-
readonly y: {
|
|
2276
|
-
readonly type: "number";
|
|
2277
|
-
readonly required: true;
|
|
2278
|
-
};
|
|
2279
|
-
readonly z: {
|
|
2280
|
-
readonly type: "number";
|
|
2281
|
-
};
|
|
2282
|
-
};
|
|
2283
|
-
readonly relation: {
|
|
2284
|
-
readonly name: {
|
|
2285
|
-
readonly type: "text";
|
|
2286
|
-
readonly required: true;
|
|
2287
|
-
};
|
|
2288
|
-
readonly description: {
|
|
2289
|
-
readonly type: "text";
|
|
2290
|
-
readonly required: false;
|
|
2291
|
-
};
|
|
2292
|
-
readonly supertype: {
|
|
2293
|
-
readonly type: "text";
|
|
2294
|
-
readonly required: false;
|
|
2295
|
-
};
|
|
2296
|
-
readonly subtype: {
|
|
2297
|
-
readonly type: "text";
|
|
2298
|
-
readonly required: false;
|
|
2299
|
-
};
|
|
2300
|
-
readonly image_url: {
|
|
2301
|
-
readonly type: "text";
|
|
2302
|
-
readonly required: false;
|
|
2303
|
-
};
|
|
2304
|
-
readonly background: {
|
|
2305
|
-
readonly type: "text";
|
|
2306
|
-
};
|
|
2307
|
-
readonly start_date: {
|
|
2308
|
-
readonly type: "number";
|
|
2309
|
-
};
|
|
2310
|
-
readonly end_date: {
|
|
2311
|
-
readonly type: "number";
|
|
2312
|
-
};
|
|
2313
|
-
readonly intensity: {
|
|
2314
|
-
readonly type: "number";
|
|
2315
|
-
};
|
|
2316
|
-
readonly actor: {
|
|
2317
|
-
readonly type: "single_link";
|
|
2318
|
-
readonly target: "character";
|
|
2319
|
-
};
|
|
2320
|
-
readonly events: {
|
|
2321
|
-
readonly type: "multi_link";
|
|
2322
|
-
readonly target: "event";
|
|
2323
|
-
};
|
|
2324
|
-
readonly characters: {
|
|
2325
|
-
readonly type: "multi_link";
|
|
2326
|
-
readonly target: "character";
|
|
2327
|
-
};
|
|
2328
|
-
readonly objects: {
|
|
2329
|
-
readonly type: "multi_link";
|
|
2330
|
-
readonly target: "object";
|
|
2331
|
-
};
|
|
2332
|
-
readonly locations: {
|
|
2333
|
-
readonly type: "multi_link";
|
|
2334
|
-
readonly target: "location";
|
|
2335
|
-
};
|
|
2336
|
-
readonly species: {
|
|
2337
|
-
readonly type: "multi_link";
|
|
2338
|
-
readonly target: "species";
|
|
2339
|
-
};
|
|
2340
|
-
readonly creatures: {
|
|
2341
|
-
readonly type: "multi_link";
|
|
2342
|
-
readonly target: "creature";
|
|
2343
|
-
};
|
|
2344
|
-
readonly institutions: {
|
|
2345
|
-
readonly type: "multi_link";
|
|
2346
|
-
readonly target: "institution";
|
|
2347
|
-
};
|
|
2348
|
-
readonly traits: {
|
|
2349
|
-
readonly type: "multi_link";
|
|
2350
|
-
readonly target: "trait";
|
|
2351
|
-
};
|
|
2352
|
-
readonly collectives: {
|
|
2353
|
-
readonly type: "multi_link";
|
|
2354
|
-
readonly target: "collective";
|
|
2355
|
-
};
|
|
2356
|
-
readonly zones: {
|
|
2357
|
-
readonly type: "multi_link";
|
|
2358
|
-
readonly target: "zone";
|
|
2359
|
-
};
|
|
2360
|
-
readonly abilities: {
|
|
2361
|
-
readonly type: "multi_link";
|
|
2362
|
-
readonly target: "ability";
|
|
2363
|
-
};
|
|
2364
|
-
readonly phenomena: {
|
|
2365
|
-
readonly type: "multi_link";
|
|
2366
|
-
readonly target: "phenomenon";
|
|
2367
|
-
};
|
|
2368
|
-
readonly languages: {
|
|
2369
|
-
readonly type: "multi_link";
|
|
2370
|
-
readonly target: "language";
|
|
2371
|
-
};
|
|
2372
|
-
readonly families: {
|
|
2373
|
-
readonly type: "multi_link";
|
|
2374
|
-
readonly target: "family";
|
|
2375
|
-
};
|
|
2376
|
-
readonly relations: {
|
|
2377
|
-
readonly type: "multi_link";
|
|
2378
|
-
readonly target: "relation";
|
|
2379
|
-
};
|
|
2380
|
-
readonly titles: {
|
|
2381
|
-
readonly type: "multi_link";
|
|
2382
|
-
readonly target: "title";
|
|
2383
|
-
};
|
|
2384
|
-
readonly constructs: {
|
|
2385
|
-
readonly type: "multi_link";
|
|
2386
|
-
readonly target: "construct";
|
|
2387
|
-
};
|
|
2388
|
-
readonly narratives: {
|
|
2389
|
-
readonly type: "multi_link";
|
|
2390
|
-
readonly target: "narrative";
|
|
2391
|
-
};
|
|
2392
|
-
};
|
|
2393
|
-
readonly species: {
|
|
2394
|
-
readonly name: {
|
|
2395
|
-
readonly type: "text";
|
|
2396
|
-
readonly required: true;
|
|
2397
|
-
};
|
|
2398
|
-
readonly description: {
|
|
2399
|
-
readonly type: "text";
|
|
2400
|
-
readonly required: false;
|
|
2401
|
-
};
|
|
2402
|
-
readonly supertype: {
|
|
2403
|
-
readonly type: "text";
|
|
2404
|
-
readonly required: false;
|
|
2405
|
-
};
|
|
2406
|
-
readonly subtype: {
|
|
2407
|
-
readonly type: "text";
|
|
2408
|
-
readonly required: false;
|
|
2409
|
-
};
|
|
2410
|
-
readonly image_url: {
|
|
2411
|
-
readonly type: "text";
|
|
2412
|
-
readonly required: false;
|
|
2413
|
-
};
|
|
2414
|
-
readonly appearance: {
|
|
2415
|
-
readonly type: "text";
|
|
2416
|
-
};
|
|
2417
|
-
readonly life_span: {
|
|
2418
|
-
readonly type: "number";
|
|
2419
|
-
};
|
|
2420
|
-
readonly weight: {
|
|
2421
|
-
readonly type: "number";
|
|
2422
|
-
};
|
|
2423
|
-
readonly nourishment: {
|
|
2424
|
-
readonly type: "multi_link";
|
|
2425
|
-
readonly target: "species";
|
|
2426
|
-
};
|
|
2427
|
-
readonly reproduction: {
|
|
2428
|
-
readonly type: "multi_link";
|
|
2429
|
-
readonly target: "construct";
|
|
2430
|
-
};
|
|
2431
|
-
readonly adaptations: {
|
|
2432
|
-
readonly type: "multi_link";
|
|
2433
|
-
readonly target: "ability";
|
|
2434
|
-
};
|
|
2435
|
-
readonly instincts: {
|
|
2436
|
-
readonly type: "text";
|
|
2437
|
-
};
|
|
2438
|
-
readonly sociality: {
|
|
2439
|
-
readonly type: "text";
|
|
2440
|
-
};
|
|
2441
|
-
readonly temperament: {
|
|
2442
|
-
readonly type: "text";
|
|
2443
|
-
};
|
|
2444
|
-
readonly communication: {
|
|
2445
|
-
readonly type: "text";
|
|
2446
|
-
};
|
|
2447
|
-
readonly aggression: {
|
|
2448
|
-
readonly type: "number";
|
|
2449
|
-
};
|
|
2450
|
-
readonly traits: {
|
|
2451
|
-
readonly type: "multi_link";
|
|
2452
|
-
readonly target: "trait";
|
|
2453
|
-
};
|
|
2454
|
-
readonly role: {
|
|
2455
|
-
readonly type: "text";
|
|
2456
|
-
};
|
|
2457
|
-
readonly parent_species: {
|
|
2458
|
-
readonly type: "single_link";
|
|
2459
|
-
readonly target: "species";
|
|
2460
|
-
};
|
|
2461
|
-
readonly locations: {
|
|
2462
|
-
readonly type: "multi_link";
|
|
2463
|
-
readonly target: "location";
|
|
2464
|
-
};
|
|
2465
|
-
readonly zones: {
|
|
2466
|
-
readonly type: "multi_link";
|
|
2467
|
-
readonly target: "zone";
|
|
2468
|
-
};
|
|
2469
|
-
readonly affinities: {
|
|
2470
|
-
readonly type: "multi_link";
|
|
2471
|
-
readonly target: "phenomenon";
|
|
2472
|
-
};
|
|
2473
|
-
};
|
|
2474
|
-
readonly title: {
|
|
2475
|
-
readonly name: {
|
|
2476
|
-
readonly type: "text";
|
|
2477
|
-
readonly required: true;
|
|
2478
|
-
};
|
|
2479
|
-
readonly description: {
|
|
2480
|
-
readonly type: "text";
|
|
2481
|
-
readonly required: false;
|
|
2482
|
-
};
|
|
2483
|
-
readonly supertype: {
|
|
2484
|
-
readonly type: "text";
|
|
2485
|
-
readonly required: false;
|
|
2486
|
-
};
|
|
2487
|
-
readonly subtype: {
|
|
2488
|
-
readonly type: "text";
|
|
2489
|
-
readonly required: false;
|
|
2490
|
-
};
|
|
2491
|
-
readonly image_url: {
|
|
2492
|
-
readonly type: "text";
|
|
2493
|
-
readonly required: false;
|
|
2494
|
-
};
|
|
2495
|
-
readonly authority: {
|
|
2496
|
-
readonly type: "text";
|
|
2497
|
-
};
|
|
2498
|
-
readonly eligibility: {
|
|
2499
|
-
readonly type: "text";
|
|
2500
|
-
};
|
|
2501
|
-
readonly grant_date: {
|
|
2502
|
-
readonly type: "number";
|
|
2503
|
-
};
|
|
2504
|
-
readonly revoke_date: {
|
|
2505
|
-
readonly type: "number";
|
|
2506
|
-
};
|
|
2507
|
-
readonly issuer: {
|
|
2508
|
-
readonly type: "single_link";
|
|
2509
|
-
readonly target: "institution";
|
|
2510
|
-
};
|
|
2511
|
-
readonly body: {
|
|
2512
|
-
readonly type: "single_link";
|
|
2513
|
-
readonly target: "institution";
|
|
2514
|
-
};
|
|
2515
|
-
readonly superior_title: {
|
|
2516
|
-
readonly type: "single_link";
|
|
2517
|
-
readonly target: "title";
|
|
2518
|
-
};
|
|
2519
|
-
readonly holders: {
|
|
2520
|
-
readonly type: "multi_link";
|
|
2521
|
-
readonly target: "character";
|
|
2522
|
-
};
|
|
2523
|
-
readonly symbols: {
|
|
2524
|
-
readonly type: "multi_link";
|
|
2525
|
-
readonly target: "object";
|
|
2526
|
-
};
|
|
2527
|
-
readonly status: {
|
|
2528
|
-
readonly type: "text";
|
|
2529
|
-
};
|
|
2530
|
-
readonly history: {
|
|
2531
|
-
readonly type: "text";
|
|
2532
|
-
};
|
|
2533
|
-
readonly characters: {
|
|
2534
|
-
readonly type: "multi_link";
|
|
2535
|
-
readonly target: "character";
|
|
2536
|
-
};
|
|
2537
|
-
readonly institutions: {
|
|
2538
|
-
readonly type: "multi_link";
|
|
2539
|
-
readonly target: "institution";
|
|
2540
|
-
};
|
|
2541
|
-
readonly families: {
|
|
2542
|
-
readonly type: "multi_link";
|
|
2543
|
-
readonly target: "family";
|
|
2544
|
-
};
|
|
2545
|
-
readonly zones: {
|
|
2546
|
-
readonly type: "multi_link";
|
|
2547
|
-
readonly target: "zone";
|
|
2548
|
-
};
|
|
2549
|
-
readonly locations: {
|
|
2550
|
-
readonly type: "multi_link";
|
|
2551
|
-
readonly target: "location";
|
|
2552
|
-
};
|
|
2553
|
-
readonly objects: {
|
|
2554
|
-
readonly type: "multi_link";
|
|
2555
|
-
readonly target: "object";
|
|
2556
|
-
};
|
|
2557
|
-
readonly constructs: {
|
|
2558
|
-
readonly type: "multi_link";
|
|
2559
|
-
readonly target: "construct";
|
|
2560
|
-
};
|
|
2561
|
-
readonly laws: {
|
|
2562
|
-
readonly type: "multi_link";
|
|
2563
|
-
readonly target: "law";
|
|
2564
|
-
};
|
|
2565
|
-
readonly collectives: {
|
|
2566
|
-
readonly type: "multi_link";
|
|
2567
|
-
readonly target: "collective";
|
|
2568
|
-
};
|
|
2569
|
-
readonly creatures: {
|
|
2570
|
-
readonly type: "multi_link";
|
|
2571
|
-
readonly target: "creature";
|
|
2572
|
-
};
|
|
2573
|
-
readonly phenomena: {
|
|
2574
|
-
readonly type: "multi_link";
|
|
2575
|
-
readonly target: "phenomenon";
|
|
2576
|
-
};
|
|
2577
|
-
readonly species: {
|
|
2578
|
-
readonly type: "multi_link";
|
|
2579
|
-
readonly target: "species";
|
|
2580
|
-
};
|
|
2581
|
-
readonly languages: {
|
|
2582
|
-
readonly type: "multi_link";
|
|
2583
|
-
readonly target: "language";
|
|
2584
|
-
};
|
|
2585
|
-
};
|
|
2586
|
-
readonly trait: {
|
|
2587
|
-
readonly name: {
|
|
2588
|
-
readonly type: "text";
|
|
2589
|
-
readonly required: true;
|
|
2590
|
-
};
|
|
2591
|
-
readonly description: {
|
|
2592
|
-
readonly type: "text";
|
|
2593
|
-
readonly required: false;
|
|
2594
|
-
};
|
|
2595
|
-
readonly supertype: {
|
|
2596
|
-
readonly type: "text";
|
|
2597
|
-
readonly required: false;
|
|
2598
|
-
};
|
|
2599
|
-
readonly subtype: {
|
|
2600
|
-
readonly type: "text";
|
|
2601
|
-
readonly required: false;
|
|
2602
|
-
};
|
|
2603
|
-
readonly image_url: {
|
|
2604
|
-
readonly type: "text";
|
|
2605
|
-
readonly required: false;
|
|
2606
|
-
};
|
|
2607
|
-
readonly social_effects: {
|
|
2608
|
-
readonly type: "text";
|
|
2609
|
-
};
|
|
2610
|
-
readonly physical_effects: {
|
|
2611
|
-
readonly type: "text";
|
|
2612
|
-
};
|
|
2613
|
-
readonly functional_effects: {
|
|
2614
|
-
readonly type: "text";
|
|
2615
|
-
};
|
|
2616
|
-
readonly personality_effects: {
|
|
2617
|
-
readonly type: "text";
|
|
2618
|
-
};
|
|
2619
|
-
readonly behaviour_effects: {
|
|
2620
|
-
readonly type: "text";
|
|
2621
|
-
};
|
|
2622
|
-
readonly charisma: {
|
|
2623
|
-
readonly type: "number";
|
|
2624
|
-
};
|
|
2625
|
-
readonly coercion: {
|
|
2626
|
-
readonly type: "number";
|
|
2627
|
-
};
|
|
2628
|
-
readonly competence: {
|
|
2629
|
-
readonly type: "number";
|
|
2630
|
-
};
|
|
2631
|
-
readonly compassion: {
|
|
2632
|
-
readonly type: "number";
|
|
2633
|
-
};
|
|
2634
|
-
readonly creativity: {
|
|
2635
|
-
readonly type: "number";
|
|
2636
|
-
};
|
|
2637
|
-
readonly courage: {
|
|
2638
|
-
readonly type: "number";
|
|
2639
|
-
};
|
|
2640
|
-
readonly significance: {
|
|
2641
|
-
readonly type: "text";
|
|
2642
|
-
};
|
|
2643
|
-
readonly anti_trait: {
|
|
2644
|
-
readonly type: "single_link";
|
|
2645
|
-
readonly target: "trait";
|
|
2646
|
-
};
|
|
2647
|
-
readonly empowered_abilities: {
|
|
2648
|
-
readonly type: "multi_link";
|
|
2649
|
-
readonly target: "ability";
|
|
2650
|
-
};
|
|
2651
|
-
};
|
|
2652
|
-
readonly zone: {
|
|
2653
|
-
readonly name: {
|
|
2654
|
-
readonly type: "text";
|
|
2655
|
-
readonly required: true;
|
|
2656
|
-
};
|
|
2657
|
-
readonly description: {
|
|
2658
|
-
readonly type: "text";
|
|
2659
|
-
readonly required: false;
|
|
2660
|
-
};
|
|
2661
|
-
readonly supertype: {
|
|
2662
|
-
readonly type: "text";
|
|
2663
|
-
readonly required: false;
|
|
2664
|
-
};
|
|
2665
|
-
readonly subtype: {
|
|
2666
|
-
readonly type: "text";
|
|
2667
|
-
readonly required: false;
|
|
2668
|
-
};
|
|
2669
|
-
readonly image_url: {
|
|
2670
|
-
readonly type: "text";
|
|
2671
|
-
readonly required: false;
|
|
2672
|
-
};
|
|
2673
|
-
readonly role: {
|
|
2674
|
-
readonly type: "text";
|
|
2675
|
-
};
|
|
2676
|
-
readonly start_date: {
|
|
2677
|
-
readonly type: "number";
|
|
2678
|
-
};
|
|
2679
|
-
readonly end_date: {
|
|
2680
|
-
readonly type: "number";
|
|
2681
|
-
};
|
|
2682
|
-
readonly phenomena: {
|
|
2683
|
-
readonly type: "multi_link";
|
|
2684
|
-
readonly target: "phenomenon";
|
|
2685
|
-
};
|
|
2686
|
-
readonly linked_zones: {
|
|
2687
|
-
readonly type: "multi_link";
|
|
2688
|
-
readonly target: "zone";
|
|
2689
|
-
};
|
|
2690
|
-
readonly context: {
|
|
2691
|
-
readonly type: "text";
|
|
2692
|
-
};
|
|
2693
|
-
readonly populations: {
|
|
2694
|
-
readonly type: "multi_link";
|
|
2695
|
-
readonly target: "collective";
|
|
2696
|
-
};
|
|
2697
|
-
readonly titles: {
|
|
2698
|
-
readonly type: "multi_link";
|
|
2699
|
-
readonly target: "title";
|
|
2700
|
-
};
|
|
2701
|
-
readonly principles: {
|
|
2702
|
-
readonly type: "multi_link";
|
|
2703
|
-
readonly target: "construct";
|
|
2704
|
-
};
|
|
2705
|
-
};
|
|
2706
|
-
};
|
|
2707
|
-
/**
|
|
2708
|
-
* Creates a typed element ID from a string
|
|
2709
|
-
* @param id The string ID to brand
|
|
2710
|
-
* @returns Branded ElementId
|
|
2711
|
-
*/
|
|
2712
|
-
declare function createElementId<T extends ElementType$1>(id: string): ElementId<T>;
|
|
2713
|
-
/**
|
|
2714
|
-
* Creates typed element IDs array from string array
|
|
2715
|
-
* @param ids The string IDs to brand
|
|
2716
|
-
* @returns Branded ElementIds array
|
|
2717
|
-
*/
|
|
2718
|
-
declare function createElementIds<T extends ElementType$1>(ids: string[]): ElementIds<T>;
|
|
2719
|
-
/**
|
|
2720
|
-
* Creates an AnyElementId that can reference any element type
|
|
2721
|
-
* @param id The string ID to brand
|
|
2722
|
-
* @returns AnyElementId
|
|
2723
|
-
*/
|
|
2724
|
-
declare function createAnyElementId(id: string): AnyElementId;
|
|
2725
|
-
|
|
2726
|
-
/**
|
|
2727
|
-
* OnlyWorlds Token Management API Types
|
|
2728
|
-
*
|
|
2729
|
-
* Types for the token rating system that provides daily token allowances
|
|
2730
|
-
* for API usage and AI integration features.
|
|
2731
|
-
*/
|
|
2732
|
-
/**
|
|
2733
|
-
* Current token status for the authenticated user
|
|
2734
|
-
*/
|
|
2735
|
-
interface TokenStatus {
|
|
2736
|
-
/** Remaining tokens available for today */
|
|
2737
|
-
tokens_available_today: number;
|
|
2738
|
-
/** User's daily token allowance (default: 10000) */
|
|
2739
|
-
token_rating: number;
|
|
2740
|
-
/** Tokens consumed so far today */
|
|
2741
|
-
tokens_used_today: number;
|
|
2742
|
-
/** Date of last reset (ISO format) */
|
|
2743
|
-
last_reset: string;
|
|
2744
|
-
/** Number of active token sessions */
|
|
2745
|
-
sessions_active: number;
|
|
2746
|
-
}
|
|
2747
|
-
/**
|
|
2748
|
-
* Response from token consumption endpoint
|
|
2749
|
-
*/
|
|
2750
|
-
interface TokenConsumeResponse {
|
|
2751
|
-
/** Whether the consumption was successful */
|
|
2752
|
-
success: boolean;
|
|
2753
|
-
/** Actual tokens consumed */
|
|
2754
|
-
tokens_consumed: number;
|
|
2755
|
-
/** Updated token balance */
|
|
2756
|
-
tokens_remaining: number;
|
|
2757
|
-
/** User's daily allowance */
|
|
2758
|
-
token_rating: number;
|
|
2759
|
-
/** Warning message if insufficient tokens (consumption still succeeds but tracks debt) */
|
|
2760
|
-
error?: string | null;
|
|
2761
|
-
}
|
|
2762
|
-
/**
|
|
2763
|
-
* Parameters for consuming tokens
|
|
2764
|
-
*/
|
|
2765
|
-
interface TokenConsumeParams {
|
|
2766
|
-
/** Number of tokens to consume (required) */
|
|
2767
|
-
amount: number;
|
|
2768
|
-
/** Service identifier (default: "sdk_client") */
|
|
2769
|
-
service?: string;
|
|
2770
|
-
/** Session ID from access key response (optional) */
|
|
2771
|
-
sessionId?: string | null;
|
|
2772
|
-
/** Additional metadata for analytics (optional) */
|
|
2773
|
-
metadata?: Record<string, any> | null;
|
|
2774
|
-
}
|
|
2775
|
-
/**
|
|
2776
|
-
* Response from getting encrypted access key (advanced use case)
|
|
2777
|
-
*/
|
|
2778
|
-
interface AccessKeyResponse {
|
|
2779
|
-
/** Base64 encoded encrypted OpenAI key */
|
|
2780
|
-
encrypted_key: string;
|
|
2781
|
-
/** Key expiration timestamp (ISO format) */
|
|
2782
|
-
expires_at: string;
|
|
2783
|
-
/** Session ID for tracking usage */
|
|
2784
|
-
session_id: string;
|
|
2785
|
-
/** Current token balance */
|
|
2786
|
-
tokens_available: number;
|
|
2787
|
-
/** User's token allowance */
|
|
2788
|
-
token_rating: number;
|
|
2789
|
-
/** Encryption algorithm used */
|
|
2790
|
-
encryption_method: string;
|
|
2791
|
-
}
|
|
2792
|
-
/**
|
|
2793
|
-
* Public encryption information for client-side decryption
|
|
2794
|
-
*/
|
|
2795
|
-
interface EncryptionInfo {
|
|
2796
|
-
/** Encryption algorithm (e.g., "Fernet") */
|
|
2797
|
-
algorithm: string;
|
|
2798
|
-
/** Key derivation method (e.g., "SHA256") */
|
|
2799
|
-
key_derivation: string;
|
|
2800
|
-
/** Public salt used in key derivation */
|
|
2801
|
-
salt: string;
|
|
2802
|
-
/** Format description */
|
|
2803
|
-
format: string;
|
|
2804
|
-
/** Human-readable description */
|
|
2805
|
-
description: string;
|
|
2806
|
-
/** Example JavaScript implementation */
|
|
2807
|
-
javascript_example: string;
|
|
2808
|
-
}
|
|
2809
|
-
/**
|
|
2810
|
-
* Response from session revocation
|
|
2811
|
-
*/
|
|
2812
|
-
interface RevokeSessionResponse {
|
|
2813
|
-
/** Whether revocation was successful */
|
|
2814
|
-
success: boolean;
|
|
2815
|
-
/** Status message */
|
|
2816
|
-
message: string;
|
|
2817
|
-
}
|
|
2818
|
-
/**
|
|
2819
|
-
* Response from revoking all sessions
|
|
2820
|
-
*/
|
|
2821
|
-
interface RevokeAllSessionsResponse {
|
|
2822
|
-
/** Whether revocation was successful */
|
|
2823
|
-
success: boolean;
|
|
2824
|
-
/** Number of sessions revoked */
|
|
2825
|
-
sessions_revoked: number;
|
|
2826
|
-
}
|
|
2827
|
-
/**
|
|
2828
|
-
* Game tier / subscription level
|
|
2829
|
-
* (affects future features, currently all tiers get same token rating)
|
|
2830
|
-
*/
|
|
2831
|
-
declare enum GameTier {
|
|
2832
|
-
FREE = "free",
|
|
2833
|
-
SILVER = "silver",
|
|
2834
|
-
GOLD = "gold",
|
|
2835
|
-
PLATINUM = "platinum",
|
|
2836
|
-
DIAMOND = "diamond",
|
|
2837
|
-
DELUXE = "deluxe"
|
|
2838
|
-
}
|
|
2839
|
-
|
|
2840
|
-
/**
|
|
2841
|
-
* Token Management Resource
|
|
2842
|
-
*
|
|
2843
|
-
* Provides access to the OnlyWorlds token rating system API.
|
|
2844
|
-
* Based on the working implementation in base-tool/src/llm/token-service.ts
|
|
2845
|
-
*/
|
|
2846
|
-
|
|
2847
|
-
/**
|
|
2848
|
-
* Token Management Resource
|
|
2849
|
-
*
|
|
2850
|
-
* Handles token status checking, consumption tracking, and encrypted key access
|
|
2851
|
-
* for AI integration features.
|
|
2852
|
-
*
|
|
2853
|
-
* All endpoints require authentication (API-Key + API-Pin headers).
|
|
2854
|
-
*
|
|
2855
|
-
* Example usage:
|
|
2856
|
-
* ```typescript
|
|
2857
|
-
* const client = new OnlyWorldsClient({ apiKey, apiPin });
|
|
2858
|
-
*
|
|
2859
|
-
* // Check token status
|
|
2860
|
-
* const status = await client.tokens.getStatus();
|
|
2861
|
-
* console.log(`${status.tokens_available_today}/${status.token_rating} tokens available`);
|
|
2862
|
-
*
|
|
2863
|
-
* // Consume tokens
|
|
2864
|
-
* await client.tokens.consume({
|
|
2865
|
-
* amount: 500,
|
|
2866
|
-
* service: 'my_tool',
|
|
2867
|
-
* metadata: { feature: 'chat', model: 'gpt-4' }
|
|
2868
|
-
* });
|
|
2869
|
-
* ```
|
|
2870
|
-
*/
|
|
2871
|
-
declare class TokenResource {
|
|
2872
|
-
private client;
|
|
2873
|
-
constructor(client: OnlyWorldsClient);
|
|
2874
|
-
/**
|
|
2875
|
-
* Get current token status for authenticated user
|
|
2876
|
-
*
|
|
2877
|
-
* Returns daily token allowance, usage, and availability.
|
|
2878
|
-
* Matches base-tool's checkStatus() pattern.
|
|
2879
|
-
*
|
|
2880
|
-
* @returns Current token status
|
|
2881
|
-
* @example
|
|
2882
|
-
* ```typescript
|
|
2883
|
-
* const status = await client.tokens.getStatus();
|
|
2884
|
-
* console.log(`Available: ${status.tokens_available_today}/${status.token_rating}`);
|
|
2885
|
-
* console.log(`Used today: ${status.tokens_used_today}`);
|
|
2886
|
-
* console.log(`Active sessions: ${status.sessions_active}`);
|
|
2887
|
-
* ```
|
|
2888
|
-
*/
|
|
2889
|
-
getStatus(): Promise<TokenStatus>;
|
|
2890
|
-
/**
|
|
2891
|
-
* Consume tokens for service usage
|
|
2892
|
-
*
|
|
2893
|
-
* Reports token consumption to track daily usage. Allows consumption even if
|
|
2894
|
-
* exceeds available tokens (tracks as debt), but warns via error field.
|
|
2895
|
-
* Matches base-tool's reportUsage() pattern.
|
|
2896
|
-
*
|
|
2897
|
-
* @param params - Token consumption parameters
|
|
2898
|
-
* @returns Consumption result with updated balance
|
|
2899
|
-
* @example
|
|
2900
|
-
* ```typescript
|
|
2901
|
-
* const result = await client.tokens.consume({
|
|
2902
|
-
* amount: 500,
|
|
2903
|
-
* service: 'worldbuilding_tool',
|
|
2904
|
-
* metadata: {
|
|
2905
|
-
* feature: 'character_generation',
|
|
2906
|
-
* model: 'gpt-4',
|
|
2907
|
-
* prompt_tokens: 300,
|
|
2908
|
-
* completion_tokens: 200
|
|
2909
|
-
* }
|
|
2910
|
-
* });
|
|
2911
|
-
*
|
|
2912
|
-
* if (result.error) {
|
|
2913
|
-
* console.warn('Token warning:', result.error);
|
|
2914
|
-
* }
|
|
2915
|
-
* console.log(`${result.tokens_remaining} tokens remaining`);
|
|
2916
|
-
* ```
|
|
2917
|
-
*/
|
|
2918
|
-
consume(params: TokenConsumeParams): Promise<TokenConsumeResponse>;
|
|
2919
|
-
/**
|
|
2920
|
-
* Get encrypted OpenAI API key (advanced use case)
|
|
2921
|
-
*
|
|
2922
|
-
* Requires minimum 100 tokens available. Creates a 1-hour session for tracking.
|
|
2923
|
-
* Returns encrypted key that must be decrypted client-side using Fernet.
|
|
2924
|
-
*
|
|
2925
|
-
* See base-tool/src/llm/token-service.ts:99-155 for full implementation example
|
|
2926
|
-
* including client-side decryption with the 'fernet' npm package.
|
|
2927
|
-
*
|
|
2928
|
-
* @returns Encrypted access key and session info
|
|
2929
|
-
* @throws Error if insufficient tokens (< 100)
|
|
2930
|
-
* @example
|
|
2931
|
-
* ```typescript
|
|
2932
|
-
* // Get encrypted key
|
|
2933
|
-
* const access = await client.tokens.getAccessKey();
|
|
2934
|
-
*
|
|
2935
|
-
* // Decrypt using fernet library (see base-tool for full example)
|
|
2936
|
-
* // 1. Derive key from world ID using SHA-256
|
|
2937
|
-
* // 2. Use 'fernet' npm package to decrypt
|
|
2938
|
-
* // 3. Use decrypted OpenAI key for direct API calls
|
|
2939
|
-
* // 4. Report usage with access.session_id
|
|
2940
|
-
*
|
|
2941
|
-
* console.log('Session:', access.session_id);
|
|
2942
|
-
* console.log('Expires:', access.expires_at);
|
|
2943
|
-
* ```
|
|
2944
|
-
*/
|
|
2945
|
-
getAccessKey(): Promise<AccessKeyResponse>;
|
|
2946
|
-
/**
|
|
2947
|
-
* Revoke a specific token session
|
|
2948
|
-
*
|
|
2949
|
-
* Invalidates the session ID obtained from getAccessKey().
|
|
2950
|
-
* Use when cleaning up or on logout.
|
|
2951
|
-
*
|
|
2952
|
-
* @param sessionId - Session ID to revoke
|
|
2953
|
-
* @returns Revocation result
|
|
2954
|
-
* @example
|
|
2955
|
-
* ```typescript
|
|
2956
|
-
* await client.tokens.revokeSession('session-id-here');
|
|
2957
|
-
* ```
|
|
2958
|
-
*/
|
|
2959
|
-
revokeSession(sessionId: string): Promise<RevokeSessionResponse>;
|
|
2960
|
-
/**
|
|
2961
|
-
* Revoke all active sessions (emergency use)
|
|
2962
|
-
*
|
|
2963
|
-
* Invalidates all token sessions for the authenticated user.
|
|
2964
|
-
* Use for security cleanup or when sessions are stuck.
|
|
2965
|
-
*
|
|
2966
|
-
* @returns Revocation result with count of revoked sessions
|
|
2967
|
-
* @example
|
|
2968
|
-
* ```typescript
|
|
2969
|
-
* const result = await client.tokens.revokeAllSessions();
|
|
2970
|
-
* console.log(`Revoked ${result.sessions_revoked} sessions`);
|
|
2971
|
-
* ```
|
|
2972
|
-
*/
|
|
2973
|
-
revokeAllSessions(): Promise<RevokeAllSessionsResponse>;
|
|
2974
|
-
/**
|
|
2975
|
-
* Get public encryption info (no auth required)
|
|
2976
|
-
*
|
|
2977
|
-
* Returns algorithm details and example code for client-side decryption.
|
|
2978
|
-
* Public endpoint - can be called without authentication.
|
|
2979
|
-
*
|
|
2980
|
-
* @returns Encryption algorithm and implementation details
|
|
2981
|
-
* @example
|
|
2982
|
-
* ```typescript
|
|
2983
|
-
* const info = await client.tokens.getEncryptionInfo();
|
|
2984
|
-
* console.log('Algorithm:', info.algorithm);
|
|
2985
|
-
* console.log('Key derivation:', info.key_derivation);
|
|
2986
|
-
* console.log(info.javascript_example);
|
|
2987
|
-
* ```
|
|
2988
|
-
*/
|
|
2989
|
-
getEncryptionInfo(): Promise<EncryptionInfo>;
|
|
2990
|
-
}
|
|
2991
|
-
|
|
2992
|
-
interface OnlyWorldsConfig {
|
|
2993
|
-
apiKey: string;
|
|
2994
|
-
apiPin: string;
|
|
2995
|
-
baseUrl?: string;
|
|
2996
|
-
}
|
|
2997
|
-
interface ListOptions {
|
|
2998
|
-
limit?: number;
|
|
2999
|
-
offset?: number;
|
|
3000
|
-
ordering?: string;
|
|
3001
|
-
search?: string;
|
|
3002
|
-
[key: string]: any;
|
|
3003
|
-
}
|
|
3004
|
-
interface ApiResponse<T> {
|
|
3005
|
-
count: number;
|
|
3006
|
-
next: string | null;
|
|
3007
|
-
previous: string | null;
|
|
3008
|
-
results: T[];
|
|
3009
|
-
}
|
|
3010
|
-
/**
|
|
3011
|
-
* Base resource class for CRUD operations
|
|
3012
|
-
*/
|
|
3013
|
-
declare class Resource<T, TInput> {
|
|
3014
|
-
private client;
|
|
3015
|
-
private elementType;
|
|
3016
|
-
constructor(client: OnlyWorldsClient, elementType: string);
|
|
3017
|
-
list(options?: ListOptions): Promise<ApiResponse<T>>;
|
|
3018
|
-
get(id: string): Promise<T>;
|
|
3019
|
-
create(data: TInput): Promise<T>;
|
|
3020
|
-
update(id: string, data: Partial<TInput>): Promise<T>;
|
|
3021
|
-
delete(id: string): Promise<void>;
|
|
3022
|
-
/**
|
|
3023
|
-
* Round Pin coordinates to integers (API requirement)
|
|
3024
|
-
* @private
|
|
3025
|
-
*/
|
|
3026
|
-
private roundPinCoordinates;
|
|
3027
|
-
}
|
|
3028
|
-
/**
|
|
3029
|
-
* Special resource class for World endpoint
|
|
3030
|
-
* The /world/ endpoint returns a single World object directly (not paginated)
|
|
3031
|
-
* because API keys are world-scoped (one key = one world)
|
|
3032
|
-
*/
|
|
3033
|
-
declare class WorldResource {
|
|
3034
|
-
private client;
|
|
3035
|
-
constructor(client: OnlyWorldsClient);
|
|
3036
|
-
/**
|
|
3037
|
-
* Get the world associated with the current API key
|
|
3038
|
-
* Returns the world directly (not wrapped in pagination)
|
|
3039
|
-
*/
|
|
3040
|
-
get(): Promise<World>;
|
|
3041
|
-
/**
|
|
3042
|
-
* Update the current world
|
|
3043
|
-
*/
|
|
3044
|
-
update(data: Partial<WorldInput>): Promise<World>;
|
|
3045
|
-
}
|
|
3046
|
-
/**
|
|
3047
|
-
* Main OnlyWorlds API client
|
|
3048
|
-
*/
|
|
3049
|
-
declare class OnlyWorldsClient {
|
|
3050
|
-
private baseUrl;
|
|
3051
|
-
private headers;
|
|
3052
|
-
worlds: WorldResource;
|
|
3053
|
-
tokens: TokenResource;
|
|
3054
|
-
abilities: Resource<Ability, AbilityInput>;
|
|
3055
|
-
characters: Resource<Character, CharacterInput>;
|
|
3056
|
-
collectives: Resource<Collective, CollectiveInput>;
|
|
3057
|
-
constructs: Resource<Construct, ConstructInput>;
|
|
3058
|
-
creatures: Resource<Creature, CreatureInput>;
|
|
3059
|
-
events: Resource<Event, EventInput>;
|
|
3060
|
-
families: Resource<Family, FamilyInput>;
|
|
3061
|
-
institutions: Resource<Institution, InstitutionInput>;
|
|
3062
|
-
languages: Resource<Language, LanguageInput>;
|
|
3063
|
-
laws: Resource<Law, LawInput>;
|
|
3064
|
-
locations: Resource<Location, LocationInput>;
|
|
3065
|
-
maps: Resource<Map, MapInput>;
|
|
3066
|
-
markers: Resource<Marker, MarkerInput>;
|
|
3067
|
-
narratives: Resource<Narrative, NarrativeInput>;
|
|
3068
|
-
objects: Resource<Object$1, ObjectInput>;
|
|
3069
|
-
phenomena: Resource<Phenomenon, PhenomenonInput>;
|
|
3070
|
-
pins: Resource<Pin, PinInput>;
|
|
3071
|
-
relations: Resource<Relation, RelationInput>;
|
|
3072
|
-
species: Resource<Species, SpeciesInput>;
|
|
3073
|
-
titles: Resource<Title, TitleInput>;
|
|
3074
|
-
traits: Resource<Trait, TraitInput>;
|
|
3075
|
-
zones: Resource<Zone, ZoneInput>;
|
|
3076
|
-
constructor(config: OnlyWorldsConfig);
|
|
3077
|
-
/**
|
|
3078
|
-
* Make a request to the OnlyWorlds API
|
|
3079
|
-
*/
|
|
3080
|
-
request<T>(method: string, path: string, options?: {
|
|
3081
|
-
params?: Record<string, any>;
|
|
3082
|
-
body?: any;
|
|
3083
|
-
}): Promise<T>;
|
|
3084
|
-
/**
|
|
3085
|
-
* Helper to convert nested objects to _id/_ids format (legacy method)
|
|
3086
|
-
* @deprecated Use prepareRelations instead - it's called automatically in create/update
|
|
3087
|
-
*/
|
|
3088
|
-
static prepareInput<T extends Record<string, any>>(data: T): any;
|
|
3089
|
-
/**
|
|
3090
|
-
* Convert relation fields to API format (_id/_ids suffix)
|
|
3091
|
-
*
|
|
3092
|
-
* The OnlyWorlds API expects:
|
|
3093
|
-
* - single_link fields: fieldname_id (e.g., birthplace_id)
|
|
3094
|
-
* - multi_link fields: fieldname_ids (e.g., species_ids)
|
|
3095
|
-
*
|
|
3096
|
-
* This method auto-converts based on FIELD_SCHEMA:
|
|
3097
|
-
* - { species: ["id1", "id2"] } → { species_ids: ["id1", "id2"] }
|
|
3098
|
-
* - { birthplace: "location-id" } → { birthplace_id: "location-id" }
|
|
3099
|
-
* - { species: [{id: "id1", name: "X"}] } → { species_ids: ["id1"] }
|
|
3100
|
-
*
|
|
3101
|
-
* Called automatically by create() and update() methods.
|
|
3102
|
-
*/
|
|
3103
|
-
static prepareRelations<T extends Record<string, any>>(data: T, elementType: string): any;
|
|
3104
|
-
}
|
|
3105
|
-
|
|
3106
|
-
/**
|
|
3107
|
-
* Get Material Design icon name for an element type
|
|
3108
|
-
* Accepts multiple formats: 'character', 'characters', 'Character', etc.
|
|
3109
|
-
*
|
|
3110
|
-
* @param type - Element type in any format (singular, plural, any case)
|
|
3111
|
-
* @returns Material icon name (e.g., 'person', 'castle', 'thunderstorm')
|
|
3112
|
-
*
|
|
3113
|
-
* @example
|
|
3114
|
-
* getElementIcon('character') // 'person'
|
|
3115
|
-
* getElementIcon('characters') // 'person'
|
|
3116
|
-
* getElementIcon('Character') // 'person'
|
|
3117
|
-
* getElementIcon('phenomena') // 'thunderstorm'
|
|
3118
|
-
*/
|
|
3119
|
-
declare function getElementIcon(type: string): string;
|
|
3120
|
-
|
|
3121
|
-
/** Every element carries these. The extension index signature admits namespaced
|
|
3122
|
-
* pass-through fields (atlas_* / shadow_* / x_*) returned verbatim by the server. */
|
|
3123
|
-
interface OwElementBase {
|
|
3124
|
-
/** Element type slug (server-managed, read-only). */
|
|
3125
|
-
type: string;
|
|
3126
|
-
/** Unique identifier, uuidv7 format. */
|
|
3127
|
-
id: string;
|
|
3128
|
-
/** Name of the element. */
|
|
3129
|
-
name: string;
|
|
3130
|
-
/** Any kind of details about the element. */
|
|
3131
|
-
description?: string;
|
|
3132
|
-
/** The top level category to which the element belongs. */
|
|
3133
|
-
supertype?: string;
|
|
3134
|
-
/** The sub level category through which the element is further classified. */
|
|
3135
|
-
subtype?: string;
|
|
3136
|
-
/** URL to an image representing the element. */
|
|
3137
|
-
image_url?: string;
|
|
3138
|
-
/** Creation timestamp (server-managed, read-only). */
|
|
3139
|
-
created_at?: string;
|
|
3140
|
-
/** Last-update timestamp (server-managed, read-only). */
|
|
3141
|
-
updated_at?: string;
|
|
3142
|
-
/** Per-world change cursor, stamped on every write (server-managed, read-only). */
|
|
3143
|
-
change_seq?: number;
|
|
3144
|
-
/** Namespaced extension fields (atlas_* / shadow_* / x_*), returned verbatim. */
|
|
3145
|
-
[ext: string]: unknown;
|
|
3146
|
-
}
|
|
3147
|
-
type ElementType = 'ability' | 'character' | 'collective' | 'construct' | 'creature' | 'event' | 'family' | 'institution' | 'language' | 'law' | 'location' | 'map' | 'marker' | 'narrative' | 'object' | 'phenomenon' | 'pin' | 'relation' | 'species' | 'title' | 'trait' | 'zone';
|
|
3148
|
-
declare const ELEMENT_TYPES: ElementType[];
|
|
3149
|
-
/** The four semantic families (colour carries the family; ELEMENT_ICONS carries the type). */
|
|
3150
|
-
type ElementFamily = 'agents' | 'world' | 'abstract' | 'temporal';
|
|
3151
|
-
/** Per-type semantic family. Source: keel's PRESENTATION-WRAPPER schema key `family:`
|
|
3152
|
-
* (first-party rendering metadata, keel-only — NOT part of the council-governed
|
|
3153
|
-
* OnlyWorlds standard; see keel/schema-pipeline.md "The wrapper layer"). */
|
|
3154
|
-
declare const ELEMENT_FAMILIES: Record<ElementType, ElementFamily>;
|
|
3155
|
-
|
|
3156
|
-
/**
|
|
3157
|
-
* keel v2 engine absorbed from Assembly's ow-v2-client v0.9.0 (Kael),
|
|
3158
|
-
* wire-corrected against live staging fixtures 2026-07-18.
|
|
3159
|
-
*
|
|
3160
|
-
* OnlyWorlds v2 (keel) wire types -- the NON-generated, hand-owned wire shapes
|
|
3161
|
-
* (envelopes, pages, bulk, changes, config). Per-type element field typing is
|
|
3162
|
-
* generated (types.generated.ts). One-shape principle: a field reads the way it
|
|
3163
|
-
* writes -- links are UUID arrays (or UUID/null), same name both directions.
|
|
3164
|
-
* No `_ids` suffix in v2.
|
|
3165
|
-
*/
|
|
3166
|
-
|
|
3167
|
-
/** An element as read from / written to the v2 API. Loose base + extension keys. */
|
|
3168
|
-
type OwElement = OwElementBase;
|
|
3169
|
-
/** Spatial types live under spatial/ in the OW Folder Format. */
|
|
3170
|
-
declare const SPATIAL_TYPES: readonly ElementType[];
|
|
3171
|
-
interface OwWorldMeta {
|
|
3172
|
-
id: string;
|
|
3173
|
-
name: string;
|
|
3174
|
-
updated_at?: string;
|
|
3175
|
-
public_read?: boolean;
|
|
3176
|
-
[field: string]: unknown;
|
|
3177
|
-
}
|
|
3178
|
-
/** List envelope: cursor-paginated. */
|
|
3179
|
-
interface OwPage<T = OwElement> {
|
|
3180
|
-
data: T[];
|
|
3181
|
-
has_more: boolean;
|
|
3182
|
-
next_cursor: string | null;
|
|
3183
|
-
}
|
|
3184
|
-
/** /changes feed -- discriminated union on `op`. Apply in order -> convergence. */
|
|
3185
|
-
type OwChange = {
|
|
3186
|
-
op: 'upsert';
|
|
3187
|
-
id: string;
|
|
3188
|
-
type: string;
|
|
3189
|
-
element: OwElement;
|
|
3190
|
-
updated_at: string;
|
|
3191
|
-
[k: string]: unknown;
|
|
3192
|
-
} | {
|
|
3193
|
-
op: 'delete';
|
|
3194
|
-
id: string;
|
|
3195
|
-
type: string;
|
|
3196
|
-
deleted_at: string;
|
|
3197
|
-
[k: string]: unknown;
|
|
3198
|
-
};
|
|
3199
|
-
/**
|
|
3200
|
-
* /changes response. Wire shape verified in keel source (core/changes.py) and
|
|
3201
|
-
* pinned here: {cursor, changes, has_more, head}.
|
|
3202
|
-
*/
|
|
3203
|
-
interface OwChangesPage {
|
|
3204
|
-
/** Opaque compound cursor -- persist verbatim, never parse, never expires. */
|
|
3205
|
-
cursor: string;
|
|
3206
|
-
changes: OwChange[];
|
|
3207
|
-
has_more: boolean;
|
|
3208
|
-
/**
|
|
3209
|
-
* World's current change_seq. If a persisted cursor is ever AHEAD of head,
|
|
3210
|
-
* the server rewound (disaster restore) -- re-baseline from cursor zero
|
|
3211
|
-
* instead of assuming caught-up.
|
|
3212
|
-
*/
|
|
3213
|
-
head: number;
|
|
3214
|
-
}
|
|
3215
|
-
interface OwBulkItem {
|
|
3216
|
-
type: ElementType | string;
|
|
3217
|
-
element: OwElement | Record<string, unknown>;
|
|
3218
|
-
}
|
|
3219
|
-
/**
|
|
3220
|
-
* One slot of a /bulk response. WIRE-CORRECTED (fixtures P2a/P2c): `status` is
|
|
3221
|
-
* the NUMERIC HTTP status of that slot (201/400/...), success slots echo
|
|
3222
|
-
* created_at/updated_at, error slots carry an OwErrorBody under `error`.
|
|
3223
|
-
*/
|
|
3224
|
-
interface OwBulkItemResult {
|
|
3225
|
-
status: number;
|
|
3226
|
-
id?: string;
|
|
3227
|
-
created_at?: string;
|
|
3228
|
-
updated_at?: string;
|
|
3229
|
-
error?: OwErrorBody;
|
|
3230
|
-
}
|
|
3231
|
-
/** The wire error envelope carried in error slots and thrown errors. */
|
|
3232
|
-
interface OwErrorBody {
|
|
3233
|
-
type?: string;
|
|
3234
|
-
code?: string;
|
|
3235
|
-
message?: string;
|
|
3236
|
-
param?: string | null;
|
|
3237
|
-
doc_url?: string;
|
|
3238
|
-
}
|
|
3239
|
-
/**
|
|
3240
|
-
* /bulk response. WIRE-CORRECTED (fixtures P2a/P2c): the array key is `items`,
|
|
3241
|
-
* not `results`. `wasReplay` is populated by the client from the (lowercase on
|
|
3242
|
-
* the wire) Idempotent-Replay response header (fixture P2b) -- not a wire field.
|
|
3243
|
-
*/
|
|
3244
|
-
interface OwBulkResponse {
|
|
3245
|
-
errors: boolean;
|
|
3246
|
-
items: OwBulkItemResult[];
|
|
3247
|
-
/** Client-derived: true when the server replayed a prior Idempotency-Key. */
|
|
3248
|
-
wasReplay?: boolean;
|
|
3249
|
-
[k: string]: unknown;
|
|
3250
|
-
}
|
|
3251
|
-
interface OwLinkEdit {
|
|
3252
|
-
add?: string[];
|
|
3253
|
-
remove?: string[];
|
|
3254
|
-
}
|
|
3255
|
-
interface ListParams {
|
|
3256
|
-
limit?: number;
|
|
3257
|
-
cursor?: string;
|
|
3258
|
-
/** One-level stub expansion, e.g. ['friends', 'location']. */
|
|
3259
|
-
expand?: string[];
|
|
3260
|
-
/** Sparse include-set of field names. */
|
|
3261
|
-
fields?: string[];
|
|
3262
|
-
/**
|
|
3263
|
-
* Blessed Django-style filters: __icontains, __in, __gte, __lte, __isnull,
|
|
3264
|
-
* supertype/subtype equality. Unknown params 422 loudly server-side -- the
|
|
3265
|
-
* client passes them through and lets the platform name the typo.
|
|
3266
|
-
*/
|
|
3267
|
-
filter?: Record<string, string | number | boolean>;
|
|
3268
|
-
}
|
|
3269
|
-
interface OwClientConfig {
|
|
3270
|
-
/** ow_w_ / ow_r_ / ow_a_ prefixed key, or grandfathered 10-digit legacy key. */
|
|
3271
|
-
apiKey: string;
|
|
3272
|
-
/**
|
|
3273
|
-
* Optional. Required for writes when the world has a PIN, and for legacy-key
|
|
3274
|
-
* reads of private worlds. Prefixed keys read PIN-less. String, not number --
|
|
3275
|
-
* '0123' !== 123.
|
|
3276
|
-
*/
|
|
3277
|
-
apiPin?: string;
|
|
3278
|
-
/** Default: https://www.onlyworlds.com/api/v2 */
|
|
3279
|
-
baseUrl?: string;
|
|
3280
|
-
/**
|
|
3281
|
-
* Page size for element lists. Default 100 (server default; max 1000).
|
|
3282
|
-
* Deliberately visible in config: page size is a citizenship property.
|
|
3283
|
-
*/
|
|
3284
|
-
pageSize?: number;
|
|
3285
|
-
/**
|
|
3286
|
-
* Page size for /changes pulls. Default 100. Live precedents: Obsidian 100,
|
|
3287
|
-
* Atlas 250, MCP 25. /changes is the platform's heaviest route -- be polite.
|
|
3288
|
-
*/
|
|
3289
|
-
changesPageSize?: number;
|
|
3290
|
-
/** Injectable for tests / fake-keel harnesses. Defaults to globalThis.fetch. */
|
|
3291
|
-
fetch?: typeof globalThis.fetch;
|
|
3292
|
-
}
|
|
3293
|
-
|
|
3294
|
-
/**
|
|
3295
|
-
* keel v2 engine absorbed from Assembly's ow-v2-client v0.9.0 (Kael),
|
|
3296
|
-
* wire-corrected against live staging fixtures 2026-07-18.
|
|
3297
|
-
*
|
|
3298
|
-
* keel error envelope handling. The error contract is part of the contract:
|
|
3299
|
-
* envelopes carry a machine `code` and a `doc_url` fragment anchored at
|
|
3300
|
-
* onlyworlds.github.io/api/errors -- surface both, always. The live wire
|
|
3301
|
-
* envelope also carries `type` and `param` (fixtures P4a/P2c); both are
|
|
3302
|
-
* surfaced on the thrown error.
|
|
3303
|
-
*/
|
|
3304
|
-
/** Auth codes are distinguishable by design; client recovery UX differs per code. */
|
|
3305
|
-
type OwAuthErrorCode = 'invalid_credentials' | 'key_revoked' | 'world_gone';
|
|
3306
|
-
declare class OwApiError extends Error {
|
|
3307
|
-
readonly status: number;
|
|
3308
|
-
/** Machine error code from the keel envelope, e.g. 'invalid_credentials'. */
|
|
3309
|
-
readonly code: string | null;
|
|
3310
|
-
/** Error family from the envelope, e.g. 'invalid_request', 'not_found'. */
|
|
3311
|
-
readonly type: string | null;
|
|
3312
|
-
/** Offending field/param named by the envelope (422/400), else null. */
|
|
3313
|
-
readonly param: string | null;
|
|
3314
|
-
/** Documentation link from the envelope -- show it to users/logs verbatim. */
|
|
3315
|
-
readonly docUrl: string | null;
|
|
3316
|
-
/** Raw parsed envelope (or body text when the body wasn't JSON). */
|
|
3317
|
-
readonly detail: unknown;
|
|
3318
|
-
constructor(status: number, code: string | null, message: string, docUrl: string | null, detail: unknown, type?: string | null, param?: string | null);
|
|
3319
|
-
get isAuthError(): boolean;
|
|
3320
|
-
/** 422s/400s name the offending param/field -- typos error loudly platform-wide. */
|
|
3321
|
-
get isValidationError(): boolean;
|
|
3322
|
-
/** Same Idempotency-Key replayed with a different payload. */
|
|
3323
|
-
get isIdempotencyConflict(): boolean;
|
|
3324
|
-
}
|
|
3325
|
-
/** Network-level failure (fetch rejected) -- no envelope to parse. */
|
|
3326
|
-
declare class OwNetworkError extends Error {
|
|
3327
|
-
readonly cause2: unknown;
|
|
3328
|
-
constructor(message: string, cause: unknown);
|
|
3329
|
-
}
|
|
3330
|
-
/** Parse a wire envelope into OwApiError parts (exported for the error type-tests). */
|
|
3331
|
-
declare function parseEnvelope(status: number, body: unknown): OwApiError;
|
|
3332
|
-
/** Build an OwApiError from a non-2xx response, tolerating non-JSON bodies. */
|
|
3333
|
-
declare function errorFromResponse(res: Response): Promise<OwApiError>;
|
|
3334
|
-
|
|
3335
|
-
/**
|
|
3336
|
-
* keel v2 engine absorbed from Assembly's ow-v2-client v0.9.0 (Kael),
|
|
3337
|
-
* wire-corrected against live staging fixtures 2026-07-18.
|
|
3338
|
-
*
|
|
3339
|
-
* OnlyWorlds key-kind detection. Prefixes make leaked keys grep-scannable
|
|
3340
|
-
* (Stripe/GitHub precedent) -- and tell a client what auth shape to expect.
|
|
3341
|
-
*/
|
|
3342
|
-
type OwKeyKind =
|
|
3343
|
-
/** ow_w_ -- world key, read + write. Writes need the world's PIN if it has one. */
|
|
3344
|
-
'write'
|
|
3345
|
-
/** ow_r_ -- world key, read-only, works bare (no PIN). The share-with-players primitive. */
|
|
3346
|
-
| 'read'
|
|
3347
|
-
/** ow_a_ -- account Bearer token for /account/* routes; can mint world keys. */
|
|
3348
|
-
| 'account'
|
|
3349
|
-
/** Grandfathered 10-digit key. Needs PIN to read private worlds. */
|
|
3350
|
-
| 'legacy' | 'unknown';
|
|
3351
|
-
/** Demo range 0000000000-0000000009: read-only aliases, safe as live read gates. */
|
|
3352
|
-
declare function isDemoKey(key: string): boolean;
|
|
3353
|
-
declare function detectKeyKind(key: string): OwKeyKind;
|
|
3354
|
-
/** Can this key kind ever perform world writes? (PIN is a separate, per-world question.) */
|
|
3355
|
-
declare function kindCanWrite(kind: OwKeyKind): boolean;
|
|
3356
|
-
/**
|
|
3357
|
-
* Should a credential UI ask for a PIN with this key?
|
|
3358
|
-
* Prefixed keys read PIN-less; legacy keys may need it; writes on pinned
|
|
3359
|
-
* worlds always need it. 'optional' means: show the field, don't require it.
|
|
3360
|
-
*/
|
|
3361
|
-
declare function pinExpectation(kind: OwKeyKind): 'never' | 'optional' | 'required-for-private-reads';
|
|
3362
|
-
|
|
3363
|
-
/**
|
|
3364
|
-
* keel v2 engine absorbed from Assembly's ow-v2-client v0.9.0 (Kael),
|
|
3365
|
-
* wire-corrected against live staging fixtures 2026-07-18.
|
|
3366
|
-
*
|
|
3367
|
-
* OwV2Client -- thin typed fetch client for the keel v2 API.
|
|
3368
|
-
*
|
|
3369
|
-
* Deliberately thin: no caching, no sync state, no retry policy -- those belong
|
|
3370
|
-
* to callers (sync engines, tools, games). What IS encoded here is the wire
|
|
3371
|
-
* contract and its safety rails: payload read-only-field stripping, opaque
|
|
3372
|
-
* cursors, idempotency headers, doc_url-bearing errors, polite page sizes, and
|
|
3373
|
-
* client-side UUID minting so idempotent retries are structurally safe.
|
|
3374
|
-
*/
|
|
3375
|
-
|
|
3376
|
-
declare class OwV2Client {
|
|
3377
|
-
readonly baseUrl: string;
|
|
3378
|
-
readonly keyKind: OwKeyKind;
|
|
3379
|
-
readonly pageSize: number;
|
|
3380
|
-
readonly changesPageSize: number;
|
|
3381
|
-
private readonly apiKey;
|
|
3382
|
-
private readonly apiPin;
|
|
3383
|
-
private readonly fetchImpl;
|
|
3384
|
-
constructor(config: OwClientConfig);
|
|
3385
|
-
/** GET /health -- unauthenticated liveness pulse. */
|
|
3386
|
-
health(): Promise<unknown>;
|
|
3387
|
-
/**
|
|
3388
|
-
* GET /world -- world meta (name, calendar/time fields, public_read).
|
|
3389
|
-
* GOTCHA (by server design): world-meta edits do NOT appear in /changes and
|
|
3390
|
-
* do not bump change_seq. Poll getWorld().updated_at for meta freshness.
|
|
3391
|
-
*/
|
|
3392
|
-
getWorld(): Promise<OwWorldMeta>;
|
|
3393
|
-
/** PATCH /world -- partial world-meta update. */
|
|
3394
|
-
patchWorld(partial: Record<string, unknown>): Promise<OwWorldMeta>;
|
|
3395
|
-
/** GET /{type}/ -- one cursor page. */
|
|
3396
|
-
list(type: ElementType | string, params?: ListParams): Promise<OwPage>;
|
|
3397
|
-
/** Cursor-walk every page of a type. Politeness: uses config pageSize. */
|
|
3398
|
-
listAll(type: ElementType | string, params?: Omit<ListParams, 'cursor'>): AsyncGenerator<OwElement>;
|
|
3399
|
-
/** GET /{type}/{id}/ -- optional one-level stub expansion / sparse fields. */
|
|
3400
|
-
get(type: ElementType | string, id: string, opts?: Pick<ListParams, 'expand' | 'fields'>): Promise<OwElement>;
|
|
3401
|
-
/**
|
|
3402
|
-
* POST /{type}/ -- create. Mints an RFC-4122 UUID for element.id when the
|
|
3403
|
-
* caller omits one (design ruling D29d) so a retry carrying the same
|
|
3404
|
-
* Idempotency-Key is structurally safe. Callers MAY still supply their own id.
|
|
3405
|
-
*/
|
|
3406
|
-
create(type: ElementType | string, element: OwElement | Record<string, unknown>, opts?: {
|
|
3407
|
-
idempotencyKey?: string;
|
|
3408
|
-
}): Promise<OwElement>;
|
|
3409
|
-
/** PUT /{type}/{id}/ -- upsert-by-client-id. The local-first write primitive. */
|
|
3410
|
-
upsert(type: ElementType | string, id: string, element: OwElement | Record<string, unknown>): Promise<OwElement>;
|
|
3411
|
-
/**
|
|
3412
|
-
* PATCH /{type}/{id}/ -- partial update. DESTRUCTIVE on sent fields: arrays
|
|
3413
|
-
* replace wholesale, omitted fields stay untouched. For link arrays prefer
|
|
3414
|
-
* editLinks() -- atomic server-side merge, no read-before-write.
|
|
3415
|
-
*/
|
|
3416
|
-
patch(type: ElementType | string, id: string, partial: Record<string, unknown>): Promise<OwElement>;
|
|
3417
|
-
/**
|
|
3418
|
-
* DELETE /{type}/{id}/ -- idempotent (204 on absent). Server writes a
|
|
3419
|
-
* tombstone AND scrubs the id from every other element's links in the same
|
|
3420
|
-
* transaction -- no client-side unlink pass needed, ever.
|
|
3421
|
-
*/
|
|
3422
|
-
delete(type: ElementType | string, id: string): Promise<void>;
|
|
3423
|
-
/**
|
|
3424
|
-
* POST /{type}/{id}/links/{field} with {add, remove} -- atomic link merge.
|
|
3425
|
-
* Dedupes, tolerates already-present/already-absent ids. Returns the FULL
|
|
3426
|
-
* updated element (fixture P5). Use this for all relationship editing; it
|
|
3427
|
-
* retires the read-merge-PATCH dance.
|
|
3428
|
-
*/
|
|
3429
|
-
editLinks(type: ElementType | string, id: string, field: string, edit: OwLinkEdit): Promise<OwElement>;
|
|
3430
|
-
/**
|
|
3431
|
-
* POST /bulk -- up to ~1000 items. Partial success by default (HTTP 200
|
|
3432
|
-
* always; inspect per-slot numeric `status` + top-level `errors` flag);
|
|
3433
|
-
* atomic:true for all-or-nothing. Link validation runs against batch U
|
|
3434
|
-
* database -- send in any order, cycles included; no client topo-sort.
|
|
3435
|
-
* Success slots echo server-authoritative timestamps: set your sync baseline
|
|
3436
|
-
* from this response alone. When an idempotencyKey is replayed, the returned
|
|
3437
|
-
* response carries wasReplay:true (read from the Idempotent-Replay header).
|
|
3438
|
-
*/
|
|
3439
|
-
bulk(items: OwBulkItem[], opts?: {
|
|
3440
|
-
atomic?: boolean;
|
|
3441
|
-
idempotencyKey?: string;
|
|
3442
|
-
}): Promise<OwBulkResponse>;
|
|
3443
|
-
/**
|
|
3444
|
-
* GET /changes -- one page of the world's ordered change feed.
|
|
3445
|
-
* Cursor is OPAQUE and never expires: persist verbatim, never parse.
|
|
3446
|
-
* Zero/absent cursor = full export (byte-aligned with the Folder Format).
|
|
3447
|
-
* Rewind rule: if your persisted position is ahead of page.head, the server
|
|
3448
|
-
* was restored -- re-baseline from cursor zero; do not assume caught-up.
|
|
3449
|
-
* Citizenship: heaviest route on the platform; default page size is polite.
|
|
3450
|
-
*/
|
|
3451
|
-
changes(opts?: {
|
|
3452
|
-
since?: string;
|
|
3453
|
-
limit?: number;
|
|
3454
|
-
}): Promise<OwChangesPage>;
|
|
3455
|
-
/**
|
|
3456
|
-
* Walk the feed from `since` (or from zero = full export) to the current
|
|
3457
|
-
* tail, yielding ops in order. Returns the final cursor via the generator's
|
|
3458
|
-
* return value; persist it for the next incremental pull.
|
|
3459
|
-
*/
|
|
3460
|
-
changesAll(since?: string): AsyncGenerator<OwChange, {
|
|
3461
|
-
cursor: string;
|
|
3462
|
-
head: number;
|
|
3463
|
-
}>;
|
|
3464
|
-
private request;
|
|
3465
|
-
}
|
|
3466
|
-
|
|
3467
|
-
/**
|
|
3468
|
-
* Canonical element colour palette — four semantic families.
|
|
3469
|
-
*
|
|
3470
|
-
* Ruled by Captain 2026-07-22 after Skeld's measurement pass (Orrery
|
|
3471
|
-
* `product/schema/element-palette-measurements.md`): 22 mutually-separable
|
|
3472
|
-
* hues is structurally impossible; four families is the ceiling that passes
|
|
3473
|
-
* all-pairs CVD separation in both modes. **Colour carries the FAMILY; the
|
|
3474
|
-
* icon (`ELEMENT_ICONS`) carries the TYPE.** Dark-mode pairs land in the 6–8
|
|
3475
|
-
* CVD floor band, so secondary encoding (icon + label) is REQUIRED alongside
|
|
3476
|
-
* colour, not optional.
|
|
3477
|
-
*
|
|
3478
|
-
* The type→family map is GENERATED: `ELEMENT_FAMILIES` is emitted by
|
|
3479
|
-
* `codegen/generate_types.py` from the `family:` key in keel's schema YAML
|
|
3480
|
-
* (added 2026-07-23, keel c69366b) — a keel PRESENTATION-WRAPPER key
|
|
3481
|
-
* (first-party rendering metadata, not part of the council-governed
|
|
3482
|
-
* OnlyWorlds standard). It cannot drift from the schema; membership and hex
|
|
3483
|
-
* invariants stay test-gated in `test/palette.test.mjs`.
|
|
3484
|
-
*
|
|
3485
|
-
* The hexes below are design constants, hand-authored beside the generated
|
|
3486
|
-
* map. Do not change any value without re-running the CVD validation (every
|
|
3487
|
-
* brighter World green collides with Temporal amber for protan viewers — the
|
|
3488
|
-
* green is pinned BY the accessibility budget).
|
|
3489
|
-
*
|
|
3490
|
-
* Provenance: first proven live in atlas (`src/core/element-colors.ts`) and
|
|
3491
|
-
* council (`src/cosmos/element-families.ts`) — both become re-exports of this
|
|
3492
|
-
* module.
|
|
3493
|
-
*/
|
|
3494
|
-
|
|
3495
|
-
/**
|
|
3496
|
-
* Family → validated hex per surface mode. `light` assumes near-white
|
|
3497
|
-
* surfaces, `dark` assumes near-black (measured against #0a0a0a).
|
|
3498
|
-
* World green is identical in both modes and sits at its low-contrast end
|
|
3499
|
-
* deliberately — see module header before "fixing" it.
|
|
3500
|
-
*/
|
|
3501
|
-
declare const FAMILY_COLORS: Record<ElementFamily, {
|
|
3502
|
-
light: string;
|
|
3503
|
-
dark: string;
|
|
3504
|
-
}>;
|
|
3505
|
-
/** Semantic family for an element type slug. */
|
|
3506
|
-
declare function familyOf(type: ElementType): ElementFamily;
|
|
3507
|
-
/**
|
|
3508
|
-
* The convenience most callers want: canonical colour for an element type.
|
|
3509
|
-
* Name matches the live atlas/council implementations so their SDK swap is a
|
|
3510
|
-
* re-export, not a rename. Defaults to `dark` (both current consumers are
|
|
3511
|
-
* dark-surface).
|
|
3512
|
-
*/
|
|
3513
|
-
declare function elementColor(type: ElementType, mode?: 'light' | 'dark'): string;
|
|
3514
|
-
/** All four families, in ruling order (the order IS the CVD-safety mechanism of the source palette). */
|
|
3515
|
-
declare const FAMILY_ORDER: readonly ElementFamily[];
|
|
3516
|
-
|
|
3517
|
-
export { type Ability, type AbilityInput, type AccessKeyResponse, type AnyElementId, type ApiResponse, type BaseElement, type Character, type CharacterInput, type Collective, type CollectiveInput, type Construct, type ConstructInput, type Creature, type CreatureInput, ELEMENT_FAMILIES, ELEMENT_ICONS, ELEMENT_LABELS, ELEMENT_SECTIONS, ELEMENT_TYPES, type ElementFamily, type ElementId, type ElementIds, ElementType$1 as ElementType, type EncryptionInfo, type Event, type EventInput, FAMILY_COLORS, FAMILY_ORDER, FIELD_SCHEMA, type Family, type FamilyInput, type FieldInfo, type FieldType, GameTier, type Institution, type InstitutionInput, type Language, type LanguageInput, type Law, type LawInput, type ListOptions, type ListParams, type Location, type LocationInput, type Map, type MapInput, type Marker, type MarkerInput, type Narrative, type NarrativeInput, ONLYWORLDS_VERSION, type Object$1 as Object, type ObjectInput, OnlyWorldsClient, type OnlyWorldsConfig, OwApiError, type OwAuthErrorCode, type OwBulkItem, type OwBulkItemResult, type OwBulkResponse, type OwChange, type OwChangesPage, type OwClientConfig, type OwElement, type OwElementBase, type OwErrorBody, type OwKeyKind, type OwLinkEdit, OwNetworkError, type OwPage, OwV2Client, type OwWorldMeta, type Phenomenon, type PhenomenonInput, type Pin, type PinInput, type Relation, type RelationInput, type RevokeAllSessionsResponse, type RevokeSessionResponse, SPATIAL_TYPES, type SectionInfo, type Species, type SpeciesInput, type Title, type TitleInput, type TokenConsumeParams, type TokenConsumeResponse, type TokenStatus, type Trait, type TraitInput, type ElementType as V2ElementType, type World, type WorldInput, type Zone, type ZoneInput, createAnyElementId, createElementId, createElementIds, detectKeyKind, elementColor, errorFromResponse, familyOf, getElementIcon, getElementLabel, getElementSections, isDemoKey, kindCanWrite, parseEnvelope, pinExpectation };
|