Enum CacheSectionId
Identifies each section in the cache file. Values are wire-stable; never renumber or reuse a retired ID — only append.
public enum CacheSectionId : ushort
Fields
ArchetypeDefinitions = 13Rich archetype definitions (v14): one record per archetype with parent/child links, slot-ordered ComponentTypeIds, versioned/transient slot bitmasks, cascade-delete targets, cluster eligibility flags, and (when cluster-eligible) inline
ArchetypeClusterInfodescribing on-disk SoA layout. Drives the WorkbenchArchetypeBrowser+ relationship view.ChunkManifest = 4Chunk manifest (ChunkManifestEntry[]). Drives the client's cache keying + the server's chunk-serving path.
ComponentDefinitions = 12Rich component-type definitions (v14): one record per registered component type, carrying full schema (fields with name +
FieldType+ offset + size + index flags + spatial flag), storage mode (Versioned/SingleVersion/Transient), revision, and per-component aggregates (storage size, indices count, multiple-indices count). Forwarded verbatim from the source.typhon-trace'sComponentDefinitionsTable(v7+). Drives the WorkbenchSchemaBrowserand per-component detail panels for trace sessions — the existing thin SourceMetadata's ComponentTypeTable carries only id→name pairs and isn't enough.EventQueueCatalog = 16Event-queue catalog (v14): for each registered queue, QueueIndex (matches QueueId), display name (mirrors QueueNameTable), capacity (power-of-2), and event type's CLR name. Adds the static schema (capacity / event-type) on top of the existing name table so the queue panel can show capacity utilisation in % terms against per-tick depth from QueueTickSummaries.
FoldedChunkData = 5Concatenated LZ4-compressed chunk payloads. Addressed by CacheByteOffset + Length.
GlobalMetrics = 3Global metrics (GlobalMetricsFixed + optional per-system aggregates).
IndexCatalog = 14Index catalog (v14): flat list keyed by (ComponentTypeId, FieldId) of every B+Tree index defined on the schema. Each entry carries the variant byte (Single/Multiple × value-type), a key-type byte, and the spatial / allow-multiple flags. Drives the
SchemaIndexespanel; redundant with the per-field flags in ComponentDefinitions but flat-listed here for O(1) lookup independent of component selection.Invalid = 0Not valid; guards against zero-initialized entries.
PostTickSummaries = 10Per-tick post-tick serial markers (PostTickSummary[]) added in v12 — one record per tick, capturing the durations of each TickPhase region that runs serially after the system DAG completes. Folded from the existing
RuntimePhaseSpanwire events (kind 243); no new wire-format kind needed.QueueNameTable = 11Queue-name intern table written in v12. Variable-length:
u16 countfollowed bycount × (u16 queueId + short-string name). QueueId is the index assigned at engine startup; readers map QueueId → display name through this section.QueueTickSummaries = 9Per-(tick, queue) rollup records (QueueTickSummary[]) added in v12. Sorted by (TickNumber, QueueId). Folded from a new
QueueTickEndwire event the engine emits at end-of-tick per active event queue.ResourceGraphSnapshot = 17Resource graph snapshot (v14): pre-order tree walk of the
ResourceGraphat trace start — node id, name, type byte, parent id (-1 for root), creation timestamp, and exhaustion-policy byte. Static (resource topology doesn't change at runtime in any way the trace cares about). Drives the resource-tree panel for trace sessions.RuntimeConfig = 15Engine runtime configuration snapshot at trace start (v14): BaseTickRate, WorkerCount, TelemetryRingCapacity, ParallelQueryMinChunkSize, DefaultPhase name, and the ordered phase-name list from
RuntimeOptions. Single record (no count prefix). Phase names duplicate the trace's PostTickSummaries phase axis but include the definition order — reader exposes both axes side-by-side in the runtime-config panel.SourceMetadata = 7Verbatim copy of the source's metadata prefix: TraceFileHeader + system definitions table + archetypes table + component-types table, in the same wire format produced by
TraceFileWriter(and shipped over TCP as the engine's Init frame payload during attach). Optional — present iff IsSelfContained is set on the header. Loaders detect the flag and project metadata from these bytes via aTraceFileReaderover a MemoryStream, skipping the source-file open entirely. Source-derived caches (the default) omit this section; their metadata still comes from the parent.typhon-traceat open time.SpanNameTable = 6Flat copy of the source file's optional span-name intern table. Count prefix (u16) + entries (u16 id, short-string name).
SystemArchetypeTouches = 18Per-(tick, system, archetype) entity-touch rollup (SystemArchetypeTouchSummary[]) added in v15 for the Workbench Data Flow module (#327). Folded from the new
SchedulerSystemArchetypewire event the engine emits at parallel-query completion. Sparse — most systems target one archetype, and most ticks emit one row per active system. Sorted by (TickNumber, SystemIndex, ArchetypeId). Drives thearchetype/,system-archetype/, andcomponent-family/*track families surfaced throughAggregationService.SystemTickSummaries = 8Per-(tick, system) rollup records (SystemTickSummary[]) added in v12 for the Workbench Data API per-system tracks (RFC 07 surfacing). Sorted by (TickNumber, SystemIndex) for deterministic binary search. Always dense across systems in a tick (skipped systems present, with
SkipReason != NotSkipped). Folded by IncrementalCacheBuilder from the existingSystemReady/SystemSkipped/SchedulerChunkwire events — no new wire-format kind needed.TickIndex = 1Per-tick index (TickIndexEntry[]), sorted by tick number. Enables binary search for source-file seeks.
TickSummaries = 2Per-tick aggregates (TickSummary[]). Drives the viewer's overview-timeline render.