The entry point for each function.
@callback info() :: %{ title: binary(), columns: [%{name: atom(), type: atom()}], order_by: [{atom(), :asc | :desc}], index: integer() }
@callback query() :: binary()