message: [terminal] Commands: ensure to_mnemonic() doesn't assert() on unimplemented prints
diff: @@ -241,11 +241,11 @@ class MnemonicBuilder {
  void operator()(FullReset const&) { build("RIS", "Reset to Initial state (hard reset)"); }
  void operator()(Linefeed const&) { build("\\n"); }
  void operator()(Backspace const&) { build("\\b"); }
  - void operator()(DeviceStatusReport const&) {} // TODO
  + void operator()(DeviceStatusReport const&) { build("TODO"); }
  void operator()(ReportCursorPosition const&) { build("CPR", "Report cursor position"); }
  void operator()(ReportExtendedCursorPosition const&) { build("DECXCPR", "Report cursor position (extended)."); }
  - void operator()(SendDeviceAttributes const&) {} // TODO
  - void operator()(SendTerminalId const&) {} // TODO
  + void operator()(SendDeviceAttributes const&) { build("TODO"); }
  + void operator()(SendTerminalId const&) { build("TODO"); }
  void operator()(ClearToEndOfScreen const&) { build("ED", "Clear to end of screen", 0); }
  void operator()(ClearToBeginOfScreen const&) { build("ED", "Clear to begin of screen", 1); }
  void operator()(ClearScreen const&) { build("ED", "Clear screen", 2); }
  @@ -331,9 +331,9 @@ class MnemonicBuilder {
  void operator()(SendMouseEvents const& v) {
  build(fmt::format("MOUSE({})", to_string(v.protocol)), "Send Mouse Events", v.enable);
  }
  - void operator()(ApplicationKeypadMode) {} // TODO
  - void operator()(DesignateCharset) {} // TODO
  - void operator()(SingleShiftSelect) {} // TODO
  + void operator()(ApplicationKeypadMode) { build("TODO"); }
  + void operator()(DesignateCharset) { build("TODO"); }
  + void operator()(SingleShiftSelect) { build("TODO"); }
  void operator()(ChangeWindowTitle const& v) {
  build("WINTITLE", fmt::format("Sets window title to {}", v.title));
  }
  