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

Serializable, normalized workflow specification used to rebuild planner state.

The public workflow DSL compiles to the runtime definition used by durable
execution. This struct captures the same workflow shape as plain data so
planner state can be reconstructed without exposing Runic structs as public
API.

# `t`

```elixir
@type t() :: %SquidMesh.Workflow.Spec{
  entry_step: atom() | nil,
  entry_steps: [atom()],
  initial_step: atom(),
  payload: [SquidMesh.Workflow.Definition.payload_field()],
  retries: [SquidMesh.Workflow.Definition.retry()],
  steps: [SquidMesh.Workflow.Definition.step()],
  transitions: [SquidMesh.Workflow.Definition.transition()],
  triggers: [SquidMesh.Workflow.Definition.trigger()],
  workflow: module()
}
```

---

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