anchor.diff:  
   
   (defmacro defattribute (name general-description &body level-descriptions)
  -  `(progn  (cl-ecs:defcomponent ,name (dots))
  -            (push '(,name . ,general-description) attribute-descriptions)
  -            (push '(,name . ,level-descriptions) attribute-level-descriptions)))
  +  `(progn  (unless (member (quote ,name) (cl-ecs::all-components))
  +             (cl-ecs:defcomponent ,name (dots)))
  +           (unless (assoc (quote ,name) attribute-descriptions)
  +             (push '(,name . ,general-description) attribute-descriptions))
  +           (unless (assoc (quote ,name) attribute-level-descriptions)
  +             (push '(,name . ,level-descriptions) attribute-level-descriptions))))
   
   
   
  
positive.code: 
  
  (defun attribute-dots (attribute)
    (find-symbol (format nil "~A/DOTS" attribute) 'merlin))
  
  
  (defun get-attribute-dots (entity attribute)
    (apply (attribute-dots attribute) (list entity)))
  
  
  (defun print-entity-attribute (entity attribute)
    (print-attribute-level-description 
      attribute
      (get-attribute-dots entity attribute)))
  
  
  (defun attribute-dice-pool (entity attribute)
    (dice-pool (get-attribute-dots entity attribute)))
  
  ;; werkt niet
  ;; (defun add-random-mundane-attribute (entity attribute)
  ;;  (cl-ecs:add-component entity attribute ((attribute-dots attribute) (dice 3))))
  
negative.code:                    intellectual setbacks/hits a character can take before 
                     giving up or losing his mind.  |(resolve| is on the social 
                     and mental scale as hitpoints is on the physical |scale.)|)
                (1 (hesitant))
                (2 (average))
                (3 (determined))
                (4 (tenacious))
                (5 (outstanding)))
  
  (defattribute intelligence
                (a |character's| ability to |reason,| to study and learn academic 
  