Hello,
Great idea, I fully agree with documenting layers and structures! I also thought maybe in addition to that (as a second section) we could document how to do things? From the point of view of a developer who wants to contribute to flashrom.
For example: how to add a programmer how to add a unit test how to add a command line argument how to add a flashchip (this info exists, although I am not sure that the long numbered list is well placed in the middle of Dev guidelines https://www.flashrom.org/Development_Guidelines#Adding/reviewing_a_new_flash...) how to modify libflashrom API and why not to do this what level of testing we expect for patches etc
And all of that in the aspect of which layers/structures should the change involve.
The goal (in my head) is not to give full instructions on every possible change of flashrom code, not at all. Rather, I am thinking to observe which kind of changes contributors do most often, and to add documentation that a diligent contributor can read before sending a patch.