Cards are enforced to have a unique index per type.
All Card Collections take as a parameter the card subset that is used in the current game.
Performance optimization.  Rewrite the card collections to leverage the card index which is unique to each card.    On hot paths, edge cases involving enumerating are removed in the common case.