anchor.diff:  (defvar +secret-key+ nil)
   (defvar +server-url+ "http://vindinium.org")
   
  -(defvar +training-url+ (format nil "~a/api/training" +server-url+))
  -(defvar +arena-url+ (format nil "~a/api/arena" +server-url+))
  -
   ;; internal command symbol -> server formatted command
   (defvar +command-map+
     '((stay . "Stay")
  
positive.code:   "Return list of available command symbols."
    (loop for x in +command-map+ collect (car x)))
  
  (defun do-request (url params)
    "Make a POST request with supplied parameters, return jsown object on success."
    (let* ((response (multiple-value-list (drakma:http-request url :method :post
  															 :parameters params)))
  		 (body (car response))
  		 (status (cadr response)))
  
negative.code: 		   when (cl-ppcre:scan (car x) tile-string)
  		   collect x)))
  
  (defun tile-at (board-map x y &key raw)
    "From a board map, lookup tile at given coords and return parsed tile symbol."
    (if (array-in-bounds-p board-map y x)
  	  (let ((tile-string (aref board-map y x)))
  		(if raw
  			tile-string
  			(parse-tile tile-string)))))
  
  ;; NOTE: x and y swap places
  (defun my-location (game)
    "Get your hero's current location."
    (let ((position (get-in game "hero" "pos")))
  	(list (jsown:val position "y") (jsown:val position "x"))))
  
  ;;; bot
  