Previously, there was a function to manually read bytes for a
docker-compose.yml. But this proved to be akward at runtime.
Instead, this code automatically reads an existing docker-compose.yml,
and takes care of marshalling and unmarshalling.
This commit ensures that the compiler has to check every component
against the groups they implement by explicitly annotating the
appropriate interfaces.