# `Monty.Experiment.MatchCriteria.NamedLMsMatch`
[🔗](https://github.com/d-led/ex.tbp.monty/blob/v0.1.0/packages/ex_tbp_monty_core/lib/monty/experiment/match_criteria/named_lms_match.ex#L1)

Satisfied once every named learning module has recognised an object.

Mirrors `tbp/monty/experiment/match_criteria.py::NamedLMsMatch`. An
experiment whose answer depends on particular columns — a hierarchy where the
top module must confirm what the one below it proposed — names them here, so
that a match elsewhere does not end the episode.

An empty set of ids would be satisfied before anything was seen, so it is
refused when the criterion is built.

# `t`

```elixir
@type t() :: %Monty.Experiment.MatchCriteria.NamedLMsMatch{ids: MapSet.t(String.t())}
```

# `new`

```elixir
@spec new([String.t()]) :: {:ok, t()} | {:error, :ids_must_not_be_empty}
```

A criterion that needs exactly these modules to match.

---

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