anchor.diff:                  (setf (call-for-help-p shop) (member value '("yes" "on" "1" "true") :test 'string-abbrev)))
                  ("special"
                   (let ((func (gethash value *special-funcs*)))
  -                  (unless func
  -                    (signal 'specparam-error :msg "invalid special" :lineno lineno))
  -                  (setf (func-of shop) func)))
  +                  ; (unless func
  +                  ;   (signal 'specparam-error :msg "invalid special" :lineno lineno))
  +                  (setf (subfunc-of shop) func)))
                  ("allow"
                   ;; ignore - handled by creature matcher
                   nil)
  
positive.code:                 (when (minusp (revenue-of shop))
                    (signal 'specparam-error :msg "a negative revenue" :lineno lineno)))
                 ("currency"
                  (let ((currency (assoc value '(("past" 0)
                                                 ("gold" 0)
                                                 ("future" 1)
                                                 ("cash" 1)
                                                 ("qp" 2)
                                                 ("quest" 2))
                                         :test 'string-abbrev)))
                    (unless currency
                      (signal 'specparam-error :msg "invalid currency" :lineno lineno))
  
negative.code:          (when (or (null next-obj)
                     (not (same-obj next-obj obj)))
             (when (or (null vars)
                       (is-alias-of (first vars) (aliases-of obj)))
               (vendor-list-object ch obj
                                   (unless (member (vnum-of obj) (produced-of shop)) counter)
                                   index
  