Continuing on the feedback. I started reading the book from the chapter 6 since mostly I was interested in the Unity Event System. At the page 209 I’ve found the following inconsistency.
You wrote there, that IEndDragHandler and IDropHandler are the same, but the last one is called without data. In fact they are not the same, although they do happen on the drag end. The first one is called if the Drag was released with the pointer out from the draggable object, but the IDropHandler isn’t.
For instance, imaging you started dragging some object, which for some reason stuck at some place on the scene, but the pointer kept moving and got out from the draggable object. So in this case the EventSystem would call IEndDragHandler, but it wouldn’t call IDropHandler.