toJson method

Map<String, dynamic> toJson(
  1. Snapshot snapshot
)

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;
}