JViewer is an excellent way to declaratively represent elixir data in a JSON encodable format.
JViewer.Types behaviour.