///|
/// Errors returned by `auto_launch` operations.
///
/// The error model is intentionally small and stable:
///
/// - validation errors describe incorrect input supplied by the caller
/// - discovery errors describe missing runtime information such as the current
///   executable path or home directory
/// - `NativeFailure` reports a backend-specific failure message produced by the
///   underlying platform API
///
/// This enum derives `Eq` and `Show`, which makes it convenient to inspect in
/// tests and to print in user-facing diagnostics.
pub enum AutoLaunchError {
  EmptyName
  EmptyExecutablePath
  EmptyBackgroundArgument
  ExecutablePathUnavailable
  HomeDirectoryUnavailable
  RelativeExecutablePath(String)
  UnsupportedPlatform(Platform)
  NativeFailure(action~ : String, message~ : String)
} derive(Eq, Show)