Why not (finally) expose main.cpp to the user ?

The difference is that the pin definition data structures have been moved (through a header file) into main.cpp.