dump_state = function()
	print('===')
	print('zoom', Viewport.zoom)
	print('viewport', Viewport.y, 'spx')
	local node = Page.data[1]
	print('node', node.y, 'spx')
	print('line height', node.editor.line_height, 'vpx')
	print('node renders from', node.editor.top, 'vpx')
	print('screen top', node.editor.screen_top1.line)
	print('invariant', Viewport.y-node.y+node.editor.top - y_of_schema1(node.editor, node.editor.screen_top1))
	local l = 25
	print('y of line', l, y_of_schema1(node.editor, {line=l, pos=1}), 'spx')
end