<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.38 (Ruby 3.2.3) -->
<?rfc strict="yes"?>
<?rfc compact="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-hood-agtp-api-00" category="info" submissionType="independent" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.33.0 -->
  <front>
    <title abbrev="AGTP-API">AGTP-API: Verbs, Paths, Endpoints, and Synthesis</title>
    <seriesInfo name="Internet-Draft" value="draft-hood-agtp-api-00"/>
    <author fullname="Chris Hood">
      <organization>Nomotic, Inc.</organization>
      <address>
        <email>chris@nomotic.ai</email>
        <uri>https://agtp.io</uri>
      </address>
    </author>
    <date year="2026" month="May" day="12"/>
    <area>Applications and Real-Time</area>
    <workgroup>Independent Submission</workgroup>
    <keyword>AI agents</keyword>
    <keyword>agent transfer protocol</keyword>
    <keyword>runtime contract negotiation</keyword>
    <keyword>endpoint synthesis</keyword>
    <keyword>semantic methods</keyword>
    <keyword>verb list</keyword>
    <keyword>path grammar</keyword>
    <keyword>agent API</keyword>
    <abstract>
      <?line 88?>

<t>This document specifies AGTP-API: the contract layer that the Agent
Transfer Protocol (AGTP) <xref target="AGTP"/> relies on to govern interactions
between autonomous agents and AGTP servers. AGTP-API defines a
curated approved method catalog (with versioned evolution and
graceful deprecation), path grammar rules that prevent method-name
leakage into
paths, the endpoint primitive (the structural unit a server exposes
to agents), the semantic block carried by every endpoint, schema
validation requirements, the server manifest format that exposes a
server's endpoint catalog, the per-server method policy carried as
a sub-block of the manifest, the PROPOSE-and-synthesis runtime
contract negotiation mechanism, the three handler binding kinds
(composition, registered_function, external_service), and the
structural rejection status codes (404, 405, 459, 460) that together
cover the contract-level failure surface. This document supersedes
the AGIS Internet-Draft (draft-hood-independent-agis-01) and the
previously-proposed AGTP-Methods Internet-Draft, both of which are
deprecated. AGTP-API
is the unified companion specification they were splitting concerns
across.</t>
    </abstract>
  </front>
  <middle>
    <?line 111?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>AGTP <xref target="AGTP"/> is a transport protocol designed for AI agent traffic.
It establishes identity, authority, attribution, and a twelve-method
protocol-level floor. Beyond that floor, the question of what an
AGTP server actually exposes -- what endpoints it presents, what
verbs are valid, what paths are permitted, what schemas govern input
and output, what authority is required for invocation -- is the
contract layer. This document specifies the contract layer.</t>
      <section anchor="why-the-contract-belongs-in-the-protocol">
        <name>Why the Contract Belongs in the Protocol</name>
        <t>The architectural goal AGTP is designed around is runtime contract
negotiation between autonomous agents (RCNS). An agent encountering
an AGTP server must be able to:</t>
        <ul spacing="normal">
          <li>
            <t>Discover what endpoints the server exposes, with full structural
detail, in a single call.</t>
          </li>
          <li>
            <t>Reason about whether an endpoint matches its intent based on the
endpoint's declared semantic block.</t>
          </li>
          <li>
            <t>Verify that its identity carries the authority required to invoke
the endpoint.</t>
          </li>
          <li>
            <t>Propose new endpoints when its needs are not met by existing ones.</t>
          </li>
          <li>
            <t>Compose endpoints across servers while preserving authority through
the composition.</t>
          </li>
        </ul>
        <t>None of this works if the contract lives in middleware. A protocol
that does not know what an interaction means cannot govern it. When
an agent invokes a method on a path, the protocol must verify
identity, confirm permissions cover the method-on-path combination,
confirm server policy allows the combination, validate the request
body against the endpoint's input schema, apply scope checks, log
the invocation, and -- if the request triggers synthesis -- ensure
each composed step preserves authority. Each of these checks
requires the protocol to know what the method-on-path combination
means.</t>
        <t>This is the load-bearing claim of AGTP-API. The contract is a
first-class protocol concept rather than something inferred from
documentation, OpenAPI specs, or framework conventions. Operational
concerns -- rate limiting, observability, caching, custom
authentication strategies, request transformation, deployment
topology -- remain middleware territory because they are operational
decisions specific to a deployment. The protocol governs contracts;
middleware governs operations. Neither layer pretends to be the
other.</t>
      </section>
      <section anchor="document-lineage">
        <name>Document Lineage</name>
        <t>AGTP-API supersedes two previously-separate drafts:</t>
        <ul spacing="normal">
          <li>
            <t>AGIS (the Agentive Grammar and Interface Specification,
draft-hood-independent-agis-01) -- deprecated. Retained as a
historical citation source for the empirical research informing
the verb-class semantics. ("Verb" here is the linguistic
category — the catalog is a vocabulary of action-intent verbs.
See <xref target="terminology"/>.)</t>
          </li>
          <li>
            <t>AGTP-Methods (the proposed Standard Extended Method Vocabulary,
draft-hood-agtp-standard-methods-01) -- folded into this
document. There is no separate method-catalog specification.</t>
          </li>
        </ul>
        <t>The previously-proposed AMG (Agent Method Grammar) draft is also
deprecated; it never reached publication. The grammar framing is
replaced by the contract framing throughout. This document assumes
the reader understands AGTP <xref target="AGTP"/> v07 or later.</t>
      </section>
      <section anchor="requirements-language">
        <name>Requirements Language</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in BCP 14 <xref target="RFC2119"/>
          <xref target="RFC8174"/> when, and only when, they appear in all capitals, as
shown here.</t>
      </section>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <dl>
        <dt>Method:</dt>
        <dd>
          <t>The action component of an AGTP request: an uppercase ASCII token
appearing in the AGTP-API approved catalog or in a server's
the server's <tt>policies.methods</tt> as a custom method. The <tt>method</tt> field on every
endpoint declaration carries this token. The protocol-level term
used throughout the wire format, manifest, and conformance
language.</t>
        </dd>
        <dt>Verb:</dt>
        <dd>
          <t>A descriptive synonym for "method" used when discussing the
catalog as a vocabulary of action-intent verbs. The catalog at
<tt>agtp.io/api/methods.json</tt> is a glossary of verbs; an operator
picks a verb from the catalog and declares it as the <tt>method</tt> on
an endpoint. Method is the field name; verb is the linguistic
category that explains why the field carries imperative-form
action-intent words.</t>
        </dd>
        <dt>Path:</dt>
        <dd>
          <t>The resource portion of an AGTP request, beginning with a forward
slash. Subject to the path grammar rules in <xref target="path-grammar"/>.</t>
        </dd>
        <dt>Endpoint:</dt>
        <dd>
          <t>A method-and-path pair exposed by an AGTP server, together with
its semantic block, input schema, output schema, error
declarations, and handler binding. The deployable unit of an
AGTP service. Endpoints are first-class protocol concepts.</t>
        </dd>
        <dt>Semantic Block:</dt>
        <dd>
          <t>Required structural metadata for every endpoint: intent, actor,
outcome, capability classification, confidence guidance, impact
tier, and idempotency. Encodes machine-readable intent so that
agents can reason about endpoint applicability before invoking.
Carried on the endpoint as the <tt>semantic</tt> field.</t>
        </dd>
        <dt>Server Manifest:</dt>
        <dd>
          <t>The machine-readable document an AGTP server publishes to declare
its endpoint catalog, hosted agents, hosted protocols, and policies.
The authoritative source for what a server offers.</t>
        </dd>
        <dt>Method Policy:</dt>
        <dd>
          <t>A per-server policy block declaring allowed methods, disallowed
methods, legacy verb opt-in, and server-local method-to-method
redirects. Carried as the <tt>policies.methods</tt> sub-block of the
server manifest. See <xref target="method-policy"/>.</t>
        </dd>
        <dt>Synthesis:</dt>
        <dd>
          <t>The runtime instantiation of an endpoint in response to a PROPOSE
request, composing the requested behavior from existing endpoints
while preserving authority through the composition.</t>
        </dd>
        <dt>Wildcards:</dt>
        <dd>
          <t>An ad-hoc method invocation mode in which an agent invokes a
method outside the server's declared endpoint catalog. Subject to
mutual consent: requires <tt>wildcards: true</tt> in the agent identity
document and <tt>wildcards_accepted: true</tt> in server policy.</t>
        </dd>
      </dl>
    </section>
    <section anchor="the-approved-method-catalog">
      <name>Method Catalog</name>
      <t>AGTP-API defines a curated catalog of approved methods maintained
at <tt>https://agtp.io/api/methods.json</tt>. The catalog is the canonical
source for what method names are recognized. Method names not
appearing in the catalog are rejected with status 459 Method
Violation.</t>
      <t>The catalog is a vocabulary of action-intent verbs: imperative-form
words that describe what an operation does (BOOK, RESERVE, AUDIT,
QUERY). A verb in the catalog becomes a <em>method</em> when an operator
picks it from the catalog and declares it as the <tt>method</tt> field on
an endpoint. The two terms are related: verbs are the linguistic
content of the catalog; methods are the protocol-level identifier
on each endpoint and request.</t>
      <section anchor="list-maintenance">
        <name>Catalog Structure</name>
        <t>The catalog is a versioned JSON document with five top-level keys:</t>
        <dl>
          <dt><tt>version</tt></dt>
          <dd>
            <t>Semantic version of the catalog as a whole. See
<xref target="catalog-evolution"/>.</t>
          </dd>
          <dt><tt>embedded</tt></dt>
          <dd>
            <t>The 12 protocol-floor verbs every AGTP server <strong>MUST</strong> support: six
cognitive (QUERY, DISCOVER, DESCRIBE, SUMMARIZE, PLAN, PROPOSE) and
six mechanics (EXECUTE, DELEGATE, ESCALATE, CONFIRM, SUSPEND,
NOTIFY).</t>
          </dd>
          <dt><tt>legacy</tt></dt>
          <dd>
            <t>The five HTTP-style verbs (GET, POST, PUT, DELETE, PATCH), each
carrying a <tt>preferred</tt> mapping to its canonical AGTP replacement
(FETCH, CREATE, REPLACE, REMOVE, MODIFY). Legacy verbs are opt-in
per server through the manifest's <tt>policies.methods</tt> block. See
<xref target="legacy-verb-support"/>.</t>
          </dd>
          <dt><tt>categories</tt></dt>
          <dd>
            <t>The taxonomy used to classify verbs: <tt>discovery</tt>, <tt>retrieval</tt>,
<tt>analysis</tt>, <tt>transaction</tt>, <tt>modification</tt>, <tt>creation</tt>,
<tt>notification</tt>, <tt>mechanics</tt>, <tt>domain_spanning</tt>.</t>
          </dd>
          <dt><tt>verbs</tt></dt>
          <dd>
            <t>The catalog of approved verbs, each with <tt>categories</tt>,
<tt>description</tt>, and optional deprecation metadata
(<tt>deprecated_in</tt>, <tt>removed_in</tt>, <tt>successor</tt>).</t>
          </dd>
        </dl>
        <t>The catalog is published in machine-readable form at the URL above
and is intentionally maintained as an open living artifact rather
than a closed IANA registry. Curation is performed by the AGTP-API
maintainers in public; the version of the catalog in effect at any
given moment is declared in the <tt>catalog_version</tt> field of every
server manifest. A closed IANA registry would freeze the verb
vocabulary at the cadence of IETF process; AGTP-API verbs need to
evolve at the cadence of agent deployments. The IANA registries
that AGTP-API does request (<xref target="iana-considerations"/>) cover the
structural status codes, the media types, and the response headers
— all of which benefit from IANA's conservative cadence. The
catalog itself does not.</t>
      </section>
      <section anchor="verb-rules">
        <name>Method Rules</name>
        <t>Method names <strong>MUST</strong> be uppercase ASCII single tokens matching the
regex <tt>^[A-Z]+$</tt>, length 3 to 32 characters inclusive. Method names
<strong>MUST</strong> appear in the catalog, or in the legacy set when the
server's <tt>policies.methods.legacy</tt> opts into legacy verbs.</t>
        <t>The catalog is curated to contain only imperative-form action-intent
verbs that:</t>
        <ul spacing="normal">
          <li>
            <t>Express a command or action, not a state, an attribute, or a noun
(RESERVE is valid; RESERVATION is not).</t>
          </li>
          <li>
            <t>Carry a single intent (verbs with compound intent are decomposed
into separate verbs).</t>
          </li>
          <li>
            <t>Are not HTTP method names.</t>
          </li>
        </ul>
        <t>These are curatorial principles applied during verb addition, not
runtime checks performed by AGTP servers. Servers validate verbs
against the catalog membership and the lexical regex; semantic
class adherence is the responsibility of the catalog maintainers.</t>
      </section>
      <section anchor="custom-verbs">
        <name>Custom Methods</name>
        <t>Servers <strong>MAY</strong> accept additional methods beyond the catalog by
listing them in the manifest's <tt>policies.methods</tt> block. Custom methods follow the same
lexical rules in <xref target="verb-rules"/> but are server-specific and are not
interoperable across organizations without explicit acceptance.
Custom methods are not added to the catalog; they exist only within
the publishing server's surface.</t>
      </section>
      <section anchor="catalog-evolution-overview">
        <name>Catalog Evolution Overview</name>
        <t>The catalog evolves under semver discipline:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Patch</strong> (1.0.0 → 1.0.1) — description or category metadata
changes only.</t>
          </li>
          <li>
            <t><strong>Minor</strong> (1.0.0 → 1.1.0) — verbs added; existing verbs unchanged.
Minor revisions <strong>MAY</strong> introduce new deprecation flags on
existing verbs.</t>
          </li>
          <li>
            <t><strong>Major</strong> (1.0.0 → 2.0.0) — verbs removed or renamed.</t>
          </li>
        </ul>
        <t>Per-verb deprecation uses three optional fields: <tt>deprecated_in</tt>
(catalog version that flagged the verb), <tt>removed_in</tt> (version
scheduled for removal), and <tt>successor</tt> (recommended replacement).
A deprecated verb remains admitted by the dispatcher; the response
carries an <tt>AGTP-Catalog-Warning</tt> advisory header. See
<xref target="catalog-evolution"/> for the full lifecycle, runtime semantics,
removal behavior, cross-server version negotiation, and the
<tt>agtp-catalog-diff</tt> tooling.</t>
      </section>
      <section anchor="catalog-version-exposure">
        <name>Catalog Version Exposure</name>
        <t>The catalog version is exposed on the server manifest under
<tt>catalog_version</tt> and <tt>catalog_versions_supported</tt> so clients can
detect mismatches between their local catalog and the server's. See
<xref target="manifest"/>.</t>
      </section>
      <section anchor="legacy-verb-support">
        <name>Legacy Verb Support</name>
        <t>AGTP-API recognizes GET, POST, PUT, DELETE, and PATCH as legacy
verbs with reframed semantics for transitional deployments. Legacy
verb support is opt-in per server through the manifest's <tt>policies.methods</tt> block:</t>
        <artwork><![CDATA[
legacy_verbs: enabled
]]></artwork>
        <t>When legacy verbs are enabled, the server <strong>MUST</strong> treat them as
