Expand description
Linear operator chain built at DSL time (no per-step graph nodes).
Build-time errors panic (duplicate source, frozen chain after terminal sink, missing add_source).
Runtime failures use [crate::api::error::StreamResult] in crate::stream::chain_execute::execute.
Parallelism is set once on crate::env::stream_env::StreamEnv and stored on ChainJob.