@almadar/core 10.29.0 → 10.31.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.
@@ -1,6 +1,312 @@
1
1
  import { z } from 'zod';
2
2
  import { S as SExpr } from './expression-CB9R3KWk.js';
3
3
 
4
+ /**
5
+ * Identity model (Almadar Rabit V4, Phase 1 — types only).
6
+ *
7
+ * Branded, prefix-tagged node ids + a workspace-scoped name ledger. Ids are
8
+ * the durable edge keys of the identity-keyed schema graph; the ledger is the
9
+ * sole name↔id map (names are display labels, one row per rename). This module
10
+ * is pure: no I/O, no side effects. Minting is the only impurity (clock +
11
+ * crypto randomness for the ULID suffix).
12
+ *
13
+ * @packageDocumentation
14
+ */
15
+
16
+ type Branded<K extends string> = string & {
17
+ readonly __idBrand: K;
18
+ };
19
+ type OrbitalId = Branded<'OrbitalId'>;
20
+ type EntityId = Branded<'EntityId'>;
21
+ type TraitId = Branded<'TraitId'>;
22
+ type EventId = Branded<'EventId'>;
23
+ type PageId = Branded<'PageId'>;
24
+ type ServiceId = Branded<'ServiceId'>;
25
+ type ThemeId = Branded<'ThemeId'>;
26
+ type PaletteEntryId = Branded<'PaletteEntryId'>;
27
+ /** Node kind ↔ id-prefix table. The single source of truth for every prefix. */
28
+ declare const ID_PREFIXES: {
29
+ readonly orbital: "orb_";
30
+ readonly entity: "ent_";
31
+ readonly trait: "trt_";
32
+ readonly event: "evt_";
33
+ readonly page: "pag_";
34
+ readonly service: "svc_";
35
+ readonly theme: "thm_";
36
+ readonly palette: "pal_";
37
+ };
38
+ type IdKind = keyof typeof ID_PREFIXES;
39
+ /** Compile-time map from kind to its branded id type. */
40
+ interface IdForKind {
41
+ orbital: OrbitalId;
42
+ entity: EntityId;
43
+ trait: TraitId;
44
+ event: EventId;
45
+ page: PageId;
46
+ service: ServiceId;
47
+ theme: ThemeId;
48
+ palette: PaletteEntryId;
49
+ }
50
+ declare const isOrbitalId: (value: string) => value is OrbitalId;
51
+ declare const asOrbitalId: (value: string) => OrbitalId;
52
+ declare const isEntityId: (value: string) => value is EntityId;
53
+ declare const asEntityId: (value: string) => EntityId;
54
+ declare const isTraitId: (value: string) => value is TraitId;
55
+ declare const asTraitId: (value: string) => TraitId;
56
+ declare const isEventId: (value: string) => value is EventId;
57
+ declare const asEventId: (value: string) => EventId;
58
+ declare const isPageId: (value: string) => value is PageId;
59
+ declare const asPageId: (value: string) => PageId;
60
+ declare const isServiceId: (value: string) => value is ServiceId;
61
+ declare const asServiceId: (value: string) => ServiceId;
62
+ declare const isThemeId: (value: string) => value is ThemeId;
63
+ declare const asThemeId: (value: string) => ThemeId;
64
+ declare const isPaletteEntryId: (value: string) => value is PaletteEntryId;
65
+ declare const asPaletteEntryId: (value: string) => PaletteEntryId;
66
+ /**
67
+ * The id-prefix for a node kind (`'entity' → 'ent_'`). The JS mirror of the
68
+ * Rust `IdKind::prefix`. Single source of truth is {@link ID_PREFIXES}.
69
+ */
70
+ declare function idPrefix(kind: IdKind): string;
71
+ /**
72
+ * The node kind an id's prefix denotes, or `null` for an unrecognized /
73
+ * bare-prefix string. The JS mirror of the Rust `id_kind_of`. Prefixes are
74
+ * mutually non-overlapping, so match order is irrelevant.
75
+ */
76
+ declare function idKindOf(id: string): IdKind | null;
77
+ /** Mint a fresh, opaque, kind-tagged id: `<prefix><ULID>`. */
78
+ declare function mintId<K extends IdKind>(kind: K): IdForKind[K];
79
+ /** Ledger row kind. `palette` entries are manifest ids, not name-ledger rows. */
80
+ type LedgerKind = 'orbital' | 'entity' | 'trait' | 'event' | 'page' | 'service' | 'theme';
81
+ /**
82
+ * One ledger row: the workspace's name history for a single node id.
83
+ *
84
+ * For kind `'event'` the row is minted per-(trait, declared event) per the
85
+ * Phase-0 freeze — the owning trait is recorded in `parent`; a call-site event
86
+ * rename is a one-row edit on this same id (the baked-vs-current key namespaces
87
+ * collapse into `bakedName` vs `curName`).
88
+ */
89
+ interface LedgerEntry {
90
+ id: string;
91
+ kind: LedgerKind;
92
+ bakedName: string;
93
+ curName: string;
94
+ renames: ReadonlyArray<{
95
+ from: string;
96
+ to: string;
97
+ at: string;
98
+ }>;
99
+ owner: 'std' | 'io' | 'workspace';
100
+ /** Owning trait for kind `'event'` (per-trait event-id namespace). */
101
+ parent?: TraitId;
102
+ }
103
+ interface IdentityLedger {
104
+ schemaVersion: 1;
105
+ entries: Record<string, LedgerEntry>;
106
+ }
107
+ /** Resolve a name to its id via exact `curName` match within `kind`, else null. */
108
+ declare function ledgerResolveName(ledger: IdentityLedger, kind: LedgerKind, name: string): string | null;
109
+ /** Immutable rename: returns a new ledger with the id's `curName` + `renames` updated. */
110
+ declare function ledgerRename(ledger: IdentityLedger, id: string, to: string, at: string): IdentityLedger;
111
+ /** Current display name for an id, or null when the id is not in the ledger. */
112
+ declare function ledgerCurName(ledger: IdentityLedger, id: string): string | null;
113
+ /**
114
+ * Prefix-checked, kind-tagged id schemas. Each narrows a validated string to
115
+ * its branded id type via the module's own kind guard, so a schema that reads
116
+ * `TraitIdSchema.optional()` yields `TraitId | undefined` with no cast. The
117
+ * guard is the single source of prefix truth (`ID_PREFIXES`); the schema is a
118
+ * thin zod wrapper over it.
119
+ */
120
+ declare const OrbitalIdSchema: z.ZodEffects<z.ZodString, OrbitalId, string>;
121
+ declare const EntityIdSchema: z.ZodEffects<z.ZodString, EntityId, string>;
122
+ declare const TraitIdSchema: z.ZodEffects<z.ZodString, TraitId, string>;
123
+ declare const EventIdSchema: z.ZodEffects<z.ZodString, EventId, string>;
124
+ declare const PageIdSchema: z.ZodEffects<z.ZodString, PageId, string>;
125
+ declare const ServiceIdSchema: z.ZodEffects<z.ZodString, ServiceId, string>;
126
+ declare const ThemeIdSchema: z.ZodEffects<z.ZodString, ThemeId, string>;
127
+ declare const PaletteEntryIdSchema: z.ZodEffects<z.ZodString, PaletteEntryId, string>;
128
+ declare const LedgerKindSchema: z.ZodEnum<["orbital", "entity", "trait", "event", "page", "service", "theme"]>;
129
+ declare const LedgerEntrySchema: z.ZodObject<{
130
+ id: z.ZodString;
131
+ kind: z.ZodEnum<["orbital", "entity", "trait", "event", "page", "service", "theme"]>;
132
+ bakedName: z.ZodString;
133
+ curName: z.ZodString;
134
+ renames: z.ZodArray<z.ZodObject<{
135
+ from: z.ZodString;
136
+ to: z.ZodString;
137
+ at: z.ZodString;
138
+ }, "strip", z.ZodTypeAny, {
139
+ at: string;
140
+ from: string;
141
+ to: string;
142
+ }, {
143
+ at: string;
144
+ from: string;
145
+ to: string;
146
+ }>, "many">;
147
+ owner: z.ZodEnum<["std", "io", "workspace"]>;
148
+ parent: z.ZodOptional<z.ZodEffects<z.ZodString, TraitId, string>>;
149
+ }, "strip", z.ZodTypeAny, {
150
+ id: string;
151
+ kind: "orbital" | "entity" | "trait" | "event" | "page" | "service" | "theme";
152
+ bakedName: string;
153
+ curName: string;
154
+ renames: {
155
+ at: string;
156
+ from: string;
157
+ to: string;
158
+ }[];
159
+ owner: "std" | "io" | "workspace";
160
+ parent?: TraitId | undefined;
161
+ }, {
162
+ id: string;
163
+ kind: "orbital" | "entity" | "trait" | "event" | "page" | "service" | "theme";
164
+ bakedName: string;
165
+ curName: string;
166
+ renames: {
167
+ at: string;
168
+ from: string;
169
+ to: string;
170
+ }[];
171
+ owner: "std" | "io" | "workspace";
172
+ parent?: string | undefined;
173
+ }>;
174
+ declare const IdentityLedgerSchema: z.ZodObject<{
175
+ schemaVersion: z.ZodLiteral<1>;
176
+ entries: z.ZodRecord<z.ZodString, z.ZodObject<{
177
+ id: z.ZodString;
178
+ kind: z.ZodEnum<["orbital", "entity", "trait", "event", "page", "service", "theme"]>;
179
+ bakedName: z.ZodString;
180
+ curName: z.ZodString;
181
+ renames: z.ZodArray<z.ZodObject<{
182
+ from: z.ZodString;
183
+ to: z.ZodString;
184
+ at: z.ZodString;
185
+ }, "strip", z.ZodTypeAny, {
186
+ at: string;
187
+ from: string;
188
+ to: string;
189
+ }, {
190
+ at: string;
191
+ from: string;
192
+ to: string;
193
+ }>, "many">;
194
+ owner: z.ZodEnum<["std", "io", "workspace"]>;
195
+ parent: z.ZodOptional<z.ZodEffects<z.ZodString, TraitId, string>>;
196
+ }, "strip", z.ZodTypeAny, {
197
+ id: string;
198
+ kind: "orbital" | "entity" | "trait" | "event" | "page" | "service" | "theme";
199
+ bakedName: string;
200
+ curName: string;
201
+ renames: {
202
+ at: string;
203
+ from: string;
204
+ to: string;
205
+ }[];
206
+ owner: "std" | "io" | "workspace";
207
+ parent?: TraitId | undefined;
208
+ }, {
209
+ id: string;
210
+ kind: "orbital" | "entity" | "trait" | "event" | "page" | "service" | "theme";
211
+ bakedName: string;
212
+ curName: string;
213
+ renames: {
214
+ at: string;
215
+ from: string;
216
+ to: string;
217
+ }[];
218
+ owner: "std" | "io" | "workspace";
219
+ parent?: string | undefined;
220
+ }>>;
221
+ }, "strip", z.ZodTypeAny, {
222
+ entries: Record<string, {
223
+ id: string;
224
+ kind: "orbital" | "entity" | "trait" | "event" | "page" | "service" | "theme";
225
+ bakedName: string;
226
+ curName: string;
227
+ renames: {
228
+ at: string;
229
+ from: string;
230
+ to: string;
231
+ }[];
232
+ owner: "std" | "io" | "workspace";
233
+ parent?: TraitId | undefined;
234
+ }>;
235
+ schemaVersion: 1;
236
+ }, {
237
+ entries: Record<string, {
238
+ id: string;
239
+ kind: "orbital" | "entity" | "trait" | "event" | "page" | "service" | "theme";
240
+ bakedName: string;
241
+ curName: string;
242
+ renames: {
243
+ at: string;
244
+ from: string;
245
+ to: string;
246
+ }[];
247
+ owner: "std" | "io" | "workspace";
248
+ parent?: string | undefined;
249
+ }>;
250
+ schemaVersion: 1;
251
+ }>;
252
+
253
+ /**
254
+ * JSON primitives — the universal "data crossed a boundary" type.
255
+ *
256
+ * Every value that arrives over the wire from an LLM (tool-call args),
257
+ * from disk (workspace files), or from an HTTP body before
258
+ * domain-specific validation is a `JsonValue`. Narrow with a typed
259
+ * predicate (`is`-guard) at the boundary; don't widen back to `unknown`.
260
+ *
261
+ * `JsonObject` and `ToolArgs` are aliases for the common
262
+ * `Record<string, JsonValue>` shape. `ToolArgs` is the name the
263
+ * agent surface uses for LLM-emitted tool-call arguments; `JsonObject`
264
+ * is the general-purpose alias. They are the same type — the alias
265
+ * exists so call sites read at the right semantic level.
266
+ *
267
+ * Why not `Record<string, unknown>`? Two reasons. (1) `unknown` widens
268
+ * back to anything, which defeats the purpose of typing the boundary.
269
+ * (2) The `@almadar/eslint-plugin/no-record-string-unknown` rule blocks
270
+ * the wider form — `JsonValue`-based records are the typed answer.
271
+ *
272
+ * @packageDocumentation
273
+ */
274
+
275
+ /**
276
+ * Recursive JSON value union — every shape JSON can carry.
277
+ */
278
+ type JsonValue = string | number | boolean | null | JsonValue[] | {
279
+ [key: string]: JsonValue;
280
+ };
281
+ /**
282
+ * JSON object — keyed string→JsonValue. The wire form of arbitrary
283
+ * structured data. Replaces `Record<string, unknown>` at typed
284
+ * boundaries (LLM emits, file reads, HTTP bodies).
285
+ */
286
+ type JsonObject = {
287
+ [key: string]: JsonValue;
288
+ };
289
+ /**
290
+ * LLM tool-call arguments — same shape as `JsonObject`, named for the
291
+ * agent-surface call site. Each tool's `execute(args: ToolArgs)`
292
+ * receives this and narrows via an `is`-guard predicate before any
293
+ * field access.
294
+ */
295
+ type ToolArgs = JsonObject;
296
+ /**
297
+ * Type guard: is the given value a JSON primitive (non-array,
298
+ * non-object)? Used by walkers that decide whether to recurse.
299
+ */
300
+ declare function isJsonPrimitive(value: JsonValue): value is string | number | boolean | null;
301
+ /**
302
+ * Type guard: is the given value a JSON object (non-array, non-null)?
303
+ */
304
+ declare function isJsonObject(value: JsonValue): value is JsonObject;
305
+ /**
306
+ * Type guard: is the given value a JSON array?
307
+ */
308
+ declare function isJsonArray(value: JsonValue): value is JsonValue[];
309
+
4
310
  /**
5
311
  * Field Types for Orbital Units
6
312
  *
@@ -28,9 +334,11 @@ type RelationCardinality = 'one' | 'many' | 'one-to-many' | 'many-to-one' | 'man
28
334
  * Configuration for relation fields (foreign keys).
29
335
  * Matches Rust compiler's RelationDefinition format.
30
336
  */
