@julienledem it seems like one should be able to build a state machine given a descriptor that would avoid all kinds of unnecessary branching points, field lookups, etc. For some reason I thought we were doing that for Thrift but I can see we aren't.. obviously this is beyond the scope of this PR, but am I totally wrong on that?