An important reason for the rewriting of Netsukuku 2.0 is the fact that a good documentation is being written, at the same time, for each software module.
There is an overview of the problem that the module addresses and how it is solved. The problem is described as a whole, but at the same time in a precise and detailed manner. Also, the role of this module in the solution of that problem is described in details.
Then, the algorithm is described that implements the role of the module. The algorithm is described in great details when it is the case, although using a "pseudo code" language. To the point that it would not be difficult for a developer to follow the steps and write the code in his favourite programming language.
Not all the modules, that will make up the full app, have been described yet. However, if one has already read the old Netsukuku documents written by Alpt and companions, he could easily guess which modules are yet to be described and how they should be integrated in the whole.
There is a problem with this documentation, that is it is written in my mother language: Italian. Since it is a work constantly in progress, I'm not going to translate it into English soon. Do not hold your breath.
At this link you can see the most recent draft of the documentation: https://lab.dyne.org/Netsukuku/ita/docs/development