java – How to separate the responsibilities of a shared entity

Suppose I have a game success class that stores success information such as name, pop-up message, and so on.

The GoldMedal class implements GameAchievement {
@Override
String getName () {...}

@Override
String getAchievementDisplayMessage () {...}

}

Then, when the game ends, I want to save the current achievements on a local storage (Shared preferences) via static keys like ACHIEVEMENT_GOLD_MEDAL:

editor.putBoolean (ACHIEVEMENT_GOLD_MEDAL, isAchievedGoldMedal);

Question: Where should these keys be stored?

It's tempting to put it inside Gold medal since it is directly relevant and intuitive, but gives the impression of violating the SRP (or not?) since it is related to the storage mechanism:

The GoldMedal class implements GameAchievement {
// ...

@Override
String getStorageKey () {...}
}

// Use:
editor.putBoolean (realizations.getStorageKey (), isAchieved (realizations));

Another way of thinking is to hide it under an interface:

LocallyStorable interface {
String getStorageKey ();
}

class GoldMedal implements GameAchievement, LocallyStorable {

@Override
String getStorageKey () {...}
}

I guess my question in general is what is the best practice to distinct responsibilities that seem to be related to a shared entity like Game Achievement?

For example, when there is a new property of a Game Achievement in another area, say in a tutorial page (StringTutorialText Success), should we make another interface ?:

GameTutorialComponent interface {
String getTutorialText ();
}

Thank you!