This was always the intention of this feature request:
I still think Capacities has one of the best current example implementations of this: