This actually makes sense since whatever the actual implementation is, classes implementing these interfaces should provide at least those properties that are actively used through the library.
[ci skip]