input: 
  from typing import List
  
  def retrieve_search_results(query: str, collection: str = None,
                              start_record: int = 1, max_records: int = 1,
                              record_schema: str = None) -> List[dict]:
      """
      Uses the KB SRU API to retrieve search results based on the provided query and optional parameters.
      The function returns a list of dictionaries, each representing a record from the search results.
  
      >>> retrieve_search_results("python", "GGC", 1, 2, "dcx")
      [{'title': 'Python programming', 'creator': 'John Doe', 'subject': 'Computing'}, {'title': 'Advanced Python', 'creator': 'Jane Smith', 'subject': 'Programming'}]
      >>> retrieve_search_results("history", "BYVANCK", 1, 1, "dcx")
      [{'title': 'Medieval Europe', 'creator': 'Alice Johnson', 'subject': 'History'}]
      """
  
      sru_instance = sru()
      response_obj = sru_instance.search(query, collection, start_record, max_records, record_schema)
      if not response_obj:
          return []
      return [{"title": title, "creator": creator, "subject": subject} for title, creator, subject in zip(response_obj.titles, response_obj.creators, response_obj.subjects)]
  
output:     sru_instance = sru()
      response_obj = sru_instance.search(query, collection, start_record, max_records, record_schema)
      if not response_obj:
          return []
      return [{"title": title, "creator": creator, "subject": subject} for title, creator, subject in zip(response_obj.titles, response_obj.creators, response_obj.subjects)]