MimironsGoldOMatic

Architecture — Mimiron’s Gold-o-Matic

This page is a non-normative architecture map. For contracts, payloads, and lifecycle rules, use docs/overview/SPEC.md as the source of truth. UI behavior and screen inventory live in docs/reference/UI_SPEC.md (hub) and component specs for Twitch Extension, Desktop, and WoW Addon.

System pipeline

Twitch Extension → EBS (MimironsGoldOMatic.Backend.Api / ASP.NET Core) → WPF Desktop (WinAPI / PostMessage) → WoW 3.3.5a Addon (Lua)

Viewers interact through the Twitch Extension and broadcast Twitch chat. The streamer operates through Desktop and the WoW client. The Extension and Desktop do not communicate directly; the EBS is the only integration hub.

Extension Backend Service (EBS)

The MimironsGoldOMatic.Backend.Api host (with Backend.* libraries) is the EBS. It validates Twitch Extension JWTs, ingests EventSub (channel.chat.message) for !twgold <CharacterName> enrollment, executes Helix actions (including §11 reward-sent chat announcements), and exposes REST APIs for both the Extension (Bearer JWT) and Desktop (X-MGM-ApiKey). MVP deployment scope is single-broadcaster per environment (see docs/overview/SPEC.md).

Runtime components

Component Role
Twitch Extension Viewer panel: roulette, pool hints, winner status; calls EBS with Extension JWT.
EBS Pool, roulette, payouts, chat ingestion, persistence (Marten / PostgreSQL).
Desktop (WPF) Polls pending payouts, tails WoWChatLog.txt, injects /run into WoW, calls EBS with API key.
WoW addon Mail UI queue, whispers, [MGM_WHO] / [MGM_ACCEPT:UUID] / [MGM_CONFIRM:UUID] in the chat log.
Shared (.NET) DTOs and validation shared by EBS and Desktop.

Architectural patterns (MVP)

Key relationships

Compatibility (WoW 3.3.5a)