toJson method
Converts a Snapshot to a JSON-serializable map.
The output matches the snapshot data model schema:
{
"schemaVersion": 1,
"appVersion": "1.2.3",
"timestamp": "2026-01-26T12:00:00.000Z",
"states": {
"user_state": { ... },
"settings_state": { ... }
},
"metadata": { ... } // Optional
}
Parameters:
snapshot: The snapshot to serialize
Returns: A JSON-serializable map representing the snapshot.
Implementation
Map<String, dynamic> toJson(Snapshot snapshot) {
final json = <String, dynamic>{
'schemaVersion': snapshot.schemaVersion,
'appVersion': snapshot.appVersion,
'timestamp': snapshot.timestamp.toUtc().toIso8601String(),
'states': snapshot.states,
};
if (snapshot.metadata != null) {
json['metadata'] = snapshot.metadata;
}
return json;
}