DeployStepInterface
One ordered step of taking a built system live — build images, start services, bootstrap the database, health-check. The step owns its own effect and throws on failure; the {@see DeployRunner} sequences steps fail-fast and turns each into a {@see StepResult}. Domain-blind: the runner knows nothing of what a step does — the host supplies steps that shell out to docker compose, run coa commands, probe HTTP, etc. (mechanism here, content in the host — ADR-0023).
DeployStepInterface::name()
abstract public function name(): stringA short stable identifier for the step (e.g. "build", "up", "bootstrap", "health").
DeployStepInterface::run()
abstract public function run(): voidPerform the step's effect. MUST throw on failure so the runner can stop fail-fast.