pub trait TouchSourceProxyInterface: Send + Sync {
    type WatchResponseFut: Future<Output = Result<Vec<TouchEvent>, Error>> + Send;
    type UpdateResponseResponseFut: Future<Output = Result<(), Error>> + Send;
    // Required methods
    fn watch(&self, responses: &[TouchResponse]) -> Self::WatchResponseFut;
    fn update_response(
        &self,
        interaction: &TouchInteractionId,
        response: &TouchResponse,
    ) -> Self::UpdateResponseResponseFut;
}