# `SquidMesh.Workflow.Info`
[🔗](https://github.com/ccarvalho-eng/squid_mesh/blob/main/lib/squid_mesh/workflow/info.ex#L1)

Read helpers for compiled Squid Mesh workflow Spark metadata.

The runtime still exposes `workflow_definition/0` for durable execution, while
this module gives tests, tooling, and planner adapters direct access to the
normalized workflow specification produced by the workflow DSL.

# `fetch_spec`

```elixir
@spec fetch_spec(module()) ::
  {:ok, SquidMesh.Workflow.Spec.t()}
  | {:error, SquidMesh.Workflow.Definition.load_error()}
```

Fetches the normalized workflow spec.

# `payload`

```elixir
@spec payload(module()) :: [SquidMesh.Workflow.Definition.payload_field()]
```

Returns the merged workflow payload contract.

# `retries`

```elixir
@spec retries(module()) :: [SquidMesh.Workflow.Definition.retry()]
```

Returns normalized retry policies.

# `spec`

```elixir
@spec spec(module()) :: SquidMesh.Workflow.Spec.t()
```

Returns the normalized, serializable workflow spec.

# `steps`

```elixir
@spec steps(module()) :: [SquidMesh.Workflow.StepSpec.t()]
```

Returns Spark step entities with runtime-resolved native step metadata.

# `transitions`

```elixir
@spec transitions(module()) :: [SquidMesh.Workflow.Definition.transition()]
```

Returns normalized workflow transitions.

# `triggers`

```elixir
@spec triggers(module()) :: [SquidMesh.Workflow.Definition.trigger()]
```

Returns normalized workflow triggers.

---

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