# `Trogon.Commanded.ConsistencyPolicy.MinVersionPolicy`
[🔗](https://github.com/straw-hat-team/beam-monorepo/blob/trogon_commanded@v1.0.1/apps/trogon_commanded/lib/trogon/commanded/consistency_policy/min_version_policy.ex#L1)

Consistency policy that retries until `projection.version >= required_version`.

# `milliseconds`

```elixir
@type milliseconds() :: pos_integer()
```

Positive integer milliseconds.

# `opts`

```elixir
@type opts() :: %{
  version: version(),
  timeout: Duration.t() | milliseconds(),
  delay: Duration.t() | milliseconds()
}
```

Options for `new!/1`. Accepts Duration or integer milliseconds for timeout/delay.

# `t`

```elixir
@type t() :: %Trogon.Commanded.ConsistencyPolicy.MinVersionPolicy{
  delay: milliseconds(),
  timeout: milliseconds(),
  version: version()
}
```

Retries until projection.version >= required version.

# `version`

```elixir
@type version() :: non_neg_integer()
```

Required projection version (event stream position).

# `from_proto`

```elixir
@spec from_proto(TrogonProto.Consistency.V1Alpha1.Consistency.t()) :: t()
```

Build policy from protobuf Consistency with min_version requirement.

Uses defaults (5s, 100ms) when proto omits durations.

# `new!`

```elixir
@spec new!(opts()) :: t()
```

# `to_proto`

```elixir
@spec to_proto(t()) :: TrogonProto.Consistency.V1Alpha1.Consistency.t()
```

Convert policy to protobuf Consistency.

---

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