I’m starting to sense maybe you would be served well by just a web of ScriptableObjects, as it sounds like you’re authoring a “bunch of things” in your game.
In the case of ScriptableObjects, the “key” simply becomes the reference to them, or if you enforce uniqueness, then their name, which is helpful with an unbounded future number of these things you don’t want to have to keep organizing every time you add / remove one. You would just locate them all in a Resources/ kinda directory.
Here’s some fun reading to see if perhaps it might help your use case: