Things like:
- batch editing: what if you don't want your edits to save immediately, but instead as a group?
- item creation and joins: what if some fields create items that have ids that other fields require for update or their own creation?
- discarding edits: what if you want to throw away your changes?
- front-end auth: how do you verify that a field is editable before creating a text box for it?
- front-end validation: how do you make custom field validators?
- mid-edit derivative values: if you change something without yet saving it, will the other parts of the ui using that value also show updates?
Solving all these issues has been a tough project. I started off wanting to be able to just pass a rowId, tablename, and columnname, but pretending things are that easy only works for very, very flat Databases. (no joins)