public abstract class GameTable<TCard> : IGameTable<TCard> where TCard : Card {}
public interface IGameTable<TCard> where TCard : Card { Deck<TCard> CreateDeck(); TableSeat AddPlayer(Player player); List<TableSeat> Seats { get; } TableTurn Turn { get; set; } }