Terminal Capabilities Detector
class TerminalCapabilitiesDetector(envProvider: (String) -> String? = { System.getenv(it) }, hasConsole: () -> Boolean = { System.console() != null }, consoleCharsetProvider: () -> Charset? = { System.console()?.charset() }, osNameProvider: () -> String = { System.getProperty("os.name").orEmpty() })