Repository: microsoft/terminal
File: src/cascadia/WpfTerminalControl/TerminalTheme.cs (C#)

Code before:
        /// Cursor will be rendered as an underline that does not blink.
        /// </summary>
        SteadyUnderline = 4,

        /// <summary>
        /// Cursor will be rendered as a vertical blinking bar.
        /// </summary>
        BlinkingBar = 5,

        /// <summary>
        /// Cursor will be rendered as a vertical bar that does not blink.
        /// </summary>
        SteadyBar = 6,
    }

    /// <summary>
    /// Structure for color handling in the terminal.
    /// </summary>
    /// <remarks>Keep in sync with HwndTerminal.hpp.</remarks>
    [StructLayout(LayoutKind.Sequential)]
    public struct TerminalTheme
    {
        /// <summary>
        /// The default background color of the terminal, represented in Win32 COLORREF format.
        /// </summary>
        public readonly uint DefaultBackground;

        /// <summary>
        /// The default foreground color of the terminal, represented in Win32 COLORREF format.
        /// </summary>
        public readonly uint DefaultForeground;

        /// <summary>
        /// The default selection background color of the terminal, represented in Win32 COLORREF format.
        /// </summary>
        public readonly uint DefaultSelectionBackground;

        /// <summary>
        /// The opacity alpha for the selection color of the terminal, must be between 1.0 and 0.0.
        /// </summary>
        public readonly float SelectionBackgroundAlpha;

        /// <summary>
        /// The style of cursor to use in the terminal.
        /// </summary>
        public readonly CursorStyle CursorStyle;

        /// <summary>
        /// The color array to use for the terminal, filling the standard vt100 16 color table, represented in Win32 COLORREF format.
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, ArraySubType = UnmanagedType.U4, SizeConst = 16)]

Review comment (suggestion):
This changes the public API contract of `TerminalTheme`, doesn't it? We don't know how our consumers are using it.

Code after:
        /// Cursor will be rendered as an underline that does not blink.
        /// </summary>
        SteadyUnderline = 4,

        /// <summary>
        /// Cursor will be rendered as a vertical blinking bar.
        /// </summary>
        BlinkingBar = 5,

        /// <summary>
        /// Cursor will be rendered as a vertical bar that does not blink.
        /// </summary>
        SteadyBar = 6,
    }

    /// <summary>
    /// Structure for color handling in the terminal.
    /// </summary>
    /// <remarks>Keep in sync with HwndTerminal.hpp.</remarks>
    [StructLayout(LayoutKind.Sequential)]
    public struct TerminalTheme
    {
        /// <summary>
        /// The default background color of the terminal, represented in Win32 COLORREF format.
        /// </summary>
        public uint DefaultBackground;

        /// <summary>
        /// The default foreground color of the terminal, represented in Win32 COLORREF format.
        /// </summary>
        public uint DefaultForeground;

        /// <summary>
        /// The default selection background color of the terminal, represented in Win32 COLORREF format.
        /// </summary>
        public uint DefaultSelectionBackground;

        /// <summary>
        /// The opacity alpha for the selection color of the terminal, must be between 1.0 and 0.0.
        /// </summary>
        public float SelectionBackgroundAlpha;

        /// <summary>
        /// The style of cursor to use in the terminal.
        /// </summary>
        public CursorStyle CursorStyle;

        /// <summary>
        /// The color array to use for the terminal, filling the standard vt100 16 color table, represented in Win32 COLORREF format.
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, ArraySubType = UnmanagedType.U4, SizeConst = 16)]