fix(map): require single-character legend keys
This commit is contained in:
@@ -183,6 +183,13 @@ def load_map(path: Path) -> MapSpec:
|
||||
|
||||
terrain = _split_rows(raw.terrain, "terrain", path)
|
||||
height, width = len(terrain), len(terrain[0])
|
||||
multi_char = sorted(key for key in raw.legend if len(key) != 1)
|
||||
if multi_char:
|
||||
msg = (
|
||||
"legend keys must be exactly one character (one char = one "
|
||||
f"square), got: {multi_char}"
|
||||
)
|
||||
raise MapValidationError(path, msg)
|
||||
unknown = sorted({ch for row in terrain for ch in row if ch not in raw.legend})
|
||||
if unknown:
|
||||
msg = f"terrain chars missing from legend: {unknown}"
|
||||
|
||||
Reference in New Issue
Block a user