Declarative, service-centric deploy engine for XBP.
Purity rule: the engine depends only on:
- project config (view types)
- OCI resolver/promoter traits
- Kubernetes adapter traits
- optional Cloudflare deploy adapter trait (CLI-injected)
No CLI I/O, no Athena product islands, no implicit runtime state.
Kubernetes apply/rollout behaviour is unchanged for
kubernetes / kubernetes-operator services. Cloudflare providers are
additive and never populate k8s_plan.services.