If any of the inputs are invalid, #execute won't be run.
It does staged/pipelined execution/validation.
If any of these stages has any errors, then no other stages will be executed:
- validations on the inputs of the interaction itself
- run execute, which may:
- may use compose, which will (IIUC) abort the entire execute/run early if any of them fail, even if there are later composed interactions still to be run
- may try to save inputs into models, which themselves may have validation errors, which (assuming we use errors.merge), will show up on the
interaction.errors(but won't abort the rest of theexecute)