# `Squidie.Step.Elixir`
[🔗](https://github.com/dark-trench/squidie/blob/main/lib/squidie/step/elixir.ex#L1)

Native action for invoking host-approved Elixir adapters from runtime specs.

Hosts expose this module through the action registry and provide adapter
definitions through registry-owned `action_opts`. Runtime-authored specs name
stable adapter keys and params only; they never provide modules, functions, or
executable code.

# `adapter_definition`

```elixir
@type adapter_definition() ::
  module()
  | {module(), atom()}
  | keyword()
  | %{optional(:module) =&gt; module(), optional(:function) =&gt; atom()}
  | %{optional(String.t()) =&gt; term()}
```

# `adapter_key`

```elixir
@type adapter_key() :: atom() | String.t()
```

# `validate_action_input`

```elixir
@spec validate_action_input(
  term(),
  keyword()
) :: :ok | {:error, map()}
```

Validates planned Elixir action input with host-owned adapter options.

---

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