Territory offers only 3×3 or 5×3 grids; no arbitrary resolution
`Territory` accepts `grid="3x3"` or `"5x3"` (plus named tactical presets), never an arbitrary `gridX`. A deliberate break from Heatmap's flexibility: Territory is a broadcast-editorial view where thirds-by-thirds or fifths-by-thirds are semantically meaningful and any other resolution is noise.
Territory apifootball-semanticsdefault-behaviour
Context
Territory and Heatmap share a binning compute core but answer different questions. Heatmap is an analyst surface that wants flexibility. Territory is a broadcast-editorial surface that wants comparability. Fifths-along-the-attack-axis by thirds-across (channels: left, centre, right) map to football vernacular in a way that a 7×4 grid does not.
Decision
grid="3x3"— 9 cells (thirds × channels). Default.grid="5x3"— 15 cells (fifths × channels).- Tactical layouts via named presets (
zonePreset="opta-18-zones","juego-de-posicion"). - No
gridX/gridYprops. No arbitrary bin counts. Consumers needing4×4or6×5use Heatmap.
Consequences
- Two Territory charts from different matches always have the same cell count — directly comparable.
- Non-uniform tactical zones (positional play) live behind presets, not behind free-form props that would let consumers rebuild them badly.
- Fine-grained analytical work is pushed onto Heatmap, which owns that job.
- The spec tightens: “why can’t I pass
gridX=4?” is answered by the component’s scope rather than being a footgun with a weak error.