 ;
 ; kind -> TODO
 (defrecord Block [loc kind])
+
+; Chunk
+;
+; A single chunk in the world.
+;
+; blocks -> [block ...]
+;   A vector of the blocks in this chunk.
+(defrecord Chunk [blocks])
+
+; World
+;
+; A representation of a single world/server, shared by all bots connected to it.
+;
+; server -> {:name hostname :port port}
+;
+; entities -> (ref {eid (ref Entity) ...})
+;   A map of all the entities in the world.
+;
+; chunks -> (ref {[x y z] [(ref Chunk) ...] ...})
+;   A map of all the chunks in the world.
+;
+; time -> (ref integer)
+;   The current world time.
+(defrecord World [server entities chunks time])
 
 ; Bot
 ;

(defrecord Bot [connection outqueue player world
                packet-counts-in packet-counts-out])

; World
;
; A representation of a single world/server, shared by all bots connected to it.
;
; server -> {:name hostname :port port}
;
; entities -> (ref {eid (ref Entity) ...})
;   A map of all the entities in the world.
;
; chunks -> (ref {[x y z] [(ref Chunk) ...] ...})
;   A map of all the chunks in the world.
;
; time -> (ref integer)
;   The current world time.
(defrecord World [server entities chunks time])


;   without modifying it).
(defrecord Entity [eid loc despawned])

; Block
;
; A representation of a single block.
