Equippable NFTs?

I'm working on a project for a client that has some complex NFTs: there is one contract for character model NFTs, and one for equipment NFTs. I need to figure out how to implement the equipping mechanism, but that's a different question.

What I'm trying to figure out, is how I can make each equipment token fit a category. E.g, on minting, an equipment needs to be either eyeglasses, headwear, or a shirt. Shirt NFTs can't be equipped on eyeglasses slots, eyeglasses can't be equipped on shirt slots, etc. .

So I'm imagining it would be something like, on minting, somehow assigning a slot ID to the token. I thought maybe having a mapping for eyewear, a mapping for shirts, etc., but considering there's no limit on the amount of NFTs that can be minted, I imagine that would get very expensive very quickly.

Does anyone know how to do something like this, or at least have an idea to point me in the right direction?

Any help would be greatly appreciated! Thanks in advance.