Current implementation is comingling things that ought not be together. There are _some_ similarities between parsing for the different proto types, but they are more different than alike, making the code extremely difficult to reason about. Signed-off-by: Brian Goff <cpuguy83@gmail.com> Upstream-commit: bd4fe9b9867c7633e520130b99e02798f49e6b44 Component: engine