Per-LOD data parts (assumed length ≥ 1).
Extract the field from a part.
Element count of a part (rows; multiplied by perItem).
Components per element (e.g. 3 for positions, 1 for widths).
Field name for the dtype-mismatch error message.
Maps a parts index back to its LADDER level number, for
the error message only. Identity unless the caller passed a filtered
subset (see concatOptionalField's zero-row abstainers) — naming
the wrong level in a corrupt-store diagnostic is worse than not naming one.
Concatenate a required typed-array field across parts.
Allocates a fresh array of
sum(countOf(part)) * perItemelements (using the first part's constructor, so the dtype is preserved) and copies each part in order.LADDER-DTYPE CONTRACT: every part must carry the field with the SAME typed-array dtype.
TypedArray.setconverts by VALUE, not by semantics — copying a later Uint8Array level (0..255 normalized) into a Float32Array output (0..1) would silently write 255× values, and Float32 into Uint8 truncates to garbage. The Python writer always emits one dtype per field across a ladder, so a mismatch means malformed data; fail fast with a descriptive error instead of rendering corruption.