public Task<RoleInfo> EditRole(string serverId, string roleId, string name = null, uint? permissions = null, uint? color = null, bool? hoist = null)
		{
			if (serverId == null) throw new ArgumentNullException(nameof(serverId));
			if (roleId == null) throw new ArgumentNullException(nameof(roleId));

			var request = new EditRoleRequest { Name = name, Permissions = permissions, Hoist = hoist, Color = color };
			return _rest.Patch<RoleInfo>(Endpoints.ServerRole(serverId, roleId), request);
		}
		public Task EditRole(string serverId, string roleId, string name = null, uint? permissions = null)
		{
			if (serverId == null) throw new ArgumentNullException(nameof(serverId));
			if (roleId == null) throw new ArgumentNullException(nameof(roleId));

			var request = new EditRoleRequest { Name = name, Permissions = permissions };
			return _rest.Patch(Endpoints.ServerRole(serverId, roleId), request);
		}