Size can have two "types". Above water with a +sign and below water with a - sign. Facility with -4 capacity can hold only below water crafts.
If we go purely type, you can go pretty nuts twisting the system to have some consistency.
You either have a large number of different facilities which would not allow cross parking. Or you allow cross parking, say a van can park a hangar but an interceptor cant be placed into a parking lot. Then you will be back to square one because only 1 craft can be in s hangar regardless of craft size.
I was thinking an analogy and the General Stores came to my mind. Now there are 2 types, general and live storage. Imagine if you added like general, gun racks, blast proof, refrigirated, live psionically shielded, live reinforced, live because a dead muton is like 6x the size of a heavy plasma but instead of assigning it a size of 9, you just want to count it as 1 since it is one piece of stuff. No, we happily accepted the typeless nature of stores if favor of size. Why is it an issue to have the same logic applied to crafts?
You may say like you can build 3 separated parking lots and then the sum capacity would allow a heavy transport plane to land. You cut the big craft into 3 parts or what? That would be weird. I agree on that, so just fill craft size descending order into facility capacity ascending order.
You have a transport 7s, interceptor 5s, 2xAPC 3s, 2xVan 2s, 3xCar 1s. And you have 2xHangars 8c, 3xParking lots 4c.
Transport check parking 1-2-3 doesnt fit. Hangar 1 fit. Hangar 1 capacity is 1 now.
Interceptor, Hangar 1-parking 1-2-3 doesnt fit. Hangar 2 fits, cap is 3 there.
APC1 goes parking 1.
APC2 goes parking 2.
Van 1, 2 goes to parking 3.
Cars go hangar 1, parking 1, parking 2.
Hangar 2 has 3 more capacity for crafts.
Subs do this but they do everything with Abs()