AppSnapshot.fromJsonSafe constructor
Safe deserialization: every field is validated independently. A corrupt field falls back to its default — never throws.
Implementation
factory AppSnapshot.fromJsonSafe(Map<String, dynamic> json) {
return AppSnapshot(
snapshotId: _safeString(json['snapshotId']) ?? 'unknown',
routeStack: _safeStringList(json['routeStack']) ?? ['/'],
scrollPositions: _safeDoubleMap(json['scrollPositions']) ?? {},
formInputs: _safeMap(json['formInputs']) ?? {},
customState: _safeMap(json['customState']) ?? {},
timestamp: _safeDateTime(json['timestamp']) ?? DateTime.now(),
);
}