@onlyworlds/sdk 1.0.1 → 1.3.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/dist/index.d.mts CHANGED
@@ -1,3 +1,26 @@
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> = 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> = 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
  /**
2
25
  * Base fields shared by all OnlyWorlds elements
3
26
  */
@@ -57,22 +80,14 @@ interface Ability extends BaseElement {
57
80
  range?: string;
58
81
  challenges?: string;
59
82
  prevalence?: string;
60
- /** Links to Construct */
61
- tradition?: string;
62
- /** Links to Phenomenon */
63
- source?: string;
64
- /** Links to Location */
65
- locus?: string;
66
- /** Links to Phenomenon */
67
- effects?: string[];
68
- /** Links to Trait */
69
- talents?: string[];
70
- /** Links to Construct */
71
- requisites?: string[];
72
- /** Links to Object */
73
- instruments?: string[];
74
- /** Links to Construct */
75
- systems?: string[];
83
+ tradition?: ElementId<ElementType.Construct>;
84
+ source?: ElementId<ElementType.Phenomenon>;
85
+ locus?: ElementId<ElementType.Location>;
86
+ effects?: ElementIds<ElementType.Phenomenon>;
87
+ talents?: ElementIds<ElementType.Trait>;
88
+ requisites?: ElementIds<ElementType.Construct>;
89
+ instruments?: ElementIds<ElementType.Object>;
90
+ systems?: ElementIds<ElementType.Construct>;
76
91
  }
77
92
  /**
78
93
  * Object element type
@@ -81,26 +96,17 @@ interface Object$1 extends BaseElement {
81
96
  aesthetics?: string;
82
97
  weight?: string;
83
98
  amount?: string;
84
- /** Links to Object */
85
- parent_object?: string;
99
+ parent_object?: ElementId<ElementType.Object>;
86
100
  utility?: string;
87
101
  origins?: string;
88
- /** Links to Location */
89
- location?: string;
90
- /** Links to Language */
91
- language?: string;
92
- /** Links to Construct */
93
- materials?: string[];
94
- /** Links to Construct */
95
- technology?: string[];
96
- /** Links to Phenomenon */
97
- effects?: string[];
98
- /** Links to Ability */
99
- abilities?: string[];
100
- /** Links to Construct */
101
- consumes?: string[];
102
- /** Links to Trait */
103
- affinities?: string[];
102
+ location?: ElementId<ElementType.Location>;
103
+ language?: ElementId<ElementType.Language>;
104
+ materials?: ElementIds<ElementType.Construct>;
105
+ technology?: ElementIds<ElementType.Construct>;
106
+ effects?: ElementIds<ElementType.Phenomenon>;
107
+ abilities?: ElementIds<ElementType.Ability>;
108
+ consumes?: ElementIds<ElementType.Construct>;
109
+ affinities?: ElementIds<ElementType.Trait>;
104
110
  }
105
111
  /**
106
112
  * Character element type
@@ -113,11 +119,9 @@ interface Character extends BaseElement {
113
119
  background?: string;
114
120
  motivations?: string;
115
121
  birth_date?: string;
116
- /** Links to Location */
117
- birthplace?: string;
122
+ birthplace?: ElementId<ElementType.Location>;
118
123
  reputation?: string;
119
- /** Links to Location */
120
- location?: string;
124
+ location?: ElementId<ElementType.Location>;
121
125
  charisma?: string;
122
126
  coercion?: string;
123
127
  competence?: string;
@@ -132,24 +136,15 @@ interface Character extends BaseElement {
132
136
  INT?: string;
133
137
  WIS?: string;
134
138
  CHA?: string;
135
- /** Links to Species */
136
- species?: string[];
137
- /** Links to Trait */
138
- traits?: string[];
139
- /** Links to Ability */
140
- abilities?: string[];
141
- /** Links to Language */
142
- languages?: string[];
143
- /** Links to Object */
144
- objects?: string[];
145
- /** Links to Institution */
146
- institutions?: string[];
147
- /** Links to Family */
148
- family?: string[];
149
- /** Links to Character */
150
- friends?: string[];
151
- /** Links to Character */
152
- rivals?: string[];
139
+ species?: ElementIds<ElementType.Species>;
140
+ traits?: ElementIds<ElementType.Trait>;
141
+ abilities?: ElementIds<ElementType.Ability>;
142
+ languages?: ElementIds<ElementType.Language>;
143
+ objects?: ElementIds<ElementType.Object>;
144
+ institutions?: ElementIds<ElementType.Institution>;
145
+ family?: ElementIds<ElementType.Family>;
146
+ friends?: ElementIds<ElementType.Character>;
147
+ rivals?: ElementIds<ElementType.Character>;
153
148
  }
154
149
  /**
155
150
  * Collective element type
@@ -158,25 +153,17 @@ interface Collective extends BaseElement {
158
153
  composition?: string;
159
154
  count?: string;
160
155
  formation_date?: string;
161
- /** Links to Institution */
162
- operator?: string;
156
+ operator?: ElementId<ElementType.Institution>;
163
157
  activity?: string;
164
158
  disposition?: string;
165
159
  state?: string;
166
- /** Links to Construct */
167
- equipment?: string[];
168
- /** Links to Ability */
169
- abilities?: string[];
170
- /** Links to Construct */
171
- symbolism?: string[];
172
- /** Links to Species */
173
- species?: string[];
174
- /** Links to Character */
175
- characters?: string[];
176
- /** Links to Creature */
177
- creatures?: string[];
178
- /** Links to Phenomenon */
179
- phenomena?: string[];
160
+ equipment?: ElementIds<ElementType.Construct>;
161
+ abilities?: ElementIds<ElementType.Ability>;
162
+ symbolism?: ElementIds<ElementType.Construct>;
163
+ species?: ElementIds<ElementType.Species>;
164
+ characters?: ElementIds<ElementType.Character>;
165
+ creatures?: ElementIds<ElementType.Creature>;
166
+ phenomena?: ElementIds<ElementType.Phenomenon>;
180
167
  }
181
168
  /**
182
169
  * Construct element type
@@ -188,46 +175,26 @@ interface Construct extends BaseElement {
188
175
  reach?: string;
189
176
  start_date?: string;
190
177
  end_date?: string;
191
- /** Links to Character */
192
- founder?: string;
193
- /** Links to Institution */
194
- custodian?: string;
195
- /** Links to Character */
196
- characters?: string[];
197
- /** Links to Object */
198
- objects?: string[];
199
- /** Links to Location */
200
- locations?: string[];
201
- /** Links to Species */
202
- species?: string[];
203
- /** Links to Creature */
204
- creatures?: string[];
205
- /** Links to Institution */
206
- institutions?: string[];
207
- /** Links to Trait */
208
- traits?: string[];
209
- /** Links to Collective */
210
- collectives?: string[];
211
- /** Links to Zone */
212
- zones?: string[];
213
- /** Links to Ability */
214
- abilities?: string[];
215
- /** Links to Phenomenon */
216
- phenomena?: string[];
217
- /** Links to Language */
218
- languages?: string[];
219
- /** Links to Family */
220
- families?: string[];
221
- /** Links to Relation */
222
- relations?: string[];
223
- /** Links to Title */
224
- titles?: string[];
225
- /** Links to Construct */
226
- constructs?: string[];
227
- /** Links to Event */
228
- events?: string[];
229
- /** Links to Narrative */
230
- narratives?: string[];
178
+ founder?: ElementId<ElementType.Character>;
179
+ custodian?: ElementId<ElementType.Institution>;
180
+ characters?: ElementIds<ElementType.Character>;
181
+ objects?: ElementIds<ElementType.Object>;
182
+ locations?: ElementIds<ElementType.Location>;
183
+ species?: ElementIds<ElementType.Species>;
184
+ creatures?: ElementIds<ElementType.Creature>;
185
+ institutions?: ElementIds<ElementType.Institution>;
186
+ traits?: ElementIds<ElementType.Trait>;
187
+ collectives?: ElementIds<ElementType.Collective>;
188
+ zones?: ElementIds<ElementType.Zone>;
189
+ abilities?: ElementIds<ElementType.Ability>;
190
+ phenomena?: ElementIds<ElementType.Phenomenon>;
191
+ languages?: ElementIds<ElementType.Language>;
192
+ families?: ElementIds<ElementType.Family>;
193
+ relations?: ElementIds<ElementType.Relation>;
194
+ titles?: ElementIds<ElementType.Title>;
195
+ constructs?: ElementIds<ElementType.Construct>;
196
+ events?: ElementIds<ElementType.Event>;
197
+ narratives?: ElementIds<ElementType.Narrative>;
231
198
  }
232
199
  /**
233
200
  * Creature element type
@@ -240,24 +207,17 @@ interface Creature extends BaseElement {
240
207
  demeanor?: string;
241
208
  status?: string;
242
209
  birth_date?: string;
243
- /** Links to Location */
244
- location?: string;
245
- /** Links to Zone */
246
- zone?: string;
210
+ location?: ElementId<ElementType.Location>;
211
+ zone?: ElementId<ElementType.Zone>;
247
212
  challenge_rating?: string;
248
213
  hit_points?: string;
249
214
  armor_class?: string;
250
215
  speed?: string;
251
- /** Links to Species */
252
- species?: string[];
253
- /** Links to Trait */
254
- traits?: string[];
255
- /** Links to Ability */
256
- abilities?: string[];
257
- /** Links to Language */
258
- languages?: string[];
259
- /** Links to Ability */
260
- actions?: string[];
216
+ species?: ElementIds<ElementType.Species>;
217
+ traits?: ElementIds<ElementType.Trait>;
218
+ abilities?: ElementIds<ElementType.Ability>;
219
+ languages?: ElementIds<ElementType.Language>;
220
+ actions?: ElementIds<ElementType.Ability>;
261
221
  }