follows:</t>
        <ul spacing="normal">
          <li>
            <t>GET maps to QUERY for read operations against a known path.</t>
          </li>
          <li>
            <t>POST maps to EXECUTE for state-changing operations.</t>
          </li>
          <li>
            <t>PUT maps to EXECUTE with <tt>idempotency_key</tt>.</t>
          </li>
          <li>
            <t>DELETE maps to EXECUTE with <tt>action: "delete"</tt>.</t>
          </li>
          <li>
            <t>PATCH maps to EXECUTE with <tt>action: "modify"</tt>.</t>
          </li>
        </ul>
        <t>These mappings are conveniences for migration. Legacy verbs <strong>MUST
NOT</strong> be used in new endpoint definitions; servers <strong>SHOULD</strong>
deprecate legacy support over time.</t>
      </section>
    </section>
    <section anchor="catalog-evolution">
      <name>Catalog Evolution</name>
      <t>The AGTP-API approved method catalog is versioned. This section specifies
how catalog versioning works, how deprecation is signaled, and how
servers and agents negotiate over catalog versions.</t>
      <section anchor="versioning-scheme">
        <name>Versioning Scheme</name>
        <t>The method catalog is versioned as semver <tt>MAJOR.MINOR.PATCH</tt>:</t>
        <ul spacing="normal">
          <li>
            <t><strong>PATCH</strong> — editorial changes (clarifications, typo fixes,
description rewordings). No verb additions, removals, or
deprecations.</t>
          </li>
          <li>
            <t><strong>MINOR</strong> — additions and deprecations. Verbs may be added; verbs
may be marked deprecated. No verbs are removed in a minor revision.</t>
          </li>
          <li>
            <t><strong>MAJOR</strong> — removals. Verbs marked deprecated in earlier minor
revisions may be removed.</t>
          </li>
        </ul>
        <t>Servers and agents using a given catalog MAJOR version are guaranteed
that no verb available in that MAJOR will disappear without warning;
removal requires a MAJOR bump.</t>
      </section>
      <section anchor="deprecation-metadata">
        <name>Deprecation Metadata</name>
        <t>Each verb in the catalog <strong>MAY</strong> carry deprecation metadata:</t>
        <sourcecode type="json"><![CDATA[
{
  "name": "AUDIT_LEGACY",
  "category": "compute",
  "deprecated_in": "1.2.0",
  "removed_in": "2.0.0",
  "successor": "AUDIT"
}
]]></sourcecode>
        <dl>
          <dt><tt>deprecated_in</tt>:</dt>
          <dd>
            <t>The catalog version at which the verb became deprecated.</t>
          </dd>
          <dt><tt>removed_in</tt>:</dt>
          <dd>
            <t>The anticipated catalog version at which the verb will be
removed. <strong>MAY</strong> be absent if removal is anticipated but the
target version has not been chosen.</t>
          </dd>
          <dt><tt>successor</tt>:</dt>
          <dd>
            <t>A catalog verb name that callers should migrate to. <strong>MAY</strong> be
absent if no single successor applies; clients should consult the
verb's description for migration guidance.</t>
          </dd>
        </dl>
      </section>
      <section anchor="manifest-catalog-declaration">
        <name>Manifest Catalog Declaration</name>
        <t>Every server manifest <strong>MUST</strong> declare:</t>
        <dl>
          <dt><tt>catalog_version</tt>:</dt>
          <dd>
            <t>The catalog version the server validates incoming method names
against.</t>
          </dd>
          <dt><tt>catalog_versions_supported</tt>:</dt>
          <dd>
            <t>A list of catalog versions the server can validate against. The
current <tt>catalog_version</tt> <strong>MUST</strong> appear in this list. Multi-
version support is anticipated; v00 servers commonly list a
single version.</t>
          </dd>
        </dl>
        <t>Agents reading a manifest learn which catalog version they should
use for outbound requests against this server. Mismatches are
handled at request time per the runtime semantics below.</t>
      </section>
      <section anchor="runtime-deprecation-signaling">
        <name>Runtime Deprecation Signaling</name>
        <t>When a server processes a request whose method is deprecated in the
catalog version the server is using, the server <strong>MUST</strong> include the
<tt>AGTP-Catalog-Warning</tt> header on the response:</t>
        <artwork><![CDATA[
AGTP-Catalog-Warning: deprecated; successor=AUDIT; removed_in=2.0.0
]]></artwork>
        <t>Header fields:</t>
        <ul spacing="normal">
          <li>
            <t><tt>deprecated</tt> — keyword token indicating the warning class.</t>
          </li>
          <li>
            <t><tt>successor=NAME</tt> — the recommended replacement verb. Omitted if
the catalog metadata does not declare a successor.</t>
          </li>
          <li>
            <t><tt>removed_in=VERSION</tt> — the target removal version. Omitted if not
declared.</t>
          </li>
        </ul>
        <t>The header is advisory, not a rejection. The request <strong>MUST</strong> still
process. Agents and CLIs that surface the header to their users
allow operators to schedule migration before forced removal.</t>
        <t>A server that receives a request whose method is in the catalog at
all (deprecated or not) <strong>MUST NOT</strong> return 459 Method Violation.
459 is reserved for verbs that are not in the catalog at all.
Deprecated verbs are still in the catalog.</t>
      </section>
      <section anchor="removal-behavior">
        <name>Removal Behavior</name>
        <t>When a verb is removed in a MAJOR catalog revision, servers
upgrading to that revision <strong>MUST</strong>:</t>
        <ol spacing="normal" type="1"><li>
            <t>Reject inbound requests for the removed verb with 459 Method
Violation, citing the catalog version the server is now using.</t>
          </li>
          <li>
            <t>Refuse to load endpoint TOMLs declaring removed verbs at startup,
logging which endpoints are affected.</t>
          </li>
          <li>
            <t>Invalidate any active synthesis plans whose steps reference
removed verbs, returning a structured failure on the next
synthesis tick.</t>
          </li>
          <li>
            <t>Skip <tt>policies.methods</tt> entries (<tt>allow</tt>, <tt>disallow</tt>,
<tt>redirects</tt>) that reference removed methods, logging each skip.</t>
          </li>
        </ol>
        <t>This is graceful degradation: the server starts, serves the
endpoints that are still valid, and surfaces what was lost. The
operator decides whether to roll back, fix the affected endpoints,
or accept the reduced surface.</t>
      </section>
      <section anchor="cross-server-version-negotiation">
        <name>Cross-Server Version Negotiation</name>
        <t>When an agent talks to a server whose <tt>catalog_version</tt> differs from
the agent's own preferred version, the agent <strong>SHOULD</strong>:</t>
        <ol spacing="normal" type="1"><li>
            <t>Read <tt>catalog_versions_supported</tt> from the manifest.</t>
          </li>
          <li>
            <t>If the agent's preferred version is in the list, use it; the
server will validate against that version.</t>
          </li>
          <li>
            <t>If not, downgrade to the highest mutually-supported version.</t>
          </li>
          <li>
            <t>If no overlap exists, abandon the connection or escalate to the
principal.</t>
          </li>
        </ol>
        <t>Servers <strong>MAY</strong> support multiple catalog versions concurrently;
servers <strong>MAY</strong> support only the single version they declare in
<tt>catalog_version</tt>. Agents adapt to the server's capabilities.</t>
      </section>
      <section anchor="tooling">
        <name>Tooling</name>
        <t>A reference <tt>agtp-catalog-diff</tt> tool is published alongside the
method catalog. The tool diffs two catalog versions, reports added /
removed / newly-deprecated methods, and <strong>MAY</strong> scan a deployment
directory (endpoint TOMLs, recipe registry, <tt>agtp-server.toml</tt>) to
identify which deployment artifacts would break under a candidate
catalog upgrade. See <xref target="implementation-guidance"/>.</t>
        <t>Tool invocation:</t>
        <artwork><![CDATA[
agtp-catalog-diff old.json new.json [--against-deployment <directory>]
]]></artwork>
        <t>The tool produces a structured diff showing methods added in the
new catalog, methods removed, methods newly deprecated, path-grammar
conflicts (existing endpoint paths containing newly-added method
names), endpoint conflicts (existing endpoints declaring removed
methods), recipe conflicts (existing recipes referencing removed
methods), and policy conflicts (existing policy directives
referencing removed methods).</t>
        <t>Operators <strong>SHOULD</strong> run this tool before upgrading a server's
catalog version. The tool's exit code indicates whether breaking
changes exist: 0 (no breakage), 1 (breakage in deployment context),
2 (parse errors).</t>
        <t>The tool is implementation-provided; alternative implementations
<strong>MAY</strong> ship equivalents. The diff format is specified by the
implementation's documentation rather than normatively by this
section.</t>
      </section>
      <section anchor="multi-version-catalog-support">
        <name>Multi-Version Catalog Support</name>
        <t>Future revisions of AGTP-API may specify how servers can validate
against multiple catalog versions simultaneously, allowing graceful
migration during transitions. The <tt>catalog_versions_supported</tt>
manifest field is reserved for this purpose.</t>
        <t>For v00 conforming servers, <tt>catalog_versions_supported</tt> <strong>MUST</strong>
be a single-element array containing only the server's current
<tt>catalog_version</tt>.</t>
      </section>
      <section anchor="catalog-publishing">
        <name>Catalog Publishing</name>
        <t>The canonical AGTP method catalog is published at
<tt>https://agtp.io/api/methods.json</tt>. The catalog is versioned
independently of AGTP-API itself; a server may implement AGTP-API
v00 against catalog version 1.0.0 today, and against catalog
version 1.1.0 after a minor catalog update.</t>
        <t>Servers <strong>MAY</strong> validate against alternative catalogs (industry-
specific catalogs, internal-only catalogs, etc.) by configuring
their build to use a different catalog document. The
<tt>catalog_version</tt> exposed in the manifest reflects whichever
catalog the server actually validates against.</t>
        <t>Catalog updates follow a coordinated release process: the publisher
announces the upcoming version, operators run the diff tool against
their deployments, the new catalog is published, operators upgrade
their servers. Specific governance for the canonical catalog
(proposal process, approval cadence, etc.) is documented separately
and is out of scope for this specification.</t>
      </section>
    </section>
    <section anchor="path-grammar">
      <name>Path Grammar</name>
      <t>AGTP path grammar prevents method-name leakage — the situation
where a method token ends up in a path segment instead of on the
request line. The grammar enforces that one rule plus structural
minimums; everything else is operator judgment.</t>
      <section anchor="path-rules">
        <name>Path Rules</name>
        <t>A request path <strong>MUST</strong> begin with <tt>/</tt>. A request path <strong>MUST NOT</strong>
end with <tt>/</tt> unless the path is exactly <tt>/</tt> (the bare root). No path
segment <strong>MAY</strong> match an approved AGTP method name (case-insensitive,
after stripping <tt>-</tt> and <tt>_</tt>). Parameter segments wrapped in <tt>{...}</tt>
are exempt from the method-token check.</t>
        <t>Any violation <strong>MUST</strong> return status <strong>460 Endpoint Violation</strong> with
the offending segment in the response body.</t>
      </section>
      <section anchor="path-grammar-abnf">
        <name>Path Grammar ABNF</name>
        <t>The path component of the request line follows this grammar:</t>
        <artwork><![CDATA[
path           = "/" [ segment-nz *( "/" segment ) ]
segment        = *segment-char
segment-nz     = 1*segment-char
segment-char   = unreserved / pct-encoded / sub-delims
               / ":" / "@"
parameter      = "{" parameter-name "}"
parameter-name = 1*( ALPHA / DIGIT / "_" )
unreserved     = ALPHA / DIGIT / "-" / "." / "_" / "~"
pct-encoded    = "%" HEXDIG HEXDIG
sub-delims     = "!" / "$" / "&" / "'" / "(" / ")"
               / "*" / "+" / "," / ";" / "="
                                        ; per RFC 3986
]]></artwork>
        <t>A <tt>segment</tt> <strong>MAY</strong> be a literal segment (matching <tt>segment-nz</tt> with
no <tt>{</tt> or <tt>}</tt> characters) or a parameter segment (matching the
<tt>parameter</tt> production exactly). Mixing literal and parameter forms
within a single segment (e.g., <tt>prefix-{id}</tt>) is <strong>NOT</strong> supported in
v00; future revisions <strong>MAY</strong> specify mixed-form templates.</t>
        <t>Parameter names within a path <strong>MUST</strong> be unique. A path containing
two parameters with the same name <strong>MUST</strong> be rejected at endpoint
registration time.</t>
      </section>
      <section anchor="permissiveness">
        <name>Permissiveness</name>
        <t>Mixed case, underscores, hyphens, and any segment depth are valid.
The protocol does not impose style preferences. Casing conventions,
kebab-vs-snake-case, and parameter-naming style are operator
decisions.</t>
        <t>Path templates support typed parameters in curly braces:</t>
        <artwork><![CDATA[
/customers/{customer_id}
/orders/{order_id}/line-items/{line_item_id}
/products/category/{category_slug}
]]></artwork>
        <t>The <tt>{name}</tt> form is the only template syntax v00 admits. URI
