--- layout: wiki title: Modularity And PBO Structure group: development parent: wiki order: 4 --- ### Modularity Main principles: - As much stuff as possible should be modular - Strive to make as much stuff as possible run-time togglable. Adding/removing PBOS would still be requiring to toggle any feature relying on config changes. ### PBO Structure Main principles: - Try to keep single module dependencies as much as possible - Interaction would be the requirement for most modules. - Anything that is 100% config should require Common and not Interaction. ``` Main -> Common -> OptionsMenu -> Interaction -> Most things Main -> Common -> Config things Main -> Common -> 3D Models | Interaction | -> Feature ```