It reminds
me of 010 Editor. A programming language to describe structures is exactly what 010 Editor had (they were called “Binary Templates”). It allowed awesome things like: this next sequence of bytes is interpreted differently depending on the previously encountered bytes. For example, here’s the EXE file format:
https://www.sweetscape.com/010editor/repository/files/EXE.bt