ConstReadonlySingleton: "singleton"At most one instance per Application, created lazily and owned by the
container. A promise returned by its dispose method is awaited at stop.
ReadonlyTransient: "transient"A new instance per resolution. If disposable, it is owned by the
ResourceScope associated with that resolver, which awaits a
promise-returning dispose in place during teardown (see
ResourceScope.own), so ordering holds for async cleanup too.
How long a service instance lives. These are the lifetimes the container currently supports; ownership details are part of each value's contract.