public async Task <string> GetPreferences(PlayerPreferencesType type)
        {
            var json = await Get <JSONObject>("/playerPref/v1/getPreference/210492987/NA1/" + type);

            var raw = (string)json["data"];

            using (var src = new MemoryStream(Convert.FromBase64String(raw)))
                using (var dst = new MemoryStream())
                    using (var gzip = new DeflateStream(src, CompressionMode.Decompress)) {
                        gzip.CopyTo(dst);
                        return(Encoding.UTF8.GetString(dst.ToArray()));
                    }
        }
        public async Task SetPreferences(PlayerPreferencesType type, string prefs)
        {
            var hash = sha256.ComputeHash(prefs.GetBytes());

            byte[] data;

            using (var src = new MemoryStream(prefs.GetBytes()))
                using (var dst = new MemoryStream())
                    using (var gzip = new DeflateStream(src, CompressionMode.Decompress)) {
                        gzip.CopyTo(dst);
                        data = dst.ToArray();
                    }

            var json = new JSONObject {
                ["version"] = "1.0",
                ["type"]    = type.ToString(),
                ["data"]    = Convert.ToBase64String(data),
                ["hash"]    = Convert.ToBase64String(hash)
            };

            await Put("/playerPref/v1/getPreference/210492987/NA1/" + type, json.ToJSON().GetBytes());
        }