I find that package local isn’t useful because a project organization in packages usually just doesn’t line up with package local. So internal is a valid replacement for me. Assuming that test classes will be able to access internal in the future, it is useful for both “hide things from public API” and also to “allow things within the module to talk, including tests"