Reflection remains a second-class citizen in current programming models, where it’s assumed to be imperative and tightly bo und to its implementation. In contrast, most object-oriented APIs all ow interfaces to vary independently of their implementations. Components take this separation a step further by describing unforeseeable attr ibutes—the key to pluggable third-party components. This paper describes how reflection can benefit from a similar evolutionary path.