Now we don't save a bunch of irrelevant fields from editor buffers, just lines.
The cost: autosave every 3 seconds becomes much more expensive.
K37W6DFXMWIITFPPWMQULRYQYUNTIV64UGQ6YYSFMMQ7HYXZBB7QC table.copy = function(h)local result = {}for k,v in pairs(h) doresult[k] = vendreturn resultend
local data = {next=First_available_id}-- save a copy of Nodes with various fields deletedlocal kvs = {}for k,v in pairs(Nodes) dov = table.copy(v)v.data = {}for i,l in ipairs(v.editor.lines) dotable.insert(v.data, l.data)endv.editor = niltable.insert(kvs, {k, v})end-- sort the copy to avoid spurious diffs in version controltable.sort(kvs, function(a, b) return a[1] < b[1] end)data.nodes = Nodes