@moodmosaic Yes, sort of. The LSP is specifically about not breaking the *inherited* contract, while this case is about not breaking an abstraction by depending on an implementation detail in the broader sense. I guess one could say it's about following the [second statement of the DIP](https://en.wikipedia.org/wiki/Dependency_inversion_principle).