# `SystemOneSDK.Client`
[🔗](https://github.com/nshkrdotcom/system_one_sdk/blob/system_one_sdk-v0.6.0/packages/system_one_sdk/lib/system_one_sdk/client.ex#L1)

Provider-neutral System One client.

A client contains a provider module plus opaque provider state. The default
provider is `SystemOneSDK.Providers.TypeSafe`, backed by `TypeSafeAPISDK`.

During the 0.5.0 extraction, selected low-level fields are mirrored from the
provider client so the existing semantic test/runtime suite can be migrated
incrementally. Provider execution itself goes through the provider behaviour.

# `t`

```elixir
@type t() :: %SystemOneSDK.Client{
  api_key: term(),
  base_url: term(),
  context: term(),
  default_model: String.t(),
  headers: term(),
  max_request_bytes: pos_integer() | nil,
  pristine_client: term(),
  provider: module(),
  provider_client: term(),
  response_contract: map(),
  retry: term(),
  timeout_ms: term(),
  transport: term(),
  transport_opts: term()
}
```

# `new`

```elixir
@spec new(keyword()) :: t()
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
