# `Accrue.Entitlements.Grant`
[🔗](https://github.com/szTheory/accrue/blob/accrue-v1.5.1/lib/accrue/entitlements/grant.ex#L1)

A rail-qualified entitlement grant with retained supersession history.

# `t`

```elixir
@type t() :: %Accrue.Entitlements.Grant{
  __meta__: term(),
  account: term(),
  account_id: term(),
  account_revision: term(),
  effective_at: term(),
  environment: term(),
  expires_at: term(),
  id: term(),
  inserted_at: term(),
  logical_plan: term(),
  provider_lineage_id: term(),
  provider_order: term(),
  provider_order_key: term(),
  provider_product_id: term(),
  quantity: term(),
  rail: term(),
  source_item_id: term(),
  source_observation: term(),
  source_observation_id: term(),
  superseded_at: term(),
  updated_at: term()
}
```

# `changeset`

```elixir
@spec changeset(t() | Ecto.Changeset.t(), map()) :: Ecto.Changeset.t()
```

Builds the grant changeset; PostgreSQL chooses the current-row winner.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
