 				user?.sendJSON(json: json)
 			}
 			
-			func sendCanvas() {
+			func sendColors(json: JSON) {
 				var structure: [[String: NodeRepresentable]] = [[:]]
+				structure.append(["responseType": "colorList"])
+				for color in canvas.colors {
+					structure.append([
+						"R": color.color.red,
+						"G": color.color.green,
+						"B": color.color.blue,
+						"ID": color.ID])
+				}
+				guard let json = try? JSON(node: structure) else {
+					return
+				}
+				user?.sendJSON(json: json)
+			}
+			
+			//TODO: Use a raw base64 binary for this possibly
+			//TODO: Require userID for this to prevent unauthed users (IP banned) from spamming getCanvas
+			func sendCanvas(json: JSON) {
+				var structure: [[String: NodeRepresentable]] = [[:]]
+				structure.append(["responseType": "fullCanvas"])
 				for tile in canvas.tiles {
 					structure.append([
-						"x": tile.pos.x,
-						"y": tile.pos.y,
-						"ID":tile.color.ID])
+						"X": tile.pos.x,
+						"Y": tile.pos.y,
+						"colorID":tile.color])
 				}
 				guard let json = try? JSON(node: structure) else {
 					return

				
				//Then update canvas
				canvas.tiles[Xcoord + Ycoord * canvas.width].placer = userForUUID(uuid: userID)
				canvas.tiles[Xcoord + Ycoord * canvas.width].color  = colorForID(colorID: colorID)
				canvas.tiles[Xcoord + Ycoord * canvas.width].placeTime = Date() //This current time
				
				//And finally send this update out to other clients

		}
    }
}

/*
TODO:
Add UUID check for sendCanvas
Add UUID check for sendColors
Add dimensions to fullCanvas
*/

/*
API doc:

First do initialAuth
Then run getColors
Then run getCanvas

Request types:
- "initialAuth", params: none
- "getCanvas",   params: "userID"
- "postTile"     params: "userID", "X", "Y", "colorID"
- "getTileData"  params: "userID", "X", "Y" (Not finished)
- "getColors"    params: "userID"

Response types ("responseType"):
- "tileUpdate", params: "X", "Y", "colorID"
- "authSuccessful", params: "uuid"
- "fullCanvas", params: Array of "X", "Y", "colorID"
- "colorList",  params: Array of "R", "G", "B", "ID"
*/

