Thread an optionalSteps param through flowToIr (counts as a v2 signal,
re-attached like fields/settings, omitted entirely when empty for byte
identity) and add an optionalStepsOf reader mirroring fieldsOf/settingsOf.
Without this, saving a workflow through the node editor silently dropped
its optional-step declaration.