# `GameServer.Payments.Product`
[🔗](https://github.com/appsinacup/game_server/blob/v1.0.26/lib/game_server/payments/product.ex#L1)

Product struct from GameServer.

This is a stub module for SDK type definitions. The actual struct
is provided by GameServer at runtime.

## Fields

- `id` - Product ID (UUIDv7 string)
- `sku` - Stable identifier the game and providers agree on (string)
- `title` - Display title (string)
- `description` - Display description (string)
- `kind` - `"entitlement"`, `"consumable"` or `"subscription"` (string)
- `active` - Whether the product is offered in the store (boolean)
- `grant_config` - Free-form payout description; the game reads it in
  `after_purchase_fulfilled/1` (map)
- `metadata` - Arbitrary product metadata (map)
- `inserted_at` - Creation timestamp
- `updated_at` - Last update timestamp

# `t`

```elixir
@type t() :: %GameServer.Payments.Product{
  active: boolean(),
  description: String.t(),
  grant_config: map(),
  id: String.t(),
  inserted_at: DateTime.t(),
  kind: String.t(),
  metadata: map(),
  sku: String.t(),
  title: String.t(),
  updated_at: DateTime.t()
}
```

---

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