docs: m1-befunde in tickets 03, 04 und 11 zurueckgetragen, verification-abschnitt in der map
This commit is contained in:
@@ -125,6 +125,16 @@ in die Welt gelegt.
|
||||
Überschreiben zwei Mods dasselbe, entscheidet die Ladereihenfolge — der letzte gewinnt. `overrides`
|
||||
ist ein Feld an *jedem* Registry-Eintrag, nicht nur an Gegenständen.
|
||||
|
||||
**Befund aus M1: die Referenzseite war offen.** Oben steht, was mit der eigenen `id` passiert — nicht,
|
||||
was mit **Verweisen** passiert (`slot = "core:hand"`, `category = "core:race"`). Die wörtliche Fassung
|
||||
ist umgesetzt: Nur `id` wird präfixiert, Verweise stehen voll qualifiziert. Das ist asymmetrisch, und
|
||||
ein Modder wird darüber stolpern — er schreibt `id = "schwert"` und zwei Zeilen darunter
|
||||
`slot = "core:hand"`.
|
||||
|
||||
Die Alternative wäre, dieselbe Regel auf jedes ID-förmige Feld anzuwenden: **kein Doppelpunkt heißt
|
||||
eigener Namensraum.** Das ist bequemer und macht mod-interne Verweise kürzer, verlangt aber, dass der
|
||||
Lader weiß, welche Felder IDs sind. Offen — zu entscheiden, bevor der erste Fremdmod existiert.
|
||||
|
||||
### Drei Phasen
|
||||
|
||||
1. **Manifeste** — alle Ordner beider Pfade scannen, `manifest.toml` lesen, Reihenfolge aus
|
||||
|
||||
@@ -85,6 +85,17 @@ meinmod/items.toml:42: core:iron_sword — unknown field `base_pric`
|
||||
Die **Mod-ID steht vorne**: Bei zwölf installierten Mods ist sie die einzige Angabe, mit der ein
|
||||
Spieler weiß, wen er anschreiben muss.
|
||||
|
||||
**Befund aus M1:** `Spanned` liefert den Anfang des *Eintrags* — also die `[[items]]`-Zeile —, nicht
|
||||
die Zeile des schuldigen Feldes. Das deckt sich mit der Zusage oben („liefert dessen Zeilenbereich"),
|
||||
sieht in der Praxis aber so aus:
|
||||
|
||||
```
|
||||
test/items.toml:6: [1] — invalid type: integer `42`, expected a string
|
||||
```
|
||||
|
||||
Zeile 6 ist der Eintragskopf, das kaputte Feld steht in Zeile 8. Den Feldnamen liefert `message()`,
|
||||
weshalb die Meldung trotzdem eindeutig ist — die Genauigkeit reicht, solange ein Eintrag kurz bleibt.
|
||||
|
||||
`toml::de::Error` liefert `span() -> Option<Range<usize>>` und `message()`, aber keine Zeile — die ist
|
||||
`input[..span.start].lines().count()`, eine Zeile Code. Keine Spalte: `message()` nennt das Feld
|
||||
bereits im Klartext, die Spalte wäre doppelt gemoppelt und bräuchte eine zweite Rechnung. Ein Eintrag
|
||||
|
||||
@@ -190,6 +190,11 @@ Die ratatui-Freiheit prüft ein `#[test]`, der `src/game/**/*.rs` liest und auf
|
||||
Zeilen; ein Cargo-Workspace mit `game` als eigener Crate wäre echte Compiler-Durchsetzung und ist die
|
||||
Decke, falls es je ernst wird.
|
||||
|
||||
**Befund aus M1:** Die wörtliche Fassung trägt nicht. Sie schlägt sofort an — nämlich beim
|
||||
Doc-Kommentar von `game/mod.rs`, der erklärt, dass die Grenze existiert. Der Test muss
|
||||
**Kommentarzeilen ausnehmen** und sollte Datei, Zeile und Inhalt nennen statt nur „ist gefallen".
|
||||
Steht so in `tests/boundaries.rs`.
|
||||
|
||||
### Nachtrag an Ticket 01: Darstellung muss moddbar sein
|
||||
|
||||
01 hat `symbol` als *Schlüssel* definiert, dessen Zuordnung `ui/theme.rs` macht. Darin steckt eine
|
||||
|
||||
Reference in New Issue
Block a user