Inversion of control is a very versatile tool that helps you manage
dependency injection.
One of the great advantages of @dreamkit/ioc is that it does not use
decorators, is fully typed, and allows you to manually inject dependencies
for testing purposes.
DreamKit uses it extensively and hands over part of its management to the
user, allowing the user to consume only the dependencies they need and/or
create their own dependencies.