The concept is great, there are a handful of limitations that become more apparent with actual use. The main one is there is no encoding, just decoding. The generated code and representation of the parsed data also sometimes feel idiomatic to the language used, particularly in cases where I found I had to add extra levels of indirection to satisfy kaitai.