load method
Loads cache from disk if it exists.
Implementation
Future<void> load() async {
final file = File(_cachePath);
if (!file.existsSync()) return;
try {
final content = await file.readAsString();
final json = jsonDecode(content) as Map<String, dynamic>;
final entries = json['entries'] as List<dynamic>;
_cache.clear();
// ADR-016 1.1: LinkedHashMap maintains insertion order
for (final entry in entries) {
final map = entry as Map<String, dynamic>;
final id = map['id'] as String;
_cache[id] = _CacheEntry.fromJson(map);
}
} on FormatException {
// Invalid cache file, ignore and start fresh
_cache.clear();
}
}