should this be implemented as a json serializable class? i tend to not like dicts-as-classes since they very rarely have readable APIs.