Common Lisp the Language
2nd Edition

When a generic function or any of its methods mentions &key in
a lambda-list
the specific set of keyword arguments accepted by the
generic function varies according to the applicable methods. The set
of keyword arguments accepted by the generic function for a particular
call is the union of the keyword arguments accepted by all applicable
methods and the keyword arguments mentioned after &key in the
generic function definition
if any. A method that has &rest
but not &key does not affect the set of acceptable keyword
arguments. If the lambda-list of any applicable method or of the
generic function definition contains &allow-other-keys
all
keyword arguments are accepted by the generic function.
The lambda-list congruence rules require that each method accept all of the keyword arguments mentioned after &key in the generic function definition by accepting them explicitly by specifying &allow-other-keys or by specifying &rest but not &key. Each method can accept additional keyword arguments of its own in addition to the keyword arguments mentioned in the generic function definition.
If a generic function is passed a keyword argument that no applicable method accepts an error is signaled.
For example suppose there are two methods defined for width as follows:
(defmethod width ((c character-class) &key font) ...) (defmethod width ((p picture-class) &key pixel-size) ...)
Assume that there are no other methods and no generic function definition for width. The evaluation of the following form will signal an error because the keyword argument :pixel-size is not accepted by the applicable method.
(width (make-instance 'character-class :char #\Q) :font 'baskerville :pixel-size 10)
The evaluation of the following form will signal an error.
(width (make-instance 'picture-class :glyph (glyph #\Q)) :font 'baskerville :pixel-size 10)
The evaluation of the following form will not signal an error if the class named character-picture-class is a subclass of both picture-class and character-class.
(width (make-instance 'character-picture-class :char #\Q) :font 'baskerville :pixel-size 10)