parallel(limit: n) [for item in items => body] requires a positive integer limit and a typed array source (bounded ranges also produce arrays). Zero, negative, fractional, unknown and dynamic limits are rejected statically when provable; nonpositive dynamic integers fail before any job is launched.
The limit bounds active mapper jobs, including an awaitable returned by the mapper. Results retain source order. Use an array source and an integer limit greater than zero. Custom streaming iterators require explicit pull/stream processing rather than eager bounded array collection.