Very interesting! How did your design flow start out?
With my Tonk game I built the deck first, then started with "game should add players". And from there it's just been dealing cards, and evaluation.
I'm on a rewrite. The first implementation had no tests at start and didn't have a separation of concerns. It ended up with code knowing to much about each other part, a mess of state and a flow based method system which couldn't individually be tested. I couldn't replicate what the order of cards were for testing and had to step through each part of the game to try and see if changes worked. So that was a mess.
I kept a dozen tests that I had and threw away all of the old code. I created my rewrite in purely test driven fashion using the tests from before as a map to start the project. All Objects keep a pure separation of concerns and are individually testable. The CardsLib library I created allows you to reuse the same shuffled order so you can fully test any scenario.
The CardsLib gem (cards_lib) is meant to be fully customizable. It doesn't have to be a regular deck of cards, you could (ideally) even create a game like Magic. Although I don't have experience in that game so I'm not sure how much that entails, I'd love for anyone who would like to participate in the CardsLib project to suggest and improve upon the library.
I'm sure I'll be writing more than one card game over time. I'd have even more fun working together with someone on projects.