262
222
  /**
263
223
  * Event element type
@@ -268,40 +228,23 @@ interface Event extends BaseElement {
268
228
  consequences?: string;
269
229
  start_date?: string;
270
230
  end_date?: string;
271
- /** Links to Event */
272
- triggers?: string[];
273
- /** Links to Character */
274
- characters?: string[];
275
- /** Links to Object */
276
- objects?: string[];
277
- /** Links to Location */
278
- locations?: string[];
279
- /** Links to Species */
280
- species?: string[];
281
- /** Links to Creature */
282
- creatures?: string[];
283
- /** Links to Institution */
284
- institutions?: string[];
285
- /** Links to Trait */
286
- traits?: string[];
287
- /** Links to Collective */
288
- collectives?: string[];
289
- /** Links to Zone */
290
- zones?: string[];
291
- /** Links to Ability */
292
- abilities?: string[];
293
- /** Links to Phenomenon */
294
- phenomena?: string[];
295
- /** Links to Language */
296
- languages?: string[];
297
- /** Links to Family */
298
- families?: string[];
299
- /** Links to Relation */
300
- relations?: string[];
301
- /** Links to Title */
302
- titles?: string[];
303
- /** Links to Construct */
304
- constructs?: string[];
231
+ triggers?: ElementIds<ElementType.Event>;
232
+ characters?: ElementIds<ElementType.Character>;
233
+ objects?: ElementIds<ElementType.Object>;
234
+ locations?: ElementIds<ElementType.Location>;
235
+ species?: ElementIds<ElementType.Species>;
236
+ creatures?: ElementIds<ElementType.Creature>;
237
+ institutions?: ElementIds<ElementType.Institution>;
238
+ traits?: ElementIds<ElementType.Trait>;
239
+ collectives?: ElementIds<ElementType.Collective>;
240
+ zones?: ElementIds<ElementType.Zone>;
241
+ abilities?: ElementIds<ElementType.Ability>;
242
+ phenomena?: ElementIds<ElementType.Phenomenon>;
243
+ languages?: ElementIds<ElementType.Language>;
244
+ families?: ElementIds<ElementType.Family>;
245
+ relations?: ElementIds<ElementType.Relation>;
246
+ titles?: ElementIds<ElementType.Title>;
247
+ constructs?: ElementIds<ElementType.Construct>;
305
248
  }
306
249
  /**
307
250
  * Family element type
@@ -310,24 +253,15 @@ interface Family extends BaseElement {
310
253
  spirit?: string;
311
254
  history?: string;
312
255
  reputation?: string;
313
- /** Links to Construct */
314
- traditions?: string[];
315
- /** Links to Trait */
316
- traits?: string[];
317
- /** Links to Ability */
318
- abilities?: string[];
319
- /** Links to Language */
320
- languages?: string[];
321
- /** Links to Character */
322
- ancestors?: string[];
323
- /** Links to Location */
324
- estates?: string[];
325
- /** Links to Institution */
326
- governs?: string[];
327
- /** Links to Object */
328
- heirlooms?: string[];
329
- /** Links to Creature */
330
- creatures?: string[];
256
+ traditions?: ElementIds<ElementType.Construct>;
257
+ traits?: ElementIds<ElementType.Trait>;
258
+ abilities?: ElementIds<ElementType.Ability>;
259
+ languages?: ElementIds<ElementType.Language>;
260
+ ancestors?: ElementIds<ElementType.Character>;
261
+ estates?: ElementIds<ElementType.Location>;
262
+ governs?: ElementIds<ElementType.Institution>;
263
+ heirlooms?: ElementIds<ElementType.Object>;
264
+ creatures?: ElementIds<ElementType.Creature>;
331
265
  }
332
266
  /**
333
267
  * Institution element type
@@ -335,21 +269,14 @@ interface Family extends BaseElement {
335
269
  interface Institution extends BaseElement {
336
270
  doctrine?: string;
337
271
  founding_date?: string;
338
- /** Links to Institution */
339
- parent_institution?: string;
272
+ parent_institution?: ElementId<ElementType.Institution>;
340
273
  status?: string;
341
- /** Links to Zone */
342
- zones?: string[];
343
- /** Links to Object */
344
- objects?: string[];
345
- /** Links to Creature */
346
- creatures?: string[];
347
- /** Links to Institution */
348
- allies?: string[];
349
- /** Links to Institution */
350
- adversaries?: string[];
351
- /** Links to Construct */
352
- constructs?: string[];
274
+ zones?: ElementIds<ElementType.Zone>;
275
+ objects?: ElementIds<ElementType.Object>;
276
+ creatures?: ElementIds<ElementType.Creature>;
277
+ allies?: ElementIds<ElementType.Institution>;
278
+ adversaries?: ElementIds<ElementType.Institution>;
279
+ constructs?: ElementIds<ElementType.Construct>;
353
280
  }
354
281
  /**
355
282
  * Language element type
@@ -359,13 +286,10 @@ interface Language extends BaseElement {
359
286
  grammar?: string;
360
287
  lexicon?: string;
361
288
  writing?: string;
362
- /** Links to Construct */
363
- classification?: string;
289
+ classification?: ElementId<ElementType.Construct>;
364
290
  status?: string;
365
- /** Links to Location */
366
- spread?: string[];
367
- /** Links to Language */
368
- dialects?: string[];
291
+ spread?: ElementIds<ElementType.Location>;
292
+ dialects?: ElementIds<ElementType.Language>;
369
293
  }
370
294
  /**
371
295
  * Law element type
@@ -374,22 +298,14 @@ interface Law extends BaseElement {
374
298
  declaration?: string;
375
299
  purpose?: string;
376
300
  date?: string;
377
- /** Links to Law */
378
- parent_law?: string;
379
- /** Links to Institution */
380
- author?: string;
381
- /** Links to Construct */
382
- penalties?: string[];
383
- /** Links to Location */
384
- locations?: string[];
385
- /** Links to Zone */
386
- zones?: string[];
387
- /** Links to Construct */
388
- prohibitions?: string[];
389
- /** Links to Title */
390
- adjudicators?: string[];
391
- /** Links to Title */
392
- enforcers?: string[];
301
+ parent_law?: ElementId<ElementType.Law>;
302
+ author?: ElementId<ElementType.Institution>;
303
+ penalties?: ElementIds<ElementType.Construct>;
304
+ locations?: ElementIds<ElementType.Location>;
305
+ zones?: ElementIds<ElementType.Zone>;
306
+ prohibitions?: ElementIds<ElementType.Construct>;
307
+ adjudicators?: ElementIds<ElementType.Title>;
308
+ enforcers?: ElementIds<ElementType.Title>;
393
309
  }
394
310
  /**
395
311
  * Location element type
@@ -398,56 +314,34 @@ interface Location extends BaseElement {
398
314
  form?: string;
399
315
  function?: string;
400
316
  founding_date?: string;
401
- /** Links to Location */
402
- parent_location?: string;
317
+ parent_location?: ElementId<ElementType.Location>;
403
318
  political_climate?: string;
404
- /** Links to Institution */
405
- primary_power?: string;
406
- /** Links to Title */
407
- governing_title?: string;
408
- /** Links to Zone */
409
- zone?: string;
410
- /** Links to Location */
411
- rival?: string;
412
- /** Links to Location */
413
- partner?: string;
319
+ primary_power?: ElementId<ElementType.Institution>;
320
+ governing_title?: ElementId<ElementType.Title>;
321
+ zone?: ElementId<ElementType.Zone>;
322
+ rival?: ElementId<ElementType.Location>;
323
+ partner?: ElementId<ElementType.Location>;
414
324
  customs?: string;
415
325
  infrastructure?: string;
416
326
  architecture?: string;
417
327
  defensibility?: string;
418
328
  elevation?: string;
419
- /** Links to Collective */
420
- populations?: string[];
421
- /** Links to Institution */
422
- secondary_powers?: string[];
423
- /** Links to Character */
424
- founders?: string[];
425
- /** Links to Construct */
426
- cults?: string[];
427
- /** Links to Species */
428
- delicacies?: string[];
429
- /** Links to Construct */
430
- extraction_methods?: string[];
431
- /** Links to Construct */
432
- extraction_goods?: string[];
433
- /** Links to Construct */
434
- industry_methods?: string[];
435
- /** Links to Construct */
436
- industry_goods?: string[];
437
- /** Links to Location */
438
- extraction_markets?: string[];
439
- /** Links to Location */
440
- industry_markets?: string[];
441
- /** Links to Construct */
442
- currencies?: string[];
443
- /** Links to Object */
444
- buildings?: string[];
445
- /** Links to Construct */
446
- building_methods?: string[];
447
- /** Links to Construct */
448
- fighters?: string[];
449
- /** Links to Object */
450
- defensive_objects?: string[];
329
+ populations?: ElementIds<ElementType.Collective>;
330
+ secondary_powers?: ElementIds<ElementType.Institution>;
331
+ founders?: ElementIds<ElementType.Character>;
332
+ cults?: ElementIds<ElementType.Construct>;
333
+ delicacies?: ElementIds<ElementType.Species>;
334
+ extraction_methods?: ElementIds<ElementType.Construct>;
335
+ extraction_goods?: ElementIds<ElementType.Construct>;
336
+ industry_methods?: ElementIds<ElementType.Construct>;
337
+ industry_goods?: ElementIds<ElementType.Construct>;
338
+ extraction_markets?: ElementIds<ElementType.Location>;
339
+ industry_markets?: ElementIds<ElementType.Location>;
340
+ currencies?: ElementIds<ElementType.Construct>;
341
+ buildings?: ElementIds<ElementType.Object>;
342
+ building_methods?: ElementIds<ElementType.Construct>;
343
+ fighters?: ElementIds<ElementType.Construct>;
344
+ defensive_objects?: ElementIds<ElementType.Object>;
451
345
  }
