The implementation in `master` was presuming that Hard Rock and Easy worked the same way across all rulesets, but actually, in stable mania, the two mods have special treatment as per https://github.com/peppy/osu-stable-reference/blob/996648fba06baf4e7d2e0b248959399444017895/osu!/GameplayElements/HitObjectManagerMania.cs#L147-L150 The open question here would be what this means for existing scores set on lazer using this mod.
Closes https://github.com/ppy/osu/issues/25090. Not sure if there are other exceptions we should account for here.
LocalisableString
Also, mark as nullable for some properties.
BeatmapDifficulty
IBeatmapDifficultyInfo
Also fixes circular references when using IJsonSerializable.