Very nicely done, there is a lot of potential in this.
Suggestions:
- Transfer players to Spectator team when joining a game and back to their original team when leaving the table.
- Combine models for cards into a single model with different skins. I am not sure if you can get 52 skins on a single model, maybe do it by suit instead? This also opens up the idea of having different deck skins to choose from.
- Add an API to allow other card games to be created.
Obviously #2 and #3 are some large suggestions, so pick and choose what you think would be fun to do.