# `WorkflowStem.Types`
[🔗](https://github.com/fosferon/workflow_stem/blob/main/lib/workflow_stem/types.ex#L1)

Canonical types for the workflow stem.

The stem is the thin-waist contract between:
- host application (projection + events)
- `workflow_stem` (runtime)
- host adapters (persistence, notifications, capabilities)

# `artifact_hash`

```elixir
@type artifact_hash() :: String.t()
```

# `event`

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

# `execution_id`

```elixir
@type execution_id() :: String.t()
```

# `ir`

```elixir
@type ir() :: map()
```

# `payload`

```elixir
@type payload() :: map()
```

# `profile`

```elixir
@type profile() :: :flow | :fsm | :stepwise
```

# `reason`

```elixir
@type reason() :: term()
```

# `runtime`

```elixir
@type runtime() :: map()
```

# `runtime_context`

```elixir
@type runtime_context() :: map()
```

# `spec`

```elixir
@type spec() :: map()
```

# `tenant_id`

```elixir
@type tenant_id() :: String.t()
```

# `wait_cfg`

```elixir
@type wait_cfg() :: map()
```

# `workflow_handle`

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

---

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