docs: def check_for_invalid_columns(
      problems: List, table: str, df: DataFrame
  ) -> List:
      """
      Check for invalid columns in the given GTFS DataFrame.
  
      Parameters
      ----------
      problems : list
          A four-tuple containing
  
          1. A problem type (string) equal to ``'error'`` or ``'warning'``;
             ``'error'`` means the GTFS is violated;
             ``'warning'`` means there is a problem but it is not a
             GTFS violation
          2. A message (string) that describes the problem
          3. A GTFS table name, e.g. ``'routes'``, in which the problem
             occurs
          4. A list of rows (integers) of the table's DataFrame where the
             problem occurs
  
      table : string
          Name of a GTFS table
      df : DataFrame
          The GTFS table corresponding to ``table``
  
      Returns
      -------
      list
          The ``problems`` list extended as follows.
          Check whether the DataFrame contains extra columns not in the
          GTFS and append to the problems list one warning for each extra
          column.
  
      """
      r = cs.GTFS_REF
      valid_columns = r.loc[r["table"] == table, "column"].values
      for col in df.columns:
          if col not in valid_columns:
              problems.append(
                  ["warning", f"Unrecognized column {col}", table, []]
              )
  
      return problems