# Data Template Reference

## Dungeon Data File Structure

Each dungeon is a TypeScript file in `src/data/` that exports a `DungeonData` object.

```typescript
import type { DungeonData } from "@/types/dungeon";

export const dungeonSlug: DungeonData = {
  id: "dungeon-slug",
  name: "Dungeon Name",
  descriptionHtml: `Brief layout with <span class="wing-badge wing-arcane">Wing</span> badges if applicable`,
  headerImage: "/assets/dungeon_name_header.jpg",
  icon: "/assets/dungeon_dungeon_name.jpg",
  sections: [
    {
      type: "trash",
      data: {
        header: "Area Name — Trash Before BossName",
        content: [
          { type: "quickRef", data: { html: `<strong>Environment:</strong> Brief description.` } },
          {
            type: "mob",
            data: {
              name: "Mob Name (Immune to CC)",
              nameHtml: `Mob Name <span style="color: var(--accent-red); font-size: 12px;">(Immune to CC)</span>`,
              tankRelevant: true,
              abilitiesHtml: [
                `<a href="https://www.wowhead.com/beta/spell=123456/ability-name">Ability Name</a> — TANK: What to do.`,
              ],
            },
          },
        ],
      },
    },
    {
      type: "boss",
      data: {
        bossNumber: "Boss 1 · Area/Wing",
        name: "Boss Name",
        subtitle: "One-line fight summary",
        image: "/assets/boss_name_boss_fight.jpg",
        abilities: [
          {
            name: "Ability Name",
            wowheadUrl: "https://www.wowhead.com/beta/spell=123456/ability-name",
            role: "tank",
            importance: "tank-important",
            descriptionHtml: `<ul><li><span class="warn">Warning.</span></li></ul>`,
          },
          {
            name: "Ability Name",
            wowheadUrl: "https://www.wowhead.com/beta/spell=123457/ability-name",
            role: "everyone",
            importance: "everyone-important",
            descriptionHtml: `<ul><li>Description.</li></ul>`,
          },
        ],
      },
    },
    { type: "divider" },
  ],
};
```

## Registering in index.ts

```typescript
import { dungeonSlug } from "./dungeon-slug";

// In dungeonList (alphabetical):
{ id: "dungeon-slug", name: "Dungeon Name", icon: "/assets/dungeon_dungeon_name.jpg" },

// In dungeonDataMap:
"dungeon-slug": dungeonSlug,
```

## Roles & Importance

| Role | Importance | Visual |
|------|-----------|--------|
| `"tank"` | `"tank-important"` | Blue left border + badge |
| `"everyone"` | `"everyone-important"` | Amber left border + badge |
| `"healer"` | `"healer-important"` | Green left border + badge |
| `"dps"` | `null` | Red badge, no border |

## HTML Classes: `warn` (red), `tip` (green), `wing-badge wing-arcane/void/light`

## Wowhead: `<a href="https://www.wowhead.com/beta/spell={ID}/{slug}">Name</a>`
