input: Write a function to provide a Python API for KB SRU, enabling users to search bibliographic records by creating an instance of the "sru" class and calling its "search" method. The method should accept a query string along with optional parameters for collection name, start record number, maximum number of records to return, and record schema. It should return a "response" object containing the search results, from which specific information such as titles, creators, and subjects can be extracted using the available properties.
  
  assert sru_search("sample query", "GGC", 1, 10, "dcx") == response_object
output: def search(query, collection=None, start_record=1, max_records=10, record_schema="dcx"):
      class response:
          def __init__(self, query, collection, start_record, max_records, record_schema):
              self.query = query
              self.collection = collection
              self.start_record = start_record
              self.max_records = max_records
              self.record_schema = record_schema
              self.results = []
  
          @property
          def titles(self):
              return [result['title'] for result in self.results]
  
          @property
          def creators(self):
              return [result['creator'] for result in self.results]
  
          @property
          def subjects(self):
              return [result['subject'] for result in self.results]
  
      response_object = response(query, collection, start_record, max_records, record_schema)
      # Simulate fetching results from a database or API
      sample_results = [
          {"title": "Sample Title 1", "creator": "Author 1", "subject": "Subject 1"},
          {"title": "Sample Title 2", "creator": "Author 2", "subject": "Subject 2"}
      ]
      response_object.results = sample_results
      return response_object