Open standards · Draft proposal

Agents can find a business. Collections let them find a whole street.

Today's agent standards describe one business at a time. Collections is our open draft for describing a whole group, like a trade show, high street or market, so one connection covers every member. Each business keeps its own data and checkout.

Draft 0.1 · October 2026 · Apache-2.0 · Spec on GitHub · JSON Schema

An attendee's agent adds one connector for Demo Self Build Show 2027. The collection points to each exhibitor's own catalogue. Each member keeps its own connector, data and checkout.
The stack

Built on open standards. Adding the missing layer.

Gentifi uses existing open standards for everything they already cover, and proposes new pieces only where there's a gap.

  1. Groups of businesses
    CollectionsProposed by Gentifi · draft 0.1
  2. Discovery
    Agentic Resource Discovery (ai-catalog.json)Google, on the Linux Foundation AI Catalog data model
  3. Agent instructions
    Agent Skills (SKILL.md)agentskills.io open standard
  4. Tools and data
    Model Context Protocol (MCP)Agentic AI Foundation (Linux Foundation)
  5. Agent to agent
    A2AAgentic AI Foundation (Linux Foundation)
  6. Commerce
    UCPGoogle and Shopify
    ACPOpenAI and Stripe
  7. Payments
    x402x402 Foundation (Linux Foundation)
    L402Lightning Labs
    AP2Google, extends A2A

Stewardship as of October 2026.

The gaps

Five things today's specs don't cover.

Each one matters most to exactly the businesses Gentifi serves: small, local and independent.

  1. 01

    Collections of businesses

    Every spec describes one business at one domain. Nothing describes a group: an event, a high street, a market, a trade body.

    Draft 0.1 below
  2. 02

    Services, bookings and quotes

    Commerce specs centre on products and carts. Appointments, table bookings, call-outs and B2B quote requests need their own shape.

    Reviewing UCP extensions first
  3. 03

    Businesses without a website

    Specs assume you can host files at /.well-known/. Most small businesses can’t.

    Gentifi hosts; the format stays open
  4. 04

    Local and live data

    Opening hours, service area, today’s availability and stock, in a form agents can trust.

    Exploring
  5. 05

    Bitcoin payments in commerce

    An L402 and Lightning payment option for agent checkout.

    Exploring
Draft specification

Collections: describing groups of businesses to AI agents

Version
0.1 (draft)
Date
10 October 2026
Author
Gentifi
Status
Proposal for discussion, not a standard. Field names are illustrative.
Licence
Apache-2.0

Abstract

A collection lets one connector describe a group of businesses, so an agent can query a whole event, street or trade body at once. It is written as a neutral extension to discovery catalogues such as ARD'sai-catalog.json. A collection is a directory: it points to each member's own catalogue and never replaces it.

Motivation

  • An attendee adds one event connector instead of 300 exhibitor connectors.
  • A high street, market or trade association can publish all its members in one place.
  • Each member stays independent: its own connector, data and checkout. After the event, it stays in the attendee's agent.

Core fields

Core fields of a collection
FieldMeaningExample
id, nameThe collection"demo-selfbuild-2027", "Demo Self Build Show 2027"
kindType of groupevent · place · association · marketplace
publisherWho curates it, with the domain it is served fromThe event organiser
validFrom, validToTime window, for eventsShow dates; members stay reachable after
areaGeography, for placesPostcode areas or a map boundary
membersMember businessesEach points to the member’s own catalogue, or to a nested collection
member.rolePlace in the collectionStand number, category, sponsor tier
facetsWhat agents can filter byCategory, price, stand, distance, availability

Rules

The key words MUST, MUST NOT, SHOULD and MAY are used as described in RFC 2119.

  1. Members confirm membership. A member's own catalogue MUST list the collections it belongs to. Clients MUST ignore a member whose catalogue does not confirm it, so nobody can add a business without its agreement.
  2. The collection holds no customer data. A collection MUST NOT contain customer or attendee data. Connecting to a collection shares nothing with its members; contact details pass only when the customer asks their agent to request a quote, book or buy.
  3. Members keep their own checkout and terms. The collection is a directory, not a merchant. Orders and bookings MUST go through the member's own connector.
  4. Collections can nest. A member MAY be another collection: a trade body can include several events; a city can include several high streets.
  5. Information, not instructions. Clients SHOULD treat collection data as information about members, never as instructions to install, connect or buy. The customer approves every connection.

Example