Template (<xref target="RFC6570"/>) syntax (e.g., <tt>{?query,page}</tt>,
<tt>{+reserved}</tt>, <tt>{#fragment}</tt>) is <strong>NOT</strong> supported; servers
encountering a path template that uses anything other than the
basic <tt>{name}</tt> form <strong>MUST</strong> reject the endpoint at registration
time. The conservative single-form rule keeps endpoint dispatch
deterministic and predictable; future revisions <strong>MAY</strong> broaden
the template grammar.</t>
        <t>Template parameters <strong>MUST</strong> be declared in the endpoint's
<tt>input_schema</tt> as JSON Schema properties of the same name. A
template parameter that is not declared in <tt>input_schema</tt> <strong>MUST</strong>
cause registration to fail. Parameter values arrive at the handler
as part of the validated input alongside body parameters.</t>
      </section>
      <section anchor="path-matching">
        <name>Path Pattern Matching</name>
        <t>Servers match an incoming request path against registered endpoints
in three passes:</t>
        <ol spacing="normal" type="1"><li>
            <t><strong>Exact match.</strong> If the request path exactly equals a registered
literal path (no template parameters), the matching endpoint is
selected.</t>
          </li>
          <li>
            <t><strong>Template match.</strong> If no exact match, the request path is
matched against registered templates. A template matches when the
path has the same number of segments as the template and every
literal segment matches exactly while every <tt>{param}</tt> segment
captures the corresponding request segment as a parameter value.</t>
          </li>
          <li>
            <t><strong>No match.</strong> If neither pass matches, the server <strong>MUST</strong> return
404 Not Found.</t>
          </li>
        </ol>
        <t>When multiple templates would match the same request path, the
server <strong>MUST</strong> select the template with the fewest parameter
segments (most specific wins). If two templates have the same
number of parameter segments and both match, registration <strong>MUST</strong>
have failed at startup with a path-ambiguity error; the dispatcher
<strong>MUST NOT</strong> be reached in this state.</t>
      </section>
      <section anchor="query-strings">
        <name>Query Strings</name>
        <t>Paths <strong>MAY</strong> carry a query string after a <tt>?</tt>:</t>
        <artwork><![CDATA[
AGTP/1.0 SCHEDULE /meeting?date=050526&attendees=alice%2Cbob
]]></artwork>
        <t>The wire layer splits the request-target at the first <tt>?</tt> per
<xref target="RFC3986"/>: the path is everything from the leading <tt>/</tt> up to the
first <tt>?</tt> or end-of-line; the query string is everything after the
first <tt>?</tt>. Path-grammar enforcement (method-name leakage check,
template matching) applies to the path component only; query
strings carry no semantic constraints from this grammar.</t>
        <t>Query parameters merge into the request input alongside body
parameters before schema validation. On key conflicts, body
parameters take precedence. Repeated query keys collapse to the
last value; multi-valued shapes ride in the body.</t>
        <t>Servers <strong>MUST</strong> percent-decode query parameter values per
<xref target="RFC3986"/> Section 2.1 before schema validation.</t>
      </section>
      <section anchor="fragments">
        <name>Fragments</name>
        <t>URI fragments (<tt>#anchor</tt>) are <strong>REJECTED</strong> at the wire layer. AGTP
traffic carries no client-side anchoring use case; a <tt>#</tt> in the
request line is always malformed. Servers <strong>MUST</strong> return 400 Bad
Request with error code <tt>invalid-request-line</tt> for any request line
containing <tt>#</tt>.</t>
      </section>
      <section anchor="no-reserved-path-prefixes">
        <name>No Reserved Path Prefixes</name>
        <t>AGTP reserves no path prefixes. There is no <tt>/.well-known/</tt>
discovery surface and no <tt>/_agtp/</tt> namespace. AGTP is its own
protocol; HTTP-style discovery conventions do not apply.</t>
      </section>
      <section anchor="builtin-endpoints">
        <name>Server Metadata via AGTP Methods</name>
        <t>Server-internal metadata is exposed via AGTP methods at AGTP-native
paths, registered as built-in endpoints alongside operator-authored
endpoints. Servers <strong>MUST</strong> expose <tt>DISCOVER /methods</tt>, returning a
compact inventory of every endpoint the server has registered:</t>
        <sourcecode type="json"><![CDATA[
[
  {
    "method": "QUERY",
    "path": "/catalog",
    "description": "Returns the current product catalog."
  },
  {
    "method": "BOOK",
    "path": "/room",
    "description": "Books a room for the named guest at the named property."
  },
  {
    "method": "DISCOVER",
    "path": "/methods",
    "description": "Lists all registered endpoints on this server."
  }
]
]]></sourcecode>
        <t>The response is a JSON array of objects, each with <tt>method</tt>, <tt>path</tt>,
and <tt>description</tt>. The verb is DISCOVER because the response carries
endpoints to talk to (the AGTP semantics for DISCOVER, see <xref target="AGTP"/>)
rather than data to consume; agents use the response to drive
follow-on invocations against the listed endpoints.</t>
        <t>The <tt>DISCOVER /methods</tt> response is a lightweight inventory; agents
that need full endpoint definitions (semantic blocks, schemas,
deprecation metadata, handler types) <strong>MUST</strong> retrieve the full
server manifest via target-less DISCOVER (<xref target="manifest"/>). The built-in
exists as a cheap, low-bandwidth probe for endpoint shape — useful
for clients that need to know what to ask for without loading the
full manifest.</t>
        <t>Built-in endpoints appear in the server manifest like any other
endpoint (including <tt>DISCOVER /methods</tt> itself, which is one of the
entries returned by its own invocation), are subject to the same
dispatcher gates (catalog, path grammar, policy), and <strong>MAY</strong> be
overridden by operator-authored TOML at the same <tt>(method, path)</tt>
pair. Operators that override a built-in are responsible for
preserving the documented response contract.</t>
        <t>Future revisions of this specification <strong>MAY</strong> define additional
built-in endpoints (e.g., <tt>QUERY /catalog-version</tt> for catalog
version negotiation). Built-ins are protocol-level conventions, not
deployment-level extensions.</t>
      </section>
    </section>
    <section anchor="the-endpoint-primitive">
      <name>The Endpoint Primitive</name>
      <section anchor="endpoint-definition">
        <name>Endpoint Definition</name>
        <t>An endpoint is the structural unit an AGTP server exposes. Every
endpoint is identified by the pair <tt>(method, path)</tt> and carries the
fields specified below.</t>
        <sourcecode type="json"><![CDATA[
{
  "method": "BOOK",
  "path": "/room",
  "description": "Books a room for the named guest at the named property.",
  "namespace": "reservations",

  "semantic": {
    "intent": "Reserve a room for the named guest at the named property.",
    "actor": "agent",
    "outcome": "A confirmed reservation_id is returned for the guest.",
    "capability": "transaction",
    "confidence": 0.85,
    "impact": "irreversible",
    "is_idempotent": false
  },

  "input_schema": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "type": "object",
    "properties": {
      "guest_id": { "type": "string", "format": "uuid" },
      "room_id":  { "type": "string" },
      "arrival":  { "type": "string", "format": "date" },
      "departure":{ "type": "string", "format": "date" }
    },
    "required": ["guest_id", "room_id", "arrival", "departure"],
    "additionalProperties": false
  },

  "output_schema": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "type": "object",
    "properties": {
      "reservation_id": { "type": "string", "format": "uuid" }
    },
    "required": ["reservation_id"],
    "additionalProperties": true
  },

  "errors": ["room_unavailable", "invalid_dates"],

  "handler": { "type": "registered_function" },

  "required_scopes": ["booking:room", "calendar:write"],

  "deprecated": {
    "deprecated_in": "2.1.0",
    "removed_in": "3.0.0",
    "successor": { "method": "RESERVE", "path": "/rooms" }
  }
}
]]></sourcecode>
      </section>
      <section anchor="required-fields">
        <name>Required Fields</name>
        <t>Every endpoint <strong>MUST</strong> carry: <tt>method</tt>, <tt>path</tt>, <tt>description</tt>,
<tt>semantic</tt>, <tt>input_schema</tt>, <tt>output_schema</tt>, <tt>errors</tt>, <tt>handler</tt>.
The remaining fields (<tt>namespace</tt>, <tt>required_scopes</tt>, <tt>deprecated</tt>)
are optional.</t>
      </section>
      <section anchor="field-semantics">
        <name>Field Semantics</name>
        <dl>
          <dt><tt>method</tt>:</dt>
          <dd>
            <t>An AGTP method drawn from the approved catalog at the server's
declared <tt>catalog_version</tt>, or a custom method declared in the
server's <tt>policies.methods</tt>. See <xref target="custom-verbs"/>. The method name
satisfies the lexical rules of <xref target="verb-rules"/>.</t>
          </dd>
          <dt><tt>path</tt>:</dt>
          <dd>
            <t>A path conforming to the path grammar of <xref target="path-grammar"/>.</t>
          </dd>
          <dt><tt>description</tt>:</dt>
          <dd>
            <t>Operator-facing prose. A single sentence describing what the
endpoint does. Distinct from the semantic block: <tt>description</tt>
is for humans reading the manifest; the semantic block is for
agents reasoning about applicability.</t>
          </dd>
          <dt><tt>namespace</tt>:</dt>
          <dd>
            <t>Optional free-form grouping label. Servers exposing many
endpoints <strong>MAY</strong> organize them by namespace (e.g.,
<tt>"reservations"</tt>, <tt>"billing"</tt>, <tt>"inventory"</tt>) for catalog
navigation. Namespace has no protocol-level effect.</t>
          </dd>
          <dt><tt>semantic</tt>:</dt>
          <dd>
            <t>The structural metadata block defined in <xref target="semantic-block"/>.
Required by every endpoint with all required fields populated.</t>
          </dd>
          <dt><tt>input_schema</tt>:</dt>
          <dd>
            <t>A Draft 2020-12 JSON Schema <xref target="JSON-SCHEMA"/> describing the
request body. <strong>MUST</strong> declare <tt>"type": "object"</tt> and <strong>MUST</strong>
set <tt>"additionalProperties": false</tt>; see <xref target="schema-strictness"/>.
Query-string parameters (<xref target="query-strings"/>) are merged into the
body before validation; the same schema covers both. Schemas are
inline in v00; cross-endpoint schema sharing is anticipated in a
future revision.</t>
          </dd>
          <dt><tt>output_schema</tt>:</dt>
          <dd>
            <t>A Draft 2020-12 JSON Schema describing the successful response
body. <strong>SHOULD</strong> set <tt>"additionalProperties": true</tt> so handlers
can return forward-compat fields without bumping the contract;
see <xref target="schema-strictness"/>.</t>
          </dd>
          <dt><tt>errors</tt>:</dt>
          <dd>
            <t>An array of named error condition strings (e.g.,
<tt>"room_unavailable"</tt>, <tt>"invalid_dates"</tt>). The dispatcher returns
these as 422 Unprocessable Entity responses with structured
bodies identifying the condition. The error name is the
protocol-level identifier; status-code mapping is a
response-construction concern, not part of the contract. The
list <strong>MAY</strong> be empty for endpoints with no business-level
errors. Composition handlers <strong>MUST</strong> include
<tt>"composition_failed"</tt>; external-service handlers <strong>MUST</strong>
include the upstream-failure codes specified in
<xref target="external-service"/>.</t>
          </dd>
          <dt><tt>handler</tt>:</dt>
          <dd>
            <t>An object declaring the binding kind:
<tt>{"type": "registered_function" | "composition" | "external_service"}</tt>.
The handler's full reference (Python dotted path, recipe name,
upstream URL, etc.) is server-internal implementation detail
and <strong>MUST NOT</strong> appear in the manifest. See
<xref target="endpoint-projection"/> and <xref target="handler-binding"/>.</t>
          </dd>
          <dt><tt>required_scopes</tt>:</dt>
          <dd>
            <t>An array of scope identifiers the invoking agent <strong>MUST</strong>
declare in its Authority-Scope. Empty or omitted means no scope
check; the endpoint inherits the server's default authority
requirement. Insufficient scope returns 455 Scope Violation per
<xref target="AGTP"/>.</t>
          </dd>
          <dt><tt>deprecated</tt>:</dt>
          <dd>
            <t>Optional per-endpoint deprecation metadata. See
<xref target="endpoint-deprecation"/>.</t>
          </dd>
        </dl>
      </section>
      <section anchor="endpoint-deprecation">
        <name>Endpoint Deprecation</name>
        <t>The optional <tt>deprecated</tt> block follows the same shape as
catalog-level deprecation:</t>
        <sourcecode type="json"><![CDATA[
"deprecated": {
  "deprecated_in": "2.1.0",
  "removed_in": "3.0.0",
  "successor": { "method": "RESERVE", "path": "/rooms" }
}
]]></sourcecode>
        <t>Field semantics:</t>
        <dl>
          <dt><tt>deprecated_in</tt>:</dt>
          <dd>
            <t>The server's <tt>agtp_api_version</tt> (or operator-chosen version
string) at which the endpoint became deprecated.</t>
          </dd>
          <dt><tt>removed_in</tt>:</dt>
          <dd>
            <t>Optional. The version at which the endpoint will be removed.
<strong>MAY</strong> be absent if removal is anticipated but the target
version has not been chosen.</t>
          </dd>
          <dt><tt>successor</tt>:</dt>
          <dd>
            <t>Optional. An object with <tt>method</tt> and/or <tt>path</tt> indicating the
replacement endpoint callers should migrate to. Either field
<strong>MAY</strong> be absent: <tt>successor.method</tt> alone signals "use the same
path with a different method"; <tt>successor.path</tt> alone signals
"use the same method with a different path"; both together
signal a full replacement endpoint.</t>
          </dd>
        </dl>
        <t>An endpoint <strong>MAY</strong> be deprecated even when its method and path
remain valid in the catalog and grammar. Operators deprecate
endpoints when they migrate callers from one <tt>(method, path)</tt> pair
to another, independent of catalog evolution.</t>
        <t>The dispatcher <strong>MUST</strong> stamp an <tt>AGTP-Endpoint-Warning</tt> advisory
header on every response from a deprecated endpoint:</t>
        <artwork><![CDATA[
AGTP-Endpoint-Warning: deprecated; successor=RESERVE /rooms; removed_in=3.0.0
]]></artwork>
        <t>The header rides alongside <tt>AGTP-Catalog-Warning</tt> (<xref target="catalog-evolution"/>)
when both apply; both are advisory and the request still processes.
The <tt>successor</tt> token renders as <tt>METHOD /path</tt> when both fields
are present; just one is emitted bare. <tt>removed_in</tt> and <tt>successor</tt>
are omitted from the header when the endpoint's <tt>deprecated</tt> block
does not declare them. The header fires on success and failure
responses alike so callers always see the warning regardless of
how the invocation resolves.</t>
      </section>
    </section>
    <section anchor="semantic-block">
      <name>The Semantic Block</name>
      <t>The semantic block is the part of the endpoint definition that
encodes machine-readable intent. Agents reason about whether an
endpoint matches their goal by interpreting the semantic block, not
by parsing the verb and path alone. The empirical evidence for
intent-expressing semantic metadata is documented in <xref target="HOOD2026"/>.</t>
      <section anchor="required-semantic-block-fields">
        <name>Required Semantic Block Fields</name>
        <dl>
          <dt><tt>intent</tt>:</dt>
          <dd>
            <t>A natural-language statement of what the endpoint accomplishes.
Single sentence. Imperative form. Subject is the actor; the verb
reflects the endpoint's method; the object is the path resource.</t>
          </dd>
          <dt><tt>actor</tt>:</dt>
          <dd>
            <t>A short identifier of the agent class that should invoke this
endpoint. Freeform string; servers <strong>MUST NOT</strong> reject endpoints
whose <tt>actor</tt> is not in a fixed enum. Suggested values for
interoperable authoring include <tt>agent</tt>, <tt>human</tt>, <tt>system</tt>,
<tt>customer</tt>, <tt>staff</tt>, <tt>admin</tt>; domain-specific values (e.g.,
<tt>merchant</tt>, <tt>auditor</tt>, <tt>patient</tt>) are equally valid. The field
helps agents recognize whether an endpoint applies to their role
but carries no protocol-level enforcement.</t>
          </dd>
          <dt><tt>outcome</tt>:</dt>
          <dd>
            <t>A natural-language statement of the post-condition produced by
successful invocation. Distinct from <tt>intent</tt>: intent is what the
endpoint sets out to do; outcome is what is true after.</t>
          </dd>
          <dt><tt>capability</tt>:</dt>
          <dd>
            <t>The high-level effect class of the endpoint. One of the catalog
category values: <tt>discovery</tt>, <tt>retrieval</tt>, <tt>analysis</tt>,
<tt>transaction</tt>, <tt>modification</tt>, <tt>creation</tt>, <tt>notification</tt>,
<tt>mechanics</tt>, <tt>domain_spanning</tt>. The same taxonomy used to
classify methods in the catalog (<xref target="the-approved-method-catalog"/>); an
endpoint inherits its capability class from the category of the
method it exposes, though operators <strong>MAY</strong> override when the
endpoint's specific behavior fits a different category.</t>
          </dd>
          <dt><tt>confidence</tt>:</dt>
          <dd>
            <t>A scalar on the closed interval <tt>0.0</tt> to <tt>1.0</tt> expressing how
