Ah yes, spatial relationships between resources, the bane of every class scheduler across the world. The complexity of relationships between resources can explode so quickly to a degree that it becomes impossible to foresee every situation. So the software has two options: build in a Turing complete language to list this sort of dependencies (too hard to use for users), or allow large amounts of manual 'exclusion lists' for special situations. After a few years, those lists get so large that they start to contain internal conflicts. Then there are a few years of screwed up exam plannings, people get yelled at, new system gets implemented, and the whole circle starts again.
Bitter, who, me?