+(defclass session ()
+ ((update-queue
+ :accessor update-queue
+ :initform (locked-queue:create)
+ :documentation "Updates to be sent to the browser")
+ (connection
+ :accessor connection
+ :documentation "Connection to the empire game server")))
+
+(defun make-session (username password)
+ (let* ((session (make-instance 'session))
+ (connection (empire:connect :user username
+ :password password
+ :session session)))
+ (setf (slot-value session 'connection) connection)
+ session))
+
+(defgeneric send (session string))
+(defgeneric prompt (session minutes btus))
+(defgeneric data (session message))