hashCode property
Deliberately shallow: hashing every record would make the cheap half of
a diff as expensive as the expensive half. Equal objects still agree,
which is all hashCode must guarantee.
Implementation
@override
int get hashCode => Object.hash(
currentMaxUnlockedLevelId,
spentStars,
levels.length,
extra.length,
);