I dont think the difference between how process input and output are mapped is stated somewhere. If that is the case, I think it would be helpful to have the spelled out early on.
From Seqera AI:
"Unlike process inputs which use positional mapping, process outputs work differently - they use pattern matching to capture files from the task's working directory.
Key Differences from Input Mapping
Process Inputs (Positional):
Input channels are mapped to process input definitions by position
The order matters and must match exactly
Process Outputs (Pattern-Based):
Output definitions use glob patterns to match files in the task working directory
The patterns must match the actual filenames your script generates
No positional mapping - it's all about pattern matching"