What's the best data structure to store NPC appearances?

I’m trying to come up with some unified structure I can use to generate and store the customizable parts of each NPC’s appearance. On the surface an enumerator seems like the ideal method, as you could just do something like

   public enum Appearance{
    	Height,
        Weight,
    	Eye_color,
    };

The problem is, I need to be able to refer to different value ranges for each data type: height and weight are floats clamped differently, eye color would be either a material color or a string, and so forth. Is there any way to actually associate a value with each element here, such that I could do something like

Appearance.Height = //some number
Appearance.Eye_color = //brown

and so forth?

What you’re trying to do with an enum is actually much better suited to something like a class or a struct. Note that just because you have a class in a Unity project, doesn’t mean that it has to be a MonoBehaviour!

public class NpcAppearance
{
  public float Height;
  public float Weight;
  public Color eyeColor;
}

You could make this a struct, since there isn’t really much going on here… or you could add things like constructor or other methods.

Also you could make an enum for eye color if you don’t want to have every color Unity knows about as a potential eye color.