#22192 by PyChess

#22193 by PyChess

#22194 by PyChess

#22195 by Hoichess