Szene · live (GET /api/state)
Beat
🍺
Szenenbild
—
Kampfsteuerung
—
BOSS
Phase: —
—
Manuelles Aequivalent des Tages-Webhooks: alle Spieler je
einen Tag weiter (gestaffelt, mit Flush des Task-Sync).
Encounters werden normal automatisch durch die KI getriggert
(available_when); manueller Start nur für Tests. Skip, Force
Victory und HP-Setzen liegen im Dev-Gate.
Ohne laufenden Encounter startet der Auto-Kampf nicht (422
no_active_encounter). Der Lauf veraendert den aktiven Kampf.
Bereit.
Gruppe
—
Spieler-Registrierung
GUI-Registrierung aktiv (lokal, Fake-Daten); Anzeigenamen bleiben
reine Darstellung, Zuordnung bleibt player_id
—
Phase: —
—
Tag —
Encounter-Runde —
Letzter Turn —
—
Zahlen ins Board, Prosa in den Chat (Anti-Textblock-Regel).
Tag/Runde/Letzter Turn sind im State nicht enthalten — dort
steht —.
Ausstehende Jobs (lesend · GET /api/state)
Keine ausstehenden Jobs.
Pending-Jobs lesend aus Commands (kein neuer Endpunkt).
Gruppenbeschreibung · Vorschau
habitica.update_group_description
—
Genau dieser Text wird als Habitica-Gruppenbeschreibung gesetzt —
dasselbe Fenster wie der Boss, für alle Spieler sichtbar. Diese
Ansicht ist der lokale Spiegel zum Vergleich.
Regler (Gruppen A-G)
—
Anzeige aus der Server-Projektion: je Regler Kurzinfo, aktueller
Wert und Aenderbarkeit (sofort online oder nur zwischen Sessions).
Reihenfolge: A1, F, E1, D4 mit dem Bildziel-Block D6-D12, A2/A3,
B1 und der Rest. E5 (Wartungsmodus) steht in Gruppe E hinter E4;
aktiv zeigt das Panel eine Warnung, und jeder Schaltvorgang
erscheint im Audit. Aenderungen laufen ueber die Use Cases und
landen in der Kampagnendatei; Schluessel und Geheimnisse
erscheinen hier nie.
Regler werden geladen …
Studio & Sitzung
Playground
Echte Spielergruppe nur im Produktivbetrieb (GAS).
keine Gruppe - Spielwiese
Auswahl aus dem Katalog (kein Datei-Upload in W21).
Versionen der gewählten Kampagne (lesend aus der
Serverquelle).
nur GAS-Produktion, lokal .env
Erlaubt: gemini-3.5-flash-lite, gemini-3.5-flash.
Modellwechsel gilt nach Neustart.
Moduswahl allein bestimmt nie das Serverziel (ARC-UI-004);
Standard jeder neuen Sitzung ist die Testgruppe. Laden/Starten
nutzt die Kampagnen-ID im Playground (serverseitiger Katalog, kein
Datei-Upload in W21).
Gemini-I/O (letzte 50 Versuche)
Zeigt je Modellversuch den gesendeten Text (Instruktion + Anfrage)
und die Roherantwortung von Gemini — zur Ursachensuche bei
fehlender Narration oder abgelehnten Checks.
Kein Gemini-Versuch aufgezeichnet.
Meilenstein-Timeline
Reset fragt nach Bestätigung (Reset-Job: pending → applying →
committed); Springen nutzt lineare Einzelschritte.
Kein State geladen — Kampagne starten.
Spieler (Testspieler)
Keine Spieler geladen.
Inspektoren (nur lesend · GET /api/state)
—
—
—
- —
Kampagne
Aenderungsstand
Lokale Kampagne (lesend aus der Serverquelle).
Mehrfachauswahl aus den Getränken des Bierkatalogs
(
starting_beer_ids). Ohne Katalogliste bleibt das
Feld leer und bearbeitbar.
Grundwert in Prozent (FEAT-COMBAT-003). Leer lassen heißt: der
Schema-Default gilt.
Bonus je erfülltem Todo in Prozent (FEAT-COMBAT-003).
Obergrenze in Prozent (FEAT-COMBAT-003); der Server prüft, dass
der Deckel über der Basis liegt.
Auswahl aus den Meilenstein-Kennungen der geladenen Kampagne.
Diese Datei wird vom Editor weder gelesen noch geschrieben: Nur das
Publish schreibt dein Editor-Dokument nach Drive (bestaetigter Weg
aus A-0022, A-0042).
data/Brew_and_Brawl.v4.json bleibt
unveraendert und muss von Hand committed werden. Der
Aenderungs-Hinweis oben und in der Reiterleiste sagt dir, ob seit
dem Laden etwas offen ist; beim Neu Laden und beim Verlassen der
Seite fragt der Editor nach, waehrend noch etwas offen ist.
Milestone-Graph
Vote-Kante
flag
Klick auf Karte öffnet das Detail-Panel darunter. Vote-Übergänge
farblich markiert (FEAT-UI-001, RULE-STORY-005).
Detail
live
Ein Hinweis je Zeile.
Optionen verweisen auf einen Meilenstein der Kampagne (RULE-
STORY-005); Ziel ohne Option wird nicht gebaut.
Bedingungen und Aktionen: alle Verweise sind Auswahlfelder aus
den Kennungen der geladenen Kampagne, die leere Auswahl heißt
„kein Verweis“. Einzige Ausnahme ist
skill_id — Kennung (nicht im Dokument); sie kommt
aus der KI-Klassifizierung der Spieleraktion (RULE-CHECK-001).
Feste Story-Texte und Bilder hängen am Meilenstein (on_enter →
enqueue_beat).
Bedingungen via Baukasten
Belohnungen mit Meilenstein-Bezug (milestone_id) stehen in
rewards[] des Dokuments; Gesamtübersicht im Reiter Rewards
(Verwaltung).
Meilenstein-Eingabe (Rewards inline)
Abstimmung (RULE-STORY-005): Frage plus Optionen unten; ohne
Optionen kein Vote-Bau.
Live-Validierung:
Orte
| ID | Titel | Beschreibung | Aktionen |
|---|
NPCs
| ID | Titel | Beschreibung | Stimme | Ort | Wissen (je Zeile ein Fund) | Aktionen |
|---|
Items
| ID | Titel | Beschreibung | Aktionen |
|---|
Discoveries
| ID | Titel | Fakten (je Zeile einer) | Sperr-Antwort | Flag | NPC | Ort | Aktionen |
|---|
Die Bedingung „ab wann verfügbar?“ (
available_when)
steht als eigene Zeile direkt unter dem Fund und wird mit dem
Bedingungs-Editor bearbeitet — alle Verweise darin sind
Auswahlfelder aus den Kennungen der geladenen Kampagne.
Encounters
| ID | Titel | Monster-Kennung | Ort | Aktionen |
|---|
Der Ort ist ein Auswahlfeld aus den Orten der geladenen Kampagne.
Die Bedingung "ab wann verfügbar?" (
available_when)
und die Aktionsliste "was passiert beim Überspringen?"
(on_skip) stehen als eigene Zeilen unter der
Begegnung und werden mit dem Bedingungs- bzw. Aktions-Editor
bearbeitet.
Der Gegner (
monster_id) ist ein Auswahlfeld aus dem
Monsterkatalog des Servers mit der Leeroption "kein Verweis".
Rewards (Verwaltung)
| ID | Typ | Meilenstein | Wert | Aktionen |
|---|
Kampagnenweite Übersicht aller rewards[] des geladenen Dokuments.
Der Typ ist ein Auswahlfeld; danach zeigt die Zeile genau die
Felder, die zu diesem Typ gehören (Kampagnen-Level,
Story-Gegenstand, Bier-Freischaltung).
Die Getränke (
beer_ids) sind eine Mehrfachauswahl aus
dem Bierkatalog des Servers. Beim Wechsel auf einen anderen Typ
verschwinden die Felder des alten Typs — so meldet das Schema die
Lücke ehrlich.
Gruppenaufgaben
| ID | Fenster (h) | Mindestwarte (h) | Todos/Spieler | Min-Ratio | Mindestzahl je Spieler | Aktionen | Mindestzahl je Spieler | Aktionen |
|---|
Gruppenaufgaben (challenges[]) des geladenen Dokuments. "Fenster"
und "Mindestwarte" sind zwei unabhängige Zahlenfelder — der Editor
rechnet nichts aus; fehlt ein Wert, gilt der Schema-Default. Die
Bedingung "ab wann aktiv?" und die Aktionslisten "bei
Erfolg?"/"bei Misserfolg?" stehen als eigene Zeilen unter der
Aufgabe.
KI-Narration (kampagnenweit)
Eine Angabe je Zeile; die Zeilenliste landet als
tone[] im Dokument.
Diese Konfiguration steuert die freie KI-Narration. Feste
Szenentexte sind Beats am Meilenstein — keine Discoveries.
Challenge
Zielt auf challenges[] (RULE-CHECK-008): vorhandener Eintrag
gleicher ID wird mit den Feldern unten angereichert.
Auswertungsfenster der Gruppe (RULE-CHECK-008): 48 h ab Start;
Erfolg ab Mindestwarte moeglich.
Pflicht-Beitraege je Spieler (RULE-CHECK-008): Villa-Tor 2;
mindestens 1.
Erfolgsanteil 0–1 (RULE-CHECK-008): Villa-Tor strikt mehr als
die Haelfte (z. B. 0.51); 0.5 allein reicht nicht.
Frueheste Erfolgsauswertung ab Start (RULE-CHECK-008): Villa-Tor
24 h; darf das Fenster nicht ueberschreiten.
Einzel-Tor (RULE-CHECK-007): Schwierigkeit 1–10; der Skill kommt
aus der KI-Klassifizierung.
Zielt auf milestones[].objectives[] (RULE-CHECK-007/008): der
Bau haengt required_check/required_challenge dort an.
Ohne Auswahl kein Tor-Feldbau (reine Abbildung, keine
Automatik): check nutzt Check-Schwierigkeit, challenge nutzt die
Challenge-ID oben.
Kettenvorschau (Objective -> Flag -> Encounter ->
Reward)
Kampagnen-Dokument (lesend)
Biere
Bierliste (live)
—
Katalog wird aus GET /api/catalogs gelesen
Editor · Bier
Jede Qualitätsstufe ist ein eigener, eigenständig editierbarer
Eintrag mit eigenem Namen (Editor-Schablone); family ist rein
redaktionelle Gruppierung für Anzeige/Filterung.
Effekt-Vertrag (Kaskade)
Eintrittswahrscheinlichkeit und maximale Runden bei Debuffs nie
weglassen. Prinzip-B-Deckel: abgeleitet (24 h × D + 12 h), hier
rundbasiert ohne Echtzeit-Deckel.
Spieler-Sicht · Narration ohne Prozentwerte
Export-Dokument (Bier + Monster)
Monster
Monsterliste (live)
—
Katalog wird aus GET /api/catalogs gelesen
Editor · Monster
ab 75 % Phase 75
ab 50 % Phase 50
ab 25 % Phase 25
ab 0 % Phase 0
Phasen-Effekte (Platzhalter)
nicht im Schema
Phase 25 · Selbstheilung bei voller Rage
self_heal · 20 HP · einmal pro Encounter
Phase 50 · Vergiftung aller Spieler
dot_poison · 3 Runden · encounter_round
Phasen-Effekte analog Bier-Fähigkeiten sind weder im
Monsterkatalog-Schema noch in der Engine implementiert — vor
der Verdrahtung als FEAT-/RULE-Delta spezifizieren. Vorhandene
Boss-Sonderfähigkeiten: slot_reset_amount und Fluch-Tasks
(RULE-COMBAT-011/012).
Encounters
ID, Titel, Monster-ID, Ort-ID, max_hp, Rewards — wie Kampagnen-Editor/Encounters.
Orte
CRUD: ID + Titel + Beschreibung.
NPCs
CRUD: ID + Titel + Beschreibung.
Items
CRUD: ID + Titel + Beschreibung.
Discoveries
CRUD: ID + Titel + Beschreibung.