So the directory structure is useful to me as a person managing the project code, but is “flat” to the compiler? I can see this approach probably has both pros and cons which I haven’t learned about yet.
The only annoying thing is that you can’t hide the aliased modules for auto-completion, so some discipline is needed.
In general, we use an underscore to flag a module with a namespace, like Gadget_Schema.