# diego3g/lootcouncil architecture

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

- Interactive diagram: https://gitdiagram.com/diego3g/lootcouncil
- Repository: https://github.com/diego3g/lootcouncil

## Overview

This appears to be a World of Warcraft loot-council addon: council members manage loot sessions, collect player responses, and review past decisions through in-game UI. The tree indicates distinct capabilities for loot/session handling, roster and permissions, communication and synchronization, persistence/history, and guild-facing screens. The README is empty and no source excerpts were provided, so component relationships and the precise user-to-result call flow cannot be verified; the graph groups the apparent responsibilities without asserting unsupported connections.

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_loot["Loot workflow"]
  node_loot["Loot handling<br/>[Loot.lua]"]
  node_session["Loot sessions<br/>[Session.lua]"]
  node_response["Response parsing<br/>[ResponseParser.lua]"]
  node_comparison["Item comparison<br/>[Comparison.lua]"]
  node_equipability["Equipability checks<br/>[Equipability.lua]"]
  node_bis["Best-in-slot data<br/>[BiS.lua]"]
  node_attendance["Attendance<br/>[Attendance.lua]"]
end

subgraph group_coordination["Council coordination"]
  node_comms["Communication<br/>[Comms.lua]"]
  node_chat["Chat integration<br/>[Chat.lua]"]
  node_sync["Synchronization<br/>[Sync.lua]"]
  node_messagebus["Message bus<br/>[MessageBus.lua]"]
end

subgraph group_state["Roster and records"]
  node_guild["Guild integration<br/>[Guild.lua]"]
  node_roster["Player roster<br/>[Roster.lua]"]
  node_permissions["Permissions<br/>[Permissions.lua]"]
  node_persistence["Persistence<br/>[Persistence.lua]"]
  node_database[("Database<br/>[Database.lua]")]
  node_history["Loot history<br/>[History.lua]"]
end

subgraph group_interface["In-game interface"]
  node_ui["UI initialization<br/>[UI.lua]"]
  node_mainwindow["Main window<br/>[MainWindow.lua]"]
  node_lootwindow["Loot window<br/>[LootWindow.lua]"]
  node_lootpopup["Loot popup<br/>[LootPopup.lua]"]
  node_voting["Voting tab<br/>[VotingTab.lua]"]
  node_historytab["History tab<br/>[HistoryTab.lua]"]
  node_guildtab["Guild tab<br/>[GuildTab.lua]"]
  node_settingstab["Settings tab<br/>[SettingsTab.lua]"]
  node_playerstab["Players tab<br/>[PlayersTab.lua]"]
end

