Fixed this issue: "if you add a new buttons widget with hyperlinks and hyperlink titles and save it to the editor but do not save out of the editor all the way, then reopen the buttons widget, the hyperlinks and hyperlink titles are lost." Use JSON to send the extras so they don't get mistreated as flat arrays. TODO: find a way for the server to communicate the data attributes of a widget that are determined by loaders all the way back to the editor so we don't have to emulate what the loader would do in the widget editor. (That's not much work in this case though.)