docs: public static Scope openScopes(Object... names) {
  
      if (names == null) {
        throw new IllegalArgumentException("null scope names are not allowed.");
      }
  
      if (names.length == 0) {
        throw new IllegalArgumentException("Minimally, one scope name is required.");
      }
  
      ScopeNode lastScope = null;
      ScopeNode previousScope = (ScopeNode) openScope(names[0], true);
      for (int i = 1; i < names.length; i++) {
        lastScope = (ScopeNode) openScope(names[i], false);
        lastScope = previousScope.addChild(lastScope);
        previousScope = lastScope;
      }
  
      return previousScope;
    }