Phase 6 adapter selection policy declaration for ASM provider resolution.
ASM consumes CLI core runtime profile configuration as a provider-registry rule. It does not expose request-time simulation selectors.
@type t() :: %ASM.AdapterSelectionPolicy{ config_key: String.t(), contract_version: String.t(), default_value_when_unset: String.t(), fail_closed_action_when_misconfigured: String.t(), owner_repo: String.t(), selection_surface: String.t() }
@spec contract_version() :: String.t()
@spec dump(t()) :: map()
@spec new(map() | keyword() | t()) :: {:ok, t()} | {:error, Exception.t()}
@spec new!(map() | keyword() | t()) :: t()
@spec owner_repo() :: String.t()