https://www.omiyagames.com/blog/2016/01/12/lazy-trick-with-c-tri-state-boolean-or-how-to-abuse-nullable/
Lazy Trick with C#: Tri-state Boolean (or how to abuse Nullable Types)