# `SquidMesh.Step`
[🔗](https://github.com/ccarvalho-eng/squid_mesh/blob/main/lib/squid_mesh/step.ex#L1)

Public contract for authoring native Squid Mesh workflow steps.

Native steps return Squid Mesh values and receive a `SquidMesh.Step.Context`.
The runtime adapts them into the internal Jido execution path, so authors do
not need to depend on Jido for the common workflow-step path.

# `result`

```elixir
@type result() ::
  {:ok, map()}
  | {:ok, map(), keyword()}
  | {:error, term()}
  | {:retry, term()}
  | {:retry, term(), keyword()}
```

# `schema`

```elixir
@type schema() :: keyword(keyword())
```

# `run`

```elixir
@callback run(input :: map(), context :: SquidMesh.Step.Context.t()) :: result()
```

---

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