Reads every Decision step's key and refuses any key two of them share.
A path condition names a Decision step by key (decisions.triage.intent), so a shared key would
leave it unsaid which step it reads. Both engines run this: the compiler over the steps it
compiles, and the in-run walker over the flow's active steps when a run starts.
A step whose configuration cannot be read has no key here; the engine that runs it reports why.
Reads every Decision step's key and refuses any key two of them share.
A path condition names a Decision step by key (
decisions.triage.intent), so a shared key would leave it unsaid which step it reads. Both engines run this: the compiler over the steps it compiles, and the in-run walker over the flow's active steps when a run starts.A step whose configuration cannot be read has no key here; the engine that runs it reports why.