Raw model ... { a: "Value 1", b: "Value 2", c: "Value 3" } Goes to ... { a: { name: "a", value: "Value 1" }, b: { name: "b", value: "Value 2" }, c: { name: "c", value: "Value 3" } } Merges with lazy metadata ... { b: { type: "checkbutton" }, c: { label: "Property Three" } } Giving ... { a: { name: "a", value: "Value 1" }, b: { name: "b", value: "Value 2", type: "checkbutton" }, c: { name: "c", value: "Value 3", label: "Property Three" } }