# `Jido.Evolve.Options`
[🔗](https://github.com/agentjido/jido_evolve/blob/v1.0.0/lib/jido_evolve/options.ex#L1)

Canonical option validation and normalization for `Jido.Evolve.evolve/1`.

# `t`

```elixir
@type t() :: %Jido.Evolve.Options{
  config: nil | nil | any(),
  context: map(),
  crossover: nil | nil | any(),
  fitness: any(),
  initial_population: [any()],
  mutation: nil | nil | any(),
  selection: nil | nil | any()
}
```

# `new`

```elixir
@spec new(keyword() | map()) :: {:ok, t()} | {:error, Exception.t()}
```

Validate and normalize public evolve options.

# `new!`

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

Validate and normalize options, raising on invalid input.

---

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