docs: m1-befunde in tickets 03, 04 und 11 zurueckgetragen, verification-abschnitt in der map
This commit is contained in:
@@ -19,13 +19,15 @@ dort als Konvention im Body. Zuordnung Ticket → Gitea-Issue:
|
||||
|
||||
## Destination — **erreicht am 2026-08-12**
|
||||
|
||||
Alle sechzehn Tickets sind geschlossen. Was jetzt existiert: sechzehn Entscheidungsdokumente, ein
|
||||
Glossar mit den kanonischen Begriffen, und ein 342-Zeilen-Wegwerfprototyp auf dem Branch
|
||||
`prototyp/12-ratatui-durchstich`. Was **nicht** existiert: das Spiel. Der nächste Schritt ist die
|
||||
Implementierung, und sie hat mit `src/` (heute `print_box`, `include_str!`, `enum ItemType`) fast
|
||||
nichts gemein.
|
||||
Alle sechzehn Tickets sind geschlossen. Damit ist die Entscheidungsphase vorbei und die Umsetzung
|
||||
läuft — Stand siehe „Verification" weiter unten.
|
||||
|
||||
Sechs Meilensteine statt neuer Tickets: **M1** vertikaler Durchstich · **M2** Etagengenerierung und
|
||||
Prefabs · **M3** Kampf mit Events und Triggern · **M4** Inventar, Ausrüstung, Affixe, Handel ·
|
||||
**M5** Quests und Save/Laden · **M6** Inhalt für fünf Etagen und Balancing. Die Map hat sich für
|
||||
*Entscheidungen* gelohnt; dieselbe Zeremonie über Implementierungsaufgaben zu stülpen wäre Prozess um
|
||||
seiner selbst willen.
|
||||
|
||||
Alle Architektur- und Design-Entscheidungen für rustkeep 1.0 sind getroffen — nicht gebaut, entschieden.
|
||||
1.0 heißt: 5 Etagen mit Boss, Solo-Held mit Rasse und Klasse, Grid-Erkundung mit Menü-Kampf,
|
||||
Inventar und Ausrüstung, Quests, NPCs, Handel, Speichern/Laden, **Mod-Support auf den Stufen (a) und
|
||||
(b)**.
|
||||
@@ -33,6 +35,28 @@ Inventar und Ausrüstung, Quests, NPCs, Handel, Speichern/Laden, **Mod-Support a
|
||||
Stufe (c) — Scripting — ist entschieden, aber nicht Teil von 1.0: Engine (Rhai) und Schnittstelle
|
||||
stehen, gebaut wird sie, wenn ein Modder an eine Lücke im Vokabular stößt (13).
|
||||
|
||||
## Verification — was der Compiler bestätigt hat
|
||||
|
||||
Sechzehn Tickets Papier, davon hatte bis M1 nur das Screen-Modell (12) Kontakt zu einem Compiler.
|
||||
Diese Liste wächst mit jedem Meilenstein und ist der einzige Ort, an dem steht, welche Entscheidung
|
||||
*gehalten* hat.
|
||||
|
||||
**M1 — vertikaler Durchstich** (`feat/m1-durchstich`, 10 Tests)
|
||||
|
||||
| Zusage | Aus | Befund |
|
||||
|---|---|---|
|
||||
| `Registries` neben `Game`, disjunkte Borrows | 07 | **bestätigt** — `game.execute(cmd, ®)` und `game.attribute(…, ®)` nebeneinander. Ticket 12 konnte das nicht prüfen, weil der Durchstich keine Registries lud |
|
||||
| Zweistufige Deserialisierung, Eintrag als Fehlereinheit | 04 | **bestätigt** — ein kaputtes Feld tötet seinen Eintrag, die Nachbarn überleben |
|
||||
| `Game::attribute` sammelt aus mehreren Quellen | 07 | **bestätigt** — Basis + Optionen + Ausrüstung, Stapelregel aus 01 stimmt |
|
||||
| `game/` bleibt ratatui-frei | 11 | **bestätigt** — aber der *Test* dafür musste nachgebessert werden |
|
||||
| Trigger-Suche, Event-Warteschlange | 08 | **ungeprüft** — es gibt weder Trigger noch Events. M3 |
|
||||
|
||||
**Drei Befunde, die nur der Compiler liefern konnte** — alle in die Tickets zurückgetragen:
|
||||
|
||||
- **11**: Der Grenztest in seiner wörtlichen Fassung schlägt beim eigenen Doc-Kommentar an. Muss Kommentarzeilen ausnehmen.
|
||||
- **03**: Die **Referenzseite** war nie entschieden. Präfixiert wird nur `id`; Verweise stehen voll qualifiziert. Asymmetrisch — zu klären, bevor der erste Fremdmod existiert.
|
||||
- **04**: `Spanned` zeigt auf den Eintragskopf, nicht auf das schuldige Feld. Deckt sich mit der Zusage, ist aber gut zu wissen.
|
||||
|
||||
## Notes
|
||||
|
||||
Domain: Rust-Terminal-Roguelike, moddbar. Repo: `MDietermann/rustkeep`.
|
||||
|
||||
Reference in New Issue
Block a user