We may want to ensure that `step.options` is always an object as `runStep` is part of the public prototype and users may be using it in ways we don't suspect