The byte source.
The STEP parser (typed to the schema).
Target window size in bytes.
OptionalonRecordIndexed: ((localID: number, expressID: number, typeID: undefined | TypeIDType) => void)Optional per-record event (see buildIndexStreaming).
Columns, header, result, stats.
Build the entity index by streaming, directly into typed-array columns (M7): identical parse and window behaviour to buildIndexStreaming, but completed records are encoded straight into a ColumnarIndexSink so the per-record object index never materialises. Peak JS heap for the index build becomes
window + columns— the object phase (the dominant heap cost on large models) is gone.