context() :: [{atom(), any()}]
schema() :: module() | {module(), context()}
autocomplete(binary(), module(), any()) :: {:ok, [AbacusSql.Completion.Item.t()]} | {:error, any()}
extract_schema_context(schema(), context()) :: {module(), context()}
find_single_result_in_schema(schema(), any(), context()) :: {:error, any()} | {:ok, module(), context()}