{ ... }: {
  flake.nixosModules.systemBluetooth =
    { config, lib, pkgs, ... }:
    let
      cfg = config.chiasson.system.bluetooth;
      d = config.chiasson.desktop or { };
      guiEnabled =
        ((d.hyprland or { }).enable or false)
        || ((d.niri or { }).enable or false)
        || ((d.plasma or { }).enable or false);
    in
    {
      options.chiasson.system.bluetooth = {
        enable = lib.mkEnableOption ''
          BlueZ defaults (power on boot, experimental, fast connectable). Pull via `client-services` or direct import; off on BT-less boxes.
        '' // {
          default = true;
        };

        installBluejay = lib.mkOption {
          type = lib.types.bool;
          default = true;
          description = ''
            [Bluejay](https://invent.kde.org/plasma/bluejay) on GUI hosts with BT. False → `bluetoothctl` only.
          '';
        };
      };

      config = lib.mkMerge [
        (lib.mkIf cfg.enable {
          hardware.bluetooth = {
            enable = true;
            powerOnBoot = true;
            settings = {
              General = {
                Experimental = true;
                FastConnectable = true;
              };
              Policy = {
                AutoEnable = true;
              };
            };
          };
        })
        (lib.mkIf (cfg.enable && cfg.installBluejay && guiEnabled) {
          environment.systemPackages = [ pkgs.bluejay ];
        })
      ];
    };
}
