Here's a 'real' version of the proposed OdevAttributes API change. This one provides a patch which adds a backward compatible API for drivers. I made that API perform compile-time checks on the attribute and default values provided to make sure drivers won't get surprised by the semantic differences between the APIs.