anchor.diff:                               :allocation :class)
             (popup-buffer nil
                           :allocation :class)
  -          (storage-path (make-instance
  -                         'extension-storage-file
  -                         :base-path (format nil "extnsion-storage/~a.txt" ,name))
  +          (storage-path (make-instance 'extension-storage-file :extension-name ,name)
                           :allocation :class)
             (description ,(gethash "description" json))
             (extension-directory ,directory)
  
positive.code:   (:accessor-name-transformer (hu.dwim.defclass-star:make-name-transformer name)))
  
  (define-class extension-storage-file (nfiles:data-file nyxt-lisp-file)
    ((nfiles:name "extension-storage"))
    (:export-class-name-p t)
    (:accessor-name-transformer (class*:make-name-transformer name))
    (:documentation "The `nyxt-file' for the browser.storage API data storage (see
    https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/storage
    for API description)."))
  
  (define-mode extension ()
    "The base mode for any extension to inherit from."
  
negative.code:    (homepage-url nil
                   :type (or null quri:uri))
     (extension-directory nil
                          :type (or null pathname)
                          :documentation "The directory that the extension resides in.")
     (extension-files (make-hash-table)
                      :type hash-table
                      :documentation "All the files extension packages.
  