factory PathShift.fromJson(Map<String, dynamic> data) { return PathShift(jsonToOffset(data['offset'] as Map<String, dynamic>)); }