confident the server is that an agent invoking this endpoint with
satisfying input will produce the declared outcome. Endpoints
that are deterministic and well-tested score near <tt>1.0</tt>;
endpoints that involve nondeterministic resources or partial
failures score lower. Agents <strong>MAY</strong> use the value to decide
whether to ESCALATE for clarification before invoking. The scale
is advisory and not normatively defined beyond the endpoint
bounds.</t>
          </dd>
          <dt><tt>impact</tt>:</dt>
          <dd>
            <t>The reversibility of the endpoint's effect. One of
<tt>informational</tt>, <tt>reversible</tt>, <tt>irreversible</tt>.
<tt>informational</tt> endpoints return data without changing server
state. <tt>reversible</tt> endpoints change state in ways that can be
undone via a compensating method (e.g., CANCEL, REFUND).
<tt>irreversible</tt> endpoints commit changes that cannot be programmatically
undone (e.g., sending an email, charging a payment, shipping
goods). Governance frameworks <strong>MAY</strong> use this field to apply
differential authorization, gating irreversible endpoints behind
stricter scope checks.</t>
          </dd>
          <dt><tt>is_idempotent</tt>:</dt>
          <dd>
            <t>Boolean. Whether repeated invocation with identical input
produces identical effect. Affects retry safety: idempotent
endpoints <strong>MAY</strong> be retried freely; non-idempotent endpoints
require an <tt>Idempotency-Key</tt> header per <xref target="AGTP"/> to be safely
retried.</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="manifest">
      <name>Server Manifest</name>
      <section anchor="purpose">
        <name>Purpose</name>
        <t>The server manifest is the machine-readable document an AGTP server
publishes to declare its identity, version posture, endpoint
catalog, hosted agents, hosted protocols, and operational policies.
It is the authoritative answer to "what does this server offer."</t>
      </section>
      <section anchor="manifest-structure">
        <name>Manifest Structure</name>
        <sourcecode type="json"><![CDATA[
{
  "agtp_version": "1.0",
  "agtp_api_version": "1.0",
  "document_version": "v2",
  "catalog_version": "1.0.0",
  "catalog_versions_supported": ["1.0.0"],

  "server": {
    "server_id": "agents.acme.com",
    "domain": null,
    "operator": "Acme Retail",
    "contact": "ops@acme.com",
    "supported_features": ["endpoint-registry", "synthesis"],
    "issued": "2026-01-15T09:00:00Z",
    "updated": "2026-04-15T09:00:00Z"
  },

  "embedded_methods": [ /* twelve floor methods */ ],
  "custom_methods": [ /* server-specific methods declared in policies.methods */ ],
  "endpoints": [ /* array of endpoint definitions, projected */ ],

  "agent_disclosure": "public",
  "hosted_agents": [ /* agent identity references */ ],
  "agent_disclosure_notice": null,

  "apis": [ /* legacy HTTP APIs this server fronts, if any */ ],
  "hosted_protocols": [ /* MCP, A2A, ACP, etc. */ ],

  "policies": {
    "wildcards_accepted": false,
    "anonymous_discovery": true,
    "scope_required_for_invocation": true,
    "synthesis_enabled": true,
    "max_synthesis_depth": 10
  },

  "manifest_signature": null
}
]]></sourcecode>
        <t>The manifest carries three distinct version fields at the top
level:</t>
        <dl>
          <dt><tt>agtp_version</tt>:</dt>
          <dd>
            <t>The AGTP wire-protocol version the server speaks (currently
<tt>"1.0"</tt>, corresponding to AGTP v07 of <xref target="AGTP"/>). Pinned to the
base protocol, separate from contract-layer evolution.</t>
          </dd>
          <dt><tt>agtp_api_version</tt>:</dt>
          <dd>
            <t>The AGTP-API contract-layer version the server implements
(currently <tt>"1.0"</tt> for v00 of this document). Carries the
endpoint primitive, semantic block, status code, and synthesis
semantics the server adheres to.</t>
          </dd>
          <dt><tt>document_version</tt>:</dt>
          <dd>
            <t>This specific manifest's revision string. Operator-controlled;
bumped on every meaningful change to the manifest content.
Permits agents to detect cache staleness without comparing the
full body.</t>
          </dd>
          <dt><tt>catalog_version</tt>:</dt>
          <dd>
            <t>The method catalog version the server validates incoming method
names against. See <xref target="catalog-evolution"/>.</t>
          </dd>
          <dt><tt>catalog_versions_supported</tt>:</dt>
          <dd>
            <t>List of catalog versions the server can validate against. The
current <tt>catalog_version</tt> <strong>MUST</strong> appear in this list.
Multi-version support is anticipated in a future revision but is
not normatively specified in v00.</t>
          </dd>
        </dl>
      </section>
      <section anchor="server-block">
        <name>Server Block</name>
        <t>The <tt>server</tt> block carries operator-facing identity and timestamps:</t>
        <dl>
          <dt><tt>server_id</tt>:</dt>
          <dd>
            <t>The canonical identifier for this server. <strong>MAY</strong> be a hostname,
an <tt>agtp://</tt> URI, or an operator-defined string. The value
<strong>MUST</strong> be stable across manifest revisions.</t>
          </dd>
          <dt><tt>domain</tt>:</dt>
          <dd>
            <t>Optional operational host the server is reachable at, if
different from <tt>server_id</tt>. <strong>MAY</strong> be <tt>null</tt> for servers whose
<tt>server_id</tt> is itself a resolvable host.</t>
          </dd>
          <dt><tt>operator</tt>:</dt>
          <dd>
            <t>The human-readable name of the organization operating the server.</t>
          </dd>
          <dt><tt>contact</tt>:</dt>
          <dd>
            <t>An operator email address for security and operational issues.</t>
          </dd>
          <dt><tt>supported_features</tt>:</dt>
          <dd>
            <t>A non-normative array of feature tokens describing optional
capabilities the server exposes (e.g., <tt>"endpoint-registry"</tt>,
<tt>"synthesis"</tt>, <tt>"openapi-export"</tt>). Agents and operators <strong>MAY</strong>
use these tokens for capability negotiation. AGTP-API does not
define a canonical feature-token registry; tokens are
operator-defined.</t>
          </dd>
          <dt><tt>issued</tt>:</dt>
          <dd>
            <t>ISO 8601 timestamp of when the manifest was first issued.
Preserved across manifest revisions; identifies the manifest's
origin in time.</t>
          </dd>
          <dt><tt>updated</tt>:</dt>
          <dd>
            <t>ISO 8601 timestamp of the most recent manifest update. Bumped
on every regeneration.</t>
          </dd>
        </dl>
      </section>
      <section anchor="methods-inventory">
        <name>Methods Inventory</name>
        <t>The <tt>embedded_methods</tt> array carries the twelve protocol-floor
methods every AGTP server supports (see <xref target="AGTP"/> §6). The
<tt>custom_methods</tt> array carries any server-specific methods declared
in <tt>policies.methods</tt> (<xref target="custom-verbs"/>). The <tt>custom_methods</tt>
field <strong>MAY</strong> be omitted when empty.</t>
        <t>These arrays are non-normatively populated; agents that want a
complete picture of what the server invokes <strong>SHOULD</strong> consult the
<tt>endpoints</tt> array, which is the authoritative source for what
methods are bound on what paths.</t>
      </section>
      <section anchor="agents-disclosure">
        <name>Agents Disclosure</name>
        <t>The three agent-related fields describe what agents the server
hosts and how they are exposed:</t>
        <dl>
          <dt><tt>agent_disclosure</tt>:</dt>
          <dd>
            <t>One of <tt>"public"</tt>, <tt>"authenticated"</tt>, <tt>"private"</tt>. <tt>"public"</tt>
means the <tt>hosted_agents</tt> array is populated and visible to all
callers. <tt>"authenticated"</tt> means the array is populated only for
callers presenting a verified identity. <tt>"private"</tt> means the
array is empty in this manifest; the server does not disclose
what agents it hosts.</t>
          </dd>
          <dt><tt>hosted_agents</tt>:</dt>
          <dd>
            <t>Array of agent identity references the server hosts. Format is
operator-defined; typical entries include a canonical Agent-ID
and a brief description.</t>
          </dd>
          <dt><tt>agent_disclosure_notice</tt>:</dt>
          <dd>
            <t>Optional human-readable note explaining the server's disclosure
policy. Useful when <tt>agent_disclosure</tt> is <tt>"authenticated"</tt> or
<tt>"private"</tt> and the operator wishes to clarify how a caller can
request elevated disclosure.</t>
          </dd>
        </dl>
      </section>
      <section anchor="protocol-and-api-surface">
        <name>Protocol and API Surface</name>
        <dl>
          <dt><tt>apis</tt>:</dt>
          <dd>
            <t>Optional array of legacy HTTP API descriptors this server fronts
(e.g., entries pointing at OpenAPI specifications). Servers that
expose a parallel HTTP surface alongside AGTP list those HTTP
endpoints here; the presence of entries in this array is the
signal that the server operates a parallel HTTP face.</t>
          </dd>
          <dt><tt>hosted_protocols</tt>:</dt>
          <dd>
            <t>Optional array of higher-level agent protocols the server hosts
on top of AGTP (e.g., MCP, A2A, ACP). Each entry is an object
with the protocol name and the AGTP method+path it is reachable
via. See the composition section in <xref target="AGTP"/>.</t>
          </dd>
        </dl>
      </section>
      <section anchor="policies-block">
        <name>Policies Block</name>
        <t>The <tt>policies</tt> block carries five normative operational toggles:</t>
        <dl>
          <dt><tt>wildcards_accepted</tt>:</dt>
          <dd>
            <t>One of <tt>true</tt>, <tt>false</tt>. Whether the server accepts ad-hoc method
invocations against undeclared endpoints. See <xref target="builtin-endpoints"/>.</t>
          </dd>
          <dt><tt>anonymous_discovery</tt>:</dt>
          <dd>
            <t>One of <tt>true</tt>, <tt>false</tt>. Whether unauthenticated callers may
retrieve the manifest and invoke read-only built-in endpoints.
Servers serving traffic from open networks typically set this
to <tt>true</tt>; servers in trusted-network deployments <strong>MAY</strong> set
this to <tt>false</tt> to require authenticated identity even on
discovery.</t>
          </dd>
          <dt><tt>scope_required_for_invocation</tt>:</dt>
          <dd>
            <t>One of <tt>true</tt>, <tt>false</tt>. Whether every endpoint invocation
requires the agent to carry an Authority-Scope header.
<tt>true</tt> is the default; the implementation <strong>MUST NOT</strong> invoke a
handler when scope is required and absent. Servers with no
scope-gated endpoints <strong>MAY</strong> set this to <tt>false</tt>.</t>
          </dd>
          <dt><tt>synthesis_enabled</tt>:</dt>
          <dd>
            <t>One of <tt>true</tt>, <tt>false</tt>. Whether the server participates in
PROPOSE-and-synthesis runtime contract negotiation. When
<tt>false</tt>, PROPOSE requests <strong>MUST</strong> be refused with 463 Proposal
Rejected and the reason <tt>synthesis-disabled</tt>.</t>
          </dd>
          <dt><tt>max_synthesis_depth</tt>:</dt>
          <dd>
            <t>A positive integer specifying the maximum number of composed
steps a synthesized endpoint <strong>MAY</strong> combine. Plans exceeding
this depth are refused; the server falls through to
counter-proposal or 463. Default: 10.</t>
          </dd>
        </dl>
      </section>
      <section anchor="manifest-signature">
        <name>Manifest Signature</name>
        <t>The manifest body <strong>SHOULD</strong> carry a <tt>manifest_signature</tt> field
holding a JWS envelope over the canonical JSON encoding of the
manifest body (with the <tt>manifest_signature</tt> field itself excluded
from the signing input). Clients <strong>MAY</strong> verify signatures when
present and <strong>SHOULD</strong> warn when absent.</t>
        <t>A future revision of this specification will require
<tt>manifest_signature</tt> (<strong>MUST</strong>); reference implementations are
expected to ship signing support in alignment with that revision.
The signing algorithm, canonical encoding rules, and key-publication
mechanism are specified separately in <xref target="AGTP-CERT"/>.</t>
        <t>For v00, the <tt>manifest_signature</tt> field <strong>MAY</strong> be <tt>null</tt> or absent;
a manifest without a valid signature <strong>MUST NOT</strong> be rejected by
clients on signature grounds alone.</t>
      </section>
      <section anchor="endpoint-projection">
        <name>Endpoint Projection</name>
        <t>The <tt>endpoints</tt> array in the manifest is a projection of the
server's internal endpoint catalog. The projection differs from the
full endpoint definition in one important way: the handler's
type-specific reference field (<tt>function</tt>, <tt>recipe</tt>, or <tt>url</tt>) and
any other binding-specific implementation details are dropped,
leaving only the binding kind under <tt>handler.type</tt>.</t>
        <t>Internal endpoint definition (on disk, in TOML or equivalent):</t>
        <sourcecode type="json"><![CDATA[
{
  "method": "BOOK",
  "path": "/room",
  "description": "...",
  "semantic": { ... },
  "input_schema": { ... },
  "output_schema": { ... },
  "errors": [ ... ],
  "required_scopes": [ ... ],
  "handler": {
    "type": "registered_function",
    "function": "rooms.handlers.book_room"
  }
}
]]></sourcecode>
        <t>Manifest projection (over the wire):</t>
        <sourcecode type="json"><![CDATA[
{
  "method": "BOOK",
  "path": "/room",
  "description": "...",
  "semantic": { ... },
  "input_schema": { ... },
  "output_schema": { ... },
  "errors": [ ... ],
  "required_scopes": [ ... ],
  "handler": { "type": "registered_function" }
}
]]></sourcecode>
        <t>The type-specific reference field (<tt>function</tt>, <tt>recipe</tt>, or <tt>url</tt>)
and any other binding-specific implementation fields are
server-internal and <strong>MUST NOT</strong> appear in the manifest projection.
Agents need to know the binding kind to reason about expected
latency, retry behavior, and attribution; agents do not need to
know which specific function, recipe, or upstream realizes the
binding.</t>
        <t>Servers <strong>MUST</strong> apply this projection on every manifest response.</t>
      </section>
      <section anchor="manifest-retrieval">
        <name>Manifest Retrieval</name>
        <t>Agents retrieve the server manifest using the AGTP DISCOVER method
without an Agent-ID header. The absence of an Agent-ID header
distinguishes a server-level discovery request (returns the manifest)
from an agent-level discovery request (returns endpoint candidates
matching specified criteria).</t>
        <t>The response <strong>MUST</strong> carry Content-Type
<tt>application/vnd.agtp.manifest+json</tt>. The manifest <strong>SHOULD</strong> be
signed; see the Manifest Signature subsection above.</t>
      </section>
      <section anchor="manifest-caching">
        <name>Manifest Caching</name>
        <t>Servers <strong>SHOULD</strong> include <tt>Cache-Control</tt> and <tt>ETag</tt> headers on
manifest responses. Agents <strong>MAY</strong> cache manifests according to
those directives. The <tt>server.updated</tt> timestamp and the
<tt>document_version</tt> field permit agents to detect cache staleness
without revalidation: a changed <tt>document_version</tt> means the
manifest content has changed in a way the operator considers
significant.</t>
      </section>
    </section>
    <section anchor="method-policy">
      <name>Method Policy</name>
      <section anchor="purpose-1">
        <name>Purpose</name>
        <t>The method policy declares per-server constraints on which methods
