# `JevDSL.Question`
[🔗](https://github.com/boxxxie/jev_dsl/blob/v0.1.0/lib/jev_dsl/contract.ex#L1)

Typed representation of a single compiled question (`:noul`, `:choice`, or `:score`)
within a `JevDSL.Contract`.

# `criteria_key`

```elixir
@type criteria_key() :: atom() | String.t() | boolean()
```

# `criteria_type`

```elixir
@type criteria_type() ::
  %{optional(criteria_key()) =&gt; term()} | [{criteria_key(), term()}]
```

# `question_key`

```elixir
@type question_key() :: atom() | String.t()
```

# `question_type`

```elixir
@type question_type() :: :noul | :choice | :score
```

# `t`

```elixir
@type t() :: %JevDSL.Question{
  criteria: criteria_type(),
  instructions: term(),
  name: question_key(),
  type: question_type()
}
```

---

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