4-connected neighbor tile values. Bounds safe. 1 array allocation.
List<T> neighborTiles4(int idx) { final out = <T>[]; forEachNeighbor4(idx, (n) => out.add(_data[n])); return out; }