Class ComponentDefinitionRecord
Rich component-type definition stored in the v7+ ComponentDefinitions table of a .typhon-trace file.
Carries the full schema (fields with name + type + offset + size + index flags), storage mode, and per-component
aggregates so the Workbench schema panels can render trace sessions with the same fidelity as live engine sessions.
public sealed class ComponentDefinitionRecord
- Inheritance
-
ComponentDefinitionRecord
- Inherited Members
Remarks
The thin ComponentTypeRecord (id → name) stays in v7+ for back-compat and for fast id resolution by event decoders; this rich record sits in
a separate table after the phases section. Both reference the same engine ComponentTypeId so consumers can join.
Constructors
ComponentDefinitionRecord()
public ComponentDefinitionRecord()
Properties
AllowMultiple
True when multiple instances of this component can attach to the same entity.
public bool AllowMultiple { get; init; }
Property Value
ComponentStorageOverhead
Per-instance overhead (entity-PK + multiple-index element-id slots). 0 for Versioned components.
public int ComponentStorageOverhead { get; init; }
Property Value
ComponentStorageSize
Bytes per instance excluding overhead (the user-visible component layout size).
public int ComponentStorageSize { get; init; }
Property Value
ComponentStorageTotalSize
Total per-instance footprint (ComponentStorageSize + ComponentStorageOverhead).
public int ComponentStorageTotalSize { get; init; }
Property Value
ComponentTypeId
Component type ID — matches ComponentTypeId.
public int ComponentTypeId { get; init; }
Property Value
Fields
Per-field metadata in registration order.
public FieldDefinitionRecord[] Fields { get; init; }
Property Value
IndicesCount
Number of indexed fields on this component.
public ushort IndicesCount { get; init; }
Property Value
MultipleIndicesCount
Number of indexed fields that are multi-valued (require an element-id slot per instance).
public ushort MultipleIndicesCount { get; init; }
Property Value
Name
Display name (CLR full name).
public string Name { get; init; }
Property Value
Revision
Schema revision from [Component(Revision)].
public int Revision { get; init; }
Property Value
SpatialField
Field name with [SpatialIndex], or empty when none.
public string SpatialField { get; init; }
Property Value
StorageMode
Storage mode byte (0=Versioned, 1=SingleVersion, 2=Transient — mirrors the engine's StorageMode enum order).
public byte StorageMode { get; init; }