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

Strict Choice with 2..255 alternatives and finite caller-key restoration.

Pair lists preserve order. Maps are sorted by wire key, not assumed to retain
insertion order. `:extra` permits future fields except type/instructions/criteria.

# `t`

```elixir
@type t() :: %SystemOneSDK.Question.Choice{
  criteria: list(),
  extra: map(),
  instructions: term()
}
```

# `new`

```elixir
@spec new(term(), map() | list(), keyword()) ::
  {:ok, t()} | {:error, SystemOneSDK.Error.t()}
```

# `new!`

```elixir
@spec new!(term(), map() | list(), keyword()) :: t()
```

---

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