I'm currently writing generic template function that will recursively serialize and deserialize the object from document::element. Everything works fine until it encounters an array field.
array::element currently inherits document::element, therefore important function key() is not available to check field name before deserializing.
Please see the code comment line#6.