# `Monty.Simulators.Synthetic.Motor`
[🔗](https://github.com/d-led/ex.tbp.monty/blob/v0.1.0/packages/ex_tbp_monty_core/lib/monty/simulators/synthetic/motor.ex#L1)

A motor system that always takes one small step forward.

The smallest thing that implements the ported motor system interface: it
receives the first sensor module's percept and the filtered goals, and answers
the actions for the next environment step — in the same vocabulary the ported
policies answer in, so the world behind it does not care which of the two is
driving.

# `state`

```elixir
@type state() :: %{steps_taken: non_neg_integer(), goals_seen: non_neg_integer()}
```

# `motor_only_step`

Whether learning modules should sit this step out: never, for a plain step.

# `new`

```elixir
@spec new() :: state()
```

# `reset`

Forgets the previous episode's count, keeping the goals it was given.

---

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