Question about NPCs

Are the enums in NPC.h really how attitudes, missions, etc are stored, or is that legacy code? It seems very fragile, and liable to cause merge conflicts or weird bugs later on. However, I haven’t had a chance to dig through all the code yet. If it does still rely on then (the json files seem to indicate that), does anyone have a good plan for updating it? I’m pretty shaky on what would work best performance wise, but I do know just using an int can lead to some issues if the lists get changed.