class ObjectValue extends PropertyValue {

    @Override
    protected ObjectValue deepClone(){
        ObjectValue newProp = new ObjectValue(getKey());
        newProp.setParent(getParent());
        newProp.setMeta(getMeta());
        fields.values().forEach(c -> newProp.setPropertyValue(c.deepClone().mutable()));
        newProp.setVersion(getVersion());
        return newProp;
    }

      ObjectValue( String key);

}