     [156 175 131 255]
     [209 213 201 255]
     [209 213 201 255]
+    [209 213 201 255]]
+   [[ 57  29  29   0]
+    [147 103  59 255]
+    [149  65  35 255]
+    [177 157 105 255]
+    [209 213 201 255]
+    [215 215 151 255]
     [209 213 201 255]]])
 
 (def tileset-bw

          (fn [{:keys [button state col row] :as click}]
            (log/info "got click" click)
            (if (< col 12)
              ;; select new tile
              (do
                (log/info "selecting tile at" [row col])
                (when-let [tile (get-in tile-names [row col])]
                  (reset! current-tile tile)))
              ;; draw new tile
              (do
                (log/info "placing tile at" [row col])

                           :2 (atom {})
                           :3 (atom {})}
            current-layer (atom :0)
            current-tile  (atom (ffirst tile-names))
            palette-index (atom 1)]
        ;; Every 33ms, draw a full frame
        (zat/do-frame terminal 33
          (zat/put-chars! terminal :ui (palette @palette-index))
          (zat/put-chars! terminal :ui [{:c @current-tile :fg [255 255 255] :bg [128 128 128] :x 0 :y 26 :palette-index 1}])
          (zutil/put-string terminal :ui 2 26 (format "layer: %s" (str @current-layer)))
          (when @current-tile
            (zutil/put-string terminal :ui 16 26 (str @current-tile)))
          (zat/put-chars! terminal :ui color-table-chars)
          (zat/put-chars! terminal :0 (map (fn [[[col row] t]]
                                             {:c t :fg [255 255 255] :bg [0 0 0] :x col :y row :palette-index 1})
                                           @(get layers :0)))
