Pull structure apart as you test it.
Map patterns match only the keys you name, binding useful values directly in the successful clause.
; extra response fields are fine
(match response
({:status :ok :body body}
(parse body))
({:status :error :code code}
(print "Request failed:" code)
false))