A mapping from class names to a list (most recent version first) of schemas.
A mapping from a schema id to a schema.
When dirty, the schema table will be saved at the next commit.
(defclass schema-table ()
  ((pathname :initarg :pathname :accessor schema-table-pathname)
   (by-name :initform (make-hash-table)
            :documentation "A mapping from class names to a list (most
recent version first) of schemas."
            :reader schema-table-by-name)
   (by-id :initform (make-hash-table)
          :documentation "A mapping from a schema id to a schema."
          :accessor schema-table-by-id)
   (highest-schema-id :initform 0 :accessor highest-schema-id)
   (dirty-p :initform nil :accessor dirty-p
            :documentation "When dirty, the schema table will be saved
at the next commit.")))Source Context