I feel like routing this through `ncurses` is not only unnecessary (since we have a standard for this); it's also problematic. For many terminals, there is a significant lag between their last release and the last time their `terminfo` entry in `ncurses` got updated. (The entry for macOS's Terminal.app, for example, is already 3 years old and you get better results from `ncurses` by letting Terminal.app declare itself as being `xterm-256color`, rather than relying on the `nsterm` entry.) Rather than using `ncurses` for this, I'd rather see the principle of ["graceful degradation"](
https://en.wikipedia.org/wiki/Fault_tolerance) be applied here and let the terminal itself handle (that is, ignore) those SGR parameter values that it does not support.