This document defines key terms related to reflection such as introspection, intercession, structural reflection, and behavioral reflection. It discusses how reflection allows everything to be represented as an object and that metadata contains information about classes, fields, methods and other aspects that are not compiled into binary code. Reflection is used to build tools and metadata is used outside of source code whenever a class is referenced.