Stable, portable reference to a Work, Vigil or external controller loop.
@type t() :: %Spectre.Operation.Ref{ controller: module() | nil, correlation_id: String.t() | nil, id: String.t(), kind: :work | :vigil | :directive, subject_id: String.t() }
@spec from_loop(Spectre.Operation.Loop.t()) :: t()
@spec validate(t()) :: :ok | {:error, term()}
@spec validate!(t()) :: t()