   [u username USERNAME  str  "github username"
    r repo     REPO      str  "bot repo"
    e energy   ENERGY    int  "energy"
-   f frames   FRAMES    int  "number of frames to process"
+   f frames   FRAMES    int  "number of frames to process (max 50)"
    t token    TOKEN     str  "github API token"]
   (let [{:keys [code ratelimit-message]} (get-bot-code-simulator username repo token)
         player {:_id "1"

                                          [a b p (gu/sanitize-player player) o b]
                                          [f f o o b o]
                                          [f b f o b o]]
                            :players [player]}]
    (println "Running Simulation...")

    (when code
      (loop [{:keys [clean-arena messages players] :as game-state} initial-game-state
             frame-count (or frames 1)
             frame-display "Starting Arena"]

        (println "\nFrame: " frame-display)
        (au/pprint-arena clean-arena)
        (println (str "\n\nMessages: " (or messages {})
                      "\nEnergy: " (:energy (first players))))

          (recur
           ((comp finalize-frame process-frame initialize-frame) game-state)
           (dec frame-count)
           (- initial-frame-count (dec frame-count))))))))
