Introduce thrift format for ingest

Definitely some questions around this - opening it up for discussion
`1:` and `3:` should be a union, one or the other. It is ok to break compatibility with this struct. As long as we update the cat-errors at the same time.