All operations can have a fixed number of inputs and a variable number of outputs. Each output need to have its own callback, all taking the exact number of "const InType&" as input and each can return a different output type.