click node_loot "https://github.com/diego3g/lootcouncil/blob/master/Modules/Loot.lua"
click node_session "https://github.com/diego3g/lootcouncil/blob/master/Modules/Session.lua"
click node_response "https://github.com/diego3g/lootcouncil/blob/master/Modules/ResponseParser.lua"
click node_comparison "https://github.com/diego3g/lootcouncil/blob/master/Modules/Comparison.lua"
click node_equipability "https://github.com/diego3g/lootcouncil/blob/master/Modules/Equipability.lua"
click node_bis "https://github.com/diego3g/lootcouncil/blob/master/Modules/BiS.lua"
click node_attendance "https://github.com/diego3g/lootcouncil/blob/master/Modules/Attendance.lua"
click node_comms "https://github.com/diego3g/lootcouncil/blob/master/Modules/Comms.lua"
click node_chat "https://github.com/diego3g/lootcouncil/blob/master/Modules/Chat.lua"
click node_sync "https://github.com/diego3g/lootcouncil/blob/master/Modules/Sync.lua"
click node_messagebus "https://github.com/diego3g/lootcouncil/blob/master/Modules/MessageBus.lua"
click node_guild "https://github.com/diego3g/lootcouncil/blob/master/Modules/Guild.lua"
click node_roster "https://github.com/diego3g/lootcouncil/blob/master/Modules/Roster.lua"
click node_permissions "https://github.com/diego3g/lootcouncil/blob/master/Modules/Permissions.lua"
click node_persistence "https://github.com/diego3g/lootcouncil/blob/master/Modules/Persistence.lua"
click node_database "https://github.com/diego3g/lootcouncil/blob/master/Database.lua"
click node_history "https://github.com/diego3g/lootcouncil/blob/master/Modules/History.lua"
click node_ui "https://github.com/diego3g/lootcouncil/blob/master/UI/UI.lua"
click node_mainwindow "https://github.com/diego3g/lootcouncil/blob/master/UI/MainWindow.lua"
click node_lootwindow "https://github.com/diego3g/lootcouncil/blob/master/UI/LootWindow.lua"
click node_lootpopup "https://github.com/diego3g/lootcouncil/blob/master/UI/LootPopup.lua"
click node_voting "https://github.com/diego3g/lootcouncil/blob/master/UI/Tabs/VotingTab.lua"
click node_historytab "https://github.com/diego3g/lootcouncil/blob/master/UI/Tabs/HistoryTab.lua"
click node_guildtab "https://github.com/diego3g/lootcouncil/blob/master/UI/Tabs/GuildTab.lua"
click node_settingstab "https://github.com/diego3g/lootcouncil/blob/master/UI/Tabs/SettingsTab.lua"
click node_playerstab "https://github.com/diego3g/lootcouncil/blob/master/UI/PlayersTab.lua"

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_loot,node_session,node_response,node_comparison,node_equipability,node_bis,node_attendance toneBlue
class node_comms,node_chat,node_sync,node_messagebus toneAmber
class node_guild,node_roster,node_permissions,node_persistence,node_database,node_history toneMint
class node_ui,node_mainwindow,node_lootwindow,node_lootpopup,node_voting,node_historytab,node_guildtab,node_settingstab,node_playerstab toneRose
```

## Components

### Loot workflow

- [Loot handling](https://github.com/diego3g/lootcouncil/blob/master/Modules/Loot.lua): `Modules/Loot.lua`
- [Loot sessions](https://github.com/diego3g/lootcouncil/blob/master/Modules/Session.lua): `Modules/Session.lua`
- [Response parsing](https://github.com/diego3g/lootcouncil/blob/master/Modules/ResponseParser.lua): `Modules/ResponseParser.lua`
- [Item comparison](https://github.com/diego3g/lootcouncil/blob/master/Modules/Comparison.lua): `Modules/Comparison.lua`
- [Equipability checks](https://github.com/diego3g/lootcouncil/blob/master/Modules/Equipability.lua): `Modules/Equipability.lua`
- [Best-in-slot data](https://github.com/diego3g/lootcouncil/blob/master/Modules/BiS.lua): `Modules/BiS.lua`
- [Attendance](https://github.com/diego3g/lootcouncil/blob/master/Modules/Attendance.lua): `Modules/Attendance.lua`

### Council coordination

- [Communication](https://github.com/diego3g/lootcouncil/blob/master/Modules/Comms.lua): `Modules/Comms.lua`
- [Chat integration](https://github.com/diego3g/lootcouncil/blob/master/Modules/Chat.lua): `Modules/Chat.lua`
- [Synchronization](https://github.com/diego3g/lootcouncil/blob/master/Modules/Sync.lua): `Modules/Sync.lua`
- [Message bus](https://github.com/diego3g/lootcouncil/blob/master/Modules/MessageBus.lua): `Modules/MessageBus.lua`

### Roster and records

- [Guild integration](https://github.com/diego3g/lootcouncil/blob/master/Modules/Guild.lua): `Modules/Guild.lua`
- [Player roster](https://github.com/diego3g/lootcouncil/blob/master/Modules/Roster.lua): `Modules/Roster.lua`
- [Permissions](https://github.com/diego3g/lootcouncil/blob/master/Modules/Permissions.lua): `Modules/Permissions.lua`
- [Persistence](https://github.com/diego3g/lootcouncil/blob/master/Modules/Persistence.lua): `Modules/Persistence.lua`
- [Database](https://github.com/diego3g/lootcouncil/blob/master/Database.lua): `Database.lua`
- [Loot history](https://github.com/diego3g/lootcouncil/blob/master/Modules/History.lua): `Modules/History.lua`

### In-game interface

- [UI initialization](https://github.com/diego3g/lootcouncil/blob/master/UI/UI.lua): `UI/UI.lua`
- [Main window](https://github.com/diego3g/lootcouncil/blob/master/UI/MainWindow.lua): `UI/MainWindow.lua`
- [Loot window](https://github.com/diego3g/lootcouncil/blob/master/UI/LootWindow.lua): `UI/LootWindow.lua`
- [Loot popup](https://github.com/diego3g/lootcouncil/blob/master/UI/LootPopup.lua): `UI/LootPopup.lua`
- [Voting tab](https://github.com/diego3g/lootcouncil/blob/master/UI/Tabs/VotingTab.lua): `UI/Tabs/VotingTab.lua`
- [History tab](https://github.com/diego3g/lootcouncil/blob/master/UI/Tabs/HistoryTab.lua): `UI/Tabs/HistoryTab.lua`
- [Guild tab](https://github.com/diego3g/lootcouncil/blob/master/UI/Tabs/GuildTab.lua): `UI/Tabs/GuildTab.lua`
- [Settings tab](https://github.com/diego3g/lootcouncil/blob/master/UI/Tabs/SettingsTab.lua): `UI/Tabs/SettingsTab.lua`
- [Players tab](https://github.com/diego3g/lootcouncil/blob/master/UI/PlayersTab.lua): `UI/PlayersTab.lua`
