An interface that you implement to interact with a drop operation in a view
modified to accept drops.
The ``DropDelegate`` protocol provides a comprehensive and flexible way to
interact with a drop operation. Specify a drop delegate when you modify a
view to accept drops with the ``View/onDrop(of:delegate:)`` method.
Alternatively, for simple drop cases that don't require the full
functionality of a drop delegate, you can modify a view to accept drops
using the ``View/onDrop(of:isTargeted:perform:)`` method. This method handles the
drop using a closure you provide as part of the modifier.
Tells the delegate that a drop containing items conforming to one of the
expected types entered a view that accepts drops.
Specify the expected types when you apply the drop modifier to the view.
The default implementation returns `true`.
Tells the delegate that a validated drop moved inside the modified view.
Use this method to return a drop proposal containing the operation the
delegate intends to perform at the drop ``DropInfo/location``. The
default implementation of this method returns `nil`, which tells the
drop to use the last valid returned value or else
``DropOperation/copy``.