@onlyworlds/sdk 1.4.0 → 1.5.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
@@ -72,62 +72,74 @@ interface WorldInput {
72
72
  }
73
73
  /**
74
74
  * Ability element type
75
+ * Fields organized by sections: Mechanics, World
75
76
  */
76
77
  interface Ability extends BaseElement {
77
78
  activation?: string;
78
79
  duration?: string;
79
80
  potency?: string;
80
81
  range?: string;
82
+ effects?: ElementIds<ElementType.Phenomenon>;
81
83
  challenges?: string;
84
+ talents?: ElementIds<ElementType.Trait>;
85
+ requisites?: ElementIds<ElementType.Construct>;
82
86
  prevalence?: string;
83
87
  tradition?: ElementId<ElementType.Construct>;
84
88
  source?: ElementId<ElementType.Phenomenon>;
85
89
  locus?: ElementId<ElementType.Location>;
86
- effects?: ElementIds<ElementType.Phenomenon>;
87
- talents?: ElementIds<ElementType.Trait>;
88
- requisites?: ElementIds<ElementType.Construct>;
89
90
  instruments?: ElementIds<ElementType.Object>;
90
91
  systems?: ElementIds<ElementType.Construct>;
91
92
  }
92
93
  /**
93
94
  * Object element type
95
+ * Fields organized by sections: Form, Function, World
94
96
  */
95
97
  interface Object$1 extends BaseElement {
96
98
  aesthetics?: string;
97
99
  weight?: string;
98
100
  amount?: string;
99
101
  parent_object?: ElementId<ElementType.Object>;
100
- utility?: string;
101
- origins?: string;
102
- location?: ElementId<ElementType.Location>;
103
- language?: ElementId<ElementType.Language>;
104
102
  materials?: ElementIds<ElementType.Construct>;
105
103
  technology?: ElementIds<ElementType.Construct>;
104
+ utility?: string;
106
105
  effects?: ElementIds<ElementType.Phenomenon>;
107
106
  abilities?: ElementIds<ElementType.Ability>;
108
107
  consumes?: ElementIds<ElementType.Construct>;
108
+ origins?: string;
109
+ location?: ElementId<ElementType.Location>;
110
+ language?: ElementId<ElementType.Language>;
109
111
  affinities?: ElementIds<ElementType.Trait>;
110
112
  }
111
113
  /**
112
114
  * Character element type
115
+ * Fields organized by sections: Constitution, Origins, World, Personality, Social, TTRPG
113
116
  */
