"""Route (d): the remaining seven vector subjects.
Split from ``vector.py`` to stay under the 250-line file cap. Together the two
modules cover all twelve bake-off subjects, which is what makes this cell's
number comparable to route (a)'s -- a cell measured on five easy subjects
would not be.
Each shape carries a distinguishing feature for the same reason the procedural
route does: geometric correctness alone reads as a placeholder.
"""
from __future__ import annotations
from typing import Final
from python_pkg.artgate.routes.vector import PALETTE, STROKE, register
EXTRA_SHAPES: Final[dict[str, str]] = {
"scroll": (
f''
f''
f''
f''
f''
f''
f''
),
"book": (
f''
f''
f''
f''
),
"bone": (
f''
f''
f''
f''
f''
),
"bomb": (
f'"
f''
f''
f''
f''
f''
),
"sword": (
f''
f''
f''
f''
f''
),
"ring": (
f''
f''
f''
f''
),
"meat": (
f''
f''
f''
f''
f''
),
}
# Registering at import time keeps the dependency one-directional: vector.py
# never imports this module, so there is no cycle and no lazy import.
register(EXTRA_SHAPES)