http://glfwtfwhlsm2u5pw3b7crist7bt7fwepj2wgv3n3b64unj22v5435tyd.onion/blog/2019/11/05/Incarnations-of-modularity.html
The application was split into five threads (vision, motion, behavior, role, strategy) therefore the boundaries between modules were defined on a more functional level.
By that I mean: What was run independently belonged to an independent module.
So if you were working on the behavior aspect of the code you’d know what source files to work on.