Resolves the course instance or exam a submission would be recorded against, and rejects a
submission the user may not make at all: not enrolled on the course, or past the exam’s window.
Rejects a file-typed answer naming uploads this user did not make for this exercise, naming none
at all, or naming the same upload as another task submission in the same slide submission. Also
rejects a JSON answer that names files, before anything is written.
Rejects an attempt to answer an exercise that a submit would reject anyway: a passed deadline,
no enrolment on the course, a closed exam, or no tries left on the slide.