Step shapes the schema admits but that cannot be carried out as written.
The schema validates each field on its own; these are the combinations whose
fields contradict each other, and the alternative to rejecting them is
worse than a hard error — one field silently redefining another is how a
script comes to mean something its author never wrote.
Returns the reason, or undefined when the step is expressible. One
function, two callers: validateStates runs it before Chromium launches so
an authoring mistake aborts the run, and planStep runs it on every
step it plans so no caller reaches the driver around it.
Step shapes the schema admits but that cannot be carried out as written.
The schema validates each field on its own; these are the combinations whose fields contradict each other, and the alternative to rejecting them is worse than a hard error — one field silently redefining another is how a script comes to mean something its author never wrote.
Returns the reason, or
undefinedwhen the step is expressible. One function, two callers:validateStatesruns it before Chromium launches so an authoring mistake aborts the run, and planStep runs it on every step it plans so no caller reaches the driver around it.