3 module flavours (sorry, not matched): - Ben's <...
# wg-meta-pipelines
j
Static types in modules: 3 flavours (Ben = methylseq, Nicolas = wisecondorx, me = rnaseq#1945)
Copy code
Ben                   Nicolas                  Me
Input           inline record(...)    named type, in module    named type, shared types.nf
Output          anonymous record      anonymous record         cast to named Result type
Identity        meta: Record          id only                  id + meta: Map
Self-contained  yes                   yes                      no
• Ben: + least code, fewest types, easy bulk port. - no named contract, meta stays an opaque bag. • Nicolas: + explicit interface,
Path?
replaces
[]
placeholders. - every caller builds the exact record, no metadata passthrough. • Me: + shared vocabulary (one channel feeds many modules), eager output checks. - modules depend on types.nf (bad for registry), id/meta duplicated, many types. Proposal: self-contained modules, named input type in the module with
?
for optionals, args/prefix as process inputs (Ben's methylseq#626), and pick one identity key (meta or id, not both).