title: What are important points when designing a (binary) file format?
body: <p>When designing a file format for recording binary data, what attributes would you think the format should have? So far, I've come up with the following important points:</p>
  
  <ul>
  <li>have some "magic bytes" at the beginning, to be able to recognize the files (in my specific case, this should also help to distinguish the files from "legacy" files)</li>
  <li>have a file version number at the beginning, so that the file format can be changed later without breaking compatibility</li>
  <li>specify the endianness and size of all data items; or: include some space to describe endianness/size of data (I would tend towards the former)</li>
  <li>possibly reserve some space for further per-file attributes that might be necessary in the future?</li>
  </ul>
  
  <p>What else would be useful to make the format more future-proof and minimize headache in the future?</p>