One Awkward Thing About MobX: Complex Models

Let’s take an example from my day job. An onboarding step for new tutors is a subject exam. It starts with this page:
In this case, the applicant has already flunked chemistry, we’re not accepting physics, and they can still take a math exam. To build this, we need data about the current user, about the subjects, and how they relate to each other.