docs: def check_trips(
      feed: "Feed", *, as_df: bool = False, include_warnings: bool = False
  ) -> List:
      """
      Analog of :func:`check_agency` for ``feed.trips``.
      """
      table = "trips"
      problems = []
  
      # Preliminary checks
      if feed.trips is None:
          problems.append(["error", "Missing table", table, []])
      else:
          f = feed.trips.copy()
          problems = check_for_required_columns(problems, table, f)
      if problems:
          return format_problems(problems, as_df=as_df)
  
      if include_warnings:
          problems = check_for_invalid_columns(problems, table, f)
  
      # Check trip_id
      problems = check_column_id(problems, table, f, "trip_id")
  
      # Check route_id
      problems = check_column_linked_id(
          problems, table, f, "route_id", feed.routes
      )
  
      # Check service_id
      g = pd.DataFrame()
      if feed.calendar is not None:
          g = pd.concat([g, feed.calendar], sort=False)
      if feed.calendar_dates is not None:
          g = pd.concat([g, feed.calendar_dates], sort=False)
      problems = check_column_linked_id(problems, table, f, "service_id", g)
  
      # Check direction_id
      v = lambda x: x in range(2)
      problems = check_column(
          problems, table, f, "direction_id", v, column_required=False
      )
  
      # Check block_id
      if "block_id" in f.columns:
          v = lambda x: pd.isnull(x) or valid_str(x)
          cond = ~f["block_id"].map(v)
          problems = check_table(problems, table, f, cond, "Blank block_id")
  
      # Check shape_id
      problems = check_column_linked_id(
          problems, table, f, "shape_id", feed.shapes, column_required=False
      )
  
      # Check wheelchair_accessible and bikes_allowed
      v = lambda x: x in range(3)
      for column in ["wheelchair_accessible", "bikes_allowed"]:
          problems = check_column(
              problems, table, f, column, v, column_required=False
          )
  
      # Check for trips with no stop times
      if include_warnings:
          s = feed.stop_times["trip_id"]
          cond = ~f["trip_id"].isin(s)
          problems = check_table(
              problems, table, f, cond, "Trip has no stop times", "warning"
          )
  
      return format_problems(problems, as_df=as_df)