Because the user has the capability of changing requirements, there are problems that might arise when opening a previously-saved student record:
The requirement name may have changed. If this was a relevant requirement for the student, then we should detect and tell the user. Either way, the user needs to intervene.
If a course was removed (no way via the GUI, yet), then a student's take might no longer have an associated course - crasharoonie.
If a course has been modified, all hell could break loose. Might change repeatability, might change num units... all bad.
Essentially, the system needs to detect these conflicts. It's possible that the only option, initially, is to disallow the open and fail. The user could still review past reports, but that's it.
Eventually, I want the user to be able to correct the conflicts, such as assigning new classes as aliases for removed classes. So, if a student is opened with the old class (that's been removed), they automatically "take" the new class in its place.
Actually, this probably isn't a great solution - need to talk with Kim about that.