&key in the argument list means that all the remaining arguments must be keyword-value pairs. The &rest argument lets you get a hold of the whole list of keyword arguments (mostly useful when &allow-other-keys is being used), but it doesn't change the requirement for the keyword format.