What do do about historical stuff in the specs
Our specifications have large amounts of obsolete historical material. This makes it hard to see the wood for the trees and complicates reading. On the other hand, this historical information in the specs probably ought not to be just relegated to the VCS history. I suggest the following principle:
Where practical, we move historical material out of the mainline text, ideally to an archive section of the spec. Failing that, we will mark it non-normative and introduce it with a "Historical" subheading.
For example, netdoc items which are entirely historial (of which there are many) could be moved out of the document format desccriptions. Obsolete arguments to still-relevant items, and obsolete data formats for existing protocol elements, will probably have to remain inline.
By "historical" we mean something that was once part of the protocol, but which no implementation processing data about the live Tor Network needs to know about. If something still needs to be generated or accepted for compatibility reasons, it remains in the main text. Developing some current tools may still involve referring to historical protocol elements. For example: tools for processing historical data (eg, old consensuses); or, tools for use probing to try to determine the underlying version of possibly mendacious remote software.
I suggest we put something about this somewhere in the spec style guide, and then we will have a way to represent this situation as when we overhaul the specs and as the protocol develops.
CC @nickm