452
346
  /**
453
347
  * Phenomenon element type
@@ -457,18 +351,12 @@ interface Phenomenon extends BaseElement {
457
351
  effects?: string;
458
352
  duration?: string;
459
353
  mythology?: string;
460
- /** Links to Phenomenon */
461
- system?: string;
462
- /** Links to Object */
463
- catalysts?: string[];
464
- /** Links to Ability */
465
- empowerments?: string[];
466
- /** Links to Construct */
467
- triggers?: string[];
468
- /** Links to Character */
469
- wielders?: string[];
470
- /** Links to Location */
471
- environments?: string[];
354
+ system?: ElementId<ElementType.Phenomenon>;
355
+ catalysts?: ElementIds<ElementType.Object>;
356
+ empowerments?: ElementIds<ElementType.Ability>;
357
+ triggers?: ElementIds<ElementType.Construct>;
358
+ wielders?: ElementIds<ElementType.Character>;
359
+ environments?: ElementIds<ElementType.Location>;
472
360
  }
473
361
  /**
474
362
  * Relation element type
@@ -478,42 +366,24 @@ interface Relation extends BaseElement {
478
366
  start_date?: string;
479
367
  end_date?: string;
480
368
  intensity?: string;
481
- /** Links to Character */
482
- actor?: string;
483
- /** Links to Character */
484
- characters?: string[];
485
- /** Links to Object */
486
- objects?: string[];
487
- /** Links to Location */
488
- locations?: string[];
489
- /** Links to Species */
490
- species?: string[];
491
- /** Links to Creature */
492
- creatures?: string[];
493
- /** Links to Institution */
494
- institutions?: string[];
495
- /** Links to Trait */
496
- traits?: string[];
497
- /** Links to Collective */
498
- collectives?: string[];
499
- /** Links to Zone */
500
- zones?: string[];
501
- /** Links to Ability */
502
- abilities?: string[];
503
- /** Links to Phenomenon */
504
- phenomena?: string[];
505
- /** Links to Language */
506
- languages?: string[];
507
- /** Links to Family */
508
- families?: string[];
509
- /** Links to Title */
510
- titles?: string[];
511
- /** Links to Construct */
512
- constructs?: string[];
513
- /** Links to Event */
514
- events?: string[];
515
- /** Links to Narrative */
516
- narratives?: string[];
369
+ actor?: ElementId<ElementType.Character>;
370
+ characters?: ElementIds<ElementType.Character>;
371
+ objects?: ElementIds<ElementType.Object>;
372
+ locations?: ElementIds<ElementType.Location>;
373
+ species?: ElementIds<ElementType.Species>;
374
+ creatures?: ElementIds<ElementType.Creature>;
375
+ institutions?: ElementIds<ElementType.Institution>;
376
+ traits?: ElementIds<ElementType.Trait>;
377
+ collectives?: ElementIds<ElementType.Collective>;
378
+ zones?: ElementIds<ElementType.Zone>;
379
+ abilities?: ElementIds<ElementType.Ability>;
380
+ phenomena?: ElementIds<ElementType.Phenomenon>;
381
+ languages?: ElementIds<ElementType.Language>;
382
+ families?: ElementIds<ElementType.Family>;
383
+ titles?: ElementIds<ElementType.Title>;
384
+ constructs?: ElementIds<ElementType.Construct>;
385
+ events?: ElementIds<ElementType.Event>;
386
+ narratives?: ElementIds<ElementType.Narrative>;
517
387
  }
518
388
  /**
519
389
  * Species element type
@@ -528,22 +398,14 @@ interface Species extends BaseElement {
528
398
  communication?: string;
529
399
  aggression?: string;
530
400
  role?: string;
531
- /** Links to Species */
532
- parent_species?: string;
533
- /** Links to Species */
534
- nourishment?: string[];
535
- /** Links to Construct */
536
- reproduction?: string[];
537
- /** Links to Ability */
538
- adaptations?: string[];
539
- /** Links to Trait */
540
- traits?: string[];
541
- /** Links to Location */
542
- locations?: string[];
543
- /** Links to Zone */
544
- zones?: string[];
545
- /** Links to Phenomenon */
546
- affinities?: string[];
401
+ parent_species?: ElementId<ElementType.Species>;
402
+ nourishment?: ElementIds<ElementType.Species>;
403
+ reproduction?: ElementIds<ElementType.Construct>;
404
+ adaptations?: ElementIds<ElementType.Ability>;
405
+ traits?: ElementIds<ElementType.Trait>;
406
+ locations?: ElementIds<ElementType.Location>;
407
+ zones?: ElementIds<ElementType.Zone>;
408
+ affinities?: ElementIds<ElementType.Phenomenon>;
547
409
  }
548
410
  /**
549
411
  * Zone element type
@@ -553,16 +415,11 @@ interface Zone extends BaseElement {
553
415
  start_date?: string;
554
416
  end_date?: string;
555
417
  context?: string;
556
- /** Links to Phenomenon */
557
- phenomena?: string[];
558
- /** Links to Zone */
559
- linked_zones?: string[];
560
- /** Links to Collective */
561
- populations?: string[];
562
- /** Links to Title */
563
- titles?: string[];
564
- /** Links to Construct */
565
- principles?: string[];
418
+ phenomena?: ElementIds<ElementType.Phenomenon>;
419
+ linked_zones?: ElementIds<ElementType.Zone>;
420
+ populations?: ElementIds<ElementType.Collective>;
421
+ titles?: ElementIds<ElementType.Title>;
422
+ principles?: ElementIds<ElementType.Construct>;
566
423
  }
567
424
  /**
568
425
  * Title element type
@@ -572,44 +429,26 @@ interface Title extends BaseElement {
572
429
  eligibility?: string;
573
430
  grant_date?: string;
574
431
  revoke_date?: string;
575
- /** Links to Institution */
576
- issuer?: string;
577
- /** Links to Institution */
578
- body?: string;
579
- /** Links to Title */
580
- superior_title?: string;
432
+ issuer?: ElementId<ElementType.Institution>;
433
+ body?: ElementId<ElementType.Institution>;
434
+ superior_title?: ElementId<ElementType.Title>;
581
435
  status?: string;
582
436
  history?: string;
583
- /** Links to Character */
584
- holders?: string[];
585
- /** Links to Object */
586
- symbols?: string[];
587
- /** Links to Character */
588
- characters?: string[];
589
- /** Links to Institution */
590
- institutions?: string[];
591
- /** Links to Family */
592
- families?: string[];
593
- /** Links to Zone */
594
- zones?: string[];
595
- /** Links to Location */
596
- locations?: string[];
597
- /** Links to Object */
598
- objects?: string[];
599
- /** Links to Construct */
600
- constructs?: string[];
601
- /** Links to Law */
602
- laws?: string[];
603
- /** Links to Collective */
604
- collectives?: string[];
605
- /** Links to Creature */
606
- creatures?: string[];
607
- /** Links to Phenomenon */
608
- phenomena?: string[];
609
- /** Links to Species */
610
- species?: string[];
611
- /** Links to Language */
612
- languages?: string[];
437
+ holders?: ElementIds<ElementType.Character>;
438
+ symbols?: ElementIds<ElementType.Object>;
439
+ characters?: ElementIds<ElementType.Character>;
440
+ institutions?: ElementIds<ElementType.Institution>;
441
+ families?: ElementIds<ElementType.Family>;
442
+ zones?: ElementIds<ElementType.Zone>;
443
+ locations?: ElementIds<ElementType.Location>;
444
+ objects?: ElementIds<ElementType.Object>;
445
+ constructs?: ElementIds<ElementType.Construct>;
446
+ laws?: ElementIds<ElementType.Law>;
447
+ collectives?: ElementIds<ElementType.Collective>;
448
+ creatures?: ElementIds<ElementType.Creature>;
449
+ phenomena?: ElementIds<ElementType.Phenomenon>;
450
+ species?: ElementIds<ElementType.Species>;
451
+ languages?: ElementIds<ElementType.Language>;
613
452
  }
614
453
  /**
615
454
  * Trait element type
@@ -627,10 +466,8 @@ interface Trait extends BaseElement {
627
466
  creativity?: string;
628
467
  courage?: string;
629
468
  significance?: string;
630
- /** Links to Trait */
631
- anti_trait?: string;
632
- /** Links to Ability */
633
- empowered_abilities?: string[];
469
+ anti_trait?: ElementId<ElementType.Trait>;
470
+ empowered_abilities?: ElementIds<ElementType.Ability>;
634
471
  }
