In order to namespace things within a module it makes sense to use nested package names (i.e. com.domain.mymodule.mysubmodule.model.someclass). But it would be lead to a better API if it were possible to flatten this for its public API (i.e. com.domain.mymodule.someclass).
I suppose this is somewhat possible using a typeAlias. But this would mean both the typeAlias and the original class being exposed publicly.
In rust it is possible to re-export an internal type publicly using the syntax:
use pub some:nested:type:foo as foo
I have recently started using Kotlin, so apologies if this feature is already possible. At the moment I cannot see there is a way to create a nice, flat API for public consumers, without forgoing the ability to nicely namespace things internally?