@VD15 depends on backwards compat concerns, but out of context the hardcoded enum is a better idea, it's effectively the same thing as any other default value that will never be changed outside a new version of the software. There's people that keep all default values and other constants in config files despite not supporting changing them but imo it's a pointless overkill with only downsides.
@VD15 config is something you'd possibly like to configure within a single version, extending it to mean all defaults is misguided imo. That approach has one upside I failed to mention though, sometimes it turns out you'd actually want to configure something that was supposed to be set in stone, in which case config files allow you to do that. If you're making a game with a bunch of items like lelu guessed, having them in a bunch of files you load at startup makes modding in new items or modifying existing ones much easier.
@Amikke That’s an interesting way of thinking about it. I’m always told that config variables & such should be put into separate files but unless it’s something user-facing or sensitive, I rarely see the point