Packs N positional input streams, each carrying a per-field type $ts, into a single record {$ns: $ts...}, assigning each input to a named field in declared order with its type preserved. Inverse of unpack_record.
Typical backends
Compose an event payload from separate per-field producers and ship it as JSON.
Edit one field of a named record: unpack to fields, transform, repack, and relabel with its alias.
Caveats
- Hard constraintAll input streams must tick together; a missing field stalls the pack until every input for that tick has arrived.
- I/O contractField names and arity come from the declared record schema fixed by the downstream wiring, not from input wiring order; the inputs fill the schema's slots positionally and no type is coerced.
- LatencyOutput cadence equals the slowest input cadence by construction.
- I/O contractFor positional, name-free bundling use pack_tuple instead.