Revision-bound, rail-neutral purchase preflight decisions.
The value contains host-renderable decision facts and, only after a durable override, an opaque short-lived capability. It never carries provider evidence or customer identity; the public fields themselves are not mutation authority.
Summary
Functions
Rechecks a decision immediately before delegating a controllable Stripe command.
Types
@type reason() ::
:no_equivalent_grant
| :equivalent_other_rail
| :missing_snapshot
| :stale_snapshot
| :repairing_snapshot
| :ambiguous_snapshot
| :unmapped_target
| :changed_revision
@type status() :: :eligible | :block | :warn
@type t() :: %Accrue.Entitlements.PurchaseDecision{ guidance: String.t(), logical_plan: atom() | nil, override_capability: String.t() | nil, reason: reason(), revision: non_neg_integer() | nil, sources: [Accrue.Entitlements.Snapshot.source()], status: status(), target_rail: atom() }
Functions
Rechecks a decision immediately before delegating a controllable Stripe command.
@spec evaluate(Accrue.Entitlements.Snapshot.t() | nil, atom(), String.t(), keyword()) :: t()