Readonlyattempt1 on the first attempt, then 2, 3, ...
ReadonlynameThe step's name.
A key stable across retries and recovery, distinct for each step of each run: pass it to services that accept idempotency keys.
Aborted when this attempt times out (or misses its heartbeat), or the
run is cancelled, terminated or closed. Pass it to fetch and the like.
What a step's function gets when it declares a parameter:
ctx.step("charge", (s) => pay({ idempotencyKey: s.key, signal: s.signal })).