maybe giving every clothing item a layer value (1 being the lowest for normal clothing) alongside other (standard) modification values
some examples:
leather helmet: armour=+1 weight=+2 place=head layer=1
cat\'s paw: armour=+2 weight=+4 place=arms layer=1 other=\"nightvision+4, infravision+1\"
mihril mail: armour=+15 weight=10 place=torso layer=1
cape of might: armour=+0 weight=3 place=torso layer=10 other=\"strenth+5 charisma+1\"
why cape layer=10? ...because capes are usually worn over everything else (including weapons and rucksacs), so it would have to be a high enough layer in order of other newly invented layers not to cause a glitch like people wearing clothing over capes
i\'m no programmer, so it\'s just an idea
i\'m not sure if the \"place\" option is needed, it was just how i imagine the clothing working ...i imagine you have to set it where and how the clothing/armour should be and move (arms, legs, torso, head, feet...)
ok, i know this way you can\'t play superman with your underwear over your trousers or on your head, but i think it\'s better this way
maybe jewelry would have an option how to wear it \"over\" (being layer 9 so you don\'t wear it over the cape) or \"under\" (layer 0) other clothes