Kudos mate. Neatly programmed, at least from what I can see on this side.
Separately, I'll raise this nugget: the Tag object that can be associated with a deck might provide a strong search filter as well, assuming the community is consistent on how they tag. While users can
jump from deck to deck using Tags, they have to get into a deck first to start the chain. Enabling this as a search filter will give another couple ounces of muscle to your search function.
Again mate, just a thought, with no detraction from the overall work intended.