Put the flags back in and serialize clusters.

Note that now JSON glyph buffers and Unicode buffers look very similar, except for the g/u property difference.
diff --git a/src/hb-buffer-deserialize-json.rl b/src/hb-buffer-deserialize-json.rl
index caaa154..336a5ea 100644
--- a/src/hb-buffer-deserialize-json.rl
+++ b/src/hb-buffer-deserialize-json.rl
@@ -79,24 +79,21 @@
 glyph_number = (glyph_id >tok %parse_gid);
 
 glyph	= "\"g\""  colon (glyph_string | glyph_number);
+codepoint	= "\"u\""  colon glyph_number;
 cluster	= "\"cl\"" colon (unum >tok %parse_cluster);
 xoffset	= "\"dx\"" colon (num >tok %parse_x_offset);
 yoffset	= "\"dy\"" colon (num >tok %parse_y_offset);
 xadvance= "\"ax\"" colon (num >tok %parse_x_advance);
 yadvance= "\"ay\"" colon (num >tok %parse_y_advance);
 
-element = glyph | cluster | xoffset | yoffset | xadvance | yadvance;
+element = glyph | codepoint | cluster | xoffset | yoffset | xadvance | yadvance;
 item	=
 	( '{' space* element (comma element)* space* '}')
 	>clear_item
 	@add_item
 	;
 
-json_glyphs = space* item (comma item)* space* (','|']')?;
-unicode_item = (glyph_number >clear_item %add_item);
-json_unicode = space* unicode_item (comma unicode_item)* (','|']');
-
-main := json_glyphs | json_unicode;
+main := space* item (comma item)* space* (','|']')?;
 
 }%%