# wolkenschutz/keystoneloot architecture

> Architecture diagram of the GitHub repository wolkenschutz/keystoneloot, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-13). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/wolkenschutz/keystoneloot
- Repository: https://github.com/wolkenschutz/keystoneloot

## Overview

KeystoneLoot is a World of Warcraft addon for browsing loot and managing character- and spec-specific wishlists. Players use its main window to filter dungeon, raid, and Catalyst items, then mark favorites; the addon also provides notifications, reminders, teleports, and supporting tools. The README identifies the favorites and public API implementations, but no source excerpts were supplied, so other module links are limited to relationships the README documents.

Main entry points: [`ui/keystoneloot_frame`](https://github.com/wolkenschutz/keystoneloot/tree/main/ui/keystoneloot_frame) (Loot Window), [`ui/dungeons_frame`](https://github.com/wolkenschutz/keystoneloot/tree/main/ui/dungeons_frame) (Dungeon Loot), [`ui/raids_frame`](https://github.com/wolkenschutz/keystoneloot/tree/main/ui/raids_frame) (Raid Loot), [`ui/catalyst_frame`](https://github.com/wolkenschutz/keystoneloot/tree/main/ui/catalyst_frame) (Catalyst Loot)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_browse["Loot Browsing"]
  node_main_window["Loot Window"]
  node_loot_catalog["Loot Catalog"]
  node_dungeon_view["Dungeon Loot"]
  node_raid_view["Raid Loot"]
  node_catalyst_view["Catalyst Loot"]
  node_filtering["Loot Filtering<br/>[query.lua]"]
end

subgraph group_favorites["Favorites and API"]
  node_favorites_ui["Favorite Controls"]
  node_favorites["Favorites<br/>[favorites.lua]"]
  node_character_data["Character Data<br/>[character.lua]"]
  node_addon_api["Public Addon API<br/>[api.lua]"]
end

subgraph group_events["Group and Spec Tools"]
  node_drop_notice["Drop Notifications"]
  node_loot_reminder["Loot Spec Reminder"]
  node_group_reminder["Group Favorites"]
  node_teleport["Dungeon Teleports"]
end

subgraph group_support["Addon Support"]
  node_keystone_tooltip["Keystone Tooltip"]
  node_minimap["Minimap Button"]
  node_localization["Localization"]
end

node_player(("Player"))
node_external_addons(("Other Addons"))

node_player -->|"opens"| node_main_window
node_main_window -->|"browses"| node_dungeon_view
node_main_window -->|"browses"| node_raid_view
node_main_window -->|"browses"| node_catalyst_view
node_main_window -->|"filters by"| node_filtering
node_main_window -->|"manages"| node_favorites_ui
node_favorites_ui -->|"exports and imports"| node_favorites
node_external_addons -->|"uses"| node_addon_api
node_player -->|"receives"| node_drop_notice
node_player -->|"receives"| node_loot_reminder
node_player -->|"receives"| node_group_reminder
node_player -->|"uses"| node_teleport
node_player -->|"views"| node_keystone_tooltip
node_player -->|"toggles window"| node_minimap

click node_main_window "https://github.com/wolkenschutz/keystoneloot/tree/main/ui/keystoneloot_frame"
click node_loot_catalog "https://github.com/wolkenschutz/keystoneloot/tree/main/data"
click node_dungeon_view "https://github.com/wolkenschutz/keystoneloot/tree/main/ui/dungeons_frame"
click node_raid_view "https://github.com/wolkenschutz/keystoneloot/tree/main/ui/raids_frame"
click node_catalyst_view "https://github.com/wolkenschutz/keystoneloot/tree/main/ui/catalyst_frame"
click node_filtering "https://github.com/wolkenschutz/keystoneloot/blob/main/modules/query.lua"
click node_favorites_ui "https://github.com/wolkenschutz/keystoneloot/tree/main/ui/keystoneloot_frame"
click node_favorites "https://github.com/wolkenschutz/keystoneloot/blob/main/modules/favorites.lua"
click node_character_data "https://github.com/wolkenschutz/keystoneloot/blob/main/modules/character.lua"
click node_addon_api "https://github.com/wolkenschutz/keystoneloot/blob/main/modules/api.lua"
click node_drop_notice "https://github.com/wolkenschutz/keystoneloot/tree/main/ui/drop_notification_frame"
click node_loot_reminder "https://github.com/wolkenschutz/keystoneloot/tree/main/ui/loot_reminder_frame"
click node_group_reminder "https://github.com/wolkenschutz/keystoneloot/tree/main/ui/mythicplus_notification_frame"
click node_teleport "https://github.com/wolkenschutz/keystoneloot/tree/main/ui/templates"
click node_keystone_tooltip "https://github.com/wolkenschutz/keystoneloot/blob/main/ui/keystone_tooltip.lua"
click node_minimap "https://github.com/wolkenschutz/keystoneloot/tree/main/ui/minimap_button"
click node_localization "https://github.com/wolkenschutz/keystoneloot/tree/main/locales"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_main_window,node_loot_catalog,node_dungeon_view,node_raid_view,node_catalyst_view,node_filtering toneBlue
class node_favorites_ui,node_favorites,node_character_data,node_addon_api toneAmber
class node_drop_notice,node_loot_reminder,node_group_reminder,node_teleport toneMint
class node_keystone_tooltip,node_minimap,node_localization toneRose
class node_player,node_external_addons toneIndigo
```

## Components

### Loot Browsing

- [Loot Window](https://github.com/wolkenschutz/keystoneloot/tree/main/ui/keystoneloot_frame): `ui/keystoneloot_frame`
- [Loot Catalog](https://github.com/wolkenschutz/keystoneloot/tree/main/data): `data`
- [Dungeon Loot](https://github.com/wolkenschutz/keystoneloot/tree/main/ui/dungeons_frame): `ui/dungeons_frame`
- [Raid Loot](https://github.com/wolkenschutz/keystoneloot/tree/main/ui/raids_frame): `ui/raids_frame`
- [Catalyst Loot](https://github.com/wolkenschutz/keystoneloot/tree/main/ui/catalyst_frame): `ui/catalyst_frame`
- [Loot Filtering](https://github.com/wolkenschutz/keystoneloot/blob/main/modules/query.lua): `modules/query.lua`

### Favorites and API

- [Favorite Controls](https://github.com/wolkenschutz/keystoneloot/tree/main/ui/keystoneloot_frame): `ui/keystoneloot_frame`
- [Favorites](https://github.com/wolkenschutz/keystoneloot/blob/main/modules/favorites.lua): `modules/favorites.lua`
- [Character Data](https://github.com/wolkenschutz/keystoneloot/blob/main/modules/character.lua): `modules/character.lua`
- [Public Addon API](https://github.com/wolkenschutz/keystoneloot/blob/main/modules/api.lua): `modules/api.lua`

### Group and Spec Tools

- [Drop Notifications](https://github.com/wolkenschutz/keystoneloot/tree/main/ui/drop_notification_frame): `ui/drop_notification_frame`
- [Loot Spec Reminder](https://github.com/wolkenschutz/keystoneloot/tree/main/ui/loot_reminder_frame): `ui/loot_reminder_frame`
- [Group Favorites](https://github.com/wolkenschutz/keystoneloot/tree/main/ui/mythicplus_notification_frame): `ui/mythicplus_notification_frame`
- [Dungeon Teleports](https://github.com/wolkenschutz/keystoneloot/tree/main/ui/templates): `ui/templates`

### Addon Support

- [Keystone Tooltip](https://github.com/wolkenschutz/keystoneloot/blob/main/ui/keystone_tooltip.lua): `ui/keystone_tooltip.lua`
- [Minimap Button](https://github.com/wolkenschutz/keystoneloot/tree/main/ui/minimap_button): `ui/minimap_button`
- [Localization](https://github.com/wolkenschutz/keystoneloot/tree/main/locales): `locales`

### Other components

- **Player**
- **Other Addons**

## Connections

- Player → Loot Window: opens (evidence: `README.md`)
- Loot Window → Dungeon Loot: browses (evidence: `README.md`)
- Loot Window → Raid Loot: browses (evidence: `README.md`)
- Loot Window → Catalyst Loot: browses (evidence: `README.md`)
- Loot Window → Loot Filtering: filters by (evidence: `README.md`)
- Loot Window → Favorite Controls: manages (evidence: `README.md`)
- Favorite Controls → Favorites: exports and imports (evidence: `README.md`)
- Other Addons → Public Addon API: uses (evidence: `README.md`)
- Player → Drop Notifications: receives (evidence: `README.md`)
- Player → Loot Spec Reminder: receives (evidence: `README.md`)
- Player → Group Favorites: receives (evidence: `README.md`)
- Player → Dungeon Teleports: uses (evidence: `README.md`)
- Player → Keystone Tooltip: views (evidence: `README.md`)
- Player → Minimap Button: toggles window (evidence: `README.md`)
