Because we want to read out the score (for the GET case) without having to depend on django or database schema specifics, and that's where the score is kept.

This is a simple version of what happens with capa, I believe.  It uses a Field of type dict called "correct_map".