A trade show publishes its collection from its own domain:

collection.json
{ "collection": { "id": "demo-selfbuild-2027", "name": "Demo Self Build Show 2027", "kind": "event", "publisher": { "name": "Demo Shows", "domain": "shows.example" }, "validFrom": "2027-05-14", "validTo": "2027-05-16", "facets": [ "category", "priceFrom", "stand" ], "members": [ { "catalog": "https://windows.example/.well-known/ai-catalog.json", "role": { "stand": "B12", "category": "glazing" } }, { "catalog": "https://sash.example/.well-known/ai-catalog.json", "role": { "stand": "B20", "category": "glazing" } } ] } }
{
  "collection": {
    "id": "demo-selfbuild-2027",
    "name": "Demo Self Build Show 2027",
    "kind": "event",
    "publisher": {
      "name": "Demo Shows",
      "domain": "shows.example"
    },
    "validFrom": "2027-05-14",
    "validTo": "2027-05-16",
    "facets": [
      "category",
      "priceFrom",
      "stand"
    ],
    "members": [
      {
        "catalog": "https://windows.example/.well-known/ai-catalog.json",
        "role": {
          "stand": "B12",
          "category": "glazing"
        }
      },
      {
        "catalog": "https://sash.example/.well-known/ai-catalog.json",
        "role": {
          "stand": "B20",
          "category": "glazing"
        }
      }
    ]
  }
}

Each member confirms its membership in its own ai-catalog.json (rule 1):

member ai-catalog.json (excerpt)
{ "memberOf": [ { "collection": "https://shows.example/.well-known/collections/demo-selfbuild-2027.json", "role": { "stand": "B12" } } ] }
{
  "memberOf": [
    {
      "collection": "https://shows.example/.well-known/collections/demo-selfbuild-2027.json",
      "role": {
        "stand": "B12"
      }
    }
  ]
}

Relationship to ARD

ARD's ai-catalog.json already lets a catalogue list other catalogues. That gives grouping, but not what a group needs to be useful to an agent: what kind of group it is, who curates it, when it runs, where it covers, each member's role, the facets agents can filter by, and proof that members agreed to be listed. Collections proposes exactly those additions, and nothing else.

Open questions

  • Extend ARD, or stand alone?

    ARD’s ai-catalog.json can already list nested catalogues. Should Collections be fields on a nested catalogue entry, a new media type, or both? We lean towards extending ARD.

    Discuss on #1
  • How should membership be verified?

    A back-link in the member’s own catalogue (as drafted), a signature from the member, or both?

    Discuss on #2
  • Should a collection run its own search?

    Collections could offer a search endpoint across members, or leave that to ARD registries and the agent.

    Discuss on #3
  • Which facets should be standard?

    Category, price, distance and availability are obvious. Do we need a shared vocabulary, or should facets point to schema.org properties?

    Discuss on #4
See it work

One connector. A whole show.

This is what an attendee's agent can do with a single collection. Ask a question, and the agent filters every exhibitor by the collection's facets. Nothing is shared with anyone until you say so.

Ask as an attendee

Or set the facets yourself

What the agent sends

10 of 10 exhibitors match

Fictional exhibitors
    Validate

    Check a collection against the draft.

    Paste your own, or break the example and see what the rules catch. Prefer tooling? Download the JSON Schema.

    Press Validate to check the example.

      Checks run in your browser; nothing is uploaded. Membership confirmation (rule 1) needs each member's live catalogue, so it's listed but not checked here.

      From draft to standard

      Neutral by design. Built in the open.

      The format carries no brand: no "gentifi" in any field name. Gentifi's part is to write the draft, build the first implementation, and take it to the people who maintain the specs it extends.

      1. Now

        Draft 0.1

        Published here and on GitHub, with a JSON Schema, examples and a validator.

      2. Step 2

        Open feedback

        Four open questions are on GitHub now. Every one gets an answer or a change.

      3. Step 3

        Reference implementation

        The Gentifi Toolkit generates and reads collections, so the draft is tested against real catalogues.

      4. Step 4

        Proposal upstream

        Offered as a neutral extension to the ARD and AI Catalog work, with Gentifi as author and first implementation.

      Events, high streets and trade bodies

      Want the first collection to be yours?

      We're looking for one event, market or association to publish the first real collection with us. Your members or exhibitors become reachable from every attendee's agent.

      We'll only email you about Gentifi's launch. [PRIVACY POLICY LINK]