I generally think the spec is ok. I’ve written code to implement all the common tags, just copying any unimplemented (in my app) tags as is.
The biggest problem, though, is the difference between V2.2, V2.3, and V2.4 specs.
To call the difference between 2.2 and 2.3 a minor revision was just crazy. V2.3 should have been V3.0. Try making an base class for V2 frames that can be extended to either V2.2 or V2.3. It just isn’t practical. The headers are different; the frames are different; the names are different. The only similarity is … hmmmmm… well, I can’t think of any similarities right now.
While you might call the difference between V2.3 and V2.4 a minor revision, even that is not so clear.