docs: correct stale documentation and drop planning artifacts

The docs had drifted from the code and described things that never existed.

- architecture.md documented a QuitCommand class (quit/exit are aliases on
  MenuCommand) and a GameIO interface of read()/write(String); the real one is
  readLine() plus print(StyledText) with presentation hooks. Both corrected,
  along with the package diagram and the game-loop sketch.
- conventions.md listed a package tree missing save, menu, io.text and
  command.impl. Updated, including why MapLayout lives in game.
- data-structures.md claimed LinkedList was deliberately avoided (Pathfinder
  uses one for O(1) addFirst during path reconstruction), named the wrong queue
  for the Swing bridge, and listed an input history that was never built.
- Removed enhancement-ideas.md and implementation-status.md: a backlog and a
  phase tracker, neither of which documents the delivered project.

Also stop tracking the built jars. They still ship in the submission, but a
22 MB binary that changes on every build does not belong in git history.
This commit is contained in:
2026-07-14 12:40:09 +02:00
parent 526e3d4ee7
commit c205d1f49b
10 changed files with 92 additions and 424 deletions

View File

@@ -32,24 +32,28 @@ Geltungsbereich: id ist eindeutig **innerhalb seiner Entitätsart**. Ein Item un
```
thb.jeanluc.adventure
├── App, AppGui <- Entry Points (Konsole / Swing)
├── model
│ ├── Direction
│ ├── Room
│ ├── Player
│ ├── Npc
│ ├── Direction, Room, Player, Npc
│ ├── Quest, QuestStage, Ending, Combination, Condition, Effect, …
│ └── item <- eigener Subpackage wegen Hierarchie
│ ├── Item (abstract)
│ ├── ReadableItem
│ ├── SwitchableItem
│ └── PlainItem
├── io
├── command
├── game
└── loader
└── dto
├── io <- ConsoleIO, SwingIO, GameIO, Music*, MapPanel, QuestPanel
│ └── text <- StyledText, Style, Span, Hud, *View (15 Klassen)
├── command <- Command, CommandParser, CommandRegistry, ParsedCommand
│ └── impl <- die 15 konkreten Kommandos
├── game <- Game-Loop, Engines (Quest, Ending, Escort), Light,
│ Pathfinder, MapLayout, GameState/Session/Context
├── loader
│ └── dto <- die YAML-Records
├── save <- SaveService, SaveCodec, SaveData, Settings*
└── menu <- MainMenu, SettingsMenu, MenuAction
```
**Wann ein Subpackage:** wenn eine Klassenfamilie ≥ 3 Klassen umfasst und eine eigene Abstraktion bildet (`item`, evtl. später `command.impl`). Sonst flach lassen.
**Wann ein Subpackage:** wenn eine Klassenfamilie ≥ 3 Klassen umfasst und eine eigene Abstraktion bildet. Erfüllt von `item` (4), `command.impl` (15), `io.text` (15), `loader.dto` (16), `save` (7), `menu` (3). Sonst flach lassen — `MapLayout` liegt deshalb in `game` neben `Pathfinder` und **nicht** in einem eigenen `map`-Package (eine Klasse reicht nicht).
## Naming