I would like to second this, particularly the difficulties with “…bizarre compilation errors deep inside engine code when using an engine header in a module that doesn’t happen to have all the same includes within its PCH…”. I realize it’d be a serious undertaking, but if this kind of thing could be done for all new modules and code added, and then over time worked through the code-base, it’d be a start! Having to just blindly include Engine.h to fix lots of issues is crazy.