I think it should be easy since it looks similar to the Atom spec. See here: https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json This variant is more readable and better for maintenance.