Explicit recovery action used by Scrypath operator APIs.
Recovery actions are opt-in. They carry the stable references needed to route retries, backfills, or reindexes through existing Scrypath write paths rather than backend-native admin commands.
@type t() :: %Scrypath.Operator.RecoveryAction{ backend: module(), index: String.t() | nil, kind: :retry | :backfill | :reindex, mode: :inline | :manual | :oban | atom(), operation: :upsert | :delete | :unknown, reference: map(), schema: module() }
@spec new(keyword()) :: t()
@spec retry( Scrypath.Operator.FailedWork.t() | t(), keyword() ) :: {:ok, map()} | {:error, term()}