635
472
  /**
636
473
  * Narrative element type
@@ -641,52 +478,29 @@ interface Narrative extends BaseElement {
641
478
  start_date?: string;
642
479
  end_date?: string;
643
480
  order?: string;
644
- /** Links to Narrative */
645
- parent_narrative?: string;
646
- /** Links to Character */
647
- protagonist?: string;
648
- /** Links to Character */
649
- antagonist?: string;
650
- /** Links to Character */
651
- narrator?: string;
652
- /** Links to Institution */
653
- conservator?: string;
654
- /** Links to Event */
655
- events?: string[];
656
- /** Links to Character */
657
- characters?: string[];
658
- /** Links to Object */
659
- objects?: string[];
660
- /** Links to Location */
661
- locations?: string[];
662
- /** Links to Species */
663
- species?: string[];
664
- /** Links to Creature */
665
- creatures?: string[];
666
- /** Links to Institution */
667
- institutions?: string[];
668
- /** Links to Trait */
669
- traits?: string[];
670
- /** Links to Collective */
671
- collectives?: string[];
672
- /** Links to Zone */
673
- zones?: string[];
674
- /** Links to Ability */
675
- abilities?: string[];
676
- /** Links to Phenomenon */
677
- phenomena?: string[];
678
- /** Links to Language */
679
- languages?: string[];
680
- /** Links to Family */
681
- families?: string[];
682
- /** Links to Relation */
683
- relations?: string[];
684
- /** Links to Title */
685
- titles?: string[];
686
- /** Links to Construct */
687
- constructs?: string[];
688
- /** Links to Law */
689
- laws?: string[];
481
+ parent_narrative?: ElementId<ElementType.Narrative>;
482
+ protagonist?: ElementId<ElementType.Character>;
483
+ antagonist?: ElementId<ElementType.Character>;
484
+ narrator?: ElementId<ElementType.Character>;
485
+ conservator?: ElementId<ElementType.Institution>;
486
+ events?: ElementIds<ElementType.Event>;
487
+ characters?: ElementIds<ElementType.Character>;
488
+ objects?: ElementIds<ElementType.Object>;
489
+ locations?: ElementIds<ElementType.Location>;
490
+ species?: ElementIds<ElementType.Species>;
491
+ creatures?: ElementIds<ElementType.Creature>;
492
+ institutions?: ElementIds<ElementType.Institution>;
493
+ traits?: ElementIds<ElementType.Trait>;
494
+ collectives?: ElementIds<ElementType.Collective>;
495
+ zones?: ElementIds<ElementType.Zone>;
496
+ abilities?: ElementIds<ElementType.Ability>;
497
+ phenomena?: ElementIds<ElementType.Phenomenon>;
498
+ languages?: ElementIds<ElementType.Language>;
499
+ families?: ElementIds<ElementType.Family>;
500
+ relations?: ElementIds<ElementType.Relation>;
501
+ titles?: ElementIds<ElementType.Title>;
502
+ constructs?: ElementIds<ElementType.Construct>;
503
+ laws?: ElementIds<ElementType.Law>;
690
504
  }
691
505
  /**
692
506
  * Map element type
@@ -697,34 +511,29 @@ interface Map extends BaseElement {
697
511
  width?: string;
698
512
  height?: string;
699
513
  depth?: string;
700
- /** Links to Map */
701
- parent_map?: string;
702
- /** Links to Location */
703
- location?: string;
514
+ parent_map?: ElementId<ElementType.Map>;
515
+ location?: ElementId<ElementType.Location>;
704
516
  }
705
517
  /**
706
518
  * Marker element type
707
519
  */
708
520
  interface Marker extends BaseElement {
709
- /** Links to Map */
710
- map?: string;
711
- /** Links to Zone */
712
- zone?: string;
713
- x?: string;
714
- y?: string;
715
- z?: string;
521
+ map?: ElementId<ElementType.Map>;
522
+ zone?: ElementId<ElementType.Zone>;
523
+ x?: number;
524
+ y?: number;
525
+ z?: number;
716
526
  }
717
527
  /**
718
528
  * Pin element type
719
529
  */
720
530
  interface Pin extends BaseElement {
721
- /** Links to Map */
722
- map?: string;
723
- /** Links to ContentType */
724
- element_type?: string;
725
- x?: string;
726
- y?: string;
727
- z?: string;
531
+ map?: ElementId<ElementType.Map>;
532
+ element_type?: ElementType;
533
+ element_id?: AnyElementId;
534
+ x?: number;
535
+ y?: number;
536
+ z?: number;
728
537
  }
