All right, I took it easy for a bit, but now I want to see if I can just get things over with, at least enough that I feel comfortable getting feedback. So, I did a bunch of waffling on whether I understood things well enough, and at this point, I'm just going to try.
So, step one is to add a field to the constraint object...
Okay, I didn't really delineate that well, but I added a field, updated the methods, added a helper function, and changed one of the helper functions for install requirements. Next up is going over the find_candidates method in the Factory class.
Honestly, I think that's another day's work, so I'm going to call this now and try to get wrapped up at a reasonable time.