Overload for an empty builder: accepts the first operator and initializes the TFlow tuple with types [TInput, TOutput].
Overload for a builder that already has operators:
strictly requires that the input of the new operator matches the output of the previous one (Last
Builds the final standalone PipelineOperator. This method is only available if at least one operator has been added to the builder.
Operator pipeline builder interface — type-safe chaining of operators with tuple-based type inference. Each add() appends the output type to TFlow.