# `DripDrop.SequenceAuthoring`
[🔗](https://github.com/agoodway/dripdrop/blob/v0.1.0/lib/dripdrop/sequence_authoring.ex#L1)

Public authoring API for sequences, versions, steps, transitions, and conditions.

# `activate_sequence_version`

```elixir
@spec activate_sequence_version(Ecto.UUID.t()) ::
  {:ok, Ecto.Schema.t()} | {:error, term()}
```

Activates a sequence version and archives any previously active version.

# `create_condition`

```elixir
@spec create_condition(Ecto.UUID.t(), map()) ::
  {:ok, Ecto.Schema.t()} | {:error, Ecto.Changeset.t()}
```

Creates a condition attached to a step or transition.

# `create_sequence`

```elixir
@spec create_sequence(map()) :: {:ok, Ecto.Schema.t()} | {:error, Ecto.Changeset.t()}
```

Creates a sequence definition.

# `create_sequence_version`

```elixir
@spec create_sequence_version(Ecto.UUID.t(), map()) ::
  {:ok, Ecto.Schema.t()} | {:error, Ecto.Changeset.t()}
```

Creates an immutable authoring version for a sequence.

# `create_step`

```elixir
@spec create_step(Ecto.UUID.t(), map()) ::
  {:ok, Ecto.Schema.t()} | {:error, Ecto.Changeset.t()}
```

Creates a step in a sequence version.

# `create_step_transition`

```elixir
@spec create_step_transition(Ecto.UUID.t(), map()) ::
  {:ok, Ecto.Schema.t()} | {:error, Ecto.Changeset.t()}
```

Creates a transition between sequence steps.

# `validate_sequence_version`

```elixir
@spec validate_sequence_version(Ecto.UUID.t()) ::
  {:ok, Ecto.Schema.t()} | {:error, list()}
```

Validates that a sequence version is structurally dispatchable.

---

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