/// Position::pseudo_legal() takes a random move and tests whether the move is
/// pseudo legal. It is used to validate moves from TT that can be corrupted
/// due to SMP concurrent access or hash position key aliasing.
-/// MOVE_NONE is represented as SQ_A1 to SQ_A1 which is never pseudo_legal.
bool Position::pseudo_legal(const Move m) const {