I really like the approach. And my first thought was 'Additional functionality could be injected with Traits.' Is there a possibility of introspecting the class? Such as retrieving "registered" properties?
Ordinary morality is for ordinary people. -- Aleister Crowley