Submission
    sheet           SheetId
    ratingPoints    Points  Maybe -- "Just" does not mean done
    ratingComment   Text    Maybe -- "Just" does not mean done
    ratingBy        UserId  Maybe -- assigned corrector
    ratingAssigned  UTCTime Maybe -- time assigned corrector
    ratingTime      UTCTime Maybe -- "Just" here indicates done!
    deriving Show Generic
SubmissionEdit
    user            UserId
    time            UTCTime
    submission      SubmissionId
SubmissionFile
    submission      SubmissionId
    file            FileId
    isUpdate        Bool         -- is this the file updated by a corrector (original will always be retained)
    isDeletion      Bool         -- only set if isUpdate is also set, but file was deleted by corrector
    UniqueSubmissionFile file submission isUpdate
    deriving Show
SubmissionUser                   -- Actual submission participant
    user            UserId
    submission      SubmissionId
    UniqueSubmissionUser user submission
SubmissionGroup
    course          CourseId
    name            Text Maybe
SubmissionGroupEdit
    user            UserId
    time            UTCTime
    submissionGroup SubmissionGroupId
SubmissionGroupUser              -- Registered submission groups, independent of actual SubmissionUser
    submissionGroup     SubmissionGroupId
    user                UserId
    UniqueSubmissionGroupUser submissionGroup   user
