RESPONSE SCHEMA

Small records.
Clear meanings.

An explicit field map for the three local examples. This is a proposed application contract, not a universal provider schema.

Shared conventions

Every fixture includes sample: true. All URLs in the example data point to this site. Position values and observation labels are synthetic; they are not live performance evidence.

FieldTypeMeaning
samplebooleanAlways true in these fixtures. Do not remove the sample label and present the data as measured.
query / keyword / taskstringThe illustrative question or topic for this particular record.
status / limitationsstring / arrayAn explicit statement about the sample and the absence of live operations.

SERP example

FieldTypeMeaning
context.countrystringThe requested example country, US. It is not a verified observation location.
context.languagestringThe requested example language, en.
organic_resultsarrayA synthetic list of result records.
positionintegerA made-up one-based example position, not a Google ranking.
title / urlstringA local guide title and destination used to demonstrate the record shape.
Open SERP JSON

Keyword example

FieldTypeMeaning
device / countrystringIllustrative context values; no device session was observed.
observationsarrayTwo synthetic records labeled Sample A and Sample B.
labelstringA sample label, not a timestamp. A real system should use its observed time.
positionintegerSynthetic values used to explore the shape of an observation history.
Open keyword JSON

LLM evidence example

FieldTypeMeaning
sourcesarrayIllustrative source records, not results of a live retrieval.
idstringA stable identifier used by claim_refs.
passagestringAn illustrative context string, not a fetched quotation.
claim_refsarrayIdentifiers that should resolve to records in sources.
limitationsarrayThe explicit absence of a live retrieval or model call.
Open LLM JSON

Extend the contract deliberately

A live adapter should add source identity, observation time, requested and confirmed context, coverage, and a well-defined outcome. Keep provider-specific fields outside the shared core until their meanings are documented. Validate destination URLs and render externally influenced strings as text.

Empty results, a missing optional field, and a failed request should remain separate outcomes. Never infer a rank or search-volume estimate from a missing value.