A type is satisfied by any object that has the right methods, with no explicit inheritance. In Python, typing.Protocol describes this shape for type checkers.