to json
Map<String, dynamic> toJson() => { 'documentId': documentId, 'states': states.map((k, v) => MapEntry(k, v.toJson())), };