ConstAggregate finite-edge clamp fired after axis-specific gridEventsEnum.BOUNDARY_X / gridEventsEnum.BOUNDARY_Y.
X-axis requested outside row length while IOptions.infiniteX is falsy — coordinate clamped.
Y-axis requested outside matrix height while IOptions.infiniteY is falsy — coordinate clamped.
Dispatched after GameGrid.refreshCells writes optional cell data and patches those nodes.
Extra detail keys: cells — the normalized { coords, cell } list that was processed.
Dispatched at the end of construction (after optional initial GameGrid.render).
Dispatched from GameGrid.destroy; always fired even if the grid stayed headless or unmounted.
Target rejected by IOptions.blockOnType or IOptions.moveOnType allow-list; coords roll back. Extra detail matches IMoveEventDetail (blocked: true; to is the rejected cell).
Avatar entered an IOptions.collideOnType cell. Fires only when the active cell actually changes. Extra detail matches IMoveEventDetail.
Avatar left a collide-type cell (IOptions.collideOnType) for a non-collide cell.
Does not fire when staying put (blocked / boundary) or when moving collide → collide.
Extra detail matches IMoveEventDetail.
Finished resolving block/collide boundary/wrap choreography; mirrors the onLand callback in IOptions.callbacks.
Fires only when the active cell actually changes — not on blocked stays, edge bumps, or GameGrid.render.
Extra detail matches IMoveEventDetail.
onMove already ran; precedes GameGrid.setActiveCell for keyboard/pointer navigation. Extra detail matches IMoveEventDetail.
Active cell moved from one region tile to another.
Dispatched after GameGrid.render wires the container; detail follows IGameGridEventDetail.
Dispatched from GameGrid.rewind / GameGrid.rewindTo after state updates and before gridEventsEnum.MOVE_LAND.
Extra detail keys: steps — how many history entries were dropped; index — the landing IState.moves index; plus IMoveEventDetail.
Dispatched from GameGrid.unrewind / GameGrid.unrewindTo after state updates and before gridEventsEnum.MOVE_LAND.
Extra detail keys: steps — how many future entries were restored; index — the landing IState.moves index; plus IMoveEventDetail.
Aggregate wrap fired after gridEventsEnum.WRAP_X / gridEventsEnum.WRAP_Y repositioning with IOptions.infiniteX / IOptions.infiniteY enabled.
Horizontal infinite teleport to opposite edge (runs alongside onWrapX in IOptions.callbacks).
Vertical infinite teleport (runs alongside onWrapY in IOptions.callbacks).
Dispatched after GameGrid.clearZoom.
Active cell attempted to move past the zoom window while IOptions.constrainToZoom is enabled.
Active cell left the zoom window while IOptions.constrainToZoom is disabled.
Dispatched after GameGrid.setZoom applies a viewport window.
Compatibility alias exporting the identical object references as gridEventsEnum.