At the most fundamental level, Vega.jl translates the Vega grammar into a series of Julia composite types as primitives to build upon. This allows for users to build visualizations using familiar Julia syntax, without having to worry about how those types translate into JSON.
For example, here is the highest-level composite type defined,
This is a one-to-one mapping of the grammar outlined in the Vega Documentation for Visualization.
The following primitives have been defined in Julia, to correspond to the types outlined in the Vega.js documentation. See link to Vega documentation to understand structure of each type (or view Vega.jl primitives source code)