Pure, and here rather than in the component, because "what does clicking Person Step actually
put in the graph" is a fact about the spec — testable without a TestBed, and the one place the
assignment xor is honoured on creation.
defaultAgentName / defaultActionName are what the host has to offer. When it has nothing, the
step is created unassigned on purpose: inventing an agent name that may not exist would produce a
graph that passes the canvas and fails at submission, whereas an unassigned step is reported
immediately by the same validator the engine runs.
Builds the task a palette entry stands for.
Pure, and here rather than in the component, because "what does clicking Person Step actually put in the graph" is a fact about the spec — testable without a TestBed, and the one place the assignment xor is honoured on creation.
defaultAgentName/defaultActionNameare what the host has to offer. When it has nothing, the step is created unassigned on purpose: inventing an agent name that may not exist would produce a graph that passes the canvas and fails at submission, whereas an unassigned step is reported immediately by the same validator the engine runs.