It has to be possible to create a firmware that always represents the most recent state of the project (e.g., main code, drivers, updater).