# `Monty.Experiment.RecognitionStrategy.MinimumLMs`
[🔗](https://github.com/d-led/ex.tbp.monty/blob/v0.1.0/packages/ex_tbp_monty_core/lib/monty/experiment/recognition_strategy/minimum_lms.ex#L1)

Done once enough learning modules have concluded, whatever they concluded.

Mirrors `tbp/monty/experiment/recognition_strategy.py::MinimumLMs`. It reads only
*whether* a module concluded — `:match`, `:no_match` or `:time_out` all count —
which is what makes it usable when the question is "has every module made up
its mind" rather than "did we recognise the object".

# `call`

```elixir
@spec call(map(), Monty.Experiment.RecognitionStrategy.RecognitionCounter.t(), map()) ::
  Monty.Experiment.RecognitionStrategy.RecognitionResult.t()
```

Done when enough modules have concluded, however they concluded.

# `new`

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

A policy satisfied by `:min_lms` concluded modules.

Monty raises `ValueError` for a minimum that is not positive; here that is
`{:error, message}` with Monty's own words.

---

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