docs: def check_fare_attributes(
      feed: "Feed", *, as_df: bool = False, include_warnings: bool = False
  ) -> List:
      """
      Analog of :func:`check_agency` for ``feed.calendar_dates``.
      """
      table = "fare_attributes"
      problems = []
  
      # Preliminary checks
      if feed.fare_attributes is None:
          return problems
  
      f = feed.fare_attributes.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 fare_id
      problems = check_column_id(problems, table, f, "fare_id")
  
      # Check currency_type
      problems = check_column(
          problems, table, f, "currency_type", valid_currency
      )
  
      # Check payment_method
      v = lambda x: x in range(2)
      problems = check_column(problems, table, f, "payment_method", v)
  
      # Check transfers
      v = lambda x: pd.isnull(x) or x in range(3)
      problems = check_column(problems, table, f, "transfers", v)
  
      # Check transfer_duration
      v = lambda x: x >= 0
      problems = check_column(
          problems, table, f, "transfer_duration", v, column_required=False
      )
  
      return format_problems(problems, as_df=as_df)