The service class should not define it's name but rather the container associates a name with a service when starting it.
The Service() dependency injection may or may not be called with the name of the service it will proxy.
If no name is passed in, the name of the attribute it provides the injection for will be used as the service name.
Not sure if we should support it that way. On one hand it is less to write on the other it seems a bit odd to infer the name like that.