LibraryCard CreateKnownCard(ITrackedCard card)
        {
            Debug.Assert(card.IsKnown);

            var possibleGrpIds = new List <int>(1)
            {
                card.GrpId
            };

            cardIds.Add(possibleGrpIds);
            return(new LibraryCard(card.InstId, possibleGrpIds));
        }
        void RevealCard(ITrackedCard card)
        {
            Debug.Assert(card.GrpId > 0);

            var idx = cards.FindIndex(c => c.InstId == card.InstId);

            if (idx < 0 || cards[idx].GrpId == card.GrpId)
            {
                return;
            }

            cards[idx].SetRevealed(card.GrpId);
            cards[idx] = CreateKnownCard(card);
        }