Props
data class Props<PAYLOAD : Any>(val payloadType: KClass<PAYLOAD>, val accepts: (PAYLOAD) -> Boolean, val onDrop: (PAYLOAD) -> Unit, val onMouseOver: (target: Component<*>) -> Unit, val onMouseOut: (target: Component<*>) -> Unit, val onDragStart: (target: Component<*>) -> Unit, val onDragEnd: (target: Component<*>) -> Unit, val key: String?)