This is a personal project by @dellsystem. I built this to help me retain information from the books I'm reading.
Source code on GitHub (MIT license).
checkmate forced by the side that is checkmated called also self-mate
Thus there is, literally, in every mate a touch of what is called suimate--a kind of chess problem in which the solver is required to maneuver his own pieces into mate.