Offset? parseOffset(Map<String, dynamic>? map) { if (map == null) return null; double dx = map["dx"].toDouble(); double dy = map["dy"].toDouble(); return Offset(dx, dy); }