I thought I wrote a reply to this but I can't see it. Sorry if this is redundant.

StudentModule has a generic `state` field because different problem/sequence/content types can store vastly different kinds of state. The LMS has no way to know what might go in there for any given XModule. In the case of this app, I would also support putting this relation in an actual model so it's easier to query.