FSM and commands during a move
Follow what happens after the player releases a piece.
Suppose the player releases a piece over valid cells. The drag component sends PlacementRequested with slotId and anchor. The game’s FSM takes over. Game FSM
RequestDragComponent → PlacementRequested → PlaceBlockCommand
Validate and applyGameplay → Board / Slots / ScoreRules
Result snapshotsboardBeforeClear, boardAfterClear, clearedCells, scoreDelta
ScreenBoardChanged, BlocksChanged, ScoreChanged, and LinesCleared
What the FSM does
PlaceBlockCommand runs in playing. The FSM then enters resolvingPlacement, takes PlacementCompleted from the queue, and checks available moves in checkingMoves.
The diagram below walks through a successful placement.