are accepted, which legacy verbs are opted in, and which methods on
which paths are redirected to their canonical form. The policy is
the small, declarative complement to the endpoint catalog: the
catalog says what an endpoint does; the policy says what the server
accepts in the first place.</t>
        <t>In v00, the method policy is a sub-block of the manifest's
<tt>policies</tt> (<xref target="manifest"/>) carried at <tt>policies.methods</tt>. There is
no separate policy file format; the policy is part of the server's
configuration and is exposed on the manifest like any other
operational policy.</t>
      </section>
      <section anchor="policy-shape">
        <name>Policy Shape</name>
        <t>The <tt>policies.methods</tt> block is a JSON object with four optional
fields:</t>
        <dl>
          <dt><tt>allow</tt>:</dt>
          <dd>
            <t>Either the string <tt>"*"</tt> (the server admits every method in the
catalog plus any method it has registered an endpoint for), or
an array of method names (the server admits only the listed
methods plus the embedded twelve floor methods). Default: <tt>"*"</tt>.</t>
          </dd>
          <dt><tt>disallow</tt>:</dt>
          <dd>
            <t>Array of method names the server explicitly rejects. Disallowed
methods are rejected with 405 Method Not Allowed even when they
would otherwise be permitted by <tt>allow</tt>. Useful for narrowing
the surface without enumerating an exhaustive allow list.
Default: empty array.</t>
          </dd>
          <dt><tt>legacy</tt>:</dt>
          <dd>
            <t>Either an array of legacy HTTP verb names the server opts into
(e.g., <tt>["GET", "POST"]</tt>), the string <tt>"*"</tt> (all five legacy
verbs accepted), or the string <tt>"NONE"</tt> (no legacy support).
Granular per-verb opt-in supersedes the binary enabled/disabled
toggle. Default: <tt>"NONE"</tt>.</t>
          </dd>
          <dt><tt>redirects</tt>:</dt>
          <dd>
            <t>Array of method-and-path redirect entries. Each entry has the
shape:
</t>
            <sourcecode type="json"><![CDATA[
{
  "from_method": "BOOK",
  "from_path": "/room",
  "to_method": "RESERVE",
  "to_path": "/room"
}
]]></sourcecode>
            <t>Either <tt>from_path</tt> or <tt>to_path</tt> <strong>MAY</strong> be omitted, signaling
"redirect on method-only without path matching" or "redirect to
the same path as the request." When a request matches a
redirect entry, the server processes it as if the
<tt>to_method</tt>/<tt>to_path</tt> had been requested instead.</t>
          </dd>
        </dl>
      </section>
      <section anchor="example">
        <name>Example</name>
        <t>A representative TOML deployment configuration:</t>
        <sourcecode type="toml"><![CDATA[
[policies.methods]
allow = "*"
disallow = ["PATCH", "TRANSFER"]
legacy = ["GET"]

[[policies.methods.redirects]]
from_method = "BOOK"
from_path = "/room"
to_method = "RESERVE"
to_path = "/room"
]]></sourcecode>
        <t>The equivalent manifest projection:</t>
        <sourcecode type="json"><![CDATA[
"policies": {
  "methods": {
    "allow": "*",
    "disallow": ["PATCH", "TRANSFER"],
    "legacy": ["GET"],
    "redirects": [
      {
        "from_method": "BOOK",
        "from_path": "/room",
        "to_method": "RESERVE",
        "to_path": "/room"
      }
    ]
  }
}
]]></sourcecode>
      </section>
      <section anchor="catalog-graceful-skip-semantics">
        <name>Catalog-Graceful Skip Semantics</name>
        <t>When the server loads <tt>policies.methods</tt> and an entry under <tt>allow</tt>,
<tt>disallow</tt>, or <tt>redirects</tt> references a method removed from the
catalog version the server has loaded, the entry <strong>MUST</strong> be
skipped at load time with an operator-visible warning. The server
continues to operate; the policy entry has no effect. This permits
operators to upgrade the catalog without simultaneously rewriting
the policy block to remove all references to retired methods.</t>
        <t>The <tt>legacy</tt> field continues to enforce the strict set of five HTTP
verbs (GET, POST, PUT, DELETE, PATCH); typos or non-HTTP verbs in
<tt>legacy</tt> <strong>MUST</strong> be rejected as a hard configuration error.</t>
      </section>
      <section anchor="discovery">
        <name>Discovery</name>
        <t>Agents discover the server's method policy by retrieving the server
manifest via target-less DISCOVER (<xref target="manifest"/>). The
<tt>policies.methods</tt> block is part of the manifest body and is
covered by the manifest signature (<xref target="manifest"/>) when present.</t>
        <t>Agents that need only an endpoint inventory (which methods on which
paths are exposed, with one-line descriptions) <strong>MAY</strong> invoke
<tt>DISCOVER /methods</tt> (<xref target="builtin-endpoints"/>) for a lightweight
response that bypasses the full manifest weight.</t>
      </section>
    </section>
    <section anchor="propose-and-synthesis">
      <name>PROPOSE and Synthesis</name>
      <section anchor="purpose-2">
        <name>Purpose</name>
        <t>PROPOSE is the AGTP method that triggers runtime contract negotiation.
An agent that needs an endpoint the server does not advertise
submits a PROPOSE request carrying an AGTP-API-conformant endpoint
specification; the server evaluates the proposal against the
contract layer and either instantiates the endpoint as a
session-scoped artifact or refuses.</t>
        <t>PROPOSE is one of the twelve floor methods defined in <xref target="AGTP"/>. Its
parameter table is specified there. This document specifies the
synthesis semantics that govern server-side evaluation.</t>
      </section>
      <section anchor="negotiation-flow">
        <name>Negotiation Flow</name>
        <artwork><![CDATA[
Step 1:  Agent retrieves the server manifest (which carries the
         method policy as `policies.methods`)
Step 2:  Agent determines the needed endpoint is not declared
Step 3:  Agent constructs an AGTP-API-conformant endpoint definition
Step 4:  Agent sends PROPOSE with the endpoint definition in body
Step 5a: Server accepts and synthesizes
         Server evaluates contract conformance and capability envelope
         Server composes the endpoint from existing endpoints
         Server returns 263 Proposal Approved with the
           AGTP-API endpoint definition for the synthesized endpoint
         Synthesis-ID matches original proposal
         Synthesized endpoint is session-scoped by default
         Agent MAY invoke the endpoint immediately
Step 5b: Server rejects (463)
         Server returns 463 Proposal Rejected with structured reason
         Response SHOULD reference manifest entries that satisfy a
           similar capability if available
         Agent MAY modify proposal and retry (maximum 3 turns)
         After 3 rejections agent MUST ESCALATE
]]></artwork>
      </section>
      <section anchor="server-side-synthesis-evaluation">
        <name>Server-Side Synthesis Evaluation</name>
        <t>On receipt of a PROPOSE request, the server <strong>MUST</strong> evaluate:</t>
        <ol spacing="normal" type="1"><li>
            <t><strong>Method conformance.</strong> Is the proposed method in the AGTP-API
approved method catalog, or is it a custom method declared in
the server's <tt>policies.methods</tt> (<xref target="custom-verbs"/>)? If not,
return 459 Method Violation.</t>
          </li>
          <li>
            <t><strong>Path conformance.</strong> Does the proposed path satisfy
<xref target="path-grammar"/>? If not, return 460 Endpoint Violation.</t>
          </li>
          <li>
            <t><strong>Semantic block conformance.</strong> Does the proposed semantic
block carry all required fields with valid values? If not,
return 400 Bad Request.</t>
          </li>
          <li>
            <t><strong>Schema conformance.</strong> Are the input and output schemas valid
JSON Schema documents? If not, return 400 Bad Request.</t>
          </li>
          <li>
            <t><strong>Authority sufficiency.</strong> Does the proposing agent's
declared Authority-Scope cover the proposed authority
requirements? If not, return 262 Authorization Required with
body type <tt>scope-required</tt>.</t>
          </li>
          <li>
            <t><strong>Capability envelope.</strong> Can the server actually synthesize
the proposed endpoint from its existing capabilities? If not,
return 463 Proposal Rejected with <tt>reason: composition-impossible</tt>.</t>
          </li>
          <li>
            <t><strong>Policy acceptance.</strong> Does the server's policy permit the
proposed method-and-path combination? If not, return 463 with
<tt>reason: policy-refused</tt>.</t>
          </li>
        </ol>
        <t>If all evaluations pass, the server synthesizes the endpoint and
returns 263 Proposal Approved.</t>
      </section>
      <section anchor="synthesis-composed-endpoints">
        <name>Synthesis-Composed Endpoints</name>
        <t>When a server synthesizes an endpoint, the server is composing the
proposed behavior from existing endpoints internally. The synthesized
endpoint is exposed to the agent as a single endpoint, but the
server's handler implementation invokes one or more underlying
endpoints to fulfill the request.</t>
        <t>Authority <strong>MUST</strong> be preserved through the composition. The agent's
Authority-Scope <strong>MUST</strong> be sufficient for every underlying endpoint
the synthesis invokes. If a composed step would require authority
the agent does not hold, the synthesis <strong>MUST</strong> fail at evaluation
time (step 5) rather than at execution time.</t>
      </section>
      <section anchor="session-scoped-vs-persistent-synthesis">
        <name>Session-Scoped vs Persistent Synthesis</name>
        <t>By default, a synthesized endpoint is session-scoped: it exists for
the duration of the AGTP session that proposed it and is removed when
the session ends. The agent <strong>MAY</strong> request persistent synthesis by
setting <tt>persistent: true</tt> in the PROPOSE body; the server <strong>MAY</strong>
honor or refuse the persistence request independently of the
synthesis decision. Persistent synthesis subjects the proposed
endpoint to the server's regular endpoint catalog and is reflected
in subsequent manifest retrievals.</t>
      </section>
    </section>
    <section anchor="status-codes">
      <name>Status Codes</name>
      <t>AGTP-API contributes the following structural rejection codes to the
AGTP status code space. The codes are registered with IANA per
<xref target="AGTP"/> Section 9.3.</t>
      <table>
        <name>AGTP-API Status Codes</name>
        <thead>
          <tr>
            <th align="left">Code</th>
            <th align="left">Name</th>
            <th align="left">Returned When</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">261</td>
            <td align="left">Negotiation In Progress</td>
            <td align="left">Server has accepted PROPOSE for evaluation; agent polls via <tt>QUERY /proposals/{proposal_id}</tt> for terminal status</td>
          </tr>
          <tr>
            <td align="left">262</td>
            <td align="left">Authorization Required</td>
            <td align="left">Request requires credential establishment, additional Authority-Scope, wildcards consent, or authenticated identity that is not yet present</td>
          </tr>
          <tr>
            <td align="left">263</td>
            <td align="left">Proposal Approved</td>
            <td align="left">Server has synthesized and instantiated the proposed endpoint</td>
          </tr>
          <tr>
            <td align="left">404</td>
            <td align="left">Not Found</td>
            <td align="left">The path does not exist on this server</td>
          </tr>
          <tr>
            <td align="left">405</td>
            <td align="left">Method Not Allowed</td>
            <td align="left">Method and path are valid but server policy does not expose this combination</td>
          </tr>
          <tr>
            <td align="left">459</td>
            <td align="left">Method Violation</td>
            <td align="left">The method is not in the AGTP-API approved catalog</td>
          </tr>
          <tr>
            <td align="left">460</td>
            <td align="left">Endpoint Violation</td>
            <td align="left">The path violates AGTP-API path grammar (method-name leakage)</td>
          </tr>
          <tr>
            <td align="left">463</td>
            <td align="left">Proposal Rejected</td>
            <td align="left">Server cannot or will not synthesize the proposed endpoint</td>
          </tr>
        </tbody>
      </table>
      <t>The four structural rejection codes 404, 405, 459, 460 form the
contract-level failure surface. Each code is independently
actionable and addresses a distinct failure mode:</t>
      <ul spacing="normal">
        <li>
          <t><strong>404</strong> -- the path does not exist. The agent has the wrong
resource locator.</t>
        </li>
        <li>
          <t><strong>405</strong> -- the method and path are individually valid but the
server does not expose this combination. The agent <strong>MAY</strong> try a
different method on the same path, or <strong>MAY</strong> PROPOSE the
combination if it is not a policy refusal.</t>
        </li>
        <li>
          <t><strong>459</strong> -- the method itself is the problem. The agent <strong>MUST</strong>
pick a different method from the AGTP-API catalog. PROPOSE will
not succeed because the method name is not legal.</t>
        </li>
        <li>
          <t><strong>460</strong> -- the path violates path grammar. The agent <strong>MUST</strong>
restructure the path so that no path segment matches an
approved method name.</t>
        </li>
      </ul>
      <t>These codes are not interchangeable. A 405 is a policy decision; a
459 is a vocabulary violation; a 460 is a structural violation.
Servers <strong>MUST</strong> return the most specific code that applies.</t>
      <t>The 405 response body <strong>MUST</strong> carry the following fields:</t>
      <dl>
        <dt><tt>allowed_methods_for_path</tt>:</dt>
        <dd>
          <t>The list of methods the server's policy or registry exposes on
the path. Permits the agent to retry with a method the server
actually accepts.</t>
        </dd>
        <dt><tt>redirects_for_path</tt>:</dt>
        <dd>
          <t>A map of method-to-method redirects from <tt>policies.methods</tt>
(<xref target="method-policy"/>) that apply to this path. <strong>MAY</strong> be empty if
the server has no redirects configured. Permits the agent to
learn that, for example, <tt>BOOK</tt> is redirected to <tt>RESERVE</tt> on
this server, and to retry under the canonical method directly.</t>
        </dd>
      </dl>
      <t>These fields together let the agent recover from a 405 without an
out-of-band catalog lookup or a second round-trip.</t>
    </section>
    <section anchor="handler-binding">
      <name>Handler Binding</name>
      <t>The handler binding declares how an endpoint's behavior is realized
at runtime. AGTP-API defines three binding types.</t>
      <section anchor="composition">
        <name>Composition</name>
        <t>A composition handler exposes a derived endpoint whose behavior is
realized by orchestrating one or more other endpoints declared on
the same server. No application code is invoked; the server's
synthesis runtime executes the composition steps in order, threading
outputs into subsequent inputs while preserving authority through
the composition.</t>
        <t>Composition handlers reference a named recipe:</t>
        <sourcecode type="json"><![CDATA[
"handler": {
  "type": "composition",
  "recipe": "audit-via-query-and-summarize"
}
]]></sourcecode>
        <t>The <tt>recipe</tt> value is the name of a recipe defined in the server's
recipe registry (typically in an <tt>agtp-recipes.toml</tt> file loaded at
server startup). Recipes are reusable units of composition logic;
one recipe <strong>MAY</strong> back multiple endpoints. Inline composition
steps are not supported in v00; every composition endpoint <strong>MUST</strong>
reference a registered recipe by name.</t>
        <t>A composition handler whose <tt>recipe</tt> value does not resolve to a
recipe registered at the server <strong>MUST</strong> cause registration to fail.</t>
        <t>Composition endpoints <strong>MUST</strong> include <tt>composition_failed</tt> in
their <tt>errors</tt> list. This is the named error returned when a
composition step fails (any underlying step returns a non-success
status). The error response carries <tt>details</tt> with the recipe
identifier, the failed step number, the underlying step method,
the underlying status, and any captured outputs from preceding
steps.</t>
        <t>Authority <strong>MUST</strong> be preserved through the composition. The
