Curly and colored underlines
This is originally a feature of Kitty, now also adopted by VTE (GNOME Terminal and friends). Technically two separate features, but they mostly make sense together, e.g. for spell checking.
SGR 4:3 (
\e[4:3m) attribute, strictly with a colon as separator, was introduced to start a curly underline.
In the mean time,
4:2 were also added as aliases for the standard
24 (turn off all kinds of underlining),
4 (single underline) and
21 (double underline), respectively.
At some point in the future, probably
4:5 could also stand for dotted and dashed underlines in some order (these are the five types of underlining supported by HTML/CSS).
SGR 58 and
59 sequences specify the color of the underline, following the pattern of
39. That is,
58:5:idx for an entry of the 256-color palette, or
58:2:... (wait, see #6377 (closed)) for direct RGB. There's no shortcut notation for the first 16 entries (corresponding to SGR 30-37 and 90-97), use the 256-color mode with indices of 0-15 instead.
59 reverts to the default, that is, the underline's color auto-following the text color.
In case you're short of bits, I believe it's okay to drop some precision, e.g. store only 4 bits per color channel. We were also considering this in the VTE bug.