accepted

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 / gridY props. No arbitrary bin counts. Consumers needing 4×4 or 6×5 use 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.
← All decisions