How to use same dataloader batch key for two fields?

Hi,

I am currently trying to resolve two fields:

object :post do
    field(:id, non_null(:uuid))

    field :title, non_null(:string) do
      resolve(&Resolvers.Blog.title_for_post/3)
    end

    field :category, non_null(:string) do
      resolve(&Resolvers.Blog.category_for_post/3)
    end
end

I have the following functions in my resolver:

def title_for_post(
        post,
        _,
        params
      ) do
    tenant = params.tenant
    batch_key = {:one, Author, %{tenant: tenant}}

    value = [post_titles: post]
    Batcher.batching_fields(loader, Authors, batch_key, value)
  end

  def category_for_post(
        post,
        _,
        params
      ) do
    tenant = params.tenant
    batch_key = {:one, Author, %{tenant: tenant}}

    value = [post_categories: post]
    Batcher.batching_fields(loader, Authors, batch_key, value)
  end

Batcher.ex has the following function

def batching_fields(loader, module, batch_key, value) do
    Dataloader.load(loader, module, batch_key, value)
    |> on_load(fn loader ->
      {:ok, loader |> Dataloader.get(module, batch_key, value)}
    end)
  end

And the Post dataloader currently has the following code

def data() do
    Dataloader.Ecto.new(MyApp.Repo, query: &query/2, run_batch: &run_batch/5)
  end

  def query(Author, %{tenant: tenant}) do
    Authors.get_authors(tenant)
  end

  def run_batch(
        Author,
        authors_query,
        :post_titles,
        posts,
        _
      ) do
    author_ids =
      Enum.map(posts, & &1.author_id)

    authors_map_from_query(authors_query, author_ids)
    |> title_list(author_ids)
  end

  def run_batch(
        Author,
        authors_query,
        :post_categories,
        posts,
        _
      ) do
    author_ids =
      Enum.map(posts, & &1.author_id)

    authors_map_from_query(authors_query, author_ids)
    |> category_list(author_ids)
  end

This works but I see separate queries for title and category fields when I try to query for

query
    {
     posts
         {
          id
          title
          category
         }
     }

I would like to get a much efficient approach which is preferably using the same batch key when resolving for both fields. Any suggestions on how to achieve this?