Convention for compile time configuration of PlatformIO projects

Convention for compile time configuration of PlatformIO projects
Separation between code and data (specifically configuration data) is a critical concept in any development environment. Having worked a lot with the nodejs stack I found the way configuration is handled in embedded Arduino/PlatformIO projects surprisingly messy. I decided to come up with a convention to simplify this and I will describe it below. tl;dr, ...