Framework/SeatBadge.cs

Defines SeatBadgeTone enum for badge color intent and a readonly record struct SeatBadge containing Text and Tone for player-seat tags used in the players panel.

namespace CardGames;

/// <summary>Colour intent for a <see cref="SeatBadge"/> in the players panel.</summary>
public enum SeatBadgeTone
{
	Neutral,
	Good, // green - a positive state (ready, blackjack)
	Bad,  // red - a negative/locked state (all-in, bust)
	Gold, // highlighted marker (dealer button)
}

/// <summary>
/// A small tag a game hangs on a seat in the generic players panel - e.g. a dealer "D", "ALL-IN",
/// "READY", a hand total. Games supply these from <see cref="CardGame.SeatBadges"/>; the panel renders
/// them the same way for every game. Build them from synced state only, since clients read them too.
/// </summary>
public readonly record struct SeatBadge( string Text, SeatBadgeTone Tone = SeatBadgeTone.Neutral );