///|
/// Start a host builder for the application `name` with the command-line
/// arguments `args`. The services record is `Unit`.
/// Explicit starting settings replace process inputs. `environment` is a
/// default name and enables the environments part. Environment files need a
/// primary part such as `@hosting.app_dirs()`. Parse the name with
/// `@lander.EnvironmentName::parse` at the caller boundary.
pub fn cli(
  name : @lander_core.AppName,
  args : Array[String],
  env_vars? : &@hosting.IntoEnvVars,
  working_dir? : @lander_core.AbsolutePath,
  environment? : @conventions.EnvironmentName,
) -> @hosting.HostBuilder[Unit] {
  @hosting.builder(name, args, env_vars?, working_dir?, environment?)
}

///|
/// The application name type of `cli` and its parse error, from
/// `moonrockz/moon-lander-core`.
pub using @lander_core {type AppName, type AppNameError, type AppNameRule}

///|
/// The parsed environment name for the starting default, from
/// `moonrockz/moon-lander-config/conventions`.
pub using @conventions {type EnvironmentName}

///|
/// Parsed profile selection and loaded activation metadata.
pub using @config {
  type ProfileName,
  type ProfileNames,
  type ProfileSelection,
  type ProfileState,
  type ProfileResolution,
}

///|
/// The opt-in profile policy used by `@hosting.profiles`.
pub using @profiles {type Policy}