OptionalfloatColumns: Set<string>
names that must be Float64 even when every value in the
sample happens to be a whole number - content inference alone would demote
3.0 to Int32, losing the schema and risking wrap beyond 2^31
OptionaluintColumns: ReadonlySet<string>
names whose domain is an UNSIGNED 32-bit integer.
Inference reaches for Int32 on any whole number, which wraps a value at or
above 2_147_483_648 to a negative one. An IFC express id is a u32
everywhere else in this codebase - Uint32Array in the parser's entity
index and its transports, u32 in the Rust crates - so without this the
export was the one place narrowing that domain.
column name to values, all arrays the same length