anchor.diff:  in
   
   {
  -  
  +
     ###### interface
   
     options = {
   
       services.teamspeak3 = {
  -
         enable = mkOption {
           type = types.bool;
           default = false;
  
positive.code:           WorkingDirectory = cfg.dataDir;
            User = user;
            Group = group;
            PermissionsStartOnly = true; # preStart needs to run with root permissions
          };
        };
  
    };
  
  }
  
negative.code: 
    ###### implementation
  
    config = mkMerge [
      (mkIf cfg.enable {
        users.users.teamspeak = {
          description = "Teamspeak3 voice communication server daemon";
          group = group;
          uid = config.ids.uids.teamspeak;
          home = cfg.dataDir;
          createHome = true;
        };
  
        users.groups.teamspeak = {
          gid = config.ids.gids.teamspeak;
        };
  
        systemd.services.teamspeak3-server = {
          description = "Teamspeak3 voice communication server daemon";
          after = [ "network.target" ];
          wantedBy = [ "multi-user.target" ];
  
          preStart = ''
            mkdir -p ${cfg.logPath}
            chown ${user}:${group} ${cfg.logPath}
          '';
  
          serviceConfig = {
            ExecStart = ''
              ${ts3}/bin/ts3server \
                dbsqlpath=${ts3}/lib/teamspeak/sql/ logpath=${cfg.logPath} \
                voice_ip=${cfg.voiceIP} default_voice_port=${toString cfg.defaultVoicePort} \
  