# WoW Addon Development Rules (Retail - Midnight Edition)

- **Version Fokus:** Ausschließlich World of Warcraft Retail (aktuelle Version/Midnight). Ignoriere Classic-API-Strukturen (z.B. kein `GetNumPartyMembers`).
- **Taint-Prävention:** Schreibe Code, der absolut sicher gegen UI-Taint ist. 
    - Nutze keine sicheren (secure) Blizzard-Funktionen oder Frames auf eine Weise, die den Execution Path "dirty" macht.
    - Vermeide das Überschreiben von Blizzard-Globalen.
    - Nutze `SecureHandlerTemplates`, wenn Interaktionen im Kampf (In-Combat) nötig sind.
- **API-Standards:** - Nutze moderne Mixins und das neue `C_`-Namespace System (z.B. `C_Timer`, `C_PlayerInfo`, `C_CurrencyInfo`).
    - Verwende das moderne Event-System: `frame:RegisterEvent` und `frame:SetScript("OnEvent", ...)`.
- **Code-Stil:**
    - Bevorzuge lokale Variablen (`local`) gegenüber globalen für Performance und Taint-Schutz.
    - Nutze objektorientierte Ansätze (Mixins), wo es Sinn ergibt.
    - Keine Arithmetik auf "Secret Values" oder geschützten Blizzard-internen Werten.
- **Midnight Patch Spezifika:** - Berücksichtige die neuesten Änderungen an der `Settings`-API und dem neuen UI-Backdrop-System.
    - Achte darauf, dass Frame-Attribute korrekt über die neuen Blizzard-Member-Funktionen gesetzt werden.
- **Struktur:** Wenn ich nach UI frage, schlage immer eine saubere Trennung zwischen XML (Layout) und Lua (Logik) vor, es sei denn, ich verlange explizit reines Lua-UI.