A templated proxy for decorator interfaces. It is meant to be specialized per interface in order to allow a clean API and avoid human error. It wraps the necessary information to bind a decorator to a specific interface. See existing interfaces for examples.