# Semesterprojekt – Textadventure Design- und Architekturdokumentation. Dient als Spec während der Implementierung. ## Inhalt | Datei | Inhalt | |---|---| | [architecture.md](architecture.md) | Package-Struktur, Schichten, DTO-vs-Domain-Trennung | | [conventions.md](conventions.md) | Sprache, ID-Format, Naming, Lombok-Cheatsheet | | [data-structures.md](data-structures.md) | Alle gewählten Collection-Typen mit Begründung | | [item-model.md](item-model.md) | Item-Hierarchie (abstract + 3 Subtypen), Lombok-Inheritance | | [yaml-schemas.md](yaml-schemas.md) | Schemas für `items.yaml`, `rooms.yaml`, `npcs.yaml`, `game.yaml` | | [loading-flow.md](loading-flow.md) | Lade-Reihenfolge, Referenz-Auflösung, Validierung | | [commands.md](commands.md) | Befehlsparser, Command-Pattern, Befehlsliste | | [npcs.md](npcs.md) | NPC-Modell, Talk- und Give-Interaktion | | [implementation-status.md](implementation-status.md) | Aktueller Stand, Phasen-Checkliste, festgelegte Entscheidungen | ## Pflicht vs. Optional (laut Aufgabenstellung) - **Pflicht:** ≥4 Räume mit Navigation, ≥3 Gegenstände mit Inventar - **Optional/Bonus:** NPCs, Swing-GUI Beide optionalen Teile sind hier eingeplant. ## Technologie-Stack - Java 25 - Jackson (YAML) für Daten-Loading - Lombok für Boilerplate-Reduktion - JUnit 5 + AssertJ + Mockito für Tests - Logback + SLF4J für Logging - Swing für GUI (Bonus)