This is loosely inspired by the dendritic pattern. I think a flat hierarchy makes configs hard to read, which is why I decided to introduce a hierarchy for the different types of modules.
For now the hierarchy looks as follows:
abstract- Foundational configuration, mostly of the flake itselfbase- Base NixOS modules that will apply to all systemscase- Use case (desktop, development, server)device-type- Device type (laptop, workstation, server)extensions- Modules that might be shared between individual machines, but don't apply to a whole class/type (postgres, nginx, traefik)