/// <summary>
/// Represents a set of base colors used in a theme.
/// </summary>
public record BaseColors
{
    public ColorScale Background { get; set; }
    public ColorScale Foreground { get; set; }
    public ColorScale Overlay { get; set; }
    public ColorScale Divider { get; set; }
    public ColorScale Focus { get; set; }
    public ColorScale Content1 { get; set; }
    public ColorScale Content2 { get; set; }
    public ColorScale Content3 { get; set; }
}

/// <summary>
/// Represents a set of theme colors.
/// </summary>
public record ThemeColors : BaseColors
{
    public ColorScale Default { get; set; }
    public ColorScale Primary { get; set; }
    public ColorScale Secondary { get; set; }
    public ColorScale Success { get; set; }
    public ColorScale Warning { get; set; }
    public ColorScale Danger { get; set; }
    public ColorScale Info { get; set; }
}

/// <summary>
/// Represents a set of light theme default colors.
/// </summary>
public record ThemeColorsLight : ThemeColors { /* ... */ }

/// <summary>
/// Represents a set of dark theme default colors.
/// </summary>
public record ThemeColorsDark : ThemeColors { /* ... */ }