We needed to implement `GraphState.from_json` so that the server can track a copy of the client's state. That's a useful byproduct of this work!