# `GameServer.Quests.Quest`
[🔗](https://github.com/appsinacup/game_server/blob/v1.0.26/lib/game_server/quests/quest.ex#L1)

Quest definition struct from GameServer.

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

## Fields

- `id` - Quest ID (UUID string)
- `key` - Unique slug (string)
- `title` - Display title (string)
- `description` - Optional description (string)
- `icon_url` - Optional icon URL (string)
- `sort_order` - Display ordering (integer, default 0)
- `hidden` - Whether hidden until completed (boolean)
- `kind` - `"achievement" | "daily" | "weekly" | "event" | "chain"`
- `objectives` - List of `GameServer.Quests.Objective`
- `rewards` - List of `GameServer.Quests.Reward`
- `auto_claim` - Grant rewards on completion without a claim step (boolean)
- `prerequisite_quest_key` - Key of the quest gating this one (string or nil)
- `starts_at` / `ends_at` - Event-quest window (DateTime or nil)
- `active` - Inactive quests never advance and are not listed (boolean)
- `metadata` - Arbitrary metadata (map)
- `inserted_at` - Creation timestamp
- `updated_at` - Last update timestamp

# `t`

```elixir
@type t() :: %GameServer.Quests.Quest{
  active: boolean(),
  auto_claim: boolean(),
  description: String.t() | nil,
  ends_at: DateTime.t() | nil,
  hidden: boolean(),
  icon_url: String.t() | nil,
  id: String.t(),
  inserted_at: DateTime.t(),
  key: String.t(),
  kind: String.t(),
  metadata: map(),
  objectives: [GameServer.Quests.Objective.t()],
  prerequisite_quest_key: String.t() | nil,
  rewards: [GameServer.Quests.Reward.t()],
  sort_order: integer(),
  starts_at: DateTime.t() | nil,
  title: String.t(),
  updated_at: DateTime.t()
}
```

---

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