 
 (def characters
   (map identity 
-       (concat "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789~!@#$%^&*()_-+=[]{}|:;,./<>?'\""
+       (concat "abcdefghijklmnopqrstuvwxyz"
+               "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
+               "~!@#$%^&*()_-+=[]{}|:;,./<>?'\""
                "\u00A7"
                "\u039B"
                "\u03B1"

                                      (-> ctx
                                        (canvas/fill-style "#191d21")
                                        (canvas/fill-rect val)))))
  (doseq [[[c x y]] character->pos]
    (canvas/add-entity character-canvas (keyword (str :char- c))
                       (canvas/entity {:c c :x x :y y :w 12 :h 16}   ; val
                                      nil                       ; update function
                                      (fn [ctx {:keys [c x y]}]             ; draw function
                                        #_(log/info "Drawing char" c "@" x y)
                                        (-> ctx
                                          (canvas/fill-style "#f9fdf1")
                                          (canvas/text {:text (str c) :x x :y y})))))))
  



            (assoc m c [x y (+ x 12) (+ y 16)]))
          {}
          character-layout))

(log/info (str character-layout))

;; Adjust canvas to fit character atlas size
(let [width (* 12 (count (first character-layout)))
