Смотрите делаете сервер и делаете api
Я бы использовал NET 6. Все события на websockets + rest
1. регистрация, ну тут без вопросов
2. окно игровых столов, содержит список столов и кнопку создания нового стола.
3. при создании нового стола указываете количество игроков, время старта, приватный или публичный, ниже кнопка приглашения игроков
4. после старта игры, то есть когда все приглашенные онлайн появляется игровой стол
5. игровой стол прямоугольный, каждый игрок с аватаром, справа чат , снизу карты текушего хода и правее ваши карты, вы можете их перетащить мышью
Все вышеописанное храниться в бд.
таблицы такие
users - пользовательские данные
tables - игровые столы, хранятся игроки и статус игры
rounds - хранится номер партии и сделанные ходы игроков
chat - сообщения в чате
strokes - хранится игрок и карты которые он принял и отбил
вот в первом приближении что это может быть