docs: def check_fare_rules(
      feed: "Feed", *, as_df: bool = False, include_warnings: bool = False
  ) -> List:
      """
      Analog of :func:`check_agency` for ``feed.calendar_dates``.
      """
      table = "fare_rules"
      problems = []
  
      # Preliminary checks
      if feed.fare_rules is None:
          return problems
  
      f = feed.fare_rules.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_linked_id(
          problems, table, f, "fare_id", feed.fare_attributes
      )
  
      # Check route_id
      problems = check_column_linked_id(
          problems, table, f, "route_id", feed.routes, column_required=False
      )
  
      # Check origin_id, destination_id, contains_id
      for col in ["origin_id", "destination_id", "contains_id"]:
          problems = check_column_linked_id(
              problems,
              table,
              f,
              col,
              feed.stops,
              "zone_id",
              column_required=False,
          )
  
      return format_problems(problems, as_df=as_df)