729
538
  /**
730
539
  * Input types for API requests (using _id and _ids suffixes)
@@ -984,9 +793,9 @@ interface MarkerInput extends Omit<Marker, 'map' | 'zone'> {
984
793
  map_id?: string;
985
794
  zone_id?: string;
986
795
  }
987
- interface PinInput extends Omit<Pin, 'map' | 'element_type'> {
796
+ interface PinInput extends Omit<Pin, 'map' | 'element_id'> {
988
797
  map_id?: string;
989
- element_type_id?: string;
798
+ element_id?: string;
990
799
  }
991
800
  /**
992
801
  * All available element types in OnlyWorlds
@@ -1015,6 +824,1380 @@ declare enum ElementType {
1015
824
  Trait = "trait",
1016
825
  Zone = "zone"
1017
826
  }
827
+ /**
828
+ * Field type definitions for OnlyWorlds elements
829
+ */
830
+ type FieldType = 'text' | 'integer' | 'integer_max' | 'single_link' | 'multi_link';
831
+ /**
832
+ * Field metadata structure
833
+ */
834
+ interface FieldInfo {
835
+ type: FieldType;
836
+ target?: string;
837
+ max?: number;
838
+ }
839
+ /**
840
+ * Comprehensive field schema - provides complete metadata for all fields
841
+ * Maps element types to their field definitions including types and cardinality
842
+ */
843
+ declare const FIELD_SCHEMA: {
844
+ readonly ability: {
845
+ readonly activation: {
846
+ readonly type: "text";
847
+ };
848
+ readonly duration: {
849
+ readonly type: "text";
850
+ };
851
+ readonly potency: {
852
+ readonly type: "text";
853
+ };
854
+ readonly range: {
855
+ readonly type: "text";
856
+ };
857
+ readonly challenges: {
858
+ readonly type: "text";
859
+ };
860
+ readonly prevalence: {
861
+ readonly type: "text";
862
+ };
863
+ readonly tradition: {
864
+ readonly type: "single_link";
865
+ readonly target: "construct";
866
+ };
867
+ readonly source: {
868
+ readonly type: "single_link";
869
+ readonly target: "phenomenon";
870
+ };
871
+ readonly locus: {
872
+ readonly type: "single_link";
873
+ readonly target: "location";
874
+ };
875
+ readonly effects: {
876
+ readonly type: "multi_link";
877
+ readonly target: "phenomenon";
878
+ };
879
+ readonly talents: {
880
+ readonly type: "multi_link";
881
+ readonly target: "trait";
882
+ };
883
+ readonly requisites: {
884
+ readonly type: "multi_link";
885
+ readonly target: "construct";
886
+ };
887
+ readonly instruments: {
888
+ readonly type: "multi_link";
889
+ readonly target: "object";
890
+ };
891
+ readonly systems: {
892
+ readonly type: "multi_link";
893
+ readonly target: "construct";
894
+ };
895
+ };
896
+ readonly character: {
897
+ readonly physicality: {
898
+ readonly type: "text";
899
+ };
900
+ readonly mentality: {
901
+ readonly type: "text";
902
+ };
903
+ readonly height: {
904
+ readonly type: "text";
905
+ };
906
+ readonly weight: {
907
+ readonly type: "text";
908
+ };
909
+ readonly background: {
910
+ readonly type: "text";
911
+ };
912
+ readonly motivations: {
913
+ readonly type: "text";
914
+ };
915
+ readonly birth_date: {
916
+ readonly type: "text";
917
+ };
918
+ readonly reputation: {
919
+ readonly type: "text";
920
+ };
921
+ readonly charisma: {
922
+ readonly type: "text";
923
+ };
924
+ readonly coercion: {
925
+ readonly type: "text";
926
+ };
927
+ readonly competence: {
928
+ readonly type: "text";
929
+ };
930
+ readonly compassion: {
931
+ readonly type: "text";
932
+ };
933
+ readonly creativity: {
934
+ readonly type: "text";
935
+ };
936
+ readonly courage: {
937
+ readonly type: "text";
938
+ };
939
+ readonly level: {
940
+ readonly type: "text";
941
+ };
942
+ readonly hit_points: {
943
+ readonly type: "text";
944
+ };
945
+ readonly STR: {
946
+ readonly type: "text";
947
+ };
948
+ readonly DEX: {
949
+ readonly type: "text";
950
+ };
951
+ readonly CON: {
952
+ readonly type: "text";
953
+ };
954
+ readonly INT: {
955
+ readonly type: "text";
956
+ };
957
+ readonly WIS: {
958
+ readonly type: "text";
959
+ };
960
+ readonly CHA: {
961
+ readonly type: "text";
962
+ };
963
+ readonly birthplace: {
964
+ readonly type: "single_link";
965
+ readonly target: "location";
966
+ };
967
+ readonly location: {
968
+ readonly type: "single_link";
969
+ readonly target: "location";
970
+ };
971
+ readonly species: {
972
+ readonly type: "multi_link";
973
+ readonly target: "species";
974
+ };
975
+ readonly traits: {
976
+ readonly type: "multi_link";
977
+ readonly target: "trait";
978
+ };
979
+ readonly abilities: {
980
+ readonly type: "multi_link";
981
+ readonly target: "ability";
982
+ };
983
+ readonly languages: {
984
+ readonly type: "multi_link";
985
+ readonly target: "language";
986
+ };
987
+ readonly objects: {
988
+ readonly type: "multi_link";
989
+ readonly target: "object";
990
+ };
991
+ readonly institutions: {
992
+ readonly type: "multi_link";
993
+ readonly target: "institution";
994
+ };
995
+ readonly family: {
996
+ readonly type: "multi_link";
997
+ readonly target: "family";
998
+ };
999
+ readonly friends: {
1000
+ readonly type: "multi_link";
1001
+ readonly target: "character";
1002
+ };
1003
+ readonly rivals: {
1004
+ readonly type: "multi_link";
1005
+ readonly target: "character";
1006
+ };
1007
+ };
1008
+ readonly collective: {
1009
+ readonly composition: {
1010
+ readonly type: "text";
1011
+ };
1012
+ readonly count: {
1013
+ readonly type: "text";
1014
+ };
1015
+ readonly formation_date: {
1016
+ readonly type: "text";
1017
+ };
1018
+ readonly activity: {
1019
+ readonly type: "text";
1020
+ };
1021
+ readonly disposition: {
1022
+ readonly type: "text";
1023
+ };
1024
+ readonly state: {
1025
+ readonly type: "text";
1026
+ };
1027
+ readonly operator: {
1028
+ readonly type: "single_link";
1029
+ readonly target: "institution";
1030
+ };
1031
+ readonly equipment: {
1032
+ readonly type: "multi_link";
1033
+ readonly target: "construct";
1034
+ };
1035
+ readonly abilities: {
1036
+ readonly type: "multi_link";
1037
+ readonly target: "ability";
1038
+ };
1039
+ readonly symbolism: {
1040
+ readonly type: "multi_link";
1041
+ readonly target: "construct";
1042
+ };
1043
+ readonly species: {
1044
+ readonly type: "multi_link";
1045
+ readonly target: "species";
1046
+ };
1047
+ readonly characters: {
1048
+ readonly type: "multi_link";
1049
+ readonly target: "character";
1050
+ };
1051
+ readonly creatures: {
1052
+ readonly type: "multi_link";
1053
+ readonly target: "creature";
1054
+ };
1055
+ readonly phenomena: {
1056
+ readonly type: "multi_link";
1057
+ readonly target: "phenomenon";
1058
+ };
1059
+ };
1060
+ readonly construct: {
1061
+ readonly rationale: {
1062
+ readonly type: "text";
1063
+ };
1064
+ readonly history: {
1065
+ readonly type: "text";
1066
+ };
1067
+ readonly status: {
1068
+ readonly type: "text";
1069
+ };
1070
+ readonly reach: {
1071
+ readonly type: "text";
1072
+ };
1073
+ readonly start_date: {
1074
+ readonly type: "text";
1075
+ };
1076
+ readonly end_date: {
1077
+ readonly type: "text";
1078
+ };
1079
+ readonly founder: {
1080
+ readonly type: "single_link";
1081
+ readonly target: "character";
1082
+ };
1083
+ readonly custodian: {
1084
+ readonly type: "single_link";
1085
+ readonly target: "institution";
1086
+ };
1087
+ readonly characters: {
1088
+ readonly type: "multi_link";
1089
+ readonly target: "character";
1090
+ };
1091
+ readonly objects: {
1092
+ readonly type: "multi_link";
1093
+ readonly target: "object";
1094
+ };
1095
+ readonly locations: {
1096
+ readonly type: "multi_link";
1097
+ readonly target: "location";
1098
+ };
1099
+ readonly species: {
1100
+ readonly type: "multi_link";
1101
+ readonly target: "species";
1102
+ };
1103
+ readonly creatures: {
1104
+ readonly type: "multi_link";
1105
+ readonly target: "creature";
1106
+ };
1107
+ readonly institutions: {
1108
+ readonly type: "multi_link";
1109
+ readonly target: "institution";
1110
+ };
1111
+ readonly traits: {
1112
+ readonly type: "multi_link";
1113
+ readonly target: "trait";
1114
+ };
1115
+ readonly collectives: {
1116
+ readonly type: "multi_link";
1117
+ readonly target: "collective";
1118
+ };
1119
+ readonly zones: {
1120
+ readonly type: "multi_link";
1121
+ readonly target: "zone";
1122
+ };
1123
+ readonly abilities: {
1124
+ readonly type: "multi_link";
1125
+ readonly target: "ability";
1126
+ };
1127
+ readonly phenomena: {
1128
+ readonly type: "multi_link";
1129
+ readonly target: "phenomenon";
1130
+ };
1131
+ readonly languages: {
1132
+ readonly type: "multi_link";
1133
+ readonly target: "language";
1134
+ };
1135
+ readonly families: {
1136
+ readonly type: "multi_link";
1137
+ readonly target: "family";
1138
+ };
1139
+ readonly relations: {
1140
+ readonly type: "multi_link";
1141
+ readonly target: "relation";
1142
+ };
1143
+ readonly titles: {
1144
+ readonly type: "multi_link";
1145
+ readonly target: "title";
1146
+ };
1147
+ readonly constructs: {
1148
+ readonly type: "multi_link";
1149
+ readonly target: "construct";
1150
+ };
1151
+ readonly events: {
1152
+ readonly type: "multi_link";
1153
+ readonly target: "event";
1154
+ };
1155
+ readonly narratives: {
1156
+ readonly type: "multi_link";
1157
+ readonly target: "narrative";
1158
+ };
1159
+ };
1160
+ readonly creature: {
1161
+ readonly appearance: {
1162
+ readonly type: "text";
1163
+ };
1164
+ readonly weight: {
1165
+ readonly type: "text";
1166
+ };
1167
+ readonly height: {
1168
+ readonly type: "text";
1169
+ };
1170
+ readonly habits: {
1171
+ readonly type: "text";
1172
+ };
1173
+ readonly demeanor: {
1174
+ readonly type: "text";
1175
+ };
1176
+ readonly status: {
1177
+ readonly type: "text";
1178
+ };
1179
+ readonly birth_date: {
1180
+ readonly type: "text";
1181
+ };
1182
+ readonly challenge_rating: {
1183
+ readonly type: "text";
1184
+ };
1185
+ readonly hit_points: {
1186
+ readonly type: "text";
1187
+ };
1188
+ readonly armor_class: {
1189
+ readonly type: "text";
1190
+ };
1191
+ readonly speed: {
1192
+ readonly type: "text";
1193
+ };
1194
+ readonly location: {
1195
+ readonly type: "single_link";
1196
+ readonly target: "location";
1197
+ };
1198
+ readonly zone: {
1199
+ readonly type: "single_link";
1200
+ readonly target: "zone";
1201
+ };
1202
+ readonly species: {
1203
+ readonly type: "multi_link";
1204
+ readonly target: "species";
1205
+ };
1206
+ readonly traits: {
1207
+ readonly type: "multi_link";
1208
+ readonly target: "trait";
1209
+ };
1210
+ readonly abilities: {
1211
+ readonly type: "multi_link";
1212
+ readonly target: "ability";
1213
+ };
1214
+ readonly languages: {
1215
+ readonly type: "multi_link";
1216
+ readonly target: "language";
1217
+ };
1218
+ readonly actions: {
1219
+ readonly type: "multi_link";
1220
+ readonly target: "ability";
1221
+ };
1222
+ };
1223
+ readonly event: {
1224
+ readonly history: {
1225
+ readonly type: "text";
1226
+ };
1227
+ readonly challenges: {
1228
+ readonly type: "text";
1229
+ };
1230
+ readonly consequences: {
1231
+ readonly type: "text";
1232
+ };
1233
+ readonly start_date: {
1234
+ readonly type: "text";
1235
+ };
1236
+ readonly end_date: {
1237
+ readonly type: "text";
1238
+ };
1239
+ readonly triggers: {
1240
+ readonly type: "multi_link";
1241
+ readonly target: "event";
1242
+ };
1243
+ readonly characters: {
1244
+ readonly type: "multi_link";
1245
+ readonly target: "character";
1246
+ };
1247
+ readonly objects: {
1248
+ readonly type: "multi_link";
1249
+ readonly target: "object";
1250
+ };
1251
+ readonly locations: {
1252
+ readonly type: "multi_link";
1253
+ readonly target: "location";
1254
+ };
1255
+ readonly species: {
1256
+ readonly type: "multi_link";
1257
+ readonly target: "species";
1258
+ };
1259
+ readonly creatures: {
1260
+ readonly type: "multi_link";
1261
+ readonly target: "creature";
1262
+ };
1263
+ readonly institutions: {
1264
+ readonly type: "multi_link";
1265
+ readonly target: "institution";
1266
+ };
1267
+ readonly traits: {
1268
+ readonly type: "multi_link";
1269
+ readonly target: "trait";
1270
+ };
1271
+ readonly collectives: {
1272
+ readonly type: "multi_link";
1273
+ readonly target: "collective";
1274
+ };
1275
+ readonly zones: {
1276
+ readonly type: "multi_link";
1277
+ readonly target: "zone";
1278
+ };
1279
+ readonly abilities: {
1280
+ readonly type: "multi_link";
1281
+ readonly target: "ability";
1282
+ };
1283
+ readonly phenomena: {
1284
+ readonly type: "multi_link";
1285
+ readonly target: "phenomenon";
1286
+ };
1287
+ readonly languages: {
1288
+ readonly type: "multi_link";
1289
+ readonly target: "language";
1290
+ };
1291
+ readonly families: {
1292
+ readonly type: "multi_link";
1293
+ readonly target: "family";
1294
+ };
1295
+ readonly relations: {
1296
+ readonly type: "multi_link";
1297
+ readonly target: "relation";
1298
+ };
1299
+ readonly titles: {
1300
+ readonly type: "multi_link";
1301
+ readonly target: "title";
1302
+ };
1303
+ readonly constructs: {
1304
+ readonly type: "multi_link";
1305
+ readonly target: "construct";
1306
+ };
1307
+ };
1308
+ readonly family: {
1309
+ readonly spirit: {
1310
+ readonly type: "text";
1311
+ };
1312
+ readonly history: {
1313
+ readonly type: "text";
1314
+ };
1315
+ readonly reputation: {
1316
+ readonly type: "text";
1317
+ };
1318
+ readonly traditions: {
1319
+ readonly type: "multi_link";
1320
+ readonly target: "construct";
1321
+ };
1322
+ readonly traits: {
1323
+ readonly type: "multi_link";
1324
+ readonly target: "trait";
1325
+ };
1326
+ readonly abilities: {
1327
+ readonly type: "multi_link";
1328
+ readonly target: "ability";
1329
+ };
1330
+ readonly languages: {
1331
+ readonly type: "multi_link";
1332
+ readonly target: "language";
1333
+ };
1334
+ readonly ancestors: {
1335
+ readonly type: "multi_link";
1336
+ readonly target: "character";
1337
+ };
1338
+ readonly estates: {
1339
+ readonly type: "multi_link";
1340
+ readonly target: "location";
1341
+ };
1342
+ readonly governs: {
1343
+ readonly type: "multi_link";
1344
+ readonly target: "institution";
1345
+ };
1346
+ readonly heirlooms: {
1347
+ readonly type: "multi_link";
1348
+ readonly target: "object";
1349
+ };
1350
+ readonly creatures: {
1351
+ readonly type: "multi_link";
1352
+ readonly target: "creature";
1353
+ };
1354
+ };
1355
+ readonly institution: {
1356
+ readonly doctrine: {
1357
+ readonly type: "text";
1358
+ };
1359
+ readonly founding_date: {
1360
+ readonly type: "text";
1361
+ };
1362
+ readonly status: {
1363
+ readonly type: "text";
1364
+ };
1365
+ readonly parent_institution: {
1366
+ readonly type: "single_link";
1367
+ readonly target: "institution";
1368
+ };
1369
+ readonly zones: {
1370
+ readonly type: "multi_link";
1371
+ readonly target: "zone";
1372
+ };
1373
+ readonly objects: {
1374
+ readonly type: "multi_link";
1375
+ readonly target: "object";
1376
+ };
1377
+ readonly creatures: {
1378
+ readonly type: "multi_link";
1379
+ readonly target: "creature";
1380
+ };
1381
+ readonly allies: {
1382
+ readonly type: "multi_link";
1383
+ readonly target: "institution";
1384
+ };
1385
+ readonly adversaries: {
1386
+ readonly type: "multi_link";
1387
+ readonly target: "institution";
1388
+ };
1389
+ readonly constructs: {
1390
+ readonly type: "multi_link";
1391
+ readonly target: "construct";
1392
+ };
1393
+ };
1394
+ readonly language: {
1395
+ readonly phonology: {
1396
+ readonly type: "text";
1397
+ };
1398
+ readonly grammar: {
1399
+ readonly type: "text";
1400
+ };
1401
+ readonly lexicon: {
1402
+ readonly type: "text";
1403
+ };
1404
+ readonly writing: {
1405
+ readonly type: "text";
1406
+ };
1407
+ readonly status: {
1408
+ readonly type: "text";
1409
+ };
1410
+ readonly classification: {
1411
+ readonly type: "single_link";
1412
+ readonly target: "construct";
1413
+ };
1414
+ readonly spread: {
1415
+ readonly type: "multi_link";
1416
+ readonly target: "location";
1417
+ };
1418
+ readonly dialects: {
1419
+ readonly type: "multi_link";
1420
+ readonly target: "language";
1421
+ };
1422
+ };
1423
+ readonly law: {
1424
+ readonly declaration: {
1425
+ readonly type: "text";
1426
+ };
1427
+ readonly purpose: {
1428
+ readonly type: "text";
1429
+ };
1430
+ readonly date: {
1431
+ readonly type: "text";
1432
+ };
1433
+ readonly parent_law: {
1434
+ readonly type: "single_link";
1435
+ readonly target: "law";
1436
+ };
1437
+ readonly author: {
1438
+ readonly type: "single_link";
1439
+ readonly target: "institution";
1440
+ };
1441
+ readonly penalties: {
1442
+ readonly type: "multi_link";
1443
+ readonly target: "construct";
1444
+ };
1445
+ readonly locations: {
1446
+ readonly type: "multi_link";
1447
+ readonly target: "location";
1448
+ };
1449
+ readonly zones: {
1450
+ readonly type: "multi_link";
1451
+ readonly target: "zone";
1452
+ };
1453
+ readonly prohibitions: {
1454
+ readonly type: "multi_link";
1455
+ readonly target: "construct";
1456
+ };
1457
+ readonly adjudicators: {
1458
+ readonly type: "multi_link";
1459
+ readonly target: "title";
1460
+ };
1461
+ readonly enforcers: {
1462
+ readonly type: "multi_link";
1463
+ readonly target: "title";
1464
+ };
1465
+ };
1466
+ readonly location: {
1467
+ readonly form: {
1468
+ readonly type: "text";
1469
+ };
1470
+ readonly function: {
1471
+ readonly type: "text";
1472
+ };
1473
+ readonly founding_date: {
1474
+ readonly type: "text";
1475
+ };
1476
+ readonly political_climate: {
1477
+ readonly type: "text";
1478
+ };
1479
+ readonly customs: {
1480
+ readonly type: "text";
1481
+ };
1482
+ readonly infrastructure: {
1483
+ readonly type: "text";
1484
+ };
1485
+ readonly architecture: {
1486
+ readonly type: "text";
1487
+ };
1488
+ readonly defensibility: {
1489
+ readonly type: "text";
1490
+ };
1491
+ readonly elevation: {
1492
+ readonly type: "text";
1493
+ };
1494
+ readonly parent_location: {
1495
+ readonly type: "single_link";
1496
+ readonly target: "location";
1497
+ };
1498
+ readonly primary_power: {
1499
+ readonly type: "single_link";
1500
+ readonly target: "institution";
1501
+ };
1502
+ readonly governing_title: {
1503
+ readonly type: "single_link";
1504
+ readonly target: "title";
1505
+ };
1506
+ readonly zone: {
1507
+ readonly type: "single_link";
1508
+ readonly target: "zone";
1509
+ };
1510
+ readonly rival: {
1511
+ readonly type: "single_link";
1512
+ readonly target: "location";
1513
+ };
1514
+ readonly partner: {
1515
+ readonly type: "single_link";
1516
+ readonly target: "location";
1517
+ };
1518
+ readonly populations: {
1519
+ readonly type: "multi_link";
1520
+ readonly target: "collective";
1521
+ };
1522
+ readonly secondary_powers: {
1523
+ readonly type: "multi_link";
1524
+ readonly target: "institution";
1525
+ };
1526
+ readonly founders: {
1527
+ readonly type: "multi_link";
1528
+ readonly target: "character";
1529
+ };
1530
+ readonly cults: {
1531
+ readonly type: "multi_link";
1532
+ readonly target: "construct";
1533
+ };
1534
+ readonly delicacies: {
1535
+ readonly type: "multi_link";
1536
+ readonly target: "species";
1537
+ };
1538
+ readonly extraction_methods: {
1539
+ readonly type: "multi_link";
1540
+ readonly target: "construct";
1541
+ };
1542
+ readonly extraction_goods: {
1543
+ readonly type: "multi_link";
1544
+ readonly target: "construct";
1545
+ };
1546
+ readonly industry_methods: {
1547
+ readonly type: "multi_link";
1548
+ readonly target: "construct";
1549
+ };
1550
+ readonly industry_goods: {
1551
+ readonly type: "multi_link";
1552
+ readonly target: "construct";
1553
+ };
1554
+ readonly extraction_markets: {
1555
+ readonly type: "multi_link";
1556
+ readonly target: "location";
1557
+ };
1558
+ readonly industry_markets: {
1559
+ readonly type: "multi_link";
1560
+ readonly target: "location";
1561
+ };
1562
+ readonly currencies: {
1563
+ readonly type: "multi_link";
1564
+ readonly target: "construct";
1565
+ };
1566
+ readonly buildings: {
1567
+ readonly type: "multi_link";
1568
+ readonly target: "object";
1569
+ };
1570
+ readonly building_methods: {
1571
+ readonly type: "multi_link";
1572
+ readonly target: "construct";
1573
+ };
1574
+ readonly fighters: {
1575
+ readonly type: "multi_link";
1576
+ readonly target: "construct";
1577
+ };
1578
+ readonly defensive_objects: {
1579
+ readonly type: "multi_link";
1580
+ readonly target: "object";
1581
+ };
1582
+ };
1583
+ readonly map: {
1584
+ readonly background_color: {
1585
+ readonly type: "text";
1586
+ };
1587
+ readonly hierarchy: {
1588
+ readonly type: "text";
1589
+ };
1590
+ readonly width: {
1591
+ readonly type: "text";
1592
+ };
1593
+ readonly height: {
1594
+ readonly type: "text";
1595
+ };
1596
+ readonly depth: {
1597
+ readonly type: "text";
1598
+ };
1599
+ readonly parent_map: {
1600
+ readonly type: "single_link";
1601
+ readonly target: "map";
1602
+ };
1603
+ readonly location: {
1604
+ readonly type: "single_link";
1605
+ readonly target: "location";
1606
+ };
1607
+ };
1608
+ readonly marker: {
1609
+ readonly x: {
1610
+ readonly type: "integer";
1611
+ };
1612
+ readonly y: {
1613
+ readonly type: "integer";
1614
+ };
1615
+ readonly z: {
1616
+ readonly type: "integer";
1617
+ };
1618
+ readonly map: {
1619
+ readonly type: "single_link";
1620
+ readonly target: "map";
1621
+ };
1622
+ readonly zone: {
1623
+ readonly type: "single_link";
1624
+ readonly target: "zone";
1625
+ };
1626
+ };
1627
+ readonly narrative: {
1628
+ readonly story: {
1629
+ readonly type: "text";
1630
+ };
1631
+ readonly consequences: {
1632
+ readonly type: "text";
1633
+ };
1634
+ readonly start_date: {
1635
+ readonly type: "text";
1636
+ };
1637
+ readonly end_date: {
1638
+ readonly type: "text";
1639
+ };
1640
+ readonly order: {
1641
+ readonly type: "text";
1642
+ };
1643
+ readonly parent_narrative: {
1644
+ readonly type: "single_link";
1645
+ readonly target: "narrative";
1646
+ };
1647
+ readonly protagonist: {
1648
+ readonly type: "single_link";
1649
+ readonly target: "character";
1650
+ };
1651
+ readonly antagonist: {
1652
+ readonly type: "single_link";
1653
+ readonly target: "character";
1654
+ };
1655
+ readonly narrator: {
1656
+ readonly type: "single_link";
1657
+ readonly target: "character";
1658
+ };
1659
+ readonly conservator: {
1660
+ readonly type: "single_link";
1661
+ readonly target: "institution";
1662
+ };
1663
+ readonly events: {
1664
+ readonly type: "multi_link";
1665
+ readonly target: "event";
1666
+ };
1667
+ readonly characters: {
1668
+ readonly type: "multi_link";
1669
+ readonly target: "character";
1670
+ };
1671
+ readonly objects: {
1672
+ readonly type: "multi_link";
1673
+ readonly target: "object";
1674
+ };
1675
+ readonly locations: {
1676
+ readonly type: "multi_link";
1677
+ readonly target: "location";
1678
+ };
1679
+ readonly species: {
1680
+ readonly type: "multi_link";
1681
+ readonly target: "species";
1682
+ };
1683
+ readonly creatures: {
1684
+ readonly type: "multi_link";
1685
+ readonly target: "creature";
1686
+ };
1687
+ readonly institutions: {
1688
+ readonly type: "multi_link";
1689
+ readonly target: "institution";
1690
+ };
1691
+ readonly traits: {
1692
+ readonly type: "multi_link";
1693
+ readonly target: "trait";
1694
+ };
1695
+ readonly collectives: {
1696
+ readonly type: "multi_link";
1697
+ readonly target: "collective";
1698
+ };
1699
+ readonly zones: {
1700
+ readonly type: "multi_link";
1701
+ readonly target: "zone";
1702
+ };
1703
+ readonly abilities: {
1704
+ readonly type: "multi_link";
1705
+ readonly target: "ability";
1706
+ };
1707
+ readonly phenomena: {
1708
+ readonly type: "multi_link";
1709
+ readonly target: "phenomenon";
1710
+ };
1711
+ readonly languages: {
1712
+ readonly type: "multi_link";
1713
+ readonly target: "language";
1714
+ };
1715
+ readonly families: {
1716
+ readonly type: "multi_link";
1717
+ readonly target: "family";
1718
+ };
1719
+ readonly relations: {
1720
+ readonly type: "multi_link";
1721
+ readonly target: "relation";
1722
+ };
1723
+ readonly titles: {
1724
+ readonly type: "multi_link";
1725
+ readonly target: "title";
1726
+ };
1727
+ readonly constructs: {
1728
+ readonly type: "multi_link";
1729
+ readonly target: "construct";
1730
+ };
1731
+ readonly laws: {
1732
+ readonly type: "multi_link";
1733
+ readonly target: "law";
1734
+ };
1735
+ };
1736
+ readonly object: {
1737
+ readonly aesthetics: {
1738
+ readonly type: "text";
1739
+ };
1740
+ readonly weight: {
1741
+ readonly type: "text";
1742
+ };
1743
+ readonly amount: {
1744
+ readonly type: "text";
1745
+ };
1746
+ readonly utility: {
1747
+ readonly type: "text";
1748
+ };
1749
+ readonly origins: {
1750
+ readonly type: "text";
1751
+ };
1752
+ readonly parent_object: {
1753
+ readonly type: "single_link";
1754
+ readonly target: "object";
1755
+ };
1756
+ readonly location: {
1757
+ readonly type: "single_link";
1758
+ readonly target: "location";
1759
+ };
1760
+ readonly language: {
1761
+ readonly type: "single_link";
1762
+ readonly target: "language";
1763
+ };
1764
+ readonly materials: {
1765
+ readonly type: "multi_link";
1766
+ readonly target: "construct";
1767
+ };
1768
+ readonly technology: {
1769
+ readonly type: "multi_link";
1770
+ readonly target: "construct";
1771
+ };
1772
+ readonly effects: {
1773
+ readonly type: "multi_link";
1774
+ readonly target: "phenomenon";
1775
+ };
1776
+ readonly abilities: {
1777
+ readonly type: "multi_link";
1778
+ readonly target: "ability";
1779
+ };
1780
+ readonly consumes: {
1781
+ readonly type: "multi_link";
1782
+ readonly target: "construct";
1783
+ };
1784
+ readonly affinities: {
1785
+ readonly type: "multi_link";
1786
+ readonly target: "trait";
1787
+ };
1788
+ };
1789
+ readonly phenomenon: {
1790
+ readonly expression: {
1791
+ readonly type: "text";
1792
+ };
1793
+ readonly effects: {
1794
+ readonly type: "text";
1795
+ };
1796
+ readonly duration: {
1797
+ readonly type: "text";
1798
+ };
1799
+ readonly mythology: {
1800
+ readonly type: "text";
1801
+ };
1802
+ readonly system: {
1803
+ readonly type: "single_link";
1804
+ readonly target: "phenomenon";
1805
+ };
1806
+ readonly catalysts: {
1807
+ readonly type: "multi_link";
1808
+ readonly target: "object";
1809
+ };
1810
+ readonly empowerments: {
1811
+ readonly type: "multi_link";
1812
+ readonly target: "ability";
1813
+ };
1814
+ readonly triggers: {
1815
+ readonly type: "multi_link";
1816
+ readonly target: "construct";
1817
+ };
1818
+ readonly wielders: {
1819
+ readonly type: "multi_link";
1820
+ readonly target: "character";
1821
+ };
1822
+ readonly environments: {
1823
+ readonly type: "multi_link";
1824
+ readonly target: "location";
1825
+ };
1826
+ };
1827
+ readonly pin: {
1828
+ readonly element_type: {
1829
+ readonly type: "text";
1830
+ };
1831
+ readonly x: {
1832
+ readonly type: "integer";
1833
+ };
1834
+ readonly y: {
1835
+ readonly type: "integer";
1836
+ };
1837
+ readonly z: {
1838
+ readonly type: "integer";
1839
+ };
1840
+ readonly map: {
1841
+ readonly type: "single_link";
1842
+ readonly target: "map";
1843
+ };
1844
+ readonly element_id: {
1845
+ readonly type: "single_link";
1846
+ readonly target: "any";
1847
+ };
1848
+ };
1849
+ readonly relation: {
1850
+ readonly background: {
1851
+ readonly type: "text";
1852
+ };
1853
+ readonly start_date: {
1854
+ readonly type: "text";
1855
+ };
1856
+ readonly end_date: {
1857
+ readonly type: "text";
1858
+ };
1859
+ readonly intensity: {
1860
+ readonly type: "text";
1861
+ };
1862
+ readonly actor: {
1863
+ readonly type: "single_link";
1864
+ readonly target: "character";
1865
+ };
1866
+ readonly characters: {
1867
+ readonly type: "multi_link";
1868
+ readonly target: "character";
1869
+ };
1870
+ readonly objects: {
1871
+ readonly type: "multi_link";
1872
+ readonly target: "object";
1873
+ };
1874
+ readonly locations: {
1875
+ readonly type: "multi_link";
1876
+ readonly target: "location";
1877
+ };
1878
+ readonly species: {
1879
+ readonly type: "multi_link";
1880
+ readonly target: "species";
1881
+ };
1882
+ readonly creatures: {
1883
+ readonly type: "multi_link";
1884
+ readonly target: "creature";
1885
+ };
1886
+ readonly institutions: {
1887
+ readonly type: "multi_link";
1888
+ readonly target: "institution";
1889
+ };
1890
+ readonly traits: {
1891
+ readonly type: "multi_link";
1892
+ readonly target: "trait";
1893
+ };
1894
+ readonly collectives: {
1895
+ readonly type: "multi_link";
1896
+ readonly target: "collective";
1897
+ };
1898
+ readonly zones: {
1899
+ readonly type: "multi_link";
1900
+ readonly target: "zone";
1901
+ };
1902
+ readonly abilities: {
1903
+ readonly type: "multi_link";
1904
+ readonly target: "ability";
1905
+ };
1906
+ readonly phenomena: {
1907
+ readonly type: "multi_link";
1908
+ readonly target: "phenomenon";
1909
+ };
1910
+ readonly languages: {
1911
+ readonly type: "multi_link";
1912
+ readonly target: "language";
1913
+ };
1914
+ readonly families: {
1915
+ readonly type: "multi_link";
1916
+ readonly target: "family";
1917
+ };
1918
+ readonly titles: {
1919
+ readonly type: "multi_link";
1920
+ readonly target: "title";
1921
+ };
1922
+ readonly constructs: {
1923
+ readonly type: "multi_link";
1924
+ readonly target: "construct";
1925
+ };
1926
+ readonly events: {
1927
+ readonly type: "multi_link";
1928
+ readonly target: "event";
1929
+ };
1930
+ readonly narratives: {
1931
+ readonly type: "multi_link";
1932
+ readonly target: "narrative";
1933
+ };
1934
+ };
1935
+ readonly species: {
1936
+ readonly appearance: {
1937
+ readonly type: "text";
1938
+ };
1939
+ readonly life_span: {
1940
+ readonly type: "text";
1941
+ };
1942
+ readonly weight: {
1943
+ readonly type: "text";
1944
+ };
1945
+ readonly instincts: {
1946
+ readonly type: "text";
1947
+ };
1948
+ readonly sociality: {
1949
+ readonly type: "text";
1950
+ };
1951
+ readonly temperament: {
1952
+ readonly type: "text";
1953
+ };
1954
+ readonly communication: {
1955
+ readonly type: "text";
1956
+ };
1957
+ readonly aggression: {
1958
+ readonly type: "text";
1959
+ };
1960
+ readonly role: {
1961
+ readonly type: "text";
1962
+ };
1963
+ readonly parent_species: {
1964
+ readonly type: "single_link";
1965
+ readonly target: "species";
1966
+ };
1967
+ readonly nourishment: {
1968
+ readonly type: "multi_link";
1969
+ readonly target: "species";
1970
+ };
1971
+ readonly reproduction: {
1972
+ readonly type: "multi_link";
1973
+ readonly target: "construct";
1974
+ };
1975
+ readonly adaptations: {
1976
+ readonly type: "multi_link";
1977
+ readonly target: "ability";
1978
+ };
1979
+ readonly traits: {
1980
+ readonly type: "multi_link";
1981
+ readonly target: "trait";
1982
+ };
1983
+ readonly locations: {
1984
+ readonly type: "multi_link";
1985
+ readonly target: "location";
1986
+ };
1987
+ readonly zones: {
1988
+ readonly type: "multi_link";
1989
+ readonly target: "zone";
1990
+ };
1991
+ readonly affinities: {
1992
+ readonly type: "multi_link";
1993
+ readonly target: "phenomenon";
1994
+ };
1995
+ };
1996
+ readonly title: {
1997
+ readonly authority: {
1998
+ readonly type: "text";
1999
+ };
2000
+ readonly eligibility: {
2001
+ readonly type: "text";
2002
+ };
2003
+ readonly grant_date: {
2004
+ readonly type: "text";
2005
+ };
2006
+ readonly revoke_date: {
2007
+ readonly type: "text";
2008
+ };
2009
+ readonly status: {
2010
+ readonly type: "text";
2011
+ };
2012
+ readonly history: {
2013
+ readonly type: "text";
2014
+ };
2015
+ readonly issuer: {
2016
+ readonly type: "single_link";
2017
+ readonly target: "institution";
2018
+ };
2019
+ readonly body: {
2020
+ readonly type: "single_link";
2021
+ readonly target: "institution";
2022
+ };
2023
+ readonly superior_title: {
2024
+ readonly type: "single_link";
2025
+ readonly target: "title";
2026
+ };
2027
+ readonly holders: {
2028
+ readonly type: "multi_link";
2029
+ readonly target: "character";
2030
+ };
2031
+ readonly symbols: {
2032
+ readonly type: "multi_link";
2033
+ readonly target: "object";
2034
+ };
2035
+ readonly characters: {
2036
+ readonly type: "multi_link";
2037
+ readonly target: "character";
2038
+ };
2039
+ readonly institutions: {
2040
+ readonly type: "multi_link";
2041
+ readonly target: "institution";
2042
+ };
2043
+ readonly families: {
2044
+ readonly type: "multi_link";
2045
+ readonly target: "family";
2046
+ };
2047
+ readonly zones: {
2048
+ readonly type: "multi_link";
2049
+ readonly target: "zone";
2050
+ };
2051
+ readonly locations: {
2052
+ readonly type: "multi_link";
2053
+ readonly target: "location";
2054
+ };
2055
+ readonly objects: {
2056
+ readonly type: "multi_link";
2057
+ readonly target: "object";
2058
+ };
2059
+ readonly constructs: {
2060
+ readonly type: "multi_link";
2061
+ readonly target: "construct";
2062
+ };
2063
+ readonly laws: {
2064
+ readonly type: "multi_link";
2065
+ readonly target: "law";
2066
+ };
2067
+ readonly collectives: {
2068
+ readonly type: "multi_link";
2069
+ readonly target: "collective";
2070
+ };
2071
+ readonly creatures: {
2072
+ readonly type: "multi_link";
2073
+ readonly target: "creature";
2074
+ };
2075
+ readonly phenomena: {
2076
+ readonly type: "multi_link";
2077
+ readonly target: "phenomenon";
2078
+ };
2079
+ readonly species: {
2080
+ readonly type: "multi_link";
2081
+ readonly target: "species";
2082
+ };
2083
+ readonly languages: {
2084
+ readonly type: "multi_link";
2085
+ readonly target: "language";
2086
+ };
2087
+ };
2088
+ readonly trait: {
2089
+ readonly social_effects: {
2090
+ readonly type: "text";
2091
+ };
2092
+ readonly physical_effects: {
2093
+ readonly type: "text";
2094
+ };
2095
+ readonly functional_effects: {
2096
+ readonly type: "text";
2097
+ };
2098
+ readonly personality_effects: {
2099
+ readonly type: "text";
2100
+ };
2101
+ readonly behaviour_effects: {
2102
+ readonly type: "text";
2103
+ };
2104
+ readonly charisma: {
2105
+ readonly type: "text";
2106
+ };
2107
+ readonly coercion: {
2108
+ readonly type: "text";
2109
+ };
2110
+ readonly competence: {
2111
+ readonly type: "text";
2112
+ };
2113
+ readonly compassion: {
2114
+ readonly type: "text";
2115
+ };
2116
+ readonly creativity: {
2117
+ readonly type: "text";
2118
+ };
2119
+ readonly courage: {
2120
+ readonly type: "text";
2121
+ };
2122
+ readonly significance: {
2123
+ readonly type: "text";
2124
+ };
2125
+ readonly anti_trait: {
2126
+ readonly type: "single_link";
2127
+ readonly target: "trait";
2128
+ };
2129
+ readonly empowered_abilities: {
2130
+ readonly type: "multi_link";
2131
+ readonly target: "ability";
2132
+ };
2133
+ };
2134
+ readonly zone: {
2135
+ readonly role: {
2136
+ readonly type: "text";
2137
+ };
2138
+ readonly start_date: {
2139
+ readonly type: "text";
2140
+ };
2141
+ readonly end_date: {
2142
+ readonly type: "text";
2143
+ };
2144
+ readonly context: {
2145
+ readonly type: "text";
2146
+ };
2147
+ readonly phenomena: {
2148
+ readonly type: "multi_link";
2149
+ readonly target: "phenomenon";
2150
+ };
2151
+ readonly linked_zones: {
2152
+ readonly type: "multi_link";
2153
+ readonly target: "zone";
2154
+ };
2155
+ readonly populations: {
2156
+ readonly type: "multi_link";
2157
+ readonly target: "collective";
2158
+ };
2159
+ readonly titles: {
2160
+ readonly type: "multi_link";
2161
+ readonly target: "title";
2162
+ };
2163
+ readonly principles: {
2164
+ readonly type: "multi_link";
2165
+ readonly target: "construct";
2166
+ };
2167
+ };
2168
+ };
2169
+ /**
2170
+ * Legacy FIELD_MAPPINGS export for backward compatibility
2171
+ * @deprecated Use FIELD_SCHEMA instead for comprehensive field metadata
2172
+ */
2173
+ declare const FIELD_MAPPINGS: {
2174
+ [k: string]: {
2175
+ [k: string]: any;
2176
+ };
2177
+ };
2178
+ /**
2179
+ * Type for the field mappings - enables type-safe access to relationship metadata
2180
+ * @deprecated Use FIELD_SCHEMA instead
2181
+ */
2182
+ type FieldMappingsType = typeof FIELD_MAPPINGS;
2183
+ /**
2184
+ * Creates a typed element ID from a string
2185
+ * @param id The string ID to brand
2186
+ * @returns Branded ElementId
2187
+ */
2188
+ declare function createElementId<T extends ElementType>(id: string): ElementId<T>;
2189
+ /**
2190
+ * Creates typed element IDs array from string array
2191
+ * @param ids The string IDs to brand
2192
+ * @returns Branded ElementIds array
2193
+ */
2194
+ declare function createElementIds<T extends ElementType>(ids: string[]): ElementIds<T>;
2195
+ /**
2196
+ * Creates an AnyElementId that can reference any element type
2197
+ * @param id The string ID to brand
2198
+ * @returns AnyElementId
2199
+ */
2200
+ declare function createAnyElementId(id: string): AnyElementId;
1018
2201
 
