lib/graft/validate/plan/step.ex

defmodule Graft.Validate.Plan.Step do
  @moduledoc """
  All commands to run inside a single repo, in fixed order. Steps are
  themselves ordered topologically across the plan — dependencies run
  before their consumers.
  """

  alias Graft.Validate.Plan.Command

  @type t :: %__MODULE__{
          repo: atom(),
          repo_path: Path.t(),
          commands: [Command.t()]
        }

  defstruct [:repo, :repo_path, :commands]
end