I was distracted today and wanted to play with some ideas for how resource properties (née resource attributes) might look if we had no compat requirements at all. https://gist.github.com/coderanger/0e7116e656f6f6acfa18 is what I came up with. To try and avoid stealing his thunder, I would like to state clearly that John Keiser has code which looks very similar to this but is totally independent, we just both wrote similar stuffs. So basically don’t apply any shortcomings from this to his work Would love any feedback on this. Some notable compat issues I’m ignoring: this moves the validation logic so any custom _pv* monkey patches would fail, it allows setting nil as a property value (which is planned to be phased in over the path to Chef 13), default values do not get written to the instance variable of the same name on the resource ever. All of those could be fixed and in fact John’s version of this idea is far more complete than mine. Still, wanted to share in the interests of idea pollination.