{
  config,
  marleylib,
  lib,
  ...
}: let
  cfg = config.marleycfg.profiles;

  inherit (marleylib.module) enabled;
in {
  marleyos = lib.mkMerge [
    # Universal - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    {
      programs = {
        nh = enabled;
      };

      services = {
        docker = enabled;
      };
    }
    #
    #
    # Graphical Desktop - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    (lib.optionalAttrs cfg.desktop {
      mounts.babeshare = enabled;

      shell = {
        ly = enabled;
        niri = enabled;
      };

      services = {
        mopidy = enabled;
        protonmail-bridge = enabled;
      };
    })
    #
    #
    # Server - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    (lib.optionalAttrs cfg.server {
      services = {
        prometheus = enabled;
      };
    })
  ];
}
