anchor.diff:  		. += write_string("[val]")
   
   json_writer/proc/write_array(list/L)
  -	. = "\["
  -	for(var/i = 1 to L.len)
  -		. += write(L[i])
  -		if(i < L.len)
  -			. += ","
  -	. += "]"
  +	return "\[[list2text(L, ",")]]"
   
   json_writer/proc/write_string(txt)
   	var/static/list/json_escape = list("\\" = "\\\\", "\"" = "\\\"", "\n" = "\\n")
  
positive.code: json_writer/proc/WriteObject(list/L)
  	if(use_cache && L["__json_cache"])
  		return L["__json_cache"]
  
  	. = "{"
  	var/i = 1
  	for(var/k in L)
  		var/val = L[k]
  		. += {"\"[k]\":[write(val)]"}
  		if(i++ < L.len)
  			. += ","
  	. += "}"
  
  json_writer/proc/write(val)
  	if(isnum(val))
  
negative.code: 	for(var/key in L)
  		// if the key is a list that means it's actually an array of lists (stupid Byond...)
  		if(!isnum(key) && !isnull(L[key]) && !istype(key, /list))
  			return TRUE
  