+ (:documentation
+ "Make an http request to a Matrix homeserver
+
+Syntax: (REQUEST obj endpoint METHOD data headers)
+
+`endpoint` is a string path containing the matrix endpoint WITHOUT the protocol,
+ hostname, and /_matrix/client/v3
+`METHOD` is a symbol (e.g :get, :post, :put) that represents the HTTP method to be used
+`data` is a hash table, which will be sent as json
+`headers` is an alist containing additional headers to be sent.
+
+Usually with :post or :put you want to send the application/json content-type")