Another option for the unnecessary parameters is to use default parameters. You’ll still have an unneeded GridPosition in SpinAction.TakeAction but, at least you wouldn’t need to pass anything in the code that calls the Take Action Method.
In SpinAction:
public void TakeActionAction onActionComplete, GridPosition gridPosition = GridPosition.zero)
{
}
and in the code that calls SpinAction:
spinAction.TakeAction(ClearBusy);