Do you try to use some existing Board type and just avoid in your algo those invalid states (like by using a stack or some data structure to avoid iteratively moving pieces one at a time).
Do you have a separate InvalidBoard type that allows multiple pieces per square?
I think it’s context dependent but I’m curious how you’ve seen this handled in different ways.