anchor.diff:      };
   
       adapter = mkOption {
  -      default = "caddyfile";
  +      default = null;
         example = "nginx";
  -      type = types.str;
  -      description = lib.mdDoc ''
  +      type = with types; nullOr str;
  +      description = ''
           Name of the config adapter to use.
           See <https://caddyserver.com/docs/config-adapters>
           for the full list.
   
  -        If the empty string is specified, the <literal>--adapter</literal>
  +        If <literal>null</literal> is specified, the <literal>--adapter</literal>
           argument is omitted when starting or restarting Caddy. Notably, this
           allows specification of a configuration file in Caddy's native JSON
           format, as long as the filename does not start with
  
positive.code:       serviceConfig = {
          # https://www.freedesktop.org/software/systemd/man/systemd.service.html#ExecStart=
          # If the empty string is assigned to this option, the list of commands to start is reset, prior assignments of this option will have no effect.
          ExecStart = [ "" ''${cfg.package}/bin/caddy run --config ${cfg.configFile} ${optionalString (cfg.adapter != "") "--adapter ${cfg.adapter}"} ${optionalString cfg.resume "--resume"}'' ];
          ExecReload = [ "" ''${cfg.package}/bin/caddy reload --config ${cfg.configFile} ${optionalString (cfg.adapter != "") "--adapter ${cfg.adapter}"} --force'' ];
          ExecStartPre = ''${cfg.package}/bin/caddy validate --config ${cfg.configFile} ${optionalString (cfg.adapter != "") "--adapter ${cfg.adapter}"}'';
          User = cfg.user;
          Group = cfg.group;
          ReadWriteDirectories = cfg.dataDir;
  
negative.code: 
    configFile =
      let
        Caddyfile = pkgs.writeTextDir "Caddyfile" ''
          {
            ${cfg.globalConfig}
          }
  