all methods should by default return a generator that streams the data and raise exceptions in case of any problem
optionally, pass skip_exceptions argument which will instead of raising exceptions, yield them as part of the data stream (if possible)
all tabular data exposed via the API should provide a way to get a json table schema for the data - containing name, data type and description for each field
specifically, should make it clear that: