# `Squidie.Workflow.Info`
[🔗](https://github.com/dark-trench/squidie/blob/main/lib/squidie/workflow/info.ex#L1)

Read helpers for compiled Squidie 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.

# `definition_version`

```elixir
@spec definition_version(module()) :: String.t() | nil
```

Returns the optional workflow definition version.

# `fetch_spec`

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

Fetches the normalized workflow spec.

# `payload`

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

Returns the merged workflow payload contract.

# `retries`

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

Returns normalized retry policies.

# `spec`

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

Returns the normalized, serializable workflow spec.

# `steps`

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

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

# `transitions`

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

Returns normalized workflow transitions.

# `triggers`

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

Returns normalized workflow triggers.

---

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