Pretty sure I made this in 2019-2020. Written well enough that I'll use it for parts in my collab web_chess program.
The game logic, while not tested nearly enough, is sound. But good luck castling or trying to do en passent.
*Not sure how my former-self expected the players to tell the difference between black and white pieces as both are outputed as lower-case characters.