What's the difference between Kansas City tape standard and CUTS?
Computer User Tape System (not Standard) was what Mr. Felsenstein and Mr. Marsh of Processor Technology developed for their SOL systems (*1) and proposed as future standard at the Byte sponsored meeting in Kansas City. It got agreed on as common format regarding encoding and hardware needs.
CUTS is more or less a synonym for KCS. Since it also was associated with Processor Technology, the term KCS was preferred by other manufacturers, much the same way they called it S100 Bus instead of Altair-Bus. Also, Byte as major proponent for the standard only used the term KCS, thus making it the more popular.
CUTS, as delivered by Processor Technology, also includes a 1200 Bd mode, which was not adopted in KCS (but recognized), as well as more specific definitions about data formats carried by this.
Mr. Marsh wrote, right after the meeting, a nice article called "Computer User Tape System", for Popular Electronics Issue March/76, describing the whereabouts and consideration for this format.
The Kansas City 300bps format is defined in the Wikipedia article, but it doesn't give useful descriptions of how the other formats mentioned varied. So what were these formats?
That is way to broad for a single question, as many (Home) Computers used their own format, or varied the KC-Standard (*2). So you may want to ask separate questions for each you like to know.
Also, I've seen indications that there was more to the format than just the frequency selection / start / stop / parity bit choices that are discussed on the Wikipedia page -- what was the block format used?
It would be nice if you could give links to these 'indications', as there wasn't anything defined beside
- Frequencies used (1200/2400 Hz)
- Cell length (3,33 ms -> 300 Bd)
- Mark (logical One) consists of eight full 2400 Hz waves
- Space (logical Zero) consists of four full 1200 Hz waves
- Byteframe (1 Startbit as Space, 8 Databits, 2 Stopbits as Mark)
- A Parity can be added after the last data bit
- The total number of bits (Dataword + Parity) may not exceed 8
- Shorter Datawords are to be filled with Mark to a length of 8
- Time between Frames has to be filled with a continuous 2400 Hz tone (aka a arbitrary number of Stopbits)
- Data is organized as Blocks of arbitrary length.
- Blocks can be of variable length
- A Block is lead in by 5 seconds of Mark (for synchronisation)
- A Block is ended with the trailing stop bit of the last Frame
- A Block should not start before at least 30 seconds after the first clear signal.
Everything else was up to each implementation, as it was considered Software. The Standard was only meant to standardize whatever is needed to make compatible hardware, much like V.24 doesn't standardize what kind of messages or blocks are to be transferred over a serial line.
Byte did publish the findings of its Audio Cassette Standards Symposium as Provisional Audio Cassette Data Interchange Standard on p.72 of Issue 6 of February 1976. This is the only 'Official Standard Document' about the KCS at all (*3).
Was there a common format for headers that could be used to identify data types / names / etc?
Simply No. That's out of scope for the standard. It's something every system, in fact every application, could have handled differently. And many did not adhere to KCS at all (*4).
*1 - Sol-PC / Sol-10 / Sol-20 as well as their Subsystem-B boards for other S100 machines
*2 - Acorn's 1200 bd format for example works by using only one 1200Hz wave for Zero and two 2400 waves for a One. It also changes the two stop bits to a single. So, while always quoted as '1200 Bd KC Standard', it merely used the same frequencies, but is otherwise rather a CUTS derivative.
*3 - A typical case of classic engineering. Forget about development process papers and all the bureaucracy - all needed to fly to the moon are some handwritten notes :)
*4 - Apple, Atari, TI and many more.