// Not super useful, it just gives you for each card how many are yet to be seen in the collection
        // (probably about the "new" flag)
        public static dynamic ReadCollectionCardRecords([NotNull] HearthstoneImage image)
        {
            if (image == null)
            {
                throw new ArgumentNullException(nameof(image));
            }

            var service = image.GetNetCacheService("NetCacheCollection")?["<Stacks>k__BackingField"];
            var size    = service["_size"];
            var items   = service["_items"];
            var result  = new List <dynamic>();

            for (int i = 0; i < size; i++)
            {
                var stack   = items[i];
                var count   = stack["<Count>k__BackingField"];
                var numSeen = stack["<NumSeen>k__BackingField"];
                var cardId  = stack["<Def>k__BackingField"]["<Name>k__BackingField"];
                var premium = stack["<Def>k__BackingField"]["<Premium>k__BackingField"];
                result.Add(new
                {
                    CardId  = cardId,
                    Premium = premium,
                    Count   = count,
                    NumSeen = numSeen,
                });
            }

            result.Sort((dynamic a, dynamic b) => b.NumSeen - a.NumSeen);
            return(result);
        }
        public static IBoostersInfo ReadBoostersInfo([NotNull] HearthstoneImage image)
        {
            if (image == null)
            {
                throw new ArgumentNullException(nameof(image));
            }

            var boosterServices = image.GetNetCacheService("NetCacheBoosters");
            if (boosterServices == null || boosterServices["<BoosterStacks>k__BackingField"] == null)
            {
                return null;
            }

            var boosters = new List<IBoosterStack>();
            var itemCount = boosterServices["<BoosterStacks>k__BackingField"]["_size"];
            var items = boosterServices["<BoosterStacks>k__BackingField"]["_items"];
            for (int i = 0; i < itemCount; i++)
            {
                var booster = items[i];
                boosters.Add(new BoosterStack()
                {
                    BoosterId = booster["<Id>k__BackingField"],
                    Count = booster["<Count>k__BackingField"],
                    EverGrantedCount = booster["<EverGrantedCount>k__BackingField"],
                });
            }

            boosters.Sort((a, b) => a.BoosterId - b.BoosterId);
            return new BoostersInfo()
            {
                Boosters = boosters,
            };
        }