<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def seat_slot(self):
 		"""The seat slot of the touch event. 		A seat slot is a non-negative seat wide unique identifier of an active 		touch point. 		Events from single touch devices will be represented as one individual 		touch point per device. 		For events not of type :attr:`~libinput.constant.EventType.TOUCH_DOWN`, 		:attr:`~libinput.constant.EventType.TOUCH_UP`, 		:attr:`~libinput.constant.EventType.TOUCH_MOTION` or 		:attr:`~libinput.constant.EventType.TOUCH_CANCEL`, this property 		raises :exc:`AssertionError`. 		Returns: 			int: The seat slot of the touch event. 		Raises: 			AssertionError 		"""


		if self.type == EventType.TOUCH_FRAME:
			raise AttributeError(_wrong_prop.format(self.type))
		return self._libinput.libinput_event_touch_get_seat_slot(self._handle)