  There are so many libraries of visualization components nowadays with their
APIs often different from one another. Could these components be more similar,
both in terms of the APIs and common functionalities? For someone who is
developing a new visualization component, how should the API look like? This
work drew inspiration from visualization grammar, decoupled the grammar from
its rendering engine and adapted it into a configurable grammar for individual
components called Encodable. Encodable helps component authors define grammar
for their components, and parse encoding specifications from users into utility
functions for the implementation. This paper explains the grammar design and
demonstrates how to build components with it.
