It also requires either public modifiable fields, or some polymorphic dagger-style weirdo with generated impl class, or you do it with reflection all the time and can’t really codegen container composition code (if you do it often, e.g. per web request)