Thanks for sharing and the explanation!
I made some updates on the example of ChargingStation and Garage. ChargingStation should only require the high-level abstraction of what a Garage needs to do, and depending on the implementation of different Garage (MyGarage vs AnotherGarage) it should work just fine.
Thanks for pointing that out as well!