← LibraryOracle Read-only API

Game styles, with evidence.

Public metadata API. No key required. CORS permits read access from other apps. No source game binaries, account identifiers or machine paths are published.

Canonical base URL: https://abbies-game-oracle.vercel.app

Game Anatomy

Browse technical studies. GET /api/anatomy searches the pilot; optional q, genre, domain, limit and offset. GET /api/anatomy?id=mindustry returns evidence, coverage and gaps. Download the full study catalog; individual inventories are linked in each record. MCP tools: search_game_anatomy and get_game_anatomy. Anatomy IDs differ from Steam IDs. Studies are partial and do not claim observed playthroughs.

Endpoints

GETReturns
/api/metaSnapshot version, counts, coverage gaps, facets and concept dictionary
/api/games?q=isometricRanked results, query expansions and matched concepts
/api/games?id=steam-728880One complete game record
/api/games?similar=steam-728880Up to 12 records with shared art attributes and explanations
/data/catalog.jsonComplete versioned hosted catalog
/data/dictionary.jsonSemantic query vocabulary and aliases
/openapi.jsonOpenAPI 3.1 description

Search parameters

q (maximum 240 characters), dimension, perspective, rendering, ownership (owned-snapshot | unverified), installed (true | false), status (source-reported | unclassified), offset and limit (1–100, default 30). Facets are exact values returned by /api/meta. Filters combine with AND.

const base = 'https://abbies-game-oracle.vercel.app';
const result = await fetch(base + '/api/games?q=pixelated&dimension=2D')
  .then(response => response.json());
console.log(result.results.map(game => ({
  name: game.name,
  styles: game.styles,
  evidence: game.evidence,
  unknowns: game.unknowns
})));

What “semantic” means here

This first version expands a small documented concept dictionary (for example, “axonometric” → isometric and “pixelated” → pixel art), then ranks text matches. It does not use embeddings or an LLM. More matched concepts rank first; names and art attributes outrank genre tags and descriptions. Partial matches can appear lower down. Similarity uses shared classified art attributes. Results explain their matches.

Evidence and uncertainty

Steam community tags are source-reported descriptions, not a verified rendering pipeline. A 2D tag does not prove sprite technology. Both 2D and 3D tags produce a warning, not an invented hybrid classification. Empty style arrays mean unknown. Prior corpus excerpts retain separate provenance and are not promoted to verified art facts.

Owned-snapshot means listed by the historical Steam Community inventory on October 13, 2026. Installed manifests do not prove entitlement. Older/abandoned-game collection import is pending access to the existing Mac catalog; a downloadable archive does not establish ownership or reuse rights.

MCP access

A stateless, read-only MCP endpoint is available at https://abbies-game-oracle.vercel.app/api/mcp. It accepts JSON-RPC POST requests for initialize, tools/list and tools/call. Tools: search_games, get_game, find_similar_games and get_catalog_coverage. No token or workstation connection is required. This endpoint uses JSON responses and does not provide an SSE notification stream.

Hosting and updates

The dataset is bundled into Vercel's deployment and read by serverless API functions. There is no PC callback, tunnel, local database query or external model dependency on the read path. This is durable versioned snapshot storage, not a writable hosted database. Updates run ingestion on the PC, validate the sanitized catalog, then atomically publish a new production deployment. API responses include the snapshot version. CDN caching is at most one hour for searches; full snapshot URLs are available for consistent client-side queries.

GET only on /api/games. Unknown IDs return 404, invalid enum filters return 400, unsupported methods return 405. No write endpoint exists. Inventory, sources and store availability may change; inspect /api/meta coverage gaps before treating results as complete.