anchor.diff:  with lib;
   let
     cfg = config.services.undervolt;
  -  cliArgs = lib.cli.toGNUCommandLineShell {} {
  +
  +  mkPLimit = limit: window:
  +    if (isNull limit && isNull window) then null
  +    else assert asserts.assertMsg (!isNull limit && !isNull window) "Both power limit and window must be set";
  +      "${toString limit} ${toString window}";
  +  cliArgs = lib.cli.toGNUCommandLine {} {
       inherit (cfg)
         verbose
         temp
  
positive.code:       serviceConfig = {
          Type = "oneshot";
          Restart = "no";
          ExecStart = "${pkgs.undervolt}/bin/undervolt ${cliArgs}";
        };
      };
  
  
negative.code:       '';
      };
  
      p1.limit = mkOption {
        type = with types; nullOr int;
        default = null;
        description = ''
          The P1 Power Limit in Watts.
          Both limit and window must be set.
        '';
      };
      p1.window = mkOption {
        type = with types; nullOr (oneOf [ float int ]);
        default = null;
        description = ''
          The P1 Time Window in seconds.
          Both limit and window must be set.
        '';
      };
  
      p2.limit = mkOption {
        type = with types; nullOr int;
        default = null;
        description = ''
          The P2 Power Limit in Watts.
          Both limit and window must be set.
        '';
      };
      p2.window = mkOption {
        type = with types; nullOr (oneOf [ float int ]);
        default = null;
        description = ''
          The P2 Time Window in seconds.
          Both limit and window must be set.
        '';
      };
  
      useTimer = mkOption {
        type = types.bool;
        default = false;
  