Public representation of one workflow step attempt.
Attempt history is exposed separately from the persistence schema so host applications can inspect retry history without depending on Ecto structs.
@type status() :: :running | :completed | :failed
@type t() :: %SquidMesh.StepAttempt{ attempt_number: term(), error: term(), id: term(), inserted_at: term(), status: term(), updated_at: term() }