With version 2 we go a new way to write a firmware. In V1 we used a monolithic and quite static system that was designed to work with the first RepRap printers, whcih were quite simple. Ove rthe time the community developed and added a lot of tricks and modifications, making it harder and harder to configure this with a quite static system. So in V2 we choosed a modular solution. Now we have basic interfaces for tasks required for a printer, cnc mill or laser cutter, but we leave it open how to solve this.
Any module implementing the interface can be used. To better understand this, lets have a look at pwm signals. In V1 these are all emulated in software making the frequency low. Moreover the heaters have the same frequency as there is only one switch and it is hard to add extra pwm outputs, if they are not already hardcoded. Now with the modular system, you define in the configuration_io.h file that you need a pwm as input for a function. For each input you can select the pwm implementation and all settings. So you can mix software and hardware pwm, you can write a pwm module that sends a command to an external hardware. Nothing will change for the pwm consumer function.
The same concept can be used for printer type, heater types, pins, fans, ... So this new concept is more like a lego set where you pick the bricks you think would work best for your hardware. If something is missing, you do not need to make big und unclear modifications. You just write a new module which might even be a close copy of an existing one. Just to implement the difference you need there.