How would you improve this object model design to get around Covariance Issues with ObjectModel.Collection?
I think the model here is broken. If you have a RoadVehicle that's actually Truck, the interface lets you to add a normal Wheel to it, which is wrong.

One way to make it work is to make the collection immutable (e.g. IEnumerable&lt;T&gt;). This can be a reasonable solution if you're okay with setting the wheels only in the constructor.