code: public GetAssignmentGroupOptions includes(List<Include> includes) {
          List<Include> assignmentDependents = Arrays.asList(Include.DISCUSSION_TOPIC, Include.ASSIGNMENT_VISIBILITY, Include.SUBMISSION);
          if(includes.stream().anyMatch(assignmentDependents::contains) && !includes.contains(Include.ASSIGNMENTS)) {
              throw new IllegalArgumentException("Including discussion topics, all dates, assignment visibility or submissions is only valid if you also include submissions");
          }
          addEnumList("include[]", includes);
          return this;
      }
docs: Additional objects to include with the requested group.
  Note that all the optional includes depend on "assignments" also being included.
  @param includes List of included objects to return
  @return this object to continue building options