The container-lifecycle PORT — the seam a concrete backend implements (raw
docker is the planned v0 default; podman / testcontainers / the macOS
os-isolation backend swap in by injection, never a conditional). Kept
harness-agnostic and dependency-free at the core, exactly like the five
harness ports: the abstraction exists so a second backend is a NEW OBJECT, not
an edit threaded through the orchestrator.
The container-lifecycle PORT — the seam a concrete backend implements (raw
dockeris the planned v0 default; podman / testcontainers / the macOS os-isolation backend swap in by injection, never a conditional). Kept harness-agnostic and dependency-free at the core, exactly like the five harness ports: the abstraction exists so a second backend is a NEW OBJECT, not an edit threaded through the orchestrator.startis responsible for HONOURING ServiceSpec.ready + running ServiceSpec.seed, so it resolves only with a ready, seeded service.