anchor.diff:      field name.
     VALUE-KIND: Category of the value type: :scalar, :message, :enum, etc.
     INDEX: Message field number of this map type.
  -  VAL-DEFAULT: Specified type for the default value of the maps value type."
  +  VAL-DEFAULT: Default value for the map entries, or nil to use $empty-default."
     (assert json-name)
     (assert value-kind)
     (check-type index integer)
  
positive.code: - define-map
  - define-oneof
  
  The most common define-* macros we will see are the macros that
  define messages, which generate PROTOBUF-MESSAGE classes and
  create the message structures that hold data. These are:
  - define-message
  - define-extend
  
  
negative.code:                                         :value-type value-type
                                          :value-kind value-kind)))
      (record-protobuf-object class map-desc :map)
      `((record-protobuf-object ',class ,map-desc :map)
        ,mfield
        ,mdata)))
  
  (defmacro define-oneof (name (&key synthetic-p) &body fields)
    "Creates a oneof descriptor and the defining forms for its fields.
  