1019
2202
  interface OnlyWorldsConfig {
1020
2203
  apiKey: string;
@@ -1095,4 +2278,4 @@ declare class OnlyWorldsClient {
1095
2278
  static prepareInput<T extends Record<string, any>>(data: T): any;
1096
2279
  }
1097
2280
 
1098
- export { type Ability, type AbilityInput, type ApiResponse, type BaseElement, type Character, type CharacterInput, type Collective, type CollectiveInput, type Construct, type ConstructInput, type Creature, type CreatureInput, ElementType, type Event, type EventInput, type Family, type FamilyInput, type Institution, type InstitutionInput, type Language, type LanguageInput, type Law, type LawInput, type ListOptions, type Location, type LocationInput, type Map, type MapInput, type Marker, type MarkerInput, type Narrative, type NarrativeInput, type Object$1 as Object, type ObjectInput, OnlyWorldsClient, type OnlyWorldsConfig, type Phenomenon, type PhenomenonInput, type Pin, type PinInput, type Relation, type RelationInput, type Species, type SpeciesInput, type Title, type TitleInput, type Trait, type TraitInput, type World, type WorldInput, type Zone, type ZoneInput };
2281
+ export { type Ability, type AbilityInput, type AnyElementId, type ApiResponse, type BaseElement, type Character, type CharacterInput, type Collective, type CollectiveInput, type Construct, type ConstructInput, type Creature, type CreatureInput, type ElementId, type ElementIds, ElementType, type Event, type EventInput, FIELD_MAPPINGS, FIELD_SCHEMA, type Family, type FamilyInput, type FieldInfo, type FieldMappingsType, type FieldType, type Institution, type InstitutionInput, type Language, type LanguageInput, type Law, type LawInput, type ListOptions, type Location, type LocationInput, type Map, type MapInput, type Marker, type MarkerInput, type Narrative, type NarrativeInput, type Object$1 as Object, type ObjectInput, OnlyWorldsClient, type OnlyWorldsConfig, type Phenomenon, type PhenomenonInput, type Pin, type PinInput, type Relation, type RelationInput, type Species, type SpeciesInput, type Title, type TitleInput, type Trait, type TraitInput, type World, type WorldInput, type Zone, type ZoneInput, createAnyElementId, createElementId, createElementIds };