Super cool! Built something similar a few years back to assign kids to boats on a sailing camp using Google's OR Tools. Don't recommend OR Tools, solver was super slow vs cplex but didn't find any good OS solver. I used two objectives in my objective function to ensure someone didn't get left out, probably need to do something similar for the prioritization in the roadmap?