Not all Modules will need a state. For example, NewProjectModule won't.
I think we should have a main Project State. But when we actually go to save the state, I agree that each of the Modules used in the main Project State should have a function to return its JSON representation of state.