Stream purposes are undocumented

In general the control spec is pretty good about saying what event attributes indicate. One exception are stream purposes which are completely undocumented.

https://gitweb.torproject.org/torspec.git/blob/HEAD:/control-spec.txt#l1411

atagar@morrigan:~/Desktop/tor/torspec$ grep -R "UPLOAD_DESC" ./*
./control-spec.txt:      Purpose = "DIR_FETCH" / "UPLOAD_DESC" / "DNS_REQUEST" /

atagar@morrigan:~/Desktop/tor/torspec$ grep -R "DNS_REQUEST" ./*
./control-spec.txt:      Purpose = "DIR_FETCH" / "UPLOAD_DESC" / "DNS_REQUEST" /

... etc...

See the StreamStatus above for an example of a nice mapping between attributes and a description.