An `Interface`, perhaps?