Most language ecosystems have a canonical code repository structure for breaking a package or library into multiple files. This usually takes the form of a directory tree for splitting packages, modules or libraries into smaller pieces, as in the case of Rust, Python, Java, etc., though there may be some variations across and within language ecosystems.
The documentation makes it clear how a published multi-file package itself should be structured, but it's unclear what the best practice is for structuring source code.
Is there a canonical repository structure for a package with multiple files in Emacs? Canonical in the sense that it is largely consistent with expectations across the ecosystem of project management tooling (e.g., Eldev, Cask), testing tooling (e.g., buttercup) and distribution (e.g, Melpa).