QueerCade (Part 1): Ship an Agent That Queries Real Content
This is a submission for the Sanity Challenge, Path One: Ship an Agent That Queries Real Content
What I built
QueerCade is an arcade featuring LGBTQ+ video games — titles that have
been carefully selected on the basis of their queer characters, stories,
themes, and creators. For Path One I created the QueerCade Discovery
Guide, which is an AI agent designed to assist people in finding
games, characters, developers, studios, and aspects of queer gaming
history, and it only responds based on the current Sanity dataset. It
never makes up a game, a developer, a character, or a fact; if something
is not in the dataset it states this and instead provides the nearest
actual alternative.
The dataset
One Sanity project (tzh8tziu, production dataset) holds the entire
corpus:
| Content type | Documents | Description |
|---|---|---|
| game | 746 | Titles, IGDB metadata, editorial status, relationships |
| company | 930 | Developers, publishers, involved companies |
| platform | 79 | Consoles, PC, mobile |
| genre | 22 | Taxonomy |
| gameCollection | 4 | Curated lists (cozy games, visual novels, …) |
| importRecord | 1,754 | Every pipeline operation, tracked |
| contentPage / siteSettings | 2 | Editorial pages, global config |
Three thousand and five hundred documents, linked together by
references: game.developer refers to the company, game.genres[] refers
to the genre, game.platforms[] refers to the platform, and
gameCollection.games[] refers to the game. The agent does not carry
out keyword searches; instead, it navigates this graph.
How the agent connects
Hitting the wall is something everyone encounters: the Sanity Knowledge
Base has a limit of 150 documents, and this collection has over 3,500.
Therefore, I completely bypassed the Knowledge Base and went straight to the Sanity Context MCP endpoint, enclosing it in a custom
Superhuman GO pack:
MCP server: Sanity Context MCP endpoint
The pack makes the endpoint available to the agent through a chat
skill that gives strict instructions: use initial_context to discover
the schema, schema_explorer to get the details about the fields,
groq_query to retrieve the documents — and always base your answers
on what the tools have returned, not on the training data.
The agent serves as a comprehensive discovery guide: it first asks for your name and pronouns, then learns about the platforms you use and your preferences before creating a series of recommendations across the network—from games to developers to related games, then to characters, and finally to your history.
The agent in action
What follows is an actual session: after the user names two games they
loved, watch what happens.
Demo: I loved We Are OFK
>
QueerCade: That helps a lot, Demo! Your best next game is
Goodbye Volcano High — like We Are OFK, it follows young
musicians navigating romance, friendship, and creative ambition. The
protagonist, Fang, uses they/them pronouns.
>
Demo: Also played and loved that.
>
QueerCade: You've already played the two closest matches —
excellent taste. 🌈 My pick for you: Afterlove EP. You play Rama,
a young musician in modern Jakarta navigating grief and relationships
— your choices branch the story. Or Stray Gods, where your choices
literally shape the musical numbers.
There is no result from a keyword search like that. The agent traced the
lineage from representation through theme to developer and then to
character identity across the relevant documents. After exhausting the
two most similar entries, it moved along a different branch of the graph
rather than repeating the same process. In a previous part of the same
session, it also knew when not to overstate: when asked about a
blockbuster's queer representation, it noted that the dataset did not
specify it instead of making up information.
Why this only works because the content is structured
The recommendations do not focus on text similarity but instead follow
references (for example, the developer of a game → the other games
from that studio → the characters in those games).The agent gives a reason for each selection—shared developers, shared
themes, and shared representation—since it treats these relationships
as first-class data.The editorial status (imported → under Review → approved → featured)
indicates that the agent will always recommend only those games which
humans have curated.
Links
Agent: Superhuman GO pack → Sanity Context MCP endpoint (above)
The dataset is also used to power the Path Two app: Path 2: Something Strange
Emoji Game Oracle (site discovery toy)
Demo:
Sanity Project Details: Project ID: tzh8tziu
Note: I tried to use the knowledge base, but it had a limit on the number of documents. I contacted Sanity support and Discord support, and unfortunately, using the knowledge base MCP wasn't possible, which is why I connected to the standard dataset MCP instead.
GitHUb Gist Below:
Top comments (1)
I did try and get help on the KB limit on the Discord and support: discord.com/channels/1304483263171...