I created a tile-based "threat" system that was ostensibly detached from the actual pieces' movements; while the pieces contain a list of the turfs they're able to move to legally, each turf contains a list of pieces that would threaten a royal piece at its' location. This ends up working slightly slightly better than the last iteration, where each individual piece held a list of its' legal movements and of the tiles it threatened, so ascertaining the threats to a royal piece involved a loop through every enemy piece on the board. This time, the turf holds a list of threats, and can easily be consulted at the time of the king's movement collections.
Here, we have a black king minding his own business with his full legal movement set.

Oh noes! An evil white queen appears!

And the king loses a lot of his movement squares.
Now somehow, between inevitable bugs and setbacks, this seemingly simple system took most of the day to concoct, test, refine, and deploy. Keep in mind that the only part of the entire display that actually resides on the map are the white and black squares, though I'm not entirely pleased that I spent a whole day on this. Tomorrow I'll have to get to work on imposition and pinning, and beyond that, I don't see too much more that has to be done. I think after the royal considerations are finished, all that's lacking is the process of generating and exporting game movement logs to the Tibbius server.
Day five starting from a blank DM window and I'm almost finished. Scary and sad at the same time.