StackProviderInterface
Declares that a plugin needs backing services — containers the host has to run for the plugin to work. The stack counterpart of {@see \Milpa\Runtime\Http\RouteProviderInterface}: a plugin that needs a message hub, a database or a cache says so HERE, as data, instead of leaving it to a README. Whoever operates the host (an admin panel, a CLI, the agent) discovers implementers by `instanceof` over the booted plugins and reads what they need — image, ports, environment — to show it, project it to a compose file, or check that it is reachable. The runtime does not start anything: declaring is the seam, running is the operator's call (greenhouse decisions/0201).
StackProviderInterface::services()
abstract public function services(): arrayThe services this plugin needs the host to run.