This uses the `/json/protocol` endpoint to generate type definitions for the protocol. Currently it is lacking protocol events and commands, but I will add those later.