I find `countryClick` quite complex and could be split into several handlers. And we could avoid unnecessary checks that is carried out in advance:
```Dart
clickHandler(String mode) => (int countryId) {
  if(mode == MODE_SELECT) {
    if(isMine(countryId)) return countrySelect;
  } else if(mode == MODE_ATTACK) {
    if(countryId == selectedCountryId) return countryUnselect;
    else if(isMine(countryId)) return countrySelect;
    else if(areNeighbours(selectedCountryId, countryId)) return countryAttack;
  } else if(mode == MODE_MOVE) {
    if(countryId == selectedCountryId) return countryUnselect;
    else if(isMine(countryId) && areNeighbours(selectedCountryId, countryId)) return countryAttack;
  }
  return null; // Or an empty handler
}
```

For me this solution is not so complicated, except that we return a function that return function..., but it's clear that we give different behavior on click in function of the country and the mode.
Let me know what you think?