Optional arm: DiPlugin. Omitted → decorated services are constructed
directly and registered in the kernel's ServiceRegistry, which is the
default and needs no container.
Supplying this arm changes how every decorated service in the application
is constructed: DecoratorPlugin branches on the presence of a container,
so with this arm each @Injectable class becomes a container provider that
honors its scope. That is why it is gated rather than always-on — the
default composition stays identical to a starter app without it.