31
- interface RelationConfig {
337
+ type RelationConfig = {
32
338
  /** Target entity name (e.g., 'User', 'Task') - matches Rust's `entity` field */
33
339
  entity: string;
340
+ /** V4 dual-carry id sibling of `entity` — optional until the Phase-7 flip. */
341
+ entityId?: EntityId;
34
342
  /** Field on target entity (defaults to 'id') */
35
343
  field?: string;
36
344
  /**
@@ -55,9 +363,10 @@ interface RelationConfig {
55
363
  * @deprecated Use cardinality instead
56
364
  */
57
365
  type?: RelationCardinality;
58
- }
366
+ };
59
367
  declare const RelationConfigSchema: z.ZodEffects<z.ZodObject<{
60
368
  entity: z.ZodString;
369
+ entityId: z.ZodOptional<z.ZodEffects<z.ZodString, EntityId, string>>;
61
370
  field: z.ZodOptional<z.ZodString>;
62
371
  cardinality: z.ZodOptional<z.ZodEnum<["one", "many", "one-to-many", "many-to-one", "many-to-many"]>>;
63
372
  onDelete: z.ZodOptional<z.ZodEnum<["cascade", "nullify", "restrict"]>>;
@@ -66,28 +375,31 @@ declare const RelationConfigSchema: z.ZodEffects<z.ZodObject<{
66
375
  type: z.ZodOptional<z.ZodEnum<["one", "many", "one-to-many", "many-to-one", "many-to-many"]>>;
67
376
  }, "strip", z.ZodTypeAny, {
68
377
  entity: string;
378
+ type?: "many" | "one" | "one-to-many" | "many-to-one" | "many-to-many" | undefined;
379
+ entityId?: EntityId | undefined;
69
380
  field?: string | undefined;
70
- cardinality?: "one" | "many" | "one-to-many" | "many-to-one" | "many-to-many" | undefined;
381
+ cardinality?: "many" | "one" | "one-to-many" | "many-to-one" | "many-to-many" | undefined;
71
382
  onDelete?: "cascade" | "nullify" | "restrict" | undefined;
72
383
  foreignKey?: string | undefined;
73
384
  target?: string | undefined;
74
- type?: "one" | "many" | "one-to-many" | "many-to-one" | "many-to-many" | undefined;
75
385
  }, {
76
386
  entity: string;
387
+ type?: "many" | "one" | "one-to-many" | "many-to-one" | "many-to-many" | undefined;
388
+ entityId?: string | undefined;
77
389
  field?: string | undefined;
78
- cardinality?: "one" | "many" | "one-to-many" | "many-to-one" | "many-to-many" | undefined;
390
+ cardinality?: "many" | "one" | "one-to-many" | "many-to-one" | "many-to-many" | undefined;
79
391
  onDelete?: "cascade" | "nullify" | "restrict" | undefined;
80
392
  foreignKey?: string | undefined;
81
393
  target?: string | undefined;
82
- type?: "one" | "many" | "one-to-many" | "many-to-one" | "many-to-many" | undefined;
83
394
  }>, RelationConfig, {
84
395
  entity: string;
396
+ type?: "many" | "one" | "one-to-many" | "many-to-one" | "many-to-many" | undefined;
397
+ entityId?: string | undefined;
85
398
  field?: string | undefined;
86
- cardinality?: "one" | "many" | "one-to-many" | "many-to-one" | "many-to-many" | undefined;
399
+ cardinality?: "many" | "one" | "one-to-many" | "many-to-one" | "many-to-many" | undefined;
87
400
  onDelete?: "cascade" | "nullify" | "restrict" | undefined;
88
401
  foreignKey?: string | undefined;
89
402
  target?: string | undefined;
90
- type?: "one" | "many" | "one-to-many" | "many-to-one" | "many-to-many" | undefined;
91
403
  }>;
92
404
  /**
93
405
  * Field format validators for string fields.
@@ -108,7 +420,7 @@ declare const FieldFormatSchema: z.ZodEnum<["email", "url", "phone", "date", "da
108
420
  */
109
421
  type ScalarFieldType = 'string' | 'number' | 'boolean' | 'date' | 'timestamp' | 'datetime' | 'trait' | 'slot' | 'pattern';
110
422
  /** Fields shared across every variant. */
111
- interface EntityFieldBase {
423
+ type EntityFieldBase = {
112
424
  /**
113
425
  * Field name (camelCase). Optional for nested item/property descriptors
114
426
  * where the name is implied by the parent (`items`, `properties[k]`).
@@ -117,8 +429,8 @@ interface EntityFieldBase {
117
429
  name?: string;
118
430
  /** Whether the field is required */
119
431
  required?: boolean;
120
- /** Default value */
121
- default?: unknown;
432
+ /** Default value — parsed from `.orb`, always JSON-shaped. */
433
+ default?: JsonValue;
122
434
  /** Validation format */
123
435
  format?: FieldFormat;
124
436
  /** Minimum value (for number) or length (for string) */
@@ -141,51 +453,51 @@ interface EntityFieldBase {
141
453
  /** User-vocabulary synonyms (authored `@synonyms "..."` in `.lolo`).
142
454
  * Free text feeding catalog search / curation field-matching. */
143
455
  synonyms?: string;
144
- }
456
+ };
145
457
  /**
146
458
  * Scalar / structural fields — no type-dependent payload required.
147
459
  * `values?` is permitted as an OPTIONAL UI/validation hint (e.g. lolo's
148
460
  * `'a' | 'b' | 'c'` string-union sugar lowers to `type: 'string', values:
149
461
  * [...]`). Only `EnumEntityField` MANDATES values.
150
462
  */
151
- interface ScalarEntityField extends EntityFieldBase {
463
+ type ScalarEntityField = EntityFieldBase & {
152
464
  type: ScalarFieldType;
153
465
  /** Optional vocabulary hint for scalar fields (e.g. string unions
154
466
  * authored as `'a'|'b'|'c'` in lolo). Not required at this variant. */
155
467
  values?: string[];
156
- }
468
+ };
157
469
  /** `type: 'enum'` REQUIRES the closed vocabulary in `values`. */
158
- interface EnumEntityField extends EntityFieldBase {
470
+ type EnumEntityField = EntityFieldBase & {
159
471
  type: 'enum';
160
472
  /** Closed string vocabulary the field accepts. */
161
473
  values: string[];
162
- }
474
+ };
163
475
  /** `type: 'relation'` REQUIRES the relation target binding. */
164
- interface RelationEntityField extends EntityFieldBase {
476
+ type RelationEntityField = EntityFieldBase & {
165
477
  type: 'relation';
166
478
  /** Relation target binding (entity + cardinality). */
167
479
  relation: RelationConfig;
168
- }
480
+ };
169
481
  /** `type: 'array'` — element schema in `items` strongly preferred but
170
482
  * optional for legacy compatibility with codegen-emitted scalar-array
171
483
  * fields (e.g. `{type: 'array', default: []}`). The lolo lowerer + Rust
172
484
  * validator catch typed-element-required cases downstream. */
173
- interface ArrayEntityField extends EntityFieldBase {
485
+ type ArrayEntityField = EntityFieldBase & {
174
486
  type: 'array';
175
487
  /** Element schema for the array. */
176
488
  items?: EntityField;
177
- }
489
+ };
178
490
  /**
179
491
  * `type: 'object'` — a fixed-key struct (fields in `properties`) OR a
180
492
  * dynamic-key map (`Map K V` in `.lolo`; the uniform value schema lives in
181
493
  * `items`, mirroring an array's element schema). A distinct variant so `items`
182
494
  * is statically allowed only on object/array fields, never on scalars.
183
495
  */
184
- interface ObjectEntityField extends EntityFieldBase {
496
+ type ObjectEntityField = EntityFieldBase & {
185
497
  type: 'object';
186
498
  /** Uniform value schema for a dynamic-key map (`Map K V`). */
187
499
  items?: EntityField;
188
- }
500
+ };
189
501
  /**
190
502
  * Entity field definition — discriminated union by `type`. Each variant
191
503
  * statically enforces its dependent payload (`values` for enum,
@@ -552,7 +864,7 @@ declare const TilesheetSchema: z.ZodObject<{
552
864
  * Semantic reference to an asset (not a hardcoded path).
553
865
  * Resolved to actual paths at compile time via asset maps.
554
866
  */
555
- interface SemanticAssetRef {
867
+ type SemanticAssetRef = {
556
868
  /**
557
869
  * Entity role — a free string. Core no longer constrains the vocabulary to
558
870
  * `EntityRole` (that enum stays an exported shared reference for the asset
@@ -571,7 +883,7 @@ interface SemanticAssetRef {
571
883
  dimension?: AssetDimension;
572
884
  /** Rendering aspect ratio (square sprite/portrait/tile, 16:9 backdrop, 5:7 card, 8:1 fx-strip). */
573
885
  aspect?: AssetAspect;
574
- }
886
+ };
575
887
  declare const SemanticAssetRefSchema: z.ZodObject<{
576
888
  role: z.ZodString;
577
889
  category: z.ZodString;
@@ -697,18 +1009,18 @@ declare const AssetCatalogEntrySchema: z.ZodObject<{
697
1009
  dimension: z.ZodOptional<z.ZodEnum<["2d", "3d"]>>;
698
1010
  aspect: z.ZodOptional<z.ZodEnum<["1:1", "16:9", "5:7", "8:1"]>>;
699
1011
  }, "strip", z.ZodTypeAny, {
1012
+ kind: "image" | "spritesheet" | "audio" | "scene" | "portrait" | "model" | "other";
700
1013
  url: string;
701
1014
  name: string;
702
1015
  category: string;
703
- kind: "image" | "spritesheet" | "audio" | "scene" | "portrait" | "model" | "other";
704
1016
  dimension?: "2d" | "3d" | undefined;
705
1017
  aspect?: "1:1" | "16:9" | "5:7" | "8:1" | undefined;
706
1018
  thumbnailUrl?: string | undefined;
707
1019
  }, {
1020
+ kind: "image" | "spritesheet" | "audio" | "scene" | "portrait" | "model" | "other";
708
1021
  url: string;
709
1022
  name: string;
710
1023
  category: string;
711
- kind: "image" | "spritesheet" | "audio" | "scene" | "portrait" | "model" | "other";
712
1024
  dimension?: "2d" | "3d" | undefined;
713
1025
  aspect?: "1:1" | "16:9" | "5:7" | "8:1" | undefined;
714
1026
  thumbnailUrl?: string | undefined;
@@ -726,18 +1038,18 @@ declare const AssetCatalogSchema: z.ZodArray<z.ZodObject<{
726
1038
  dimension: z.ZodOptional<z.ZodEnum<["2d", "3d"]>>;
727
1039
  aspect: z.ZodOptional<z.ZodEnum<["1:1", "16:9", "5:7", "8:1"]>>;
728
1040
  }, "strip", z.ZodTypeAny, {
1041
+ kind: "image" | "spritesheet" | "audio" | "scene" | "portrait" | "model" | "other";
729
1042
  url: string;
730
1043
  name: string;
731
1044
  category: string;
732
- kind: "image" | "spritesheet" | "audio" | "scene" | "portrait" | "model" | "other";
733
1045
  dimension?: "2d" | "3d" | undefined;
734
1046
  aspect?: "1:1" | "16:9" | "5:7" | "8:1" | undefined;
735
1047
  thumbnailUrl?: string | undefined;
736
1048
  }, {
1049
+ kind: "image" | "spritesheet" | "audio" | "scene" | "portrait" | "model" | "other";
737
1050
  url: string;
738
1051
  name: string;
739
1052
  category: string;
740
- kind: "image" | "spritesheet" | "audio" | "scene" | "portrait" | "model" | "other";
741
1053
  dimension?: "2d" | "3d" | undefined;
742
1054
  aspect?: "1:1" | "16:9" | "5:7" | "8:1" | undefined;
743
1055
  thumbnailUrl?: string | undefined;
@@ -952,7 +1264,9 @@ declare const EntityPersistenceSchema: z.ZodEnum<["persistent", "runtime"]>;
952
1264
  * This is a simplified entity definition optimized for orbital composition.
953
1265
  * Collection names are derived automatically from persistence type if not provided.
954
1266
  */
955
- interface OrbitalEntity {
1267
+ type OrbitalEntity = {
1268
+ /** V4 dual-carry id sibling of `name` — optional until the Phase-7 flip. */
1269
+ id?: EntityId;
956
1270
  /** Entity name (PascalCase, e.g., "Task", "User") */
957
1271
  name: string;
958
1272
  /** Entity persistence type (defaults to 'persistent' if not specified) */
@@ -975,7 +1289,7 @@ interface OrbitalEntity {
975
1289
  visual_prompt?: string;
976
1290
  /** Semantic asset reference for visual representation (games) */
977
1291
  assetRef?: SemanticAssetRef;
978
- }
1292
+ };
979
1293
  declare const OrbitalEntitySchema: z.ZodObject<{
980
1294
  name: z.ZodString;
981
1295
  persistence: z.ZodDefault<z.ZodEnum<["persistent", "runtime"]>>;
@@ -1249,8 +1563,8 @@ type EntityData = Record<string, EntityRow[]>;
1249
1563
  *
1250
1564
  * DO NOT EDIT MANUALLY — regenerated by almadar-pattern-sync `patterns` command.
1251
1565
  *
1252
- * Generated: 2026-07-13T15:27:57.844Z
1253
- * Pattern count: 261
1566
+ * Generated: 2026-07-21T09:54:57.817Z
1567
+ * Pattern count: 263
1254
1568
  */
1255
1569
 
1256
1570
  /**
@@ -1262,7 +1576,7 @@ type PatternPropValue = Record<string, FieldValue | undefined>;
1262
1576
  * All valid pattern type names from @almadar/core/patterns registry.
1263
1577
  * Use this type in render-ui effects for compile-time validation.
1264
1578
  */
1265
- type PatternType = 'about-page-template' | 'accordion' | 'action-palette' | 'action-tile' | 'activation-block' | 'alert' | 'algorithm-canvas' | 'animated-counter' | 'animated-graphic' | 'animated-reveal' | 'article-section' | 'aside' | 'atlas-image' | 'atlas-panel' | 'auth-layout' | 'avatar' | 'badge' | 'behavior-view' | 'biology-canvas' | 'bloom-quiz-block' | 'book-chapter-view' | 'book-cover-page' | 'book-nav-bar' | 'book-table-of-contents' | 'book-viewer' | 'box' | 'branching-logic-builder' | 'breadcrumb' | 'button' | 'calendar-grid' | 'canvas' | 'canvas-2d' | 'card' | 'carousel' | 'case-study-card' | 'case-study-organism' | 'center' | 'chart' | 'chart-legend' | 'chat-bar' | 'checkbox' | 'chemistry-canvas' | 'choice-button' | 'code-block' | 'code-runner-panel' | 'community-links' | 'conditional-wrapper' | 'confetti-effect' | 'confirm-dialog' | 'connection-block' | 'container' | 'content-renderer' | 'content-section' | 'control-button' | 'control-grid' | 'counter-template' | 'cta-banner' | 'dashboard-grid' | 'dashboard-layout' | 'data-grid' | 'data-list' | 'date-range-picker' | 'date-range-selector' | 'day-cell' | 'detail-panel' | 'dialog' | 'dialogue-bubble' | 'divider' | 'doc-breadcrumb' | 'doc-pagination' | 'doc-search' | 'doc-sidebar' | 'doc-toc' | 'document-viewer' | 'draw-shape' | 'draw-shape-layer' | 'draw-sprite' | 'draw-sprite-layer' | 'draw-text' | 'draw-text-layer' | 'drawer' | 'drawer-slot' | 'edge-decoration' | 'empty-state' | 'entity-cards' | 'entity-list' | 'entity-table' | 'error-boundary' | 'error-state' | 'feature-card' | 'feature-detail-page-template' | 'feature-grid' | 'feature-grid-organism' | 'file-tree' | 'filter-group' | 'filter-pill' | 'flex' | 'flip-card' | 'flip-container' | 'floating-action-button' | 'form' | 'form-actions' | 'form-field' | 'form-layout' | 'form-section' | 'form-section-header' | 'game-audio-toggle' | 'game-hud' | 'game-icon' | 'game-menu' | 'game-shell' | 'generic-app-template' | 'geometric-pattern' | 'gradient-divider' | 'graph-canvas' | 'graph-view' | 'grid' | 'header' | 'health-bar' | 'hero-organism' | 'hero-section' | 'hstack' | 'icon' | 'infinite-scroll-sentinel' | 'input' | 'input-group' | 'install-box' | 'jazari-state-machine' | 'label' | 'landing-page-template' | 'law-reference-tooltip' | 'learning-canvas' | 'lightbox' | 'likert-scale' | 'line-chart' | 'loading-state' | 'map-view' | 'markdown-content' | 'marketing-footer' | 'marketing-stat-card' | 'master-detail' | 'master-detail-layout' | 'math-canvas' | 'matrix-question' | 'media-gallery' | 'menu' | 'meter' | 'modal' | 'modal-slot' | 'module-card' | 'navigation' | 'notification' | 'number-stepper' | 'option-constraint-group' | 'orbital-visualization' | 'overlay' | 'page-header' | 'pagination' | 'pattern-tile' | 'physics-canvas' | 'popover' | 'positioned-canvas' | 'pricing-card' | 'pricing-grid' | 'pricing-organism' | 'pricing-page-template' | 'progress-bar' | 'progress-dots' | 'pull-quote' | 'pull-to-refresh' | 'qr-scanner' | 'quiz-block' | 'radio' | 'range-slider' | 'reflection-block' | 'relation-select' | 'repeatable-form-section' | 'reply-tree' | 'rich-block-editor' | 'runtime-debugger' | 'scaled-diagram' | 'score-display' | 'search-input' | 'section' | 'section-header' | 'segment-renderer' | 'select' | 'sequence-bar' | 'service-catalog' | 'showcase-card' | 'showcase-organism' | 'side-panel' | 'sidebar' | 'signature-pad' | 'simple-grid' | 'skeleton' | 'social-proof' | 'sortable-list' | 'spacer' | 'sparkline' | 'spinner' | 'split' | 'split-pane' | 'split-section' | 'stack' | 'star-rating' | 'stat-badge' | 'stat-card' | 'stat-display' | 'state-graph' | 'state-json-view' | 'state-machine-view' | 'stats-grid' | 'stats-organism' | 'status-dot' | 'step-flow' | 'step-flow-organism' | 'subagent-trace-panel' | 'svg-branch' | 'svg-connection' | 'svg-flow' | 'svg-grid' | 'svg-lobe' | 'svg-mesh' | 'svg-morph' | 'svg-node' | 'svg-pulse' | 'svg-ring' | 'svg-shield' | 'svg-stack' | 'swipeable-row' | 'switch' | 'tabbed-container' | 'table-view' | 'tabs' | 'tag-cloud' | 'tag-input' | 'team-card' | 'team-organism' | 'text-highlight' | 'textarea' | 'theme-toggle' | 'time-slot-cell' | 'timeline' | 'timer-display' | 'toast-slot' | 'tooltip' | 'trait-frame' | 'trait-slot' | 'trend-indicator' | 'typewriter-text' | 'typography' | 'ui-slot-renderer' | 'upload-drop-zone' | 'version-diff' | 'violation-alert' | 'vote-stack' | 'vstack' | 'wizard-container' | 'wizard-navigation' | 'wizard-progress';
1579
+ type PatternType = 'about-page-template' | 'accordion' | 'action-palette' | 'action-tile' | 'activation-block' | 'alert' | 'algorithm-canvas' | 'animated-counter' | 'animated-graphic' | 'animated-reveal' | 'article-section' | 'aside' | 'atlas-image' | 'atlas-panel' | 'auth-layout' | 'avatar' | 'badge' | 'behavior-view' | 'biology-canvas' | 'bloom-quiz-block' | 'book-chapter-view' | 'book-cover-page' | 'book-nav-bar' | 'book-table-of-contents' | 'book-viewer' | 'box' | 'branching-logic-builder' | 'breadcrumb' | 'button' | 'calendar-grid' | 'canvas' | 'canvas-2d' | 'card' | 'carousel' | 'case-study-card' | 'case-study-organism' | 'center' | 'chart' | 'chart-legend' | 'chat-bar' | 'checkbox' | 'chemistry-canvas' | 'choice-button' | 'code-block' | 'code-runner-panel' | 'community-links' | 'conditional-wrapper' | 'confetti-effect' | 'confirm-dialog' | 'connection-block' | 'container' | 'content-renderer' | 'content-section' | 'control-button' | 'control-grid' | 'counter-template' | 'cta-banner' | 'dashboard-grid' | 'dashboard-layout' | 'data-grid' | 'data-list' | 'date-range-picker' | 'date-range-selector' | 'day-cell' | 'detail-panel' | 'dialog' | 'dialogue-bubble' | 'divider' | 'doc-breadcrumb' | 'doc-pagination' | 'doc-search' | 'doc-sidebar' | 'doc-toc' | 'document-viewer' | 'draw-shape' | 'draw-shape-layer' | 'draw-sprite' | 'draw-sprite-layer' | 'draw-text' | 'draw-text-layer' | 'drawer' | 'drawer-slot' | 'edge-decoration' | 'empty-state' | 'entity-cards' | 'entity-list' | 'entity-table' | 'error-boundary' | 'error-state' | 'feature-card' | 'feature-detail-page-template' | 'feature-grid' | 'feature-grid-organism' | 'file-tree' | 'filter-group' | 'filter-pill' | 'flex' | 'flip-card' | 'flip-container' | 'floating-action-button' | 'form' | 'form-actions' | 'form-field' | 'form-layout' | 'form-section' | 'form-section-header' | 'game-audio-toggle' | 'game-hud' | 'game-icon' | 'game-menu' | 'game-shell' | 'generic-app-template' | 'geometric-pattern' | 'gradient-divider' | 'graph-canvas' | 'graph-view' | 'grid' | 'header' | 'health-bar' | 'hero-organism' | 'hero-section' | 'hstack' | 'icon' | 'infinite-scroll-sentinel' | 'input' | 'input-group' | 'install-box' | 'jazari-state-machine' | 'label' | 'landing-page-template' | 'law-reference-tooltip' | 'learning-canvas' | 'lightbox' | 'likert-scale' | 'line-chart' | 'loading-state' | 'map-view' | 'markdown-content' | 'marketing-footer' | 'marketing-stat-card' | 'master-detail' | 'master-detail-layout' | 'math-canvas' | 'matrix-question' | 'media-gallery' | 'menu' | 'meter' | 'modal' | 'modal-slot' | 'module-card' | 'navigation' | 'notification' | 'number-stepper' | 'option-constraint-group' | 'orbital-visualization' | 'overlay' | 'page-header' | 'page-transition' | 'pagination' | 'pattern-tile' | 'physics-canvas' | 'popover' | 'positioned-canvas' | 'presence' | 'pricing-card' | 'pricing-grid' | 'pricing-organism' | 'pricing-page-template' | 'progress-bar' | 'progress-dots' | 'pull-quote' | 'pull-to-refresh' | 'qr-scanner' | 'quiz-block' | 'radio' | 'range-slider' | 'reflection-block' | 'relation-select' | 'repeatable-form-section' | 'reply-tree' | 'rich-block-editor' | 'runtime-debugger' | 'scaled-diagram' | 'score-display' | 'search-input' | 'section' | 'section-header' | 'segment-renderer' | 'select' | 'sequence-bar' | 'service-catalog' | 'showcase-card' | 'showcase-organism' | 'side-panel' | 'sidebar' | 'signature-pad' | 'simple-grid' | 'skeleton' | 'social-proof' | 'sortable-list' | 'spacer' | 'sparkline' | 'spinner' | 'split' | 'split-pane' | 'split-section' | 'stack' | 'star-rating' | 'stat-badge' | 'stat-card' | 'stat-display' | 'state-graph' | 'state-json-view' | 'state-machine-view' | 'stats-grid' | 'stats-organism' | 'status-dot' | 'step-flow' | 'step-flow-organism' | 'subagent-trace-panel' | 'svg-branch' | 'svg-connection' | 'svg-flow' | 'svg-grid' | 'svg-lobe' | 'svg-mesh' | 'svg-morph' | 'svg-node' | 'svg-pulse' | 'svg-ring' | 'svg-shield' | 'svg-stack' | 'swipeable-row' | 'switch' | 'tabbed-container' | 'table-view' | 'tabs' | 'tag-cloud' | 'tag-input' | 'team-card' | 'team-organism' | 'text-highlight' | 'textarea' | 'theme-toggle' | 'time-slot-cell' | 'timeline' | 'timer-display' | 'toast-slot' | 'tooltip' | 'trait-frame' | 'trait-slot' | 'trend-indicator' | 'typewriter-text' | 'typography' | 'ui-slot-renderer' | 'upload-drop-zone' | 'version-diff' | 'violation-alert' | 'vote-stack' | 'vstack' | 'wizard-container' | 'wizard-navigation' | 'wizard-progress';
1266
1580
  /**
1267
1581
  * Pattern props map — each pattern type maps to its valid props interface.
1268
1582
  */
@@ -1354,6 +1668,7 @@ interface PatternPropsMap {
1354
1668
  duration?: number | string | SExpr;
1355
1669
  prefix?: string | SExpr;
1356
1670
  suffix?: string | SExpr;
1671
+ format?: string | SExpr;
1357
1672
  className?: string | SExpr;
1358
1673
  };
1359
1674
  'animated-graphic': {
@@ -2330,7 +2645,6 @@ interface PatternPropsMap {
2330
2645
  };
2331
2646
  'entity-cards': {
2332
2647
  type: 'entity-cards';
2333
- entity?: PatternPropValue | unknown[] | string | SExpr;
2334
2648
  className?: string | SExpr;
2335
2649
  isLoading?: boolean | string | SExpr;
2336
2650
  error?: PatternPropValue | string | SExpr;
@@ -2342,6 +2656,7 @@ interface PatternPropsMap {
2342
2656
  totalCount?: number | string | SExpr;
2343
2657
  activeFilters?: PatternPropValue | string | SExpr;
2344
2658
  selectedIds?: unknown[] | string | SExpr;
2659
+ entity?: PatternPropValue | unknown[] | string | SExpr;
2345
2660
  minCardWidth?: number | string | SExpr;
2346
2661
  maxCols?: number | string | SExpr;
2347
2662
  gap?: string | SExpr;
@@ -2579,20 +2894,15 @@ interface PatternPropsMap {
2579
2894
  };
2580
2895
  'form-actions': {
2581
2896
  type: 'form-actions';
2897
+ children?: unknown | string | SExpr;
2898
+ primary?: PatternPropValue | string | SExpr;
2899
+ secondary?: unknown[] | string | SExpr;
2900
+ variant?: string | SExpr;
2901
+ orientation?: string | SExpr;
2582
2902
  className?: string | SExpr;
2583
- isLoading?: boolean | string | SExpr;
2584
- error?: PatternPropValue | string | SExpr;
2585
- sortBy?: string | SExpr;
2586
- sortDirection?: string | SExpr;
2587
- searchValue?: string | SExpr;
2588
- page?: number | string | SExpr;
2589
- pageSize?: number | string | SExpr;
2590
- totalCount?: number | string | SExpr;
2591
- activeFilters?: PatternPropValue | string | SExpr;
2592
- selectedIds?: unknown[] | string | SExpr;
2593
- children: unknown | string | SExpr;
2594
- sticky?: boolean | string | SExpr;
2595
- align?: string | SExpr;
2903
+ entity?: string | SExpr;
2904
+ filters?: unknown[] | string | SExpr;
2905
+ look?: string | SExpr;
2596
2906
  };
2597
2907
  'form-field': {
2598
2908
  type: 'form-field';
@@ -2715,6 +3025,7 @@ interface PatternPropsMap {
2715
3025
  backgroundAsset?: PatternPropValue | string | SExpr;
2716
3026
  hudBackgroundAsset?: PatternPropValue | string | SExpr;
2717
3027
  fontFamily?: string | SExpr;
3028
+ 'data-theme'?: string | SExpr;
2718
3029
  };
2719
3030
  'generic-app-template': {
2720
3031
  type: 'generic-app-template';
@@ -2747,6 +3058,7 @@ interface PatternPropsMap {
2747
3058
  title?: string | SExpr;
2748
3059
  nodes?: unknown[] | string | SExpr;
2749
3060
  edges?: unknown[] | string | SExpr;
3061
+ similarity?: unknown[] | string | SExpr;
2750
3062
  height?: number | string | SExpr;
2751
3063
  showLabels?: boolean | string | SExpr;
2752
3064
  interactive?: boolean | string | SExpr;
@@ -2754,6 +3066,7 @@ interface PatternPropsMap {
2754
3066
  actions?: unknown[] | string | SExpr;
2755
3067
  onNodeClick?: ((...args: unknown[]) => unknown) | string | SExpr;
2756
3068
  onNodeDoubleClick?: ((...args: unknown[]) => unknown) | string | SExpr;
3069
+ onBadgeClick?: ((...args: unknown[]) => unknown) | string | SExpr;
2757
3070
  nodeClickEvent?: string | SExpr;
2758
3071
  selectedNodeId?: string | SExpr;
2759
3072
  repulsion?: number | string | SExpr;
@@ -3037,6 +3350,7 @@ interface PatternPropsMap {
3037
3350
  title?: string | SExpr;
3038
3351
  message?: string | SExpr;
3039
3352
  className?: string | SExpr;
3353
+ fullPage?: boolean | string | SExpr;
3040
3354
  };
3041
3355
  'map-view': {
3042
3356
  type: 'map-view';
@@ -3192,6 +3506,7 @@ interface PatternPropsMap {
3192
3506
  type: 'modal';
3193
3507
  isOpen?: boolean | string | SExpr;
3194
3508
  onClose?: ((...args: unknown[]) => unknown) | string | SExpr;
3509
+ onExited?: ((...args: unknown[]) => unknown) | string | SExpr;
3195
3510
  title?: string | SExpr;
3196
3511
  children?: unknown | string | SExpr;
3197
3512
  footer?: unknown | string | SExpr;
@@ -3306,6 +3621,12 @@ interface PatternPropsMap {
3306
3621
  children?: unknown | string | SExpr;
3307
3622
  className?: string | SExpr;
3308
3623
  };
3624
+ 'page-transition': {
3625
+ type: 'page-transition';
3626
+ locationKey: string | SExpr;
3627
+ children: unknown | string | SExpr;
3628
+ className?: string | SExpr;
3629
+ };
3309
3630
  'pagination': {
3310
3631
  type: 'pagination';
3311
3632
  currentPage: number | string | SExpr;
@@ -3373,6 +3694,12 @@ interface PatternPropsMap {
3373
3694
  moveEvent?: string | SExpr;
3374
3695
  className?: string | SExpr;
3375
3696
  };
3697
+ 'presence': {
3698
+ type: 'presence';
3699
+ show: boolean | string | SExpr;
3700
+ className?: string | SExpr;
3701
+ children: unknown | string | SExpr;
3702
+ };
3376
3703
  'pricing-card': {
3377
3704
  type: 'pricing-card';
3378
3705
  name: string | SExpr;
@@ -4632,4 +4959,4 @@ declare const PATTERN_TYPES: PatternType[];
4632
4959
  */
4633
4960
  declare function isValidPatternType(type: string): type is PatternType;
4634
4961
 
4635
- export { type PatternConfig as $, type AnyPatternConfig as A, CameraModeSchema as B, CAMERA_MODES as C, CameraSchema as D, type EntityField as E, type FieldValue as F, ENTITY_ROLES as G, type EntityData as H, type EntityFieldInput as I, EntityFieldSchema as J, EntityPersistenceSchema as K, type EntityRole as L, EntityRoleSchema as M, EntitySchema as N, type EntityWith as O, type EnumEntityField as P, type Field as Q, type RelationConfig as R, type FieldFormat as S, FieldFormatSchema as T, FieldSchema as U, type FieldType as V, FieldTypeSchema as W, type OrbitalEntity as X, type OrbitalEntityInput as Y, OrbitalEntitySchema as Z, PATTERN_TYPES as _, type EntityPersistence as a, type PatternProps as a0, type PatternPropsMap as a1, type PatternType as a2, RelationConfigSchema as a3, type RelationEntityField as a4, SPRITE_DIRECTIONS as a5, type ScalarEntityField as a6, type ScenePos as a7, ScenePosSchema as a8, type SemanticAssetRef as a9, type SemanticAssetRefInput as aa, SemanticAssetRefSchema as ab, type SpriteDirection as ac, SpriteDirectionSchema as ad, type SpriteSheetAtlas as ae, type SpriteSheetAtlasInput as af, SpriteSheetAtlasSchema as ag, type SubTexture as ah, SubTextureSchema as ai, type TextureAtlas as aj, TextureAtlasSchema as ak, type Tilesheet as al, TilesheetSchema as am, VISUAL_STYLES as an, type VisualStyle as ao, VisualStyleSchema as ap, createAssetKey as aq, deriveCollection as ar, getDefaultAnimationsForRole as as, isFieldValue as at, isRuntimeEntity as au, isValidPatternType as av, parseAssetKey as aw, persistenceModeAllowsOverrides as ax, validateAssetAnimations as ay, type EntityRow as b, type Entity as c, ANIMATION_NAMES as d, ASSET_ASPECTS as e, ASSET_DIMENSIONS as f, type AnimationDef as g, type AnimationDefInput as h, AnimationDefSchema as i, type AnimationName as j, AnimationNameSchema as k, type ArrayEntityField as l, type Asset as m, type AssetAspect as n, AssetAspectSchema as o, type AssetCatalog as p, type AssetCatalogEntry as q, type AssetCatalogEntryInput as r, AssetCatalogEntrySchema as s, AssetCatalogSchema as t, type AssetDimension as u, AssetDimensionSchema as v, AssetSchema as w, type AssetUrl as x, type Camera as y, type CameraMode as z };
4962
+ export { type FieldFormat as $, type AnyPatternConfig as A, type AssetUrl as B, CAMERA_MODES as C, type Camera as D, type EntityField as E, type FieldValue as F, type CameraMode as G, CameraModeSchema as H, CameraSchema as I, type JsonValue as J, ENTITY_ROLES as K, type EntityData as L, type EntityFieldInput as M, EntityFieldSchema as N, type OrbitalId as O, type PageId as P, EntityIdSchema as Q, type RelationConfig as R, EntityPersistenceSchema as S, type TraitId as T, type EntityRole as U, EntityRoleSchema as V, EntitySchema as W, type EntityWith as X, type EnumEntityField as Y, EventIdSchema as Z, type Field as _, type EntityPersistence as a, getDefaultAnimationsForRole as a$, FieldFormatSchema as a0, FieldSchema as a1, type FieldType as a2, FieldTypeSchema as a3, type IdForKind as a4, type IdKind as a5, type IdentityLedger as a6, IdentityLedgerSchema as a7, type JsonObject as a8, type LedgerEntry as a9, type SpriteDirection as aA, SpriteDirectionSchema as aB, type SpriteSheetAtlas as aC, type SpriteSheetAtlasInput as aD, SpriteSheetAtlasSchema as aE, type SubTexture as aF, SubTextureSchema as aG, type TextureAtlas as aH, TextureAtlasSchema as aI, type ThemeId as aJ, ThemeIdSchema as aK, type Tilesheet as aL, TilesheetSchema as aM, TraitIdSchema as aN, VISUAL_STYLES as aO, type VisualStyle as aP, VisualStyleSchema as aQ, asEntityId as aR, asEventId as aS, asOrbitalId as aT, asPageId as aU, asPaletteEntryId as aV, asServiceId as aW, asThemeId as aX, asTraitId as aY, createAssetKey as aZ, deriveCollection as a_, LedgerEntrySchema as aa, type LedgerKind as ab, LedgerKindSchema as ac, type OrbitalEntity as ad, type OrbitalEntityInput as ae, OrbitalEntitySchema as af, OrbitalIdSchema as ag, PATTERN_TYPES as ah, PageIdSchema as ai, type PaletteEntryId as aj, PaletteEntryIdSchema as ak, type PatternConfig as al, type PatternProps as am, type PatternPropsMap as an, type PatternType as ao, RelationConfigSchema as ap, type RelationEntityField as aq, SPRITE_DIRECTIONS as ar, type ScalarEntityField as as, type ScenePos as at, ScenePosSchema as au, type SemanticAssetRef as av, type SemanticAssetRefInput as aw, SemanticAssetRefSchema as ax, type ServiceId as ay, ServiceIdSchema as az, type EntityRow as b, idKindOf as b0, idPrefix as b1, isEntityId as b2, isEventId as b3, isFieldValue as b4, isJsonArray as b5, isJsonObject as b6, isJsonPrimitive as b7, isOrbitalId as b8, isPageId as b9, isPaletteEntryId as ba, isRuntimeEntity as bb, isServiceId as bc, isThemeId as bd, isTraitId as be, isValidPatternType as bf, ledgerCurName as bg, ledgerRename as bh, ledgerResolveName as bi, mintId as bj, parseAssetKey as bk, persistenceModeAllowsOverrides as bl, validateAssetAnimations as bm, type EventId as c, type EntityId as d, type Entity as e, type ToolArgs as f, ANIMATION_NAMES as g, ASSET_ASPECTS as h, ASSET_DIMENSIONS as i, type AnimationDef as j, type AnimationDefInput as k, AnimationDefSchema as l, type AnimationName as m, AnimationNameSchema as n, type ArrayEntityField as o, type Asset as p, type AssetAspect as q, AssetAspectSchema as r, type AssetCatalog as s, type AssetCatalogEntry as t, type AssetCatalogEntryInput as u, AssetCatalogEntrySchema as v, AssetCatalogSchema as w, type AssetDimension as x, AssetDimensionSchema as y, AssetSchema as z };