A workflow is a graph. Pick a shape; the nodes are the real parts of that workflow and the arrows are what each one needs from another. Press Run — the machine steps run themselves and stop at a human checkpoint (diamond); approve it and the step it was holding unblocks. Drag nodes to rearrange.
This is the real engine. Nodes = the parts of the chosen workflow type (recipe.workflowType); arrows = the real produces → requires dependencies; Run drives WYENGINE.workflow.run(). It looks lean today because the rich action / alert / listener node types (docs/99) aren't registered yet — as they land, they appear here automatically. A node fires only when its inputs are met; the engine never guesses.