# 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 Wing 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: `Environment: Brief description.` } }, { type: "mob", data: { name: "Mob Name (Immune to CC)", nameHtml: `Mob Name (Immune to CC)`, tankRelevant: true, abilitiesHtml: [ `Ability Name — 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: ``, }, { name: "Ability Name", wowheadUrl: "https://www.wowhead.com/beta/spell=123457/ability-name", role: "everyone", importance: "everyone-important", descriptionHtml: ``, }, ], }, }, { 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: `Name`