code: private void parseFieldUpdate(String fieldName, UNode valueNode) {
          if (valueNode.isValue()) {
              addFieldValue(fieldName, valueNode.getValue());
          } else if (valueNode.childrenAreValues()) {
              parseFieldAdd(fieldName, valueNode);
          } else {
              for (UNode childNode : valueNode.getMemberList()) {
                  if (childNode.isCollection() && childNode.getName().equals("add") && childNode.childrenAreValues()) {
                      // "add" for an MV field
                      parseFieldAdd(fieldName, childNode);
                  } else if (childNode.isCollection() && childNode.getName().equals("remove") && childNode.childrenAreValues()) {
                      // "remove" for an MV field
                      parseFieldRemove(fieldName, childNode);
                  } else {
                      parseFieldUpdate(childNode.getName(), childNode);
                  }
              }
          }
      }
docs: Parse update to outer or nested field.