code: public TerminalSize min(TerminalSize other) {
          return withColumns(Math.min(columns, other.columns))
                  .withRows(Math.min(rows, other.rows));
      }
docs: Takes a different TerminalSize and returns a new TerminalSize that has the smallest dimensions of the two,
  measured separately. So calling 3x5 on a 5x3 will return 3x3.
  @param other Other TerminalSize to compare with
  @return TerminalSize that combines the minimum width between the two and the minimum height