Epic’s module documentation recommends Public and Private folders, and says the flat layout is unnecessary only when no other module depends on the primary module. However, Lyra keeps LyraGame flat, exposes its module root through PublicIncludePaths, and has LyraEditor depend on it.
Is Lyra’s arrangement an intentional recommended pattern for primary game modules, or a historical/project-specific exception? For a new project with a primary game module consumed by an editor module, does Epic recommend:
- A flat runtime module with
PublicIncludePaths.Add(ModuleDirectory), or - Moving public headers and private implementation into
PublicandPrivate?
Are there meaningful UBT, IWYU, build-performance, or encapsulation consequences beyond the obvious difference in header visibility?