agent's Authority-Scope <strong>MUST</strong> be sufficient for every underlying
endpoint the composition invokes. Authority sufficiency is verified
at registration time when possible (when step paths are statically
known) and at invocation time for parameterized step paths.</t>
        <t>This is the binding type most commonly produced by PROPOSE +
synthesis: a synthesized endpoint is a composition of existing
endpoints, and <strong>MAY</strong> be promoted to a permanent declared
composition by adding its recipe to the server's recipe registry
and writing an endpoint TOML that references it by name.</t>
      </section>
      <section anchor="registered-function">
        <name>Registered Function</name>
        <sourcecode type="json"><![CDATA[
"handler": {
  "type": "registered_function",
  "function": "rooms.handlers.book_room"
}
]]></sourcecode>
        <t>The endpoint binds to a Python function loaded by the server.
The <tt>function</tt> value is a dotted path identifying the module and
the callable within it; the server imports the module at registration
time and resolves the function attribute. Single dotted-path form
is normative; separate <tt>module</tt> and <tt>function</tt> fields are not
supported in v00.</t>
        <t>The function receives the validated input and returns the response
payload. The handler API contract is specified separately (see
the reference implementation's handler documentation). This is the
binding type used for endpoints whose logic exceeds what
composition can express.</t>
      </section>
      <section anchor="external-service">
        <name>External Service</name>
        <sourcecode type="json"><![CDATA[
"handler": {
  "type": "external_service",
  "url": "https://internal.acme.tld/booking",
  "method": "POST",
  "headers": {
    "Authorization": "Bearer ${BOOKING_API_TOKEN}",
    "Content-Type": "application/json"
  },
  "input_transform": {
    "guest_id": "guestId",
    "room_type": "roomType"
  },
  "output_transform": {
    "confirmation_code": "confirmationNumber"
  },
  "error_map": {
    "404": "room_not_found",
    "409": "room_unavailable"
  },
  "timeout_seconds": 30
}
]]></sourcecode>
        <t>The endpoint binds to an HTTPS-reachable external service. The
server proxies the request to the external endpoint and returns the
response. Useful for AGTP frontends to existing HTTP-based services.
The external service is not part of the AGTP contract; the AGTP
server presents a contract-compliant facade.</t>
        <t>External service fields:</t>
        <dl>
          <dt><tt>url</tt>:</dt>
          <dd>
            <t>The fully-qualified URL of the upstream HTTP endpoint. The URL
<strong>MUST</strong> use the <tt>https://</tt> scheme. Plain HTTP <strong>MUST NOT</strong> be
accepted at registration time.</t>
          </dd>
          <dt><tt>method</tt>:</dt>
          <dd>
            <t>The HTTP method to invoke on the upstream. One of GET, POST, PUT,
PATCH, DELETE, HEAD, OPTIONS. <strong>REQUIRED</strong>.</t>
          </dd>
          <dt><tt>headers</tt>:</dt>
          <dd>
            <t>Optional map of HTTP headers to send to the upstream on every
request. Values <strong>MAY</strong> include <tt>${VAR}</tt> placeholders that are
resolved against process environment variables at server startup.
Unresolved placeholders <strong>MUST</strong> cause registration to fail.</t>
          </dd>
          <dt><tt>input_transform</tt>:</dt>
          <dd>
            <t>Optional map renaming AGTP request fields to the upstream's
expected field names. Maps AGTP-side name to upstream-side name.
Fields not in the map pass through unchanged. v00 supports
key-rename only; value transformation is anticipated in a future
revision.</t>
          </dd>
          <dt><tt>output_transform</tt>:</dt>
          <dd>
            <t>Optional map renaming upstream response fields to AGTP-side names.
The map is inverted at response time: the upstream-side name is
the source, the AGTP-side name is the target. Fields not in the
map pass through unchanged.</t>
          </dd>
          <dt><tt>error_map</tt>:</dt>
          <dd>
            <t>Map of upstream HTTP status code (as a string) to AGTP error code
declared in the endpoint's <tt>errors</tt> list. Servers <strong>SHOULD</strong>
configure <tt>error_map</tt> for every external_service binding; without
it, upstream HTTP errors surface to agents as generic
<tt>upstream_error</tt>. Every value in <tt>error_map</tt> <strong>MUST</strong> appear in
the endpoint's <tt>errors</tt>; registration <strong>MUST</strong> fail otherwise.</t>
          </dd>
          <dt><tt>timeout_seconds</tt>:</dt>
          <dd>
            <t>Positive number specifying the upstream request timeout. Servers
<strong>SHOULD</strong> set this explicitly. Default if absent: 30 seconds.
Production deployments <strong>SHOULD NOT</strong> rely on the default;
explicit timeouts make upstream-dependency posture inspectable.</t>
          </dd>
        </dl>
        <t>External service endpoints <strong>MUST</strong> declare the following five
upstream-failure error codes in their <tt>errors</tt> list, in addition to
any business-level errors:</t>
        <table>
          <name>Mandatory External Service Error Codes</name>
          <thead>
            <tr>
              <th align="left">Error Code</th>
              <th align="left">Returned When</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>upstream_timeout</tt></td>
              <td align="left">Upstream did not respond within <tt>timeout_seconds</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>upstream_connection_error</tt></td>
              <td align="left">DNS, connection, or TLS failure reaching the upstream</td>
            </tr>
            <tr>
              <td align="left">
                <tt>upstream_malformed_response</tt></td>
              <td align="left">Upstream returned a 2xx response whose body is not valid JSON</td>
            </tr>
            <tr>
              <td align="left">
                <tt>upstream_authentication_failed</tt></td>
              <td align="left">Upstream returned 401 or 403 not covered by <tt>error_map</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>upstream_error</tt></td>
              <td align="left">Upstream returned 4xx or 5xx not covered by <tt>error_map</tt></td>
            </tr>
          </tbody>
        </table>
        <t>Without these declarations, transport-level upstream failures would
surface to the calling agent as opaque server errors. Mandating them
makes the failure surface inspectable.</t>
        <t>Agent identity is <strong>NOT</strong> propagated to the upstream by default.
This is a security default: an upstream HTTP service has no
mechanism to validate AGTP agent credentials, and forwarding them
would expose principal identity to systems outside the AGTP trust
boundary. Servers wishing to propagate identity to a specific
upstream <strong>MAY</strong> do so via explicit header configuration in the
<tt>headers</tt> map (e.g., a server-issued bearer token), but <strong>MUST NOT</strong>
forward AGTP-Agent-ID or AGTP-Principal-ID by default.</t>
      </section>
    </section>
    <section anchor="conformance">
      <name>Conformance</name>
      <section anchor="single-tier">
        <name>Single Tier</name>
        <t>A conforming AGTP server implements:</t>
        <ol spacing="normal" type="1"><li>
            <t>The full endpoint primitive (<xref target="the-endpoint-primitive"/>).</t>
          </li>
          <li>
            <t>Method validation against the AGTP-API approved catalog at the
server's declared <tt>catalog_version</tt>.</t>
          </li>
          <li>
            <t>Path validation against the AGTP-API path grammar.</t>
          </li>
          <li>
            <t>Method policy enforcement at dispatch time per the <tt>policies.methods</tt>
sub-block of the manifest (<xref target="method-policy"/>).</t>
          </li>
          <li>
            <t>A server manifest retrievable via DISCOVER without an Agent-ID
header, carrying <tt>agtp_version</tt>, <tt>agtp_api_version</tt>,
<tt>document_version</tt>, <tt>catalog_version</tt>, and
<tt>catalog_versions_supported</tt> per <xref target="manifest"/>.</t>
          </li>
          <li>
            <t>The endpoint projection of <xref target="endpoint-projection"/>: manifest
responses expose <tt>handler.type</tt> only, not the full handler
binding.</t>
          </li>
          <li>
            <t>PROPOSE handling with the synthesis evaluation flow specified
in this document, gated by <tt>policies.synthesis_enabled</tt>.</t>
          </li>
          <li>
            <t>The structural rejection status codes 404, 405, 459, 460, plus
the contract-negotiation codes 261, 262, 263, 463.</t>
          </li>
          <li>
            <t>The semantic block on every published endpoint.</t>
          </li>
          <li>
            <t>Schema validation for input and output, with the strictness
asymmetry of <xref target="schema-strictness"/> (inputs strict, outputs
permissive by default).</t>
          </li>
          <li>
            <t>The <tt>AGTP-Catalog-Warning</tt> response header on every response
whose method is deprecated in the catalog version in use.</t>
          </li>
          <li>
            <t>The <tt>AGTP-Endpoint-Warning</tt> response header on every response
from a deprecated endpoint (<xref target="endpoint-deprecation"/>).</t>
          </li>
          <li>
            <t>The <tt>DISCOVER /methods</tt> built-in endpoint defined in
<xref target="builtin-endpoints"/>, returning a compact inventory of the
server's registered endpoints.</t>
          </li>
        </ol>
        <t>There is no halfway tier. Servers that implement only method
dispatch without endpoints are not AGTP-conformant; they are
something else, perhaps a method-based RPC layer that happens to
use AGTP framing.</t>
      </section>
      <section anchor="validation-timing">
        <name>Validation Timing</name>
        <t>Conforming servers perform two distinct categories of validation,
which <strong>SHOULD</strong> occur at different times.</t>
        <t><strong>Manifest validation at startup.</strong> Before accepting traffic, a
conforming server <strong>SHOULD</strong> validate every endpoint declared in
its manifest:</t>
        <ul spacing="normal">
          <li>
            <t>The method appears in the AGTP-API approved catalog (or is a
custom method declared in the server's <tt>policies.methods</tt>).</t>
          </li>
          <li>
            <t>The path conforms to the path grammar of <xref target="path-grammar"/>.</t>
          </li>
          <li>
            <t>The semantic block carries every required field.</t>
          </li>
          <li>
            <t>The input and output schemas are syntactically valid JSON
Schema documents.</t>
          </li>
          <li>
            <t>The handler binding (<xref target="handler-binding"/>) is resolvable: a
composition's referenced steps exist; a registered_function's
module and function are importable; an external_service's URL
is well-formed and reachable (or marked deferred).</t>
          </li>
        </ul>
        <t>A server that detects manifest validation failures at startup
<strong>SHOULD</strong> reject the offending endpoints with clear logs and
<strong>SHOULD NOT</strong> silently ignore them. Servers <strong>MAY</strong> choose to
fail startup entirely on manifest validation failure or to start
serving with the valid subset of endpoints; the choice is a
deployment policy decision.</t>
        <t><strong>Request validation at runtime.</strong> Once serving, the server
validates each inbound request against the endpoint's input schema
before invoking the handler:</t>
        <ul spacing="normal">
          <li>
            <t>Input body validates against the endpoint's <tt>input_schema</tt>. On
failure, the server returns 422 Unprocessable Entity with a
schema validation error report.</t>
          </li>
          <li>
            <t>The agent's Authority-Scope covers the endpoint's
<tt>required_scopes</tt> declarations. On failure, the server returns
455 Scope Violation per <xref target="AGTP"/>.</t>
          </li>
          <li>
            <t>The verb-and-path combination is exposed by the server's
current policy. On failure, the server returns the appropriate
structural rejection code (404, 405, 459, or 460).</t>
          </li>
        </ul>
        <t>Validation <strong>MUST</strong> complete before handler invocation. Servers
<strong>MUST NOT</strong> invoke the handler with input that has not satisfied
schema validation; this guarantee is what allows handler authors
to assume their context structure is well-formed.</t>
        <t>The startup-vs-runtime split is a recommendation, not a strict
requirement. Servers <strong>MAY</strong> defer startup validation if their
endpoint catalog is dynamic (e.g., a PROPOSE-driven server that
only synthesizes endpoints on demand). Such servers <strong>MUST</strong> still
validate at the moment an endpoint is registered or synthesized,
just not at process start.</t>
      </section>
      <section anchor="schema-strictness">
        <name>Schema Strictness</name>
        <t>Schema validation is asymmetric between inputs and outputs.</t>
        <t>Input schemas <strong>MUST</strong> be validated with <tt>additionalProperties:
false</tt>. Fields not declared in the schema <strong>MUST</strong> cause validation
to fail with 422. This catches typos and version mismatches early
and prevents agents from sending unrecognized fields under the
mistaken assumption that the server will silently ignore them.</t>
        <t>Output schemas <strong>SHOULD</strong> be validated with <tt>additionalProperties:
true</tt>. A handler that returns more fields than the schema declared
is forward-compatible: agents can ignore extra fields. A handler
that returns missing required fields fails validation either way.
Servers <strong>MAY</strong> opt into strict output validation as a deployment
policy.</t>
        <t>This asymmetry is normative because it has interoperability
consequences. An agent submitting a request to two different servers
can rely on both rejecting unrecognized input fields. An agent
consuming a response from two different servers can rely on
forward-compatible field handling without the version of one server
breaking integration with the other.</t>
      </section>
      <section anchor="conformance-test-suite">
        <name>Conformance Test Suite</name>
        <t>The AGTP-API conformance test suite is maintained at:</t>
        <artwork><![CDATA[
https://agtp.io/api/conformance
]]></artwork>
        <t>The test suite exercises every conformance requirement in this
section. Servers claiming AGTP-API conformance <strong>MUST</strong> pass the
test suite at the version they declare in their manifest's
<tt>agtp_api_version</tt> field.</t>
      </section>
    </section>
    <section anchor="openapi-relationship">
      <name>Relationship to OpenAPI</name>
      <t>OpenAPI and AGTP-API perform similar work for different consumers.
OpenAPI describes HTTP APIs for human developers and code generators.
AGTP-API describes agent-grade endpoints for autonomous agents. The
two formats overlap substantially: both have method, path, request
schema, response schema, errors, and descriptions. AGTP-API does not
compete with OpenAPI; the two formats are complementary, and AGTP-API
deployments commonly interoperate with OpenAPI-described HTTP services
in three distinct ways.</t>
      <section anchor="openapi-as-an-authoring-source">
        <name>OpenAPI as an Authoring Source</name>
        <t>A developer with an existing OpenAPI specification can convert it to
AGTP-API endpoint declarations. The HTTP method maps to an AGTP verb
(with translation: GET maps to QUERY or DISCOVER depending on intent;
POST maps to EXECUTE, BOOK, PURCHASE, or another action verb depending
on the operation). The path remains. The request schema becomes
<tt>input_schema</tt>. The response schema becomes <tt>output_schema</tt>. Errors
become the <tt>errors</tt> list. The OpenAPI <tt>description</tt> becomes the
foundation of the semantic block's <tt>intent</tt>.</t>
        <t>Conversion tooling <strong>MAY</strong> automate this translation with reasonable
defaults, flagging cases where verb mapping requires human judgment.
The AGTP-API approved method catalog (<xref target="the-approved-method-catalog"/>) is the
canonical source for HTTP-verb-to-AGTP-verb conversions: tooling
<strong>MUST</strong> select target verbs from the list rather than inventing
ad-hoc names, which is what makes converted endpoints interoperable
with native AGTP-API endpoints.</t>
        <t>Servers <strong>SHOULD NOT</strong> treat machine-converted endpoints as
authoritative until a human reviewer has confirmed the semantic
block fields, particularly <tt>intent</tt>, <tt>outcome</tt>, and <tt>impact</tt>.
Conversion tooling has no reliable way to infer impact from HTTP
semantics; that is judgment work.</t>
      </section>
      <section anchor="openapi-as-an-export-target">
        <name>OpenAPI as an Export Target</name>
        <t>AGTP servers <strong>MAY</strong> render their endpoint catalog as an OpenAPI
document for HTTP consumers that do not yet speak AGTP. The reverse
translation: AGTP verb to HTTP method (mappings are imperfect; some
AGTP verbs have no clean HTTP analog and are best exposed via the
legacy verb compatibility mode of <xref target="legacy-verb-support"/>); path
remains; schemas pass through unchanged.</t>
        <t>The exported OpenAPI document is a compatibility surface, not the
authoritative description of the service. Servers exporting OpenAPI
<strong>SHOULD</strong> mark the export as derived from the AGTP-API manifest and
<strong>SHOULD</strong> publish a link to the manifest in the OpenAPI <tt>info</tt>
section.</t>
      </section>
      <section anchor="openapi-as-a-coexistence-layer">
        <name>OpenAPI as a Coexistence Layer</name>
        <t>A server <strong>MAY</strong> run AGTP and HTTP side by side. The AGTP endpoint's
handler is the same code that the HTTP endpoint invokes. OpenAPI
documents the HTTP face; the AGTP-API manifest documents the agent
face. The handler does not know which protocol invoked it. This
deployment posture is signaled in the manifest by populating the
<tt>apis</tt> array (<xref target="manifest"/>) with descriptors pointing at the
server's OpenAPI documents.</t>
        <t>Coexistence is the path most large organizations will take during
transition: AGTP is added as a parallel face without requiring
modification to existing HTTP infrastructure. Implementation
guidance for coexistence deployments is provided in
<xref target="implementation-guidance"/>.</t>
      </section>
    </section>
    <section anchor="what-agtp-api-does-not-specify">
      <name>What AGTP-API Does Not Specify</name>
      <t>AGTP-API explicitly excludes the following operational concerns,
which remain middleware territory:</t>
      <ul spacing="normal">
        <li>
          <t>Rate limiting strategies and policies.</t>
        </li>
        <li>
          <t>Observability mechanisms (metrics, logs, traces).</t>
        </li>
        <li>
          <t>Caching strategies beyond manifest caching.</t>
        </li>
        <li>
          <t>Custom authentication beyond AGTP agent identity.</t>
        </li>
        <li>
          <t>Request and response transformation.</t>
        </li>
        <li>
          <t>Server deployment topology and scaling.</t>
        </li>
        <li>
          <t>HTTP middleware integration patterns.</t>
        </li>
      </ul>
      <t>These are addressed by reference middleware repositories that ship
separately and non-normatively. The contract-plumbing distinction is
intentional: the protocol governs contracts; middleware governs
operations.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="verb-path-tampering">
        <name>Verb-Path Tampering</name>
        <t>A malicious server could declare endpoints whose semantic blocks
misrepresent the actual behavior. Agents that rely on semantic
blocks for authorization decisions <strong>MUST</strong> also enforce
Authority-Scope checks against actual outcomes, not declared
outcomes.</t>
      </section>
      <section anchor="synthesis-authority-preservation">
        <name>Synthesis Authority Preservation</name>
        <t>The synthesis evaluation step (step 5 in <xref target="server-side-synthesis-evaluation"/>)
<strong>MUST</strong> verify that authority is preserved through composition. A
synthesis that elevates authority by composing endpoints with
sufficient individual scopes into a behavior the agent should not
be permitted is a known threat. Servers <strong>MUST</strong> reject syntheses
where the composed behavior exceeds what the agent's Authority-Scope
permits, regardless of whether the individual steps are within
scope.</t>
      </section>
      <section anchor="method-policy-tampering">
        <name>Method Policy Tampering</name>
        <t>The method policy is carried as the <tt>policies.methods</tt> sub-block
of the server manifest and is covered by the manifest signature
(<xref target="manifest"/>) when present. Agents that retrieve the manifest over
AGTP transport (which mandates TLS 1.3 or higher per <xref target="AGTP"/>) and
verify the manifest signature when present are protected against
policy substitution. Agents that accept manifest content without
signature verification are vulnerable to substitution of the
method policy along with the rest of the manifest.</t>
      </section>
      <section anchor="wildcard-abuse">
        <name>Wildcard Abuse</name>
        <t>The <tt>wildcards: true</tt> consent on the agent identity document and
<tt>wildcards_accepted: true</tt> on the server policy are mutual consents
that enable ad-hoc method invocation. Agents <strong>SHOULD NOT</strong> declare
<tt>wildcards: true</tt> by default; servers <strong>SHOULD NOT</strong> declare
<tt>wildcards_accepted: true</tt> for any operation with non-trivial impact
tier. The 262 Authorization Required response with body type
<tt>wildcards-required</tt> is the safe default.</t>
      </section>
      <section anchor="verb-list-trust">
        <name>Verb List Trust</name>
        <t>Agents trust the AGTP-API approved method catalog as published at
<tt>https://agtp.io/api/methods.json</tt>. The catalog <strong>MUST</strong> be served
over HTTPS with content integrity verification. Agents <strong>MAY</strong> pin
the catalog version they have validated and refuse upgrades without
explicit operator approval.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document defines the following AGTP-API-specific allocations.
The corresponding AGTP IANA registry entries are recorded in
<xref target="AGTP"/> Section 9.</t>
      <section anchor="agtp-api-status-code-assignments">
        <name>AGTP-API Status Code Assignments</name>
        <t>The following codes are registered in the AGTP Status Code Registry
with AGTP-API as the authoritative reference:</t>
        <ul spacing="normal">
          <li>
            <t>261 Negotiation In Progress</t>
          </li>
          <li>
            <t>262 Authorization Required</t>
          </li>
          <li>
            <t>263 Proposal Approved</t>
          </li>
          <li>
            <t>405 Method Not Allowed (AGTP-API semantics)</t>
          </li>
          <li>
            <t>459 Method Violation</t>
          </li>
          <li>
            <t>460 Endpoint Violation</t>
          </li>
          <li>
            <t>463 Proposal Rejected</t>
          </li>
        </ul>
      </section>
      <section anchor="media-type-registrations">
        <name>Media Type Registrations</name>
        <t>This document defines two media types and requests their
registration in the IANA Media Types registry. Full registration
templates are provided in the appendices. The master registry of
all AGTP-family media types is maintained in <xref target="AGTP"/>.</t>
        <table>
          <name>Media Types Defined by AGTP-API</name>
          <thead>
            <tr>
              <th align="left">Media Type</th>
              <th align="left">Use</th>
              <th align="left">IANA Status</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>application/vnd.agtp.manifest+json</tt></td>
              <td align="left">AGTP server manifest format</td>
              <td align="left">Planned (this document)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>application/vnd.agtp.endpoint+json</tt></td>
              <td align="left">AGTP-API endpoint definition format</td>
              <td align="left">Planned (this document)</td>
            </tr>
          </tbody>
        </table>
        <dl>
          <dt><tt>application/vnd.agtp.manifest+json</tt></dt>
          <dd>
            <t>The AGTP server manifest format. Carried on responses to a
server-level DISCOVER request (DISCOVER without an Agent-ID
header). The registration application will be filed concurrent
with publication of this document.</t>
          </dd>
          <dt><tt>application/vnd.agtp.endpoint+json</tt></dt>
          <dd>
            <t>The AGTP-API endpoint definition format. Used in PROPOSE
request bodies and in 263 Proposal Approved response bodies.
The registration application will be filed concurrent with
publication of this document.</t>
          </dd>
        </dl>
        <t>Until the IANA registrations complete, the reference implementation
<strong>MAY</strong> continue to emit <tt>application/json</tt> for manifest and
endpoint responses. Implementations are encouraged to emit the
AGTP-specific types as soon as they are accepted by IANA so that
content negotiation and MIME-based routing can distinguish AGTP
traffic from generic JSON.</t>
      </section>
      <section anchor="agtp-api-method-catalog-reference">
        <name>AGTP-API Method Catalog Reference</name>
        <t>This document does <strong>NOT</strong> request establishment of an IANA AGTP-API
Verb List Registry. As specified in <xref target="list-maintenance"/>, the verb
list is intentionally maintained as an open living artifact at
<tt>https://agtp.io/api/methods.json</tt> rather than as a closed IANA
registry, so that the catalog can evolve at the cadence of agent
deployment rather than the cadence of IETF process. The structural
status codes, the media types, and the response headers below are
appropriate for IANA registration; the method catalog is not.</t>
      </section>
      <section anchor="agtp-api-response-headers">
        <name>AGTP-API Response Headers</name>
        <t>This document requests registration of the following response
headers in the IANA HTTP Field Name Registry (or equivalent
AGTP-specific registry where applicable):</t>
        <dl>
          <dt><tt>AGTP-Catalog-Warning</tt>:</dt>
          <dd>
            <t>Advisory header surfaced on responses where the request method is
deprecated in the catalog version the server is using. Format and
semantics specified in <xref target="catalog-evolution"/>.</t>
          </dd>
          <dt><tt>AGTP-API-Version</tt>:</dt>
          <dd>
            <t>Header surfacing the AGTP-API specification version a manifest or
endpoint definition conforms to.</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="open-items">
      <name>Open Items</name>
      <t>The following items are explicitly out of scope for this revision
and are anticipated in future revisions:</t>
      <ul spacing="normal">
        <li>
          <t>Mandatory manifest signing. v00 specifies <tt>manifest_signature</tt> as
<strong>SHOULD</strong>; a future revision will make it <strong>MUST</strong>. The signing
algorithm, canonical encoding rules for JWS over the manifest
body, key-publication mechanism, and rotation semantics will be
specified separately in <xref target="AGTP-CERT"/>. Reference implementations
are expected to ship signing support in alignment with that
revision.</t>
        </li>
        <li>
          <t>Cross-endpoint shared schema definitions. v00 requires schemas
to be inline in each endpoint's <tt>input_schema</tt> and <tt>output_schema</tt>.
A future revision may add a <tt>schemas</tt> block to the manifest
carrying named, reusable JSON Schema fragments referenceable by
<tt>$ref</tt> from endpoint schemas. This is a manifest-size and
authoring-convenience concern; the wire-level contract is unchanged.</t>
        </li>
        <li>
          <t>Config-driven <tt>document_version</tt>. The reference implementation
hardcodes <tt>document_version</tt> to a single value; an operator
workflow that bumps <tt>document_version</tt> on every meaningful
manifest change is anticipated. The wire contract permits any
string; the operator workflow is implementation-specific.</t>
        </li>
        <li>
          <t>The full text of the initial method catalog (approximately 435
methods). v00 references the published JSON at
<tt>agtp.io/api/methods.json</tt> rather than embedding the catalog
inline. A future revision may include a curated subset as a
non-normative appendix; the authoritative catalog remains the
published JSON per <xref target="list-maintenance"/>.</t>
        </li>
        <li>
          <t>Detailed schema for the <tt>synthesis_log</tt> returned with 263
Proposal Approved, recording which underlying endpoints were
composed.</t>
        </li>
        <li>
          <t>Federation model for multi-server synthesis (composing endpoints
from different servers in a single synthesized endpoint).</t>
        </li>
        <li>
          <t>Multi-version concurrent catalog support. v00 specifies
<tt>catalog_versions_supported</tt> as a list, but the runtime semantics
for a server processing a request against a non-default catalog
version are not specified. Most servers list a single version.</t>
        </li>
        <li>
          <t>Conformance test suite specification (currently described by
reference to the agtp.io implementation).</t>
        </li>
        <li>
          <t>Authentication passthrough for external_service handlers (forwarding
agent identity to upstream services). Out of scope by security
default in v00; future revisions may specify opt-in passthrough
patterns.</t>
        </li>
        <li>
          <t>Hot reload of recipes, endpoints, and <tt>policies.methods</tt> configuration without
server restart.</t>
        </li>
        <li>
          <t>Wildcard opt-in implementation. The spec defines the consent model
(<tt>wildcards: true</tt> on the agent identity document and
<tt>wildcards_accepted: true</tt> in server policy) and the 262
Authorization Required response with body type <tt>wildcards-required</tt>
for unsatisfied consent. The default behavior in
v00 is refuse: ad-hoc method invocations against undeclared
endpoints are rejected as 459 Method Violation when the method is
not in the AGTP-API catalog, or as 405 Method Not Allowed when the
method is in the catalog but no endpoint exists for the
method-and-path combination. The opt-in path that activates 262
with <tt>wildcards-required</tt> (when an agent or server has consented
to wildcards but the other side has not) is anticipated as an
implementation extension in a future revision.</t>
        </li>
      </ul>
    </section>
    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>This document was developed in response to implementation experience
with the AGTP v06 and v07 builds. The architectural decision to
unify the contract layer under a single companion specification was
articulated in the AGTP-API Position Paper (May 2026). The empirical
evidence for the action-intent semantic class is documented in
<xref target="HOOD2026"/>.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC3986">
          <front>
            <title>Uniform Resource Identifier (URI): Generic Syntax</title>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
            <author fullname="R. Fielding" initials="R." surname="Fielding"/>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <date month="January" year="2005"/>
            <abstract>
              <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="66"/>
          <seriesInfo name="RFC" value="3986"/>
          <seriesInfo name="DOI" value="10.17487/RFC3986"/>
        </reference>
        <reference anchor="RFC9110">
          <front>
            <title>HTTP Semantics</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
              <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="97"/>
          <seriesInfo name="RFC" value="9110"/>
          <seriesInfo name="DOI" value="10.17487/RFC9110"/>
        </reference>
        <reference anchor="AGTP">
          <front>
            <title>Agent Transfer Protocol (AGTP)</title>
            <author fullname="Chris Hood">
              <organization/>
            </author>
            <date year="2026"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-hood-independent-agtp-07"/>
        </reference>
        <reference anchor="JSON-SCHEMA">
          <front>
            <title>JSON Schema: A Media Type for Describing JSON Documents</title>
            <author fullname="Austin Wright">
              <organization/>
            </author>
            <author fullname="Henry Andrews">
              <organization/>
            </author>
            <author fullname="Ben Hutton">
              <organization/>
            </author>
            <author fullname="Greg Dennis">
              <organization/>
            </author>
            <date year="2020"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-bhutton-json-schema-01"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC6570">
          <front>
            <title>URI Template</title>
            <author fullname="J. Gregorio" initials="J." surname="Gregorio"/>
            <author fullname="R. Fielding" initials="R." surname="Fielding"/>
            <author fullname="M. Hadley" initials="M." surname="Hadley"/>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <author fullname="D. Orchard" initials="D." surname="Orchard"/>
            <date month="March" year="2012"/>
            <abstract>
              <t>A URI Template is a compact sequence of characters for describing a range of Uniform Resource Identifiers through variable expansion. This specification defines the URI Template syntax and the process for expanding a URI Template into a URI reference, along with guidelines for the use of URI Templates on the Internet. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6570"/>
          <seriesInfo name="DOI" value="10.17487/RFC6570"/>
        </reference>
        <reference anchor="AGTP-CERT">
          <front>
            <title>AGTP Agent Certificate Extension</title>
            <author fullname="Chris Hood">
              <organization/>
            </author>
            <date year="2026"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-hood-agtp-agent-cert-00"/>
        </reference>
        <reference anchor="AGTP-MERCHANT">
          <front>
            <title>AGTP Merchant Identity and Agentic Commerce Binding</title>
            <author fullname="Chris Hood">
              <organization/>
            </author>
            <date year="2026"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-hood-agtp-merchant-identity-01"/>
        </reference>
        <reference anchor="AGTP-TRUST">
          <front>
            <title>AGTP Trust and Verification Specification</title>
            <author fullname="Chris Hood">
              <organization/>
            </author>
            <date year="2026"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-hood-agtp-trust-00"/>
        </reference>
        <reference anchor="HOOD2026">
          <front>
            <title>Semantic Method Naming and LLM Agent Accuracy: A Controlled Benchmark of REST/CRUD versus Agentive API Interface Design</title>
            <author fullname="Chris Hood">
              <organization/>
            </author>
            <date year="2026"/>
          </front>
          <seriesInfo name="Working Paper" value="Available by request. March 2026."/>
        </reference>
      </references>
    </references>
    <?line 2239?>

<section anchor="implementation-guidance">
      <name>Implementation Guidance (Informative)</name>
      <t>This appendix is non-normative. It describes how a typical AGTP-API
server is built and operated, in support of the normative spec.
Implementations are not required to follow these patterns; they are
documented here to give developers a starting point and to make the
intended deployment posture concrete.</t>
      <section anchor="endpoint-authoring">
        <name>Endpoint Authoring</name>
        <t>A common pattern for endpoint authoring uses one declaration file per
endpoint, dropped into a directory the server scans at startup:</t>
        <ul spacing="normal">
          <li>
            <t>A human-editable declaration format (such as TOML, YAML, or JSON)
carries the endpoint's verb, path, semantic block, schemas,
errors, and handler reference.</t>
          </li>
          <li>
            <t>A handler function in the server's implementation language carries
the business logic, with a uniform signature that takes a context
object and returns a structured response or named error.</t>
          </li>
          <li>
            <t>The server scans the endpoints directory at startup, validates
every declaration per <xref target="validation-timing"/>, imports the referenced
handler modules, and registers the valid endpoints in memory.</t>
          </li>
        </ul>
        <t>The reference Python implementation of an AGTP-API server uses TOML
for endpoint declarations and a <tt>context → response | error</tt>
handler signature. The exact TOML schema and handler patterns are
documented at:</t>
        <artwork><![CDATA[
https://agtp.io/api/reference/authoring
]]></artwork>
        <t>The TOML format is one serialization of the endpoint primitive
defined normatively in <xref target="the-endpoint-primitive"/>. Other
implementations are free to use other serializations (YAML, JSON,
programmatic registration, database-backed registries) provided the
in-memory endpoint structure conforms to this specification.</t>
      </section>
      <section anchor="runtime-dispatch-pattern">
        <name>Runtime Dispatch Pattern</name>
        <t>A typical request lifecycle in a conforming server:</t>
        <ol spacing="normal" type="1"><li>
            <t>The server receives an AGTP request and parses the verb and path.</t>
          </li>
          <li>
            <t>The dispatcher matches verb-and-path against the endpoint registry.</t>
          </li>
          <li>
            <t>On match, the dispatcher validates the request body against the
endpoint's <tt>input_schema</tt>.</t>
          </li>
          <li>
            <t>The dispatcher checks the agent's Authority-Scope against the
endpoint's <tt>required_scopes</tt> declaration.</t>
          </li>
          <li>
            <t>The dispatcher constructs a context object containing validated
input and agent identity, and invokes the handler.</t>
          </li>
          <li>
            <t>The handler executes business logic and returns a structured
response or named error.</t>
          </li>
          <li>
            <t>The dispatcher translates the result into an AGTP response.</t>
          </li>
        </ol>
        <t>This pattern keeps contract enforcement in the dispatcher and
business logic in the handler. Handlers do not perform schema
validation, authority checks, or status code translation; the
dispatcher does those uniformly across all endpoints.</t>
      </section>
      <section anchor="tooling-1">
        <name>Tooling</name>
        <t>The reference implementation publishes tooling at <tt>agtp.io/api/tools</tt>:</t>
        <ul spacing="normal">
          <li>
            <t>An OpenAPI → AGTP-API conversion tool that reads an OpenAPI 3.x
specification and produces a directory of endpoint declarations
with <tt>external_service</tt> handlers pointing at the original HTTP
endpoints. Where method mapping requires judgment, the tool flags
the endpoint for human review with suggestions from the AGTP-API
approved method catalog.</t>
          </li>
          <li>
            <t>An AGTP-API → OpenAPI export tool for servers that need to
publish HTTP-side documentation derived from their AGTP manifest.</t>
          </li>
          <li>
            <t>A manifest validator that checks server manifests against this
specification.</t>
          </li>
          <li>
            <t>A conformance test runner that exercises the conformance
requirements of <xref target="single-tier"/> against a deployed server.</t>
          </li>
          <li>
            <t>An <tt>agtp-catalog-diff</tt> tool that diffs two catalog versions and
optionally scans a deployment directory to identify endpoints,
recipes, and <tt>policies.methods</tt> entries that would break under a
candidate catalog upgrade. See <xref target="catalog-evolution"/>.</t>
          </li>
        </ul>
        <t>These tools are non-normative reference implementations. Other
parties <strong>MAY</strong> publish equivalent tools.</t>
      </section>
      <section anchor="operator-notes-on-catalog-versioning">
        <name>Operator Notes on Catalog Versioning</name>
        <t>The catalog version a server declares in its manifest is the version
the server validates incoming method names against. Operators
upgrading the on-disk verb catalog (typically by regenerating
<tt>methods.json</tt> from a new catalog release) <strong>SHOULD</strong> restart the
server to pick up the new version. Long-running servers that have
not been restarted after a catalog upgrade may continue validating
against the previous version they loaded at startup.</t>
        <t>The reference <tt>agtp-catalog-diff</tt> tool is the recommended way to
preview the impact of a catalog upgrade against a deployment
directory before restarting. Run it as a deployment gate to surface
endpoint-removal conflicts, recipe-step references to removed
methods, and <tt>policies.methods</tt> entries that would be silently skipped
under the new version.</t>
      </section>
    </section>
    <section anchor="migration-paths">
      <name>Migration Paths (Informative)</name>
      <t>This appendix is non-normative. It describes deployment strategies
for organizations adopting AGTP-API on top of existing HTTP services,
and for organizations building AGTP-API services from scratch.</t>
      <section anchor="wrap-and-expose">
        <name>Wrap-and-Expose</name>
        <t>The lowest-effort path for an organization with an existing HTTP API.
The HTTP API stays where it is. The organization writes AGTP-API
endpoint declarations whose handler binding is <tt>external_service</tt>
(<xref target="external-service"/>), pointing at the existing HTTP endpoints.
AGTP-API becomes a thin agent-facing facade over the existing HTTP
backend. Request translation maps AGTP-API input fields to HTTP
request shapes; response translation maps HTTP responses back to
AGTP-API output shapes.</t>
        <t>The OpenAPI → AGTP-API conversion tool (<xref target="implementation-guidance"/>)
produces this kind of deployment by default: it reads an OpenAPI
specification and generates a directory of endpoint declarations
with <tt>external_service</tt> handlers. A 200-endpoint HTTP service can
be made AGTP-discoverable in a single working session.</t>
        <t>Wrap-and-expose deployments <strong>SHOULD</strong> populate the manifest's
<tt>apis</tt> array (<xref target="manifest"/>) with the HTTP API descriptor so agents
that need the underlying HTTP documentation can locate it.</t>
      </section>
      <section anchor="translate-and-rehost">
        <name>Translate-and-Rehost</name>
        <t>A medium-effort path. The organization reimplements its HTTP API as
native AGTP-API endpoints, moving the handler logic into the AGTP-API
server's implementation language directly. The HTTP layer goes away,
or is retained only for legacy clients that have not migrated.</t>
        <t>The conversion tool generates endpoint declarations and handler
stubs from the existing OpenAPI specification, leaving the
organization to fill in the business logic. The work is conversion,
not greenfield development.</t>
        <t>Translate-and-rehost deployments leave the <tt>apis</tt> array empty once
the HTTP layer retires; during transition, the array continues to
reference the HTTP face alongside the native AGTP endpoints.</t>
      </section>
      <section anchor="coexist-permanently">
        <name>Coexist-Permanently</name>
        <t>No migration. The HTTP API stays as the primary interface; AGTP-API
is added as a parallel face for agent traffic. New agent-facing
features go in the AGTP-API layer; existing HTTP traffic continues
unaffected. Two interfaces, one backend, indefinite coexistence.</t>
        <t>This is the path most large enterprises will take when regulatory,
contractual, or customer-relationship commitments make a forced
migration impractical. AGTP-API is additive in this posture, not
replacing.</t>
        <t>Coexist-permanently deployments populate <tt>apis</tt> with HTTP API
descriptors that include <tt>http_documentation</tt> URLs pointing at the
HTTP-side OpenAPI specifications.</t>
      </section>
      <section anchor="path-selection">
        <name>Path Selection</name>
        <t>The right path depends on organizational constraints, not protocol
preferences. Wrap-and-expose is the path that scales: it is the one
that can move millions of existing APIs to AGTP-API discoverability
at low cost. Translate-and-rehost is the right target for
organizations committing to AGTP-API as the long-term primary
surface. Coexist-permanently is the honest answer for organizations
that want agent access without disruption to existing systems.</t>
      </section>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA9y963YbSZIm+D+eIpZZM0WqAIi6ZFYnuTXdTIpKsVu3JqnM
7q6TSwSBIBklAIFFAKRQTPbZX/MAc/Yd9j32UfpJ1uyzi7sHgpKye/rMOZun
iiKBCA8Pd3O722f9fj9bVstJuZdvHfx49r5/8P54L/+pXFw0vfx9sbymf45m
43ldzZb0azEb56fr2fK6bKpmKysuLhblTXTrVjauR7NiSsONF8Xlsn9d1+N+
cbWc94t51d/dzUbFsryqF+u9vJpd1lmzuphWTVPVs+V6XvKH43Je0o/ZMqvm
i718uVg1y6e7u9/vPs2KRVnww+bzSUXj0E0NZnRSFpP+WTUtt7LbevHxalGv
5nTdcRgrP/XnbGUfyzVdNt7L8ryfHxznxRVd0eAv/ErPLGbNZbnI54t6WY/q
Cb5brGZLekY+orkuitEyn9GLLCvMAxeUuk55YyuEj5tyWtCdo3xaLq/rsXx4
QyucT6pmib/mtND51aKYTotFNA9a0CxrlvSK58WkntHyrMsmm1c8c5qX/Jnn
Tb1YLsrLxv9eT5M/l4tqtLS/RvV0XtifWbGiKS1kJS5Xk4ls3eH1omryV7R1
9EWe14urYlb9FS+6l7+tp/TWo15+PBsN8D29XzXZy0d819/N5OtBUeG71aLa
y6+Xy3mz9/gx08GgqrNsVi+mNNxNyU8+eXn49MmT7/XXv3nyx+f667Pv/+Y7
/fX7J092+Vemsz0M7ESLlTqzHXuvO5Zv86U7W7g2vCX/9+B7NuWiol0jsrRL
j2fLcjErl/0XTMwJTUeEKvS9+0fcNCb63suf7j79jv78+9N3b/unh6+O3hyk
s+Yv8tPRNS3dXn6QvynHVZGf0QnIL+tF/qJsRovqoppdYYT8RT1aTZlGu14n
3rgDOivVLP95UV1dLzu+f1XOFuv8YDZelLdNx/c/lLP81Wq5BEG3v/xxUV7R
1GazqvlNy3VxjRH7f2noR4N37u8+SRdrN8t4oJQqvvv2j77p/cOjk7PWztPH
uWz/YblYVpfME8r86NOynMlB/8/ae+Fn/OT+iJ7MbG1j6zHpN0cnh68O3nZN
/E25GF0TX8iPmYSq5RqcDK9DrOKwnk7pgjL/geiM6OA/+V2mOpl+pZPZ2CB/
pbOTD6dd73PGfBrvQMJD9oL2ID+dlyP/6z/5LSAqOjfj1bt3L/jXdN6nxpjf
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
Tv6L76Pf9Miu52TiLLpZvn7S/T3/ge9XM1ciHufz0bJfosiW/+LqyXE5qaYG
aev/Pc639rb4599tZXPfdHuLu63cP5QTvnUfXScf8cy284PX718d0EAvjn88
PuMBz7fynSyakwy5cVkfTx9s6S3081/pCdHsZSb/ZSt/dfRPdJf+k4VXssn+
b7j7d/j5X/Hz9/i5jZ8KdJy++iN89Qf87OHnPn7+aePiB//bR6Dn5OVhzmDM
Qg7EK4a6PcMkrEqUxBhXE6eDbc8yH4b9Hgq9k2EwvBuyi2R4P4wSzHckh3re
PqLRYAjZ+AVDtUdx+JTF7HAc6xNfa1OCpeVjsqLZZJJ+GvKu/Unl4GrQk7Kk
6lP/rhrfDyGKHj0Sb3twDVUzVrH288u23u4Wh+rr0+pTOZbE8yWxFHYJCcaA
TUkS+H1KbS7MlfR0XIE2JqfZNNsMUEE2juaeWY6wMMh4HC+ijADqMnVpKFaj
JgcRj1HoMBKFxMuz7A2/RM7ctqcALSOyJTltZz2/Lg0TgL3RtpSkZCyvA1Lh
QHFqDK3RAkqVILpJHdnc/UionW4UK9KQqXrZx/KiuOjfNP1mVnws+zKfZIP5
6IKNYsAACFUvAhqUIjyE7XDnGZd6jOMlpR0hY4FNOraQGvWtPJY0cbrg8Z39
ek60kj0mbQ6f4l/+6DHz2D6R4pQ+5d/P+Xe5WKm3eWzJGo/v7LfzZrK6ug/e
l+EdbycdF9CRJruLYaMvAc988QkGFVJcaQk/nBxnZ/b99t3d3yq0NpfA6OVG
8Xd/SzS2WPfmpObcD3vZ8O4PxuHu2XF/983losDOPnQiPBkti7ETjaB9mlBm
kEtM1CLKSh2saD7gF7Txo9YbR6JVqrSvY8CDZR6TcQYyNkC1UHWjdiLGgyb1
seTYSEis00Rg5KKyOYoaWCEvDlSMGD60/MyJv1jUrMNCoPv7qkRlX4Z9FNFX
fD7bpVsBOC8bAqTjXFA5AH4TwcgDqoph0MvGBLwzAOIa2XLjubIJVRLSFQUo
fY7b2YKxlvKKGiGiWKWig75C8sCiChVdihOS0Zzp+a6CmJU0VvyR4BEGgGBY
okjnoR9sFeZvTByo3mPiISrYcN3RM0sS5dUs0wAKHGEYYPk5zX1ecFKCxDge
PTpiASMDD2jDjlNVCsOamkufFROJ9dr4iPCpRMK17B/b3BlDfHaJF2AbGgl5
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
hsjJjzqdT2pvbUlE3Se/2f8B8IMOZEdyAQA=

-->

</rfc>