114
117
  interface Character extends BaseElement {
115
118
  physicality?: string;
116
119
  mentality?: string;
117
120
  height?: string;
118
121
  weight?: string;
122
+ species?: ElementIds<ElementType.Species>;
123
+ traits?: ElementIds<ElementType.Trait>;
124
+ abilities?: ElementIds<ElementType.Ability>;
119
125
  background?: string;
120
126
  motivations?: string;
121
127
  birth_date?: string;
122
128
  birthplace?: ElementId<ElementType.Location>;
129
+ languages?: ElementIds<ElementType.Language>;
123
130
  reputation?: string;
124
131
  location?: ElementId<ElementType.Location>;
132
+ objects?: ElementIds<ElementType.Object>;
133
+ institutions?: ElementIds<ElementType.Institution>;
125
134
  charisma?: string;
126
135
  coercion?: string;
127
136
  competence?: string;
128
137
  compassion?: string;
129
138
  creativity?: string;
130
139
  courage?: string;
140
+ family?: ElementIds<ElementType.Family>;
141
+ friends?: ElementIds<ElementType.Character>;
142
+ rivals?: ElementIds<ElementType.Character>;
131
143
  level?: string;
132
144
  hit_points?: string;
133
145
  STR?: string;
@@ -136,28 +148,20 @@ interface Character extends BaseElement {
136
148
  INT?: string;
137
149
  WIS?: string;
138
150
  CHA?: 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>;
148
151
  }
149
152
  /**
150
153
  * Collective element type
154
+ * Fields organized by sections: Formation, Dynamics, World
151
155
  */
152
156
  interface Collective extends BaseElement {
153
157
  composition?: string;
154
158
  count?: string;
155
159
  formation_date?: string;
156
160
  operator?: ElementId<ElementType.Institution>;
161
+ equipment?: ElementIds<ElementType.Construct>;
157
162
  activity?: string;
158
163
  disposition?: string;
159
164
  state?: string;
160
- equipment?: ElementIds<ElementType.Construct>;
161
165
  abilities?: ElementIds<ElementType.Ability>;
162
166
  symbolism?: ElementIds<ElementType.Construct>;
163
167
  species?: ElementIds<ElementType.Species>;
@@ -167,6 +171,7 @@ interface Collective extends BaseElement {
167
171
  }
168
172
  /**
169
173
  * Construct element type
174
+ * Fields organized by sections: Nature, Involves
170
175
  */
171
176
  interface Construct extends BaseElement {
172
177
  rationale?: string;
@@ -198,13 +203,18 @@ interface Construct extends BaseElement {
198
203
  }
199
204
  /**
200
205
  * Creature element type
206
+ * Fields organized by sections: Biology, Behaviour, World, TTRPG
201
207
  */
202
208
  interface Creature extends BaseElement {
203
209
  appearance?: string;
204
210
  weight?: string;
205
211
  height?: string;
212
+ species?: ElementIds<ElementType.Species>;
206
213
  habits?: string;
207
214
  demeanor?: string;
215
+ traits?: ElementIds<ElementType.Trait>;
216
+ abilities?: ElementIds<ElementType.Ability>;
217
+ languages?: ElementIds<ElementType.Language>;
208
218
  status?: string;
209
219
  birth_date?: string;
210
220
  location?: ElementId<ElementType.Location>;
@@ -213,14 +223,11 @@ interface Creature extends BaseElement {
213
223
  hit_points?: string;
214
224
  armor_class?: string;
215
225
  speed?: string;
216
- species?: ElementIds<ElementType.Species>;
217
- traits?: ElementIds<ElementType.Trait>;
218
- abilities?: ElementIds<ElementType.Ability>;
219
- languages?: ElementIds<ElementType.Language>;
220
226
  actions?: ElementIds<ElementType.Ability>;
221
227
  }
222
228
  /**
223
229
  * Event element type
230
+ * Fields organized by sections: Nature, Involves
224
231
  */
225
232
  interface Event extends BaseElement {
226
233
  history?: string;
@@ -248,16 +255,17 @@ interface Event extends BaseElement {
248
255
  }
249
256
  /**
250
257
  * Family element type
258
+ * Fields organized by sections: Identity, World
251
259
  */
252
260
  interface Family extends BaseElement {
253
261
  spirit?: string;
254
262
  history?: string;
255
- reputation?: string;
256
263
  traditions?: ElementIds<ElementType.Construct>;
257
264
  traits?: ElementIds<ElementType.Trait>;
258
265
  abilities?: ElementIds<ElementType.Ability>;
259
266
  languages?: ElementIds<ElementType.Language>;
260
267
  ancestors?: ElementIds<ElementType.Character>;
268
+ reputation?: string;
261
269
  estates?: ElementIds<ElementType.Location>;
262
270
  governs?: ElementIds<ElementType.Institution>;
263
271
  heirlooms?: ElementIds<ElementType.Object>;
@@ -265,21 +273,23 @@ interface Family extends BaseElement {
265
273
  }
266
274
  /**
267
275
  * Institution element type
276
+ * Fields organized by sections: Foundation, Claims, World
268
277
  */
269
278
  interface Institution extends BaseElement {
270
279
  doctrine?: string;
271
280
  founding_date?: string;
272
281
  parent_institution?: ElementId<ElementType.Institution>;
273
- status?: string;
274
282
  zones?: ElementIds<ElementType.Zone>;
275
283
  objects?: ElementIds<ElementType.Object>;
276
284
  creatures?: ElementIds<ElementType.Creature>;
285
+ status?: string;
277
286
  allies?: ElementIds<ElementType.Institution>;
278
287
  adversaries?: ElementIds<ElementType.Institution>;
279
288
  constructs?: ElementIds<ElementType.Construct>;
280
289
  }
281
290
  /**
282
291
  * Language element type
292
+ * Fields organized by sections: Structure, World
283
293
  */
284
294
  interface Language extends BaseElement {
285
295
  phonology?: string;
@@ -293,14 +303,15 @@ interface Language extends BaseElement {
293
303
  }
294
304
  /**
295
305
  * Law element type
306
+ * Fields organized by sections: Code, World
296
307
  */
297
308
  interface Law extends BaseElement {
298
309
  declaration?: string;
299
310
  purpose?: string;
300
311
  date?: string;
301
312
  parent_law?: ElementId<ElementType.Law>;
302
- author?: ElementId<ElementType.Institution>;
303
313
  penalties?: ElementIds<ElementType.Construct>;
314
+ author?: ElementId<ElementType.Institution>;
304
315
  locations?: ElementIds<ElementType.Location>;
305
316
  zones?: ElementIds<ElementType.Zone>;
306
317
  prohibitions?: ElementIds<ElementType.Construct>;
@@ -309,25 +320,22 @@ interface Law extends BaseElement {
309
320
  }
310
321
  /**
311
322
  * Location element type
323
+ * Fields organized by sections: Setting, Politics, World, Production, Commerce, Construction, Defense
312
324
  */
313
325
  interface Location extends BaseElement {
314
326
  form?: string;
315
327
  function?: string;
316
328
  founding_date?: string;
317
329
  parent_location?: ElementId<ElementType.Location>;
330
+ populations?: ElementIds<ElementType.Collective>;
318
331
  political_climate?: string;
319
332
  primary_power?: ElementId<ElementType.Institution>;
320
333
  governing_title?: ElementId<ElementType.Title>;
334
+ secondary_powers?: ElementIds<ElementType.Institution>;
321
335
  zone?: ElementId<ElementType.Zone>;
322
336
  rival?: ElementId<ElementType.Location>;
323
337
  partner?: ElementId<ElementType.Location>;
324
338
  customs?: string;
325
- infrastructure?: string;
326
- architecture?: string;
327
- defensibility?: string;
328
- elevation?: string;
329
- populations?: ElementIds<ElementType.Collective>;
330
- secondary_powers?: ElementIds<ElementType.Institution>;
331
339
  founders?: ElementIds<ElementType.Character>;
332
340
  cults?: ElementIds<ElementType.Construct>;
333
341
  delicacies?: ElementIds<ElementType.Species>;
@@ -335,31 +343,37 @@ interface Location extends BaseElement {
335
343
  extraction_goods?: ElementIds<ElementType.Construct>;
336
344
  industry_methods?: ElementIds<ElementType.Construct>;
337
345
  industry_goods?: ElementIds<ElementType.Construct>;
346
+ infrastructure?: string;
338
347
  extraction_markets?: ElementIds<ElementType.Location>;
339
348
  industry_markets?: ElementIds<ElementType.Location>;
340
349
  currencies?: ElementIds<ElementType.Construct>;
350
+ architecture?: string;
341
351
  buildings?: ElementIds<ElementType.Object>;
342
352
  building_methods?: ElementIds<ElementType.Construct>;
353
+ defensibility?: string;
354
+ elevation?: string;
343
355
  fighters?: ElementIds<ElementType.Construct>;
344
356
  defensive_objects?: ElementIds<ElementType.Object>;
345
357
  }
346
358
  /**
347
359
  * Phenomenon element type
360
+ * Fields organized by sections: Mechanics, World
348
361
  */
349
362
  interface Phenomenon extends BaseElement {
350
363
  expression?: string;
351
364
  effects?: string;
352
365
  duration?: string;
353
- mythology?: string;
354
- system?: ElementId<ElementType.Phenomenon>;
355
366
  catalysts?: ElementIds<ElementType.Object>;
356
367
  empowerments?: ElementIds<ElementType.Ability>;
368
+ mythology?: string;
369
+ system?: ElementId<ElementType.Phenomenon>;
357
370
  triggers?: ElementIds<ElementType.Construct>;
358
371
  wielders?: ElementIds<ElementType.Character>;
359
372
  environments?: ElementIds<ElementType.Location>;
360
373
  }
361
374
  /**
362
375
  * Relation element type
376
+ * Fields organized by sections: Nature, Involves
363
377
  */
364
378
  interface Relation extends BaseElement {
365
379
  background?: string;
@@ -367,6 +381,7 @@ interface Relation extends BaseElement {
367
381
  end_date?: string;
368
382
  intensity?: string;
369
383
  actor?: ElementId<ElementType.Character>;
384
+ events?: ElementIds<ElementType.Event>;
370
385
  characters?: ElementIds<ElementType.Character>;
371
386
  objects?: ElementIds<ElementType.Object>;
372
387
  locations?: ElementIds<ElementType.Location>;
@@ -382,47 +397,49 @@ interface Relation extends BaseElement {
382
397
  families?: ElementIds<ElementType.Family>;
383
398
  titles?: ElementIds<ElementType.Title>;
384
399
  constructs?: ElementIds<ElementType.Construct>;
385
- events?: ElementIds<ElementType.Event>;
386
400
  narratives?: ElementIds<ElementType.Narrative>;
387
401
  }
388
402
  /**
389
403
  * Species element type
404
+ * Fields organized by sections: Biology, Psychology, World
390
405
  */
391
406
  interface Species extends BaseElement {
392
407
  appearance?: string;
393
408
  life_span?: string;
394
409
  weight?: string;
410
+ nourishment?: ElementIds<ElementType.Species>;
411
+ reproduction?: ElementIds<ElementType.Construct>;
412
+ adaptations?: ElementIds<ElementType.Ability>;
395
413
  instincts?: string;
396
414
  sociality?: string;
397
415
  temperament?: string;
398
416
  communication?: string;
399
417
  aggression?: string;
418
+ traits?: ElementIds<ElementType.Trait>;
400
419
  role?: string;
401
420
  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
421
  locations?: ElementIds<ElementType.Location>;
407
422
  zones?: ElementIds<ElementType.Zone>;
408
423
  affinities?: ElementIds<ElementType.Phenomenon>;
409
424
  }
410
425
  /**
411
426
  * Zone element type
427
+ * Fields organized by sections: Scope, World
412
428
  */
413
429
  interface Zone extends BaseElement {
414
430
  role?: string;
415
431
  start_date?: string;
416
432
  end_date?: string;
417
- context?: string;
418
433
  phenomena?: ElementIds<ElementType.Phenomenon>;
419
434
  linked_zones?: ElementIds<ElementType.Zone>;
435
+ context?: string;
420
436
  populations?: ElementIds<ElementType.Collective>;
421
437
  titles?: ElementIds<ElementType.Title>;
422
438
  principles?: ElementIds<ElementType.Construct>;
423
439
  }
424
440
  /**
425
441
  * Title element type
442
+ * Fields organized by sections: Mandate, World
426
443
  */
427
444
  interface Title extends BaseElement {
428
445
  authority?: string;
@@ -432,10 +449,10 @@ interface Title extends BaseElement {
432
449
  issuer?: ElementId<ElementType.Institution>;
433
450
  body?: ElementId<ElementType.Institution>;
434
451
  superior_title?: ElementId<ElementType.Title>;
435
- status?: string;
436
- history?: string;
437
452
  holders?: ElementIds<ElementType.Character>;
438
453
  symbols?: ElementIds<ElementType.Object>;
454
+ status?: string;
455
+ history?: string;
439
456
  characters?: ElementIds<ElementType.Character>;
440
457
  institutions?: ElementIds<ElementType.Institution>;
441
458
  families?: ElementIds<ElementType.Family>;
@@ -452,6 +469,7 @@ interface Title extends BaseElement {
452
469
  }
453
470
  /**
454
471
  * Trait element type
472
+ * Fields organized by sections: Qualitative, Quantitative, World
455
473
  */
456
474
  interface Trait extends BaseElement {
457
475
  social_effects?: string;
@@ -471,6 +489,7 @@ interface Trait extends BaseElement {
471
489
  }
472
490
  /**
473
491
  * Narrative element type
492
+ * Fields organized by sections: Context, Involves
474
493
  */
475
494
  interface Narrative extends BaseElement {
476
495
  story?: string;
@@ -504,6 +523,7 @@ interface Narrative extends BaseElement {
504
523
  }
505
524
  /**
506
525
  * Map element type
526
+ * Fields organized by sections: Details
507
527
  */
508
528
  interface Map extends BaseElement {
509
529
  background_color?: string;
@@ -516,6 +536,7 @@ interface Map extends BaseElement {
516
536
  }
517
537
  /**
518
538
  * Marker element type
539
+ * Fields organized by sections: Details
519
540
  */
520
541
  interface Marker extends BaseElement {
521
542
  map?: ElementId<ElementType.Map>;
@@ -526,6 +547,7 @@ interface Marker extends BaseElement {
526
547
  }
527
548
  /**
528
549
  * Pin element type
550
+ * Fields organized by sections: Details
529
551
  */
530
552
  interface Pin extends BaseElement {
531
553
  map?: ElementId<ElementType.Map>;
@@ -835,6 +857,26 @@ declare const ELEMENT_LABELS: Record<ElementType, string>;
835
857
  * @returns The plural label string
836
858
  */
837
859
  declare function getElementLabel(elementType: ElementType): string;
860
+ /**
861
+ * Section metadata for OnlyWorlds elements
862
+ * Source: sectioned_schema.json
863
+ */
864
+ interface SectionInfo {
865
+ name: string;
866
+ order: number;
867
+ fields: string[];
868
+ }
869
+ /**
870
+ * Element section definitions - provides organized field groupings for each element type
871
+ * Enables UI components to display fields in logical sections with proper ordering
872
+ */
873
+ declare const ELEMENT_SECTIONS: Record<ElementType, SectionInfo[]>;
874
+ /**
875
+ * Get sections for an element type
876
+ * @param elementType The element type
877
+ * @returns Array of section information for the element type
878
+ */
879
+ declare function getElementSections(elementType: ElementType): SectionInfo[];
838
880
  /**
839
881
  * Current OnlyWorlds version
840
882
  * Synced with https://github.com/OnlyWorlds/OnlyWorlds/blob/main/VERSION
@@ -842,37 +884,30 @@ declare function getElementLabel(elementType: ElementType): string;
842
884
  declare const ONLYWORLDS_VERSION: "00.30.00";
843
885
  /**
844
886
  * Material Design icons for element types
887
+ * These are the uniform, monochrome icons used in the OnlyWorlds frontend
845
888
  * Compatible with Google Material Icons font
846
889
  */
847
- declare const ELEMENT_MATERIAL_ICONS: Record<ElementType, string>;
848
- /**
849
- * Font Awesome icons for element types
850
- * Compatible with Font Awesome 6.0+
851
- */
852
- declare const ELEMENT_FONTAWESOME_ICONS: Record<ElementType, string>;
890
+ declare const ELEMENT_ICONS: Record<ElementType, string>;
853
891
  /**
854
- * Unicode emoji icons for element types
855
- * Universal compatibility across platforms
892
+ * Simple Unicode icons for element types
893
+ * Minimalist symbols used as fallbacks
856
894
  */
857
895
  declare const ELEMENT_UNICODE_ICONS: Record<ElementType, string>;
858
896
  /**
859
897
  * Get Material Design icon for an element type
898
+ * Returns the uniform monochrome icon used in OnlyWorlds frontend
860
899
  * @param elementType The element type
861
900
  * @returns Material icon name
862
901
  */
863
- declare function getElementMaterialIcon(elementType: ElementType): string;
864
- /**
865
- * Get Font Awesome icon for an element type
866
- * @param elementType The element type
867
- * @returns Font Awesome icon class
868
- */
869
- declare function getElementFontAwesomeIcon(elementType: ElementType): string;
902
+ declare function getElementIcon(elementType: ElementType): string;
870
903
  /**
871
- * Get Unicode emoji for an element type
904
+ * Get Unicode icon for an element type
872
905
  * @param elementType The element type
873
- * @returns Unicode emoji string
906
+ * @returns Unicode symbol string
874
907
  */
875
908
  declare function getElementUnicodeIcon(elementType: ElementType): string;
909
+ declare const ELEMENT_MATERIAL_ICONS: Record<ElementType, string>;
910
+ declare const getElementMaterialIcon: typeof getElementIcon;
876
911
  /**
877
912
  * Field type definitions for OnlyWorlds elements
878
913
  */
@@ -2327,4 +2362,4 @@ declare class OnlyWorldsClient {
2327
2362
  static prepareInput<T extends Record<string, any>>(data: T): any;
2328
2363
  }
2329
2364
 
2330
- 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, ELEMENT_FONTAWESOME_ICONS, ELEMENT_LABELS, ELEMENT_MATERIAL_ICONS, ELEMENT_UNICODE_ICONS, 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, ONLYWORLDS_VERSION, 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, getElementFontAwesomeIcon, getElementLabel, getElementMaterialIcon, getElementUnicodeIcon };
2365
+ 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, ELEMENT_ICONS, ELEMENT_LABELS, ELEMENT_MATERIAL_ICONS, ELEMENT_SECTIONS, ELEMENT_UNICODE_ICONS, 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, ONLYWORLDS_VERSION, type Object$1 as Object, type ObjectInput, OnlyWorldsClient, type OnlyWorldsConfig, type Phenomenon, type PhenomenonInput, type Pin, type PinInput, type Relation, type RelationInput, type SectionInfo, type Species, type SpeciesInput, type Title, type TitleInput, type Trait, type TraitInput, type World, type WorldInput, type Zone, type ZoneInput, createAnyElementId, createElementId, createElementIds, getElementIcon, getElementLabel, getElementMaterialIcon, getElementSections, getElementUnicodeIcon };