# `Monty.Frameworks.Actions.MoveTangentially`
[🔗](https://github.com/d-led/ex.tbp.monty/blob/v0.1.0/packages/ex_tbp_monty_core/lib/monty/frameworks/actions/move_tangentially.ex#L1)

Move the agent sideways across the surface it is facing.

Mirrors `tbp/monty/frameworks/actions/actions.py::MoveTangentially`. The
direction is in the agent's own frame — a vector, not an angle — which is what
lets a surface policy ask for a move along a principal curvature.

# `t`

```elixir
@type t() :: %Monty.Frameworks.Actions.MoveTangentially{
  agent_id: atom() | String.t(),
  direction: [float()],
  distance: float()
}
```

---

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