currently json is assumed
Add some kind of general interface that works with references and kinds?
This should work in a way so that the input data can be an arbitrary source.
Maybe supporting a new data-source requires implementing a data-source interface.
Alternatively the user is responsible for feeding the data in the right format and a different library could try to build on top of this one.