is_universal_needed() not checking extra appearance and disappearance req lists
Maybe we should add a list of requirement lists, automatically maintained by their creation and destruction. is_universal_needed() could find all requirement lists from there, with no need to remember to update it manually every time we add requirement list for something.
Also road 'first_reqs' seems to be missing.
is_universal_needed() will not notice if the universal is needed as an extra appearance or disappearance requirement.