docs: async def create(source_id: str, name: str, version: str, attrs: list, payment_handle: int):
          """
          Creates a new schema object that is written to the ledger
  
          :param source_id: Institution's unique ID for the schema
          :param name: Name of schema
          :param version: Version of the schema
          :param attrs: Atttributes of the schema
          :param payment_handle: NYI - payment of ledger fee is taken from wallet automatically
          Example:
          source_id = 'foobar123'
          name = 'Address Schema'
          version = '1.0'
          attrs = ['address', 'city', 'state']
          payment_handle = 0
          schema = await Schema.create(source_id, name, version, attrs, payment_handle)
          :return: schema object, written to ledger
          """
          constructor_params = (source_id, name, version, attrs)
  
          c_source_id = c_char_p(source_id.encode('utf-8'))
          c_name = c_char_p(name.encode('utf-8'))
          c_version = c_char_p(version.encode('utf-8'))
          c_schema_data = c_char_p(json.dumps(attrs).encode('utf-8'))
          c_payment = c_uint32(payment_handle)
          c_params = (c_source_id, c_name, c_version, c_schema_data, c_payment)
  
          schema = await Schema._create("vcx_schema_create", constructor_params, c_params)
          schema.schema_id = await schema.get_schema_id()
          return schema