Just sharing some ideas as a huge RTS fan + I used to work with Unity3D so modularization was a big part of their prefab system…
Basic object should exist, let think of it as an entity… That should be like the basic building block of anything… Do you remember an RTS where you could select, I don’t know, rock, waterfall, tree, any prop in the map and in UI it would say sonething like “Rock”, along with its picture and perhaps even a hp bar? now granted, there is little sense in being able to select any rock over the entire map but you can see the effect of it… If you want to make some object (prop) selectable make it of a class entity… Further, if you want to make it destructable and showing its hp bar in the ui/gui what about a boolean “isDestructable?” toggle as a object field?
Going up even more, lets say we want to represent an tank factory or even a simple building that’s player 1’s. Let make that object entity, check isDestructable on and what about another boolean like “ownerPlayer01”? That way, if checked the script should allow only the owner player to use that building in any functional way while enemy player could still like left click it to see some basic info about it while right click could like check if the user right clicking it isn’t the sole owner of it and currently has a unit that can attack selected, then make it target and attack… and it goes on, and on…
for example:
walking infantry
entity, hasOwner, isMovable
flying spacecraft
entity, hasOwner, isMovable, isFlying
anti-aircraft turret
entity, hasOwner, isStationary
etc… Just my 2 cents, let me know what you think of this system…