<?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.39 (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-01" 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-01"/>
    <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="26"/>
    <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 95?>

<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 118?>

<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 an eighteen-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 18 protocol-floor verbs every AGTP server <strong>MUST</strong> support: seven
cognitive (QUERY, DISCOVER, DESCRIBE, INSPECT, SUMMARIZE, PLAN, PROPOSE),
six mechanics (EXECUTE, DELEGATE, ESCALATE, CONFIRM, SUSPEND,
NOTIFY), and five lifecycle (ACTIVATE, DEACTIVATE, REINSTATE,
REVOKE, DEPRECATE).</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.",
    "tier": "B"
  },
  {
    "method": "BOOK",
    "path": "/room",
    "description": "Books a room for the named guest at the named property.",
    "tier": "B"
  },
  {
    "method": "DISCOVER",
    "path": "/methods",
    "description": "Lists all registered endpoints on this server.",
    "tier": "A"
  }
]
]]></sourcecode>
        <t>The response is a JSON array of objects, each with <tt>method</tt>, <tt>path</tt>,
<tt>description</tt>, and <tt>tier</tt>. The <tt>tier</tt> field carries the endpoint's
classification per <xref target="endpoint-tiers"/> (<tt>"A"</tt> for protocol-native
built-ins, <tt>"B"</tt> for operator-registered endpoints). 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>
        <section anchor="builtin-genesis">
          <name><tt>DISCOVER /genesis</tt></name>
          <t>Servers that host one or more agents with a loaded Agent Genesis
<strong>MUST</strong> expose <tt>DISCOVER /genesis</tt>. The endpoint returns the
Agent Genesis document for the agent identified in the request's
<tt>Agent-ID</tt> header (or for an explicitly addressed agent when the
request is server-level rather than agent-level). The response
body is the Agent Genesis JSON in its canonical form, including
the <tt>signature</tt> field, suitable for re-hashing to verify the
canonical Agent-ID and for offline signature verification
against the issuer key.</t>
          <sourcecode type="json"><![CDATA[
{
  "agent_id": "<64-hex>",
  "owner": "...",
  "archetype": "...",
  "governance_zone": "...",
  "scope": ["..."],
  "issued_at": "...",
  "trust_tier": 2,
  "verification_path": "dns-anchored",
  "signature": "..."
}
]]></sourcecode>
          <t>Servers <strong>MUST</strong> return <tt>404 Not Found</tt> when no Agent Genesis is
loaded for the addressed agent (e.g., a transport-only deployment
that operates without a Genesis). The response <strong>MUST NOT</strong>
substitute, transform, or re-sign the Agent Genesis on the
response path; the document returned is the document the server
loaded, byte-for-byte in canonical form. Re-canonicalization
<strong>MUST NOT</strong> alter the canonical Agent-ID.</t>
          <t>The endpoint is the standard mechanism for transferring an Agent
Genesis from one party to another at runtime, complementing the
deployment-time pairing of <tt>{name}.agent.json</tt> and
<tt>{name}.genesis.json</tt> files on disk. Relying parties <strong>MUST</strong>
verify the returned Genesis before trusting it: recompute
<tt>sha256(canonical_form(Agent_Genesis_without_signature))</tt>,
confirm it matches the addressed Agent-ID, and verify the
<tt>signature</tt> against the recognized issuer key for the agent's
governance platform.</t>
        </section>
        <section anchor="builtin-agents">
          <name><tt>DISCOVER /agents</tt></name>
          <t>Servers that host one or more registered agents <strong>MUST</strong>
expose <tt>DISCOVER /agents</tt>. The endpoint returns a compact
listing of every agent the server hosts, suitable for
follow-on <tt>DISCOVER /genesis</tt>, DESCRIBE, or DELEGATE
invocations against specific agents.</t>
          <sourcecode type="json"><![CDATA[
[
  {
    "agent_id": "<64-hex>",
    "name": "lauren",
    "skills_summary": "...",
    "methods_count": 8,
    "trust_tier": 1,
    "verification_path": "dns-anchored",
    "owner_id": "nomotic.inc"
  },
  {
    "agent_id": "<64-hex>",
    "name": "morgan",
    "skills_summary": "...",
    "methods_count": 4,
    "trust_tier": 2,
    "verification_path": "org-asserted",
    "trust_warning": "verification-incomplete",
    "owner_id": "acme.inc"
  }
]
]]></sourcecode>
          <t>The response is a JSON array of objects, each carrying the
fields below. The required minimum identifies the agent and
its trust posture; optional fields are present when the
underlying Agent Identity Document or Agent Genesis populates
them.</t>
          <table>
            <name>DISCOVER /agents Entry Fields</name>
            <thead>
              <tr>
                <th align="left">Field</th>
                <th align="left">Required</th>
                <th align="left">Description</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">
                  <tt>agent_id</tt></td>
                <td align="left">
                  <strong>MUST</strong></td>
                <td align="left">Canonical Agent-ID (64 lowercase hex characters).</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>name</tt></td>
                <td align="left">
                  <strong>MUST</strong></td>
                <td align="left">Operator-assigned short name; not unique across servers.</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>skills_summary</tt></td>
                <td align="left">
                  <strong>SHOULD</strong></td>
                <td align="left">Short human-readable description of the agent's capabilities.</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>methods_count</tt></td>
                <td align="left">
                  <strong>SHOULD</strong></td>
                <td align="left">Number of registered endpoints exposed by this agent.</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>trust_tier</tt></td>
                <td align="left">
                  <strong>MUST</strong></td>
                <td align="left">Resolved trust tier (1, 2, or 3) per the precedence rule in <xref target="AGTP-TRUST"/>.</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>verification_path</tt></td>
                <td align="left">
                  <strong>MUST</strong></td>
                <td align="left">Resolved verification path (<tt>dns-anchored</tt>, <tt>log-anchored</tt>, <tt>hybrid</tt>, or <tt>org-asserted</tt>) per the precedence rule in <xref target="AGTP-TRUST"/>.</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>trust_warning</tt></td>
                <td align="left">
                  <strong>CONDITIONAL</strong></td>
                <td align="left">Present when the resolved <tt>trust_tier</tt> is <tt>2</tt> or when an operator-set warning is recorded. Value is a short token (e.g., <tt>verification-incomplete</tt>).</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>owner_id</tt></td>
                <td align="left">
                  <strong>SHOULD</strong></td>
                <td align="left">Resolved owner identifier per the precedence rule in <xref target="AGTP-TRUST"/>. Omitted when no Agent Genesis is loaded and the operator did not set an explicit value.</td>
              </tr>
            </tbody>
          </table>
          <t>The <tt>trust_tier</tt>, <tt>verification_path</tt>, <tt>trust_warning</tt>, and
<tt>owner_id</tt> fields are resolved per the trust-posture loading
rule in <xref target="AGTP-TRUST"/>; the server <strong>MUST NOT</strong> emit values
that disagree with what it would resolve on the Agent Identity
Document itself. Clients <strong>MAY</strong> branch on <tt>trust_tier</tt> or on
<tt>trust_warning</tt> presence to drive trust UI; clients <strong>MUST
NOT</strong> treat absence of <tt>trust_warning</tt> for a Tier-2 entry as
authoritative (the server is required to populate it when
auto-applicable, but operator-set absence is preserved per
<xref target="AGTP-TRUST"/>).</t>
          <t>A server <strong>MAY</strong> restrict the entries returned by
<tt>DISCOVER /agents</tt> based on the requesting agent's
Authority-Scope, governance zone, or other policy. Entries
withheld by policy are <strong>NOT</strong> errors; the server returns the
remaining entries with no indication of the withholding.
Implementations that need a full server inventory should
consult the operator out of band.</t>
        </section>
        <section anchor="builtin-directory">
          <name><tt>DISCOVER /</tt></name>
          <t>Servers <strong>MUST</strong> expose <tt>DISCOVER /</tt> (root path). The endpoint
returns the directory of reserved built-in DISCOVER endpoints
the server exposes, allowing clients to enumerate available
inventory surfaces in a single call:</t>
          <sourcecode type="json"><![CDATA[
{
  "directory": [
    { "path": "/methods", "tier": "A" },
    { "path": "/agents", "tier": "A" },
    { "path": "/genesis", "tier": "A" },
    { "path": "/tools", "tier": "A" },
    { "path": "/apis", "tier": "A" }
  ]
}
]]></sourcecode>
          <t>The response <strong>MUST</strong> be a JSON object with a <tt>directory</tt>
field whose value is a JSON array of entries. Each entry
<strong>MUST</strong> carry a <tt>path</tt> field naming a reserved built-in
endpoint defined in this section, and a <tt>tier</tt> field with
the value <tt>"A"</tt> (per the tier classification in
<xref target="endpoint-tiers"/>). Servers <strong>MAY</strong> include
operator-authored DISCOVER paths in the directory at their
discretion; operator-authored entries <strong>MUST</strong> carry
<tt>tier: "B"</tt> and do not have the protection afforded to
reserved built-ins (<xref target="reserved-discover-paths"/>).</t>
          <t><tt>DISCOVER /</tt> is the cheapest probe a client can issue against
an unknown server to determine what inventory surfaces are
available without speaking application-specific paths.</t>
        </section>
        <section anchor="builtin-tools">
          <name><tt>DISCOVER /tools</tt></name>
          <t>Servers that host one or more tool-bearing agents <strong>MAY</strong>
expose <tt>DISCOVER /tools</tt>. The endpoint returns a compact
inventory of tools the server makes available, in a format
parallel to <tt>DISCOVER /methods</tt>. When exposed, the endpoint
<strong>MUST</strong> return a JSON array of tool descriptors each
carrying a <tt>name</tt> field, an optional <tt>description</tt>, and an
optional <tt>agent_id</tt> indicating which agent owns the tool.
The precise tool-descriptor schema is operator-defined;
implementations that integrate with adjacent agent
frameworks (MCP, A2A) <strong>SHOULD</strong> align their tool-descriptor
shape with the framework in use.</t>
        </section>
        <section anchor="builtin-apis">
          <name><tt>DISCOVER /apis</tt></name>
          <t>Servers that expose one or more REST-style APIs via the
HTTP-translation gateway defined in <xref target="AGTP"/> <strong>MAY</strong> expose
<tt>DISCOVER /apis</tt>. The endpoint returns an inventory of the
APIs the server presents, each carrying a <tt>name</tt>, an
optional <tt>description</tt>, and an optional <tt>base_url</tt>. The
endpoint is intended for clients that need to discover the
HTTP-side surface of a gateway-fronted server without
loading the full server manifest.</t>
        </section>
        <section anchor="builtin-patterns">
          <name><tt>DISCOVER /patterns</tt></name>
          <t>Servers <strong>SHOULD</strong> expose <tt>DISCOVER /patterns</tt>. The endpoint
returns the inventory of synthesis patterns the server will
negotiate against under RCNS — the operator-authored
recipes (<xref target="recipe-versioning"/>) and the <tt>(method, path)</tt>
shapes those recipes match. The endpoint is reachable even
when RCNS is disabled (<xref target="rcns-config"/>); when RCNS is
disabled, the response <strong>SHOULD</strong> indicate the disabled
state so callers can distinguish "no patterns exist" from
"patterns exist but synthesis is off."</t>
          <sourcecode type="json"><![CDATA[
{
  "rcns_enabled": true,
  "patterns": [
    {
      "recipe_name": "book-room",
      "recipe_version": "3",
      "method": "BOOK",
      "path_exact": "/room",
      "description": "Books a room for the named guest at the named property."
    }
  ]
}
]]></sourcecode>
          <t>The response <strong>MUST</strong> be a JSON object with <tt>rcns_enabled</tt>
(boolean) and <tt>patterns</tt> (array). Each pattern entry
<strong>MUST</strong> carry <tt>recipe_name</tt>, <tt>recipe_version</tt>, and
<tt>method</tt>, plus exactly one of <tt>path_exact</tt> (byte-exact
match) or <tt>path_regex</tt> (regular expression match against
the request path). Servers <strong>MAY</strong> include additional
descriptive fields (<tt>description</tt>, <tt>required_scopes</tt>,
<tt>semantic</tt>) at their discretion; callers <strong>MUST</strong> ignore
unknown fields.</t>
          <t>The endpoint surfaces server posture explicitly: an agent
inspecting <tt>DISCOVER /patterns</tt> knows in advance what
<tt>(method, path)</tt> shapes the server will consider for
synthesis.</t>
        </section>
        <section anchor="builtin-contracts">
          <name><tt>DISCOVER /contracts</tt></name>
          <t>Servers that have ever synthesized at least one contract
<strong>MUST</strong> expose <tt>DISCOVER /contracts</tt>. The endpoint returns
active synthesized contracts, scoped by default to the
requesting agent. Callers with the <tt>inspect:all</tt>
Authority-Scope token receive contracts across all agents
(operator visibility).</t>
          <sourcecode type="json"><![CDATA[
[
  {
    "synthesis_id": "<opaque>",
    "method": "BOOK",
    "path": "/room",
    "originating_agent_id": "<64 hex>",
    "recipe_lineage": {
      "recipe_name": "book-room",
      "recipe_version": "3"
    },
    "contract_hash": "<64 hex>",
    "negotiation_origin": "rcns-gate",
    "issued_at": "<RFC 3339>",
    "expires_at": "<RFC 3339>"
  }
]
]]></sourcecode>
          <t>The response is a JSON array. Each entry <strong>MUST</strong> carry
<tt>synthesis_id</tt>, <tt>method</tt>, <tt>path</tt>, <tt>originating_agent_id</tt>,
<tt>recipe_lineage</tt>, <tt>contract_hash</tt>, and <tt>negotiation_origin</tt>
matching the Attribution-Record extension fields specified
in <xref target="rcns-attribution-fields"/>. The <tt>issued_at</tt> and
<tt>expires_at</tt> fields <strong>SHOULD</strong> be present.</t>
          <t>A server <strong>MUST NOT</strong> return contracts whose
<tt>originating_agent_id</tt> differs from the requesting
Agent-ID, unless the request carries the <tt>inspect:all</tt>
scope.</t>
        </section>
      </section>
      <section anchor="reserved-discover-paths">
        <name>Reserved DISCOVER Paths</name>
        <t>The path prefixes <tt>/methods</tt>, <tt>/agents</tt>, <tt>/genesis</tt>,
<tt>/tools</tt>, <tt>/apis</tt>, <tt>/patterns</tt>, and <tt>/contracts</tt> under the
DISCOVER method are reserved for the built-in endpoints
defined in this section. Operator-authored endpoints
<strong>MUST NOT</strong> register DISCOVER under any of these reserved
paths, and <strong>MUST NOT</strong> register DISCOVER under any path
whose first path segment is the same as a reserved name
regardless of additional segments (e.g.,
<tt>/methods/v2</tt>, <tt>/agents-extended</tt>, <tt>/toolset</tt>,
<tt>/patterns-v2</tt>, <tt>/contracts/history</tt>). Servers <strong>MUST</strong>
refuse a registration that would shadow a reserved path;
the refusal is a configuration-time error, not a runtime
status code.</t>
        <t>The reservation applies only to DISCOVER. The same paths
under other verbs are unreserved (e.g., a server <strong>MAY</strong>
register <tt>QUERY /methods</tt> to serve a non-DISCOVER catalog
endpoint without conflict).</t>
        <t>A server <strong>MAY</strong> override a reserved built-in by registering
its own endpoint at the same <tt>(DISCOVER, /reserved-path)</tt>
pair via the operator manifest's <tt>policies.builtins</tt>
override block (see <xref target="builtin-endpoints"/>). Operators that
override a built-in <strong>MUST</strong> preserve the documented
response contract for that endpoint; clients that detect a
contract violation <strong>SHOULD</strong> treat the server as
nonconforming.</t>
      </section>
      <section anchor="legacy-discover-target-body-form-deprecated">
        <name>Legacy <tt>DISCOVER target=</tt> Body Form (Deprecated)</name>
        <t>Earlier revisions of AGTP and this document supported a
body-keyed <tt>DISCOVER target=...</tt> form in which the discovery
surface was selected by a <tt>target</tt> field in the request body
rather than by the request path (e.g.,
<tt>DISCOVER target=methods</tt> instead of <tt>DISCOVER /methods</tt>).
The body-keyed form is <strong>DEPRECATED</strong>. Servers <strong>MAY</strong>
accept the legacy form for transition compatibility and
<strong>SHOULD</strong> emit a one-shot deprecation warning per requesting
agent the first time the legacy form is received. Servers
that accept the legacy form <strong>MUST</strong> treat
<tt>DISCOVER target=X</tt> as semantically equivalent to
<tt>DISCOVER /X</tt> for the reserved targets <tt>methods</tt>, <tt>agents</tt>,
<tt>genesis</tt>, <tt>tools</tt>, and <tt>apis</tt>. A future revision <strong>MAY</strong>
remove acceptance of the legacy form entirely.</t>
        <t>When a request carries both a reserved path and a <tt>target</tt>
body field with conflicting values, the server <strong>MUST</strong>
return <tt>400 Bad Request</tt> with a body identifying the
conflict; the server <strong>MUST NOT</strong> silently prefer one over
the other.</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-tiers">
        <name>Endpoint Tiers</name>
        <t>Every <tt>(method, path)</tt> pair an AGTP server exposes — or could
expose — falls into one of four tiers. The tier classification
is informational at the wire level but constrains how the
server treats invocations against the pair: Tier A endpoints
are guaranteed by the protocol, Tier B endpoints are guaranteed
by the operator, Tier C endpoints are negotiated at runtime,
and unregistered endpoints are refused.</t>
        <dl>
          <dt>Tier A — Protocol-native:</dt>
          <dd>
            <t>Endpoints reserved by AGTP and its companion specifications.
Servers <strong>MUST</strong> support Tier A endpoints with their
documented response contracts. Examples: every cell of
the eighteen-method floor defined in <xref target="AGTP"/>; the
DISCOVER built-in endpoints defined in <xref target="builtin-endpoints"/>
(<tt>DISCOVER /</tt>, <tt>DISCOVER /methods</tt>, <tt>DISCOVER /agents</tt>,
<tt>DISCOVER /genesis</tt>, and the optional <tt>/tools</tt> and
<tt>/apis</tt>); any future reserved path under the
reservations specified in <xref target="reserved-discover-paths"/>.</t>
          </dd>
          <dt>Tier B — Application-registered:</dt>
          <dd>
            <t>Endpoints declared in the operator's manifest. Servers
<strong>MUST</strong> support every Tier B endpoint as declared and
<strong>MUST</strong> refuse any operator-authored endpoint that
collides with a Tier A reservation per
<xref target="reserved-discover-paths"/>. The endpoint catalog,
semantic block, handler binding, and policy fields
documented in this section apply to Tier B endpoints.</t>
          </dd>
          <dt>Tier C — Runtime-negotiated:</dt>
          <dd>
            <t>Endpoints synthesized at runtime via RCNS (Runtime Contract
Negotiation Substrate). A caller addresses a <tt>(method,
path)</tt> pair that is not in the registered Tier A or Tier B
set; the server <strong>MAY</strong>, subject to policy, synthesize a
contract for the requested pair from registered primitives
and deliver it in either of two modes: a 461 RCNS Contract
Available response carrying a contract preview (confirm-
first), or an inline executed response carrying a
<tt>Contract-Synthesized</tt> header (optimistic). RCNS is
specified in <xref target="rcns"/>.</t>
          </dd>
          <dt>Unregistered:</dt>
          <dd>
            <t>A <tt>(method, path)</tt> pair that does not match any Tier A,
Tier B, or Tier C endpoint. Servers <strong>MUST</strong> refuse
unregistered invocations with <tt>404 Not Found</tt> (when the
path is unknown) or <tt>405 Method Not Allowed</tt> (when the
path is known under a different method). When RCNS is
enabled, the server <strong>MAY</strong> treat an unregistered pair as
a Tier C synthesis candidate instead of refusing.</t>
          </dd>
        </dl>
        <t>Servers <strong>MUST</strong> classify every inbound <tt>(method, path)</tt>
pair into exactly one of these tiers before dispatch. The
<tt>DISCOVER /</tt> directory and <tt>DISCOVER /methods</tt> inventory
<strong>SHOULD</strong> carry an explicit <tt>tier</tt> field on each entry
(<tt>"A"</tt>, <tt>"B"</tt>, or <tt>"C"</tt>) so clients can route follow-on
invocations with full knowledge of the guarantee level.
Entries on <tt>DISCOVER /</tt> describing reserved built-in
endpoints carry <tt>tier: "A"</tt>; entries on <tt>DISCOVER /methods</tt>
describing operator-authored endpoints carry <tt>tier: "B"</tt>.
Tier C entries appear on <tt>DISCOVER /contracts</tt> per <xref target="rcns"/>.</t>
        <t>The four-tier classification is normative. The specific
operator-side mechanism for declaring Tier B endpoints
(manifest format, dispatcher gates, policy fields) is
documented in the remainder of this section.</t>
      </section>
      <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": [ /* eighteen 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 eighteen 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 eighteen 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>aliases</tt>:</dt>
          <dd>
            <t>Map of method-name aliases the server resolves at dispatch time.
Each entry maps a non-canonical method name (the alias) to a
canonical method name (the catalog entry the server actually
dispatches under). Servers seed the default alias map with the
five legacy HTTP verbs mapped to their canonical AGTP counterparts:
</t>
            <sourcecode type="json"><![CDATA[
{
  "GET": "FETCH",
  "POST": "CREATE",
  "PUT": "REPLACE",
  "DELETE": "REMOVE",
  "PATCH": "MODIFY"
}
]]></sourcecode>
            <t>Operators <strong>MAY</strong> override the seed or wipe it. Alias
resolution runs as a single-hop translation ahead of the
catalog check (<xref target="custom-verbs"/>); the resolved method is
what the dispatcher matches against the endpoint catalog
and against the <tt>allow</tt>/<tt>disallow</tt> lists. Aliases <strong>MUST
NOT</strong> chain (an alias <strong>MUST</strong> resolve to a canonical
method, not to another alias); chained or circular alias
declarations are configuration errors and the server
<strong>MUST</strong> refuse to start. The original wire method is
preserved on the Attribution-Record as <tt>requested_method</tt>
per <xref target="AGTP-IDENTIFIERS"/>, so audit consumers can
distinguish "BOOK arrived under that name" from "GET
arrived and was aliased to FETCH." Default: the seed map
above; operators <strong>MAY</strong> set the empty map to disable
aliasing entirely.</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="rcns">
      <name>PROPOSE and Synthesis</name>
      <section anchor="rcns-overview">
        <name>Runtime Contract Negotiation Substrate</name>
        <t>The Runtime Contract Negotiation Substrate (RCNS) is the
machinery by which a server delivers Tier C endpoints
(<xref target="endpoint-tiers"/>): endpoints synthesized at runtime from
registered primitives when a caller addresses a <tt>(method,
path)</tt> pair that is not in the Tier A or Tier B set.</t>
        <t>PROPOSE is the AGTP method that explicitly invokes RCNS.
RCNS also operates implicitly when a server is configured
to accept unregistered requests as synthesis candidates;
the wire surface in that case is the same set of contract
identifiers and reasoned status codes (461, 464) introduced
in this document.</t>
        <t>The complete RCNS specification — the four-lock dispatcher
gate, the two delivery modes (confirm-first 461 and
optimistic 263 with <tt>Contract-Synthesized</tt> header), the
endpoint-keyed PROPOSE body shape, the contract scoping
rules, the per-agent rate limiting and idempotency key
contract, the <tt>synthesis_id</tt> / <tt>contract_hash</tt> /
<tt>negotiation_origin</tt> Attribution-Record extension fields,
and the <tt>DISCOVER /patterns</tt> / <tt>DISCOVER /contracts</tt> /
<tt>INSPECT target=contract</tt> / <tt>INSPECT target=rcns-attempt</tt>
inventory surfaces — is being specified in successive
revisions of this document. The reservations made in
<xref target="endpoint-tiers"/> (Tier C taxonomy) and in <xref target="AGTP"/>
(status codes 461 and 464, reason vocabulary
<tt>rcns-disabled</tt>, <tt>trust-tier-insufficient</tt>,
<tt>composition-impossible</tt>, <tt>synthesis-error</tt>,
<tt>contract-not-yours</tt>, <tt>contract-revoked</tt>) constitute the
stable wire foundation for the substrate.</t>
        <section anchor="tier-c-resolution">
          <name>Tier C Resolution</name>
          <t>A server with active synthesized contracts <strong>MUST</strong> maintain
a resolver that answers, for any inbound <tt>(method, path)</tt>
pair, whether an active Tier C contract exists for that pair.
The resolver is the dispatcher hook that closes the loop
between RCNS-1's tier classification (<xref target="endpoint-tiers"/>) and
the synthesis machinery: an unregistered <tt>(method, path)</tt>
pair that resolves to an active contract is classified Tier C
and dispatched to the synthesized handler; a pair that does
not resolve is dispatched per the unregistered-pair rules in
<xref target="endpoint-tiers"/>.</t>
          <t>The resolver <strong>MUST</strong> scope each lookup by the requesting
Agent-ID. A contract synthesized for Agent-ID X <strong>MUST NOT</strong>
resolve for an unrelated Agent-ID Y; the server <strong>MUST</strong>
return <tt>464 RCNS No Contract</tt> with <tt>reason:
contract-not-yours</tt> in that case. Contracts that have
expired, been revoked, or been suspended <strong>MUST NOT</strong>
resolve.</t>
          <t>The resolver returns, when an active contract exists:</t>
          <ul spacing="normal">
            <li>
              <t>The <tt>synthesis_id</tt> of the matched contract.</t>
            </li>
            <li>
              <t>The <tt>recipe_lineage</tt> (recipe name and captured recipe
version) the contract was synthesized under.</t>
            </li>
            <li>
              <t>The contract's expiration time and remaining budget, if
applicable.</t>
            </li>
          </ul>
          <t>These fields are server-internal at lookup time but appear
on <tt>INSPECT target=contract</tt> responses (the <tt>target=contract</tt>
extension to INSPECT specified in <xref target="AGTP"/>) and in the
Attribution-Record extension fields
(<xref target="rcns-attribution-fields"/>) on every invocation served
under the contract.</t>
        </section>
        <section anchor="rcns-gate">
          <name>The Four-Lock Dispatcher Gate</name>
          <t>RCNS synthesis fires only when <strong>all four</strong> of the following
locks are open at the moment of an unregistered request.
The locks are deliberately distributed across actors: server
operator, requesting agent's invoker, requesting agent's
identity, and requesting agent's posture. No single party
can unilaterally activate RCNS.</t>
          <ol spacing="normal" type="1"><li>
              <t><strong>Server policy enabled.</strong> The server's operator has
set <tt>[policies.rcns].enabled = true</tt> (or the equivalent
in the server's configuration format). The default
posture is OFF; servers ship with RCNS disabled and the
operator opts in explicitly.</t>
            </li>
            <li>
              <t><strong>Caller opt-in header.</strong> The request carries
<tt>Allow-RCNS: true</tt>. Clients that have not consented to
runtime negotiation do not get it; a missing or
non-<tt>true</tt> value means the unregistered request is
refused per the standard Tier classification rules
(<xref target="endpoint-tiers"/>).</t>
            </li>
            <li>
              <t><strong>Caller scope.</strong> The requesting agent's
<tt>Authority-Scope</tt> includes the <tt>rcns:negotiate</tt> token.
Agents that do not carry this token cannot trigger
synthesis even with the header set.</t>
            </li>
            <li>
              <t><strong>Minimum trust tier.</strong> The requesting agent's resolved
<tt>trust_tier</tt> (<xref target="AGTP-TRUST"/>) is greater than or equal
to the server's configured <tt>min_trust_tier</tt> (default
<tt>1</tt>, the strictest). Agents below the threshold receive
<tt>464 RCNS No Contract</tt> with <tt>reason:
trust-tier-insufficient</tt>.</t>
            </li>
          </ol>
          <t>When any of the four locks is closed, the server <strong>MUST NOT</strong>
synthesize. The specific refusal depends on which lock is
closed:</t>
          <table>
            <name>Four-Lock Gate Refusal Mapping</name>
            <thead>
              <tr>
                <th align="left">Lock closed</th>
                <th align="left">Server response</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">Server policy disabled</td>
                <td align="left">
                  <tt>464 RCNS No Contract</tt> reason: <tt>rcns-disabled</tt></td>
              </tr>
              <tr>
                <td align="left">Caller opt-in absent</td>
                <td align="left">Standard unregistered-pair refusal (<tt>404</tt> or <tt>405</tt>) — RCNS is not signaled</td>
              </tr>
              <tr>
                <td align="left">Caller scope absent</td>
                <td align="left">
                  <tt>262 Authorization Required</tt> body type: <tt>scope-required scope: rcns:negotiate</tt></td>
              </tr>
              <tr>
                <td align="left">Trust tier insufficient</td>
                <td align="left">
                  <tt>464 RCNS No Contract</tt> reason: <tt>trust-tier-insufficient</tt></td>
              </tr>
            </tbody>
          </table>
          <t>The asymmetry between locks 1 and 2 (<tt>rcns-disabled</tt> 464 vs
opaque 404) is deliberate: the server policy lock surfaces
RCNS posture to interested callers; the opt-in lock is a
no-surprise gate for callers that did not ask.</t>
          <t>A request that holds the Synthesis-Id header (presenting an
already-issued contract) <strong>MUST NOT</strong> trigger a new
synthesis attempt; the gate is skipped and the request is
dispatched directly through the contract resolution path.
This prevents recursive RCNS: a contract invocation cannot
itself produce a new contract.</t>
        </section>
        <section anchor="rcns-delivery-modes">
          <name>Delivery Modes</name>
          <t>When the four-lock gate opens and the server determines a
synthesis is possible, the server delivers the contract in
one of two modes selected by operator policy:</t>
          <t><strong>Confirm-first (default):</strong>
The server returns <tt>461 RCNS Contract Available</tt> with a
response body carrying the synthesized contract preview.
The body <strong>MUST</strong> include:</t>
          <sourcecode type="json"><![CDATA[
{
  "synthesis_id": "<opaque identifier>",
  "method": "BOOK",
  "path": "/room",
  "endpoint": { "..." : "..." },
  "recipe_lineage": {
    "recipe_name": "<recipe identifier>",
    "recipe_version": "<version string>"
  },
  "contract_hash": "<sha256 of canonical contract>",
  "expires_at": "<RFC 3339 timestamp>"
}
]]></sourcecode>
          <t>The caller accepts the contract by re-issuing the original
request with the <tt>Contract-Synthesized</tt> header carrying the
returned <tt>synthesis_id</tt>. The contract is bound to the
caller's Agent-ID at the moment the 461 was issued; a
different Agent-ID presenting the same <tt>synthesis_id</tt> is
refused with <tt>464 contract-not-yours</tt>. The caller declines
the contract by ignoring the response; the contract record
<strong>MAY</strong> be garbage-collected by the server after a
configured TTL.</t>
          <t><strong>Optimistic:</strong>
The server synthesizes the contract and executes the
request inline, returning the normal <tt>200 OK</tt> (or method-
specific success code) for the underlying action. The
response <strong>MUST</strong> carry the <tt>Contract-Synthesized</tt> header
with the issued <tt>synthesis_id</tt>, signaling to the caller
that this response was served under a runtime-negotiated
contract rather than a Tier A or Tier B endpoint. Callers
that wish to repeat the action send subsequent requests
with the <tt>Contract-Synthesized</tt> header to bypass the gate.</t>
          <t>Optimistic mode reduces latency at the cost of removing
the caller's opportunity to preview the synthesized
contract. Confirm-first is the safer default; optimistic
is appropriate when the server operator knows recipes
produce contracts the caller will accept.</t>
        </section>
        <section anchor="rcns-scoping">
          <name>Contract Scoping and Lifecycle</name>
          <t>A synthesized contract is bound to:</t>
          <ul spacing="normal">
            <li>
              <t>The originating Agent-ID (set when the 461 was issued or
the optimistic synthesis fired).</t>
            </li>
            <li>
              <t>The recipe and recipe version captured at synthesis time
(<xref target="recipe-versioning"/>).</t>
            </li>
            <li>
              <t>The contract's expiration timestamp.</t>
            </li>
          </ul>
          <t>Servers <strong>MUST</strong> enforce these bindings on every request
carrying a <tt>Contract-Synthesized</tt> header:</t>
          <ul spacing="normal">
            <li>
              <t>Wrong Agent-ID → <tt>464 contract-not-yours</tt>.</t>
            </li>
            <li>
              <t>Unknown <tt>synthesis_id</tt> → <tt>404 Not Found</tt>.</t>
            </li>
            <li>
              <t>Expired or revoked contract → <tt>464 contract-revoked</tt>.</t>
            </li>
          </ul>
          <t>Contracts have three release paths:</t>
          <ul spacing="normal">
            <li>
              <t><strong>Caller release.</strong> The originating agent invokes
<tt>SUSPEND</tt> with the <tt>synthesis_id</tt> parameter to release a
contract it no longer needs. The release emits an
<tt>rcns_release</tt> event in the agent's lifecycle stream and
evicts the contract from the runtime.</t>
            </li>
            <li>
              <t><strong>Operator revocation.</strong> The server operator invokes
<tt>REVOKE</tt> with <tt>target=contract</tt> and <tt>synthesis_id</tt> to
revoke a contract; the runtime evicts immediately and
the next presentation returns <tt>464 contract-revoked</tt>.</t>
            </li>
            <li>
              <t><strong>TTL expiration.</strong> Contracts have an operator-configured
TTL; the runtime evicts on expiry.</t>
            </li>
          </ul>
          <section anchor="stale-contract-sweep">
            <name>Stale Contract Sweep</name>
            <t>When an operator edits a recipe that has active contracts
synthesized under earlier versions (<xref target="recipe-versioning"/>),
those contracts continue to execute under their captured
version — the spec guarantees in-flight contract stability
across recipe edits. Operators that need to flush stale
contracts (typically after a security-relevant recipe
change) invoke <tt>REVOKE target=stale-contracts</tt>:</t>
            <table>
              <name>REVOKE target=stale-contracts Parameters</name>
              <thead>
                <tr>
                  <th align="left">Parameter</th>
                  <th align="left">Required</th>
                  <th align="left">Description</th>
                </tr>
              </thead>
              <tbody>
                <tr>
                  <td align="left">
                    <tt>target</tt></td>
                  <td align="left">
                    <strong>MUST</strong></td>
                  <td align="left">The literal string <tt>stale-contracts</tt>.</td>
                </tr>
                <tr>
                  <td align="left">
                    <tt>mode</tt></td>
                  <td align="left">
                    <strong>MAY</strong></td>
                  <td align="left">One of <tt>grandfather</tt> (report drifted contracts but leave them running) or <tt>invalidate</tt> (evict drifted contracts). Default is the value of the <tt>on_policy_change</tt> knob in <xref target="rcns-config"/>.</td>
                </tr>
                <tr>
                  <td align="left">
                    <tt>actor</tt></td>
                  <td align="left">
                    <strong>SHOULD</strong></td>
                  <td align="left">Identifier of the operator invoking the sweep, recorded on emitted lifecycle events.</td>
                </tr>
              </tbody>
            </table>
            <t>The sweep walks every active contract in the server's
synthesis runtime and compares each contract's captured
<tt>recipe_version</tt> against the current version of the
same-named recipe in the loaded policies. Three outcomes
per contract:</t>
            <ul spacing="normal">
              <li>
                <t><strong>Version matches.</strong> Contract is left alone.</t>
              </li>
              <li>
                <t><strong>Version differs and mode is <tt>grandfather</tt>.</strong> Contract
is reported in the response as drifted but <strong>MUST NOT</strong>
be evicted; the contract continues to execute under its
captured version.</t>
              </li>
              <li>
                <t><strong>Version differs and mode is <tt>invalidate</tt>.</strong> Contract
<strong>MUST</strong> be evicted from the runtime. The eviction
<strong>MUST</strong> emit an <tt>rcns_release</tt> event in the originating
agent's lifecycle stream with <tt>reason:
policy-change-invalidation</tt> and the operator's
identifier carried in the event payload to distinguish
operator-fired invalidations from agent-initiated
releases (the <tt>SUSPEND synthesis_id=</tt> invocation defined
in <xref target="AGTP"/>). Subsequent presentations of the evicted
<tt>synthesis_id</tt> return <tt>404 Not Found</tt>.</t>
              </li>
            </ul>
            <t>Passthrough contracts (those without a recipe lineage —
synthesized without a recipe) are skipped: the sweep has
no version to compare against. Contracts whose recipe has
been entirely removed from policy (the recipe name no
longer exists) are treated as drift with <tt>current_version</tt>
reported as <tt>null</tt>; under <tt>invalidate</tt> mode, these
contracts are evicted.</t>
            <t>The sweep returns a structured response listing every
contract examined with its disposition (<tt>unchanged</tt>,
<tt>grandfathered</tt>, or <tt>evicted</tt>). Authorization for
<tt>REVOKE target=stale-contracts</tt> requires the operator
<tt>inspect:all</tt> scope token; agents cannot fire the sweep on
behalf of others.</t>
            <t>The sweep is operator-fired by design. AGTP servers do not
support hot configuration reload; the operator explicitly
invokes the sweep when they know they have edited a
recipe and want the resulting drift to be either reported
or invalidated. Operators that want strict
recipe-edit-invalidates-contracts behavior set
<tt>on_policy_change = invalidate</tt> and invoke the sweep
after every recipe edit.</t>
          </section>
        </section>
        <section anchor="rcns-headers">
          <name>Headers and Rate Limiting</name>
          <t>RCNS uses two request headers and one response header:</t>
          <table>
            <name>RCNS Request and Response Headers</name>
            <thead>
              <tr>
                <th align="left">Header</th>
                <th align="left">Direction</th>
                <th align="left">Purpose</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">
                  <tt>Allow-RCNS</tt></td>
                <td align="left">Request</td>
                <td align="left">Caller opt-in to runtime negotiation. Value <tt>true</tt> opens lock 2 of the four-lock gate (<xref target="rcns-gate"/>). Absent or non-<tt>true</tt> keeps the gate closed.</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>Contract-Synthesized</tt></td>
                <td align="left">Request and Response</td>
                <td align="left">Identifies a synthesized contract by <tt>synthesis_id</tt>. On a request, presents a previously-issued contract to bypass the gate. On a response (optimistic mode), notifies the caller that the response was served under a synthesized contract.</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>Idempotency-Key</tt></td>
                <td align="left">Request</td>
                <td align="left">Per-agent idempotency key for RCNS-eligible requests. Servers <strong>MUST</strong> scope the idempotency cache by <tt>(Agent-ID, Idempotency-Key)</tt>; replays of the same key from the same agent receive the cached response, replays from different agents are independent requests.</td>
              </tr>
            </tbody>
          </table>
          <t>Servers <strong>MUST</strong> implement per-agent rate limiting on RCNS
gate evaluations. When the per-agent rate exceeds the
configured ceiling, the server returns <tt>429 Too Many
Requests</tt> with <tt>scope: rcns</tt> in the response body to
distinguish RCNS rate limiting from other rate-limit
sources. The default ceiling is operator-configured;
implementations <strong>SHOULD</strong> default to a conservative value
(e.g., 10 evaluations per minute) and operators <strong>MAY</strong>
raise it.</t>
          <t>Rate limiting applies to gate evaluations, not to
invocations served under an already-issued contract.
Repeated <tt>Contract-Synthesized</tt>-bearing requests against a
synthesized contract are rate-limited like any other
endpoint, not under the RCNS rate limit.</t>
        </section>
        <section anchor="rcns-attribution-fields">
          <name>Attribution-Record Extension Fields</name>
          <t>Every action dispatched under a synthesized contract —
whether RCNS-spawned, PROPOSE-spawned, or future-mechanism-
spawned — <strong>MUST</strong> carry the following extension fields on
its Attribution-Record payload, in addition to the base
identifier-chain fields specified in <xref target="AGTP-IDENTIFIERS"/>:</t>
          <table>
            <name>RCNS Attribution-Record Extension Fields</name>
            <thead>
              <tr>
                <th align="left">Field</th>
                <th align="left">Type</th>
                <th align="left">Description</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">
                  <tt>synthesis_id</tt></td>
                <td align="left">string</td>
                <td align="left">Opaque identifier of the contract under which this action was dispatched.</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>contract_hash</tt></td>
                <td align="left">string</td>
                <td align="left">SHA-256 of the canonical contract definition (the synthesized endpoint plus its recipe lineage at synthesis time), rendered as 64 lowercase hexadecimal characters. Stable across all invocations of the same contract.</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>negotiation_origin</tt></td>
                <td align="left">string</td>
                <td align="left">One of <tt>rcns-gate</tt> (synthesized via the four-lock gate), <tt>propose</tt> (synthesized via explicit PROPOSE), or <tt>pre-registered</tt> (a future origin for contracts elevated from Tier C to Tier B).</td>
              </tr>
            </tbody>
          </table>
          <t>These fields enable chain inspectors and audit consumers to
group invocations by contract identity, distinguish
contracts produced through different origins, and verify
that a stream of actions all ran under the same
synthesized contract definition.</t>
          <t>The fields are present only on actions served under a
contract. Tier A and Tier B endpoint invocations omit them
entirely; their absence is itself diagnostic information.</t>
        </section>
        <section anchor="rcns-config">
          <name>RCNS Configuration</name>
          <t>The full set of operator-controlled RCNS knobs is
specified in this section. The configuration is operator-
authored and is not visible to callers on the wire; what is
visible is the <em>result</em> of the configuration (whether the
gate fires, which mode it delivers in, what the rate ceiling
is). The block name (<tt>[policies.rcns]</tt> in the recommended
TOML form) is conventional but not normative; servers using
different configuration formats apply equivalent semantics.</t>
          <table>
            <name>RCNS Configuration Knobs</name>
            <thead>
              <tr>
                <th align="left">Knob</th>
                <th align="left">Default</th>
                <th align="left">Purpose</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">
                  <tt>enabled</tt></td>
                <td align="left">
                  <tt>false</tt></td>
                <td align="left">Master switch (lock 1 of the four-lock gate)</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>mode</tt></td>
                <td align="left">
                  <tt>confirm-first</tt></td>
                <td align="left">Delivery mode: <tt>confirm-first</tt> (461) or <tt>optimistic</tt></td>
              </tr>
              <tr>
                <td align="left">
                  <tt>min_trust_tier</tt></td>
                <td align="left">
                  <tt>1</tt> (strictest)</td>
                <td align="left">Minimum resolved trust tier for callers (lock 4)</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>rate_limit_per_minute</tt></td>
                <td align="left">
                  <tt>10</tt></td>
                <td align="left">Per-agent rate ceiling for gate evaluations</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>contract_ttl_seconds</tt></td>
                <td align="left">implementation-defined</td>
                <td align="left">Default contract TTL; operators <strong>SHOULD</strong> set explicitly</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>on_policy_change</tt></td>
                <td align="left">
                  <tt>grandfather</tt></td>
                <td align="left">Default behavior of the operator-fired stale-contract sweep (<xref target="stale-contract-sweep"/>). One of <tt>grandfather</tt> (report drifted contracts but leave them running) or <tt>invalidate</tt> (evict drifted contracts and emit <tt>rcns_release</tt> events with <tt>reason: policy-change-invalidation</tt>). The sweep is operator-fired; this knob sets its default mode, which operators <strong>MAY</strong> override per invocation.</td>
              </tr>
            </tbody>
          </table>
          <t>The default posture is deliberately conservative: a
freshly-installed AGTP server has RCNS disabled and, when
enabled, defaults to confirm-first delivery at the
strictest trust tier with a low rate ceiling. Operators
relax these defaults explicitly as their deployment
matures.</t>
        </section>
      </section>
      <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 eighteen 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="propose-body">
        <name>PROPOSE Request Body Shape</name>
        <t>PROPOSE accepts the proposed endpoint definition in one of two
mutually exclusive body forms. Servers <strong>MUST</strong> accept both
forms; clients <strong>SHOULD</strong> emit the wrapped form for new code.</t>
        <section anchor="wrapped-form-recommended">
          <name>Wrapped form (RECOMMENDED)</name>
          <t>The proposed endpoint definition is carried under a top-level
<tt>endpoint</tt> field:</t>
          <sourcecode type="json"><![CDATA[
{
  "method": "PROPOSE",
  "task_id": "task-propose-01",
  "parameters": {
    "endpoint": {
      "method": "BOOK",
      "path": "/room",
      "description": "Books a room for the named guest.",
      "semantic": { "..." : "..." },
      "input_schema": { "..." : "..." },
      "output_schema": { "..." : "..." }
    },
    "persistent": false
  }
}
]]></sourcecode>
          <t>The wrapped form makes the <tt>(method, path)</tt> pair the explicit
key of the proposal and clears the way for synthesis-time fields
(e.g., <tt>version</tt>, <tt>lineage</tt>) to ride at the <tt>parameters</tt> level
without colliding with endpoint definition fields. The wrapped
form is the form used by RCNS dispatcher-gate escalations
(<xref target="rcns-overview"/>).</t>
        </section>
        <section anchor="legacy-form">
          <name>Legacy form</name>
          <t>The endpoint definition fields appear directly under
<tt>parameters</tt> with a <tt>name</tt> field naming the endpoint:</t>
          <sourcecode type="json"><![CDATA[
{
  "method": "PROPOSE",
  "task_id": "task-propose-02",
  "parameters": {
    "name": "book-room",
    "method": "BOOK",
    "path": "/room",
    "semantic": { "..." : "..." }
  }
}
]]></sourcecode>
          <t>A PROPOSE request <strong>MUST NOT</strong> carry both <tt>endpoint</tt> and <tt>name</tt>
at the same time. Servers <strong>MUST</strong> return <tt>400 Bad Request</tt>
with <tt>reason: ambiguous-body</tt> if both are present.</t>
        </section>
        <section anchor="response-body">
          <name>263 Response Body</name>
          <t>On approval the server returns <tt>263 Proposal Approved</tt> with a
body carrying the synthesized endpoint:</t>
          <sourcecode type="json"><![CDATA[
{
  "status": 263,
  "method": "BOOK",
  "path": "/room",
  "synthesis_id": "<opaque identifier>",
  "endpoint": { "..." : "..." },
  "recipe_lineage": {
    "recipe_name": "<recipe identifier>",
    "recipe_version": "<version string>"
  }
}
]]></sourcecode>
          <t>The top-level <tt>method</tt> and <tt>path</tt> fields name the synthesized
endpoint and <strong>MUST</strong> match the proposed pair. The
<tt>synthesis_id</tt> is an opaque identifier the server uses to
distinguish this contract from other contracts; clients
<strong>SHOULD</strong> record it for use with <tt>INSPECT target=contract</tt>
and the RCNS revocation surface. The <tt>recipe_lineage</tt> field,
when present, records the recipe that produced the synthesis
and the recipe version captured at synthesis time; this
disambiguates contracts produced under different versions of
the same recipe.</t>
        </section>
      </section>
      <section anchor="recipe-versioning">
        <name>Recipe Versioning</name>
        <t>A server's contract synthesis machinery typically composes
synthesized endpoints from operator-authored recipes (composition
rules that name a set of underlying primitives and how to invoke
them). Recipes evolve: operators edit them to fix bugs, support
new primitives, or refine semantic claims. To prevent recipe
edits from silently mutating running contracts, recipes carry a
<tt>version</tt> identifier and synthesis captures the version
in effect at the moment the contract was produced.</t>
        <t>The <tt>version</tt> field is operator-defined; servers <strong>MUST</strong> treat
the value opaquely. The recommended convention is a monotonically
increasing string (semver, integer counter, or timestamp); the
specific format does not affect wire interoperability.</t>
        <t>When a server synthesizes a contract from a recipe:</t>
        <ol spacing="normal" type="1"><li>
            <t>The server <strong>MUST</strong> record the recipe's current <tt>version</tt> on
the resulting contract record at synthesis time.</t>
          </li>
          <li>
            <t>The server <strong>MUST</strong> present the captured version in the
<tt>recipe_lineage.recipe_version</tt> field of the 263 response
body (<xref target="propose-body"/>) and in any subsequent
<tt>INSPECT target=contract</tt> response naming this contract.</t>
          </li>
          <li>
            <t>The synthesized contract <strong>MUST</strong> continue to execute under
the captured recipe version for the contract's lifetime,
even if the operator subsequently edits the recipe to a new
version.</t>
          </li>
          <li>
            <t>A subsequent PROPOSE for the same <tt>(method, path)</tt> pair
<strong>MAY</strong> produce a new contract bound to the new recipe
version; the new contract carries a distinct <tt>synthesis_id</tt>
and the prior contract continues to operate under its
captured version until released or revoked.</t>
          </li>
        </ol>
        <t>The recipe-version capture rule decouples contract stability
from recipe evolution. Operators who edit a recipe do not
disturb in-flight callers; callers who need the updated
behavior reproduce the proposal under the new recipe version.
Operators that want to force callers off an old recipe version
use the contract revocation surface specified in
<xref target="rcns-overview"/> (revoking specific <tt>synthesis_id</tt> values)
rather than mutating recipes in place.</t>
      </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. Response body carries top-level <tt>method</tt> and <tt>path</tt> fields naming the synthesized endpoint, plus the full endpoint definition</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">461</td>
            <td align="left">RCNS Contract Available</td>
            <td align="left">RCNS synthesis preview returned in confirm-first mode. Response body carries a contract preview with <tt>synthesis_id</tt>, resolved <tt>(method, path)</tt>, and the recipe lineage. Caller accepts by re-issuing with the <tt>Contract-Synthesized</tt> header per <xref target="AGTP"/></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>
          <tr>
            <td align="left">464</td>
            <td align="left">RCNS No Contract</td>
            <td align="left">RCNS synthesis attempted but no contract could be delivered. Response body carries one of the reasons in the RCNS vocabulary per <xref target="AGTP"/></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="changes-from-v00">
      <name>Changes from v00</name>
      <t>Version 01 is a drift-cleanup revision. The contract model,
method catalog, path grammar, endpoint primitive, synthesis
runtime, and handler binding are unchanged.</t>
      <section anchor="substantive-changes">
        <name>Substantive Changes</name>
        <t>The following substantive changes were made:</t>
        <ol spacing="normal" type="1"><li>
            <t><strong><tt>DISCOVER /genesis</tt> built-in endpoint added.</strong> A new
built-in endpoint (<xref target="builtin-genesis"/>) is specified
alongside <tt>DISCOVER /methods</tt>. Servers that host one or
more agents with a loaded Agent Genesis <strong>MUST</strong> expose
the endpoint; it returns the Agent Genesis document for
the addressed agent in its canonical form, including the
signature, allowing relying parties to re-hash for Agent-ID
verification and to verify the signature against the
recognized issuer key. Servers without a loaded Agent
Genesis return <tt>404 Not Found</tt>. The endpoint documents the
wire-level mechanism for runtime Agent Genesis transfer
that v07-conformant implementations have shipped.</t>
          </li>
          <li>
            <t><strong><tt>DISCOVER /agents</tt> built-in endpoint added.</strong> A new
built-in endpoint (<xref target="builtin-agents"/>) is specified
alongside <tt>DISCOVER /methods</tt> and <tt>DISCOVER /genesis</tt>.
Servers that host one or more registered agents <strong>MUST</strong>
expose the endpoint; it returns a compact listing of every
agent on the server, including resolved trust posture
(<tt>trust_tier</tt>, <tt>verification_path</tt>, optional
<tt>trust_warning</tt>, optional <tt>owner_id</tt>) per the precedence
rule specified in <xref target="AGTP-TRUST"/>. Policy-based filtering
of returned entries is permitted. The endpoint documents
the wire surface that v07-conformant implementations have
shipped.</t>
          </li>
          <li>
            <t><strong>Embedded method count updated.</strong> <xref target="AGTP"/> v08 promotes
INSPECT to the Cognitive floor and adds five Lifecycle
methods (ACTIVATE, DEACTIVATE, REINSTATE, REVOKE,
DEPRECATE), expanding the protocol-level floor from twelve
methods to eighteen. The <tt>embedded</tt> description in this
document and the catalog scaffolding throughout are
updated to reflect an eighteen-method floor (seven
cognitive, six mechanics, five lifecycle). The catalog
version-negotiation and handler-binding contracts are
unchanged. AGTP-MERCHANT seriesinfo updated to v02 to
track the unification of merchant identity onto the Agent
Identity Document. AGTP-LOG seriesinfo updated to v02 to
track the alignment of lifecycle event triggering methods
with the v08 floor.</t>
          </li>
          <li>
            <t><strong>DISCOVER built-in endpoint surface completed.</strong> Two
additional built-in endpoints are specified:
<tt>DISCOVER /</tt> (<xref target="builtin-directory"/>), a directory of
reserved built-in endpoints the server exposes; and
<tt>DISCOVER /tools</tt> (<xref target="builtin-tools"/>) and
<tt>DISCOVER /apis</tt> (<xref target="builtin-apis"/>), inventory surfaces
for tool-bearing and gateway-fronted servers. A new
normative section, Reserved DISCOVER Paths
(<xref target="reserved-discover-paths"/>), specifies that the five
reserved built-in paths (<tt>/methods</tt>, <tt>/agents</tt>,
<tt>/genesis</tt>, <tt>/tools</tt>, <tt>/apis</tt>) are reserved under the
DISCOVER method; operator endpoints <strong>MUST NOT</strong> shadow
these paths and <strong>MUST NOT</strong> register under paths whose
first segment matches a reserved name. A legacy
<tt>DISCOVER target=</tt> body-keyed form is documented as
DEPRECATED; servers <strong>MAY</strong> accept it for transition
compatibility with a one-shot deprecation warning, and
the body form <strong>MUST</strong> be semantically equivalent to the
path form for the reserved targets. Conflicts between
path and body return <tt>400 Bad Request</tt>. The path-keyed
built-in surface is the wire-format-stable form.</t>
          </li>
          <li>
            <t><strong>Endpoint Tier taxonomy formalized.</strong> A new normative
section (<xref target="endpoint-tiers"/>) classifies every
<tt>(method, path)</tt> pair into one of four tiers: Tier A
(protocol-native, reserved by AGTP / companion specs),
Tier B (application-registered via operator manifest),
Tier C (runtime-negotiated via RCNS), or unregistered
(refused). Servers <strong>MUST</strong> classify every inbound pair
into exactly one tier before dispatch. The
<tt>DISCOVER /</tt> directory and <tt>DISCOVER /methods</tt> inventory
responses gain an explicit per-entry <tt>tier</tt> field so
clients can route follow-on invocations with full
knowledge of the guarantee level. The
<tt>DISCOVER /contracts</tt> surface for Tier C entries is
reserved here and will be specified normatively in a
future RCNS revision.</t>
          </li>
          <li>
            <t><strong>Runtime Contract Negotiation Substrate (RCNS) framing
added.</strong> A new RCNS Overview section (<xref target="rcns-overview"/>)
introduces the substrate behind Tier C endpoints,
anchors the <tt>{{rcns}}</tt> cross-reference used in the
tier taxonomy, and inventories the wire-surface
reservations made for it: status codes 461 (RCNS
Contract Available) and 464 (RCNS No Contract), the
reason vocabulary (<tt>rcns-disabled</tt>,
<tt>trust-tier-insufficient</tt>, <tt>composition-impossible</tt>,
<tt>synthesis-error</tt>, <tt>contract-not-yours</tt>,
<tt>contract-revoked</tt>), the <tt>Contract-Synthesized</tt> header,
and the Attribution-Record extension fields
(<tt>synthesis_id</tt>, <tt>contract_hash</tt>, <tt>negotiation_origin</tt>).
The complete substrate — four-lock dispatcher gate,
delivery modes, endpoint-keyed PROPOSE body, contract
scoping, rate limiting, inventory surfaces — is
specified in successive revisions of this document.</t>
          </li>
          <li>
            <t><strong>Endpoint-keyed PROPOSE body, 263 response shape, and
Tier C resolution specified.</strong> PROPOSE now accepts two
mutually exclusive body forms (<xref target="propose-body"/>): the
RECOMMENDED wrapped form (<tt>{endpoint: {method, path, ...}}</tt>)
that makes the <tt>(method, path)</tt> pair the explicit key of
the proposal, and the legacy form (<tt>{name, method, path,
...}</tt>) retained for back-compat. Servers <strong>MUST</strong> accept
both; conflicts return <tt>400 Bad Request</tt> with <tt>reason:
ambiguous-body</tt>. The 263 Proposal Approved response body
is specified normatively: top-level <tt>method</tt> and <tt>path</tt>
fields name the synthesized endpoint, plus a
<tt>synthesis_id</tt> identifier and a <tt>recipe_lineage</tt> block
carrying the captured recipe name and version. A new
Recipe Versioning section (<xref target="recipe-versioning"/>)
specifies that recipes carry an opaque operator-defined
<tt>version</tt> field, that synthesis <strong>MUST</strong> capture the
version at the moment of contract production, and that
contracts <strong>MUST</strong> continue executing under their
captured version for their lifetime even if the operator
subsequently edits the recipe — preventing in-place
recipe edits from silently mutating running contracts.
A new Tier C Resolution section (<xref target="tier-c-resolution"/>)
specifies the dispatcher hook that connects the tier
classification in <xref target="endpoint-tiers"/> to live synthesized
contracts: the resolver <strong>MUST</strong> scope lookups by
requesting Agent-ID and <strong>MUST</strong> refuse cross-agent
contract presentation with <tt>464 RCNS No Contract</tt>
              <tt>reason: contract-not-yours</tt>. The Status Codes table
gains 461 and 464 rows referencing <xref target="AGTP"/> for the
reason vocabulary and the <tt>Contract-Synthesized</tt>
acceptance header.</t>
          </li>
          <li>
            <t><strong>RCNS four-lock dispatcher gate, delivery modes, and
contract scoping specified normatively.</strong> A new section
(<xref target="rcns-gate"/>) defines the gate that fires synthesis
only when all four locks are open: server policy enabled
(default OFF), caller <tt>Allow-RCNS</tt> header, caller
<tt>rcns:negotiate</tt> scope token, and resolved caller trust
tier at or above the operator-configured minimum.
Each closed lock has a deterministic refusal path
(<tt>rcns-disabled</tt> 464, opaque 404/405, <tt>262 scope-required</tt>,
or <tt>trust-tier-insufficient</tt> 464). The gate is skipped
when the request presents an already-issued
<tt>Contract-Synthesized</tt> header, preventing recursive
RCNS. Two delivery modes are specified
(<xref target="rcns-delivery-modes"/>): confirm-first (461 with
contract preview; caller accepts via re-issued request
carrying <tt>Contract-Synthesized</tt>) and optimistic (inline
execution with <tt>Contract-Synthesized</tt> notification
header). A new Contract Scoping and Lifecycle section
(<xref target="rcns-scoping"/>) defines the three release paths
(caller release via SUSPEND, operator revocation via
REVOKE, TTL expiration) and the cross-agent presentation
refusal contract. New Headers and Rate Limiting section
(<xref target="rcns-headers"/>) defines the three RCNS headers
(<tt>Allow-RCNS</tt>, <tt>Contract-Synthesized</tt>,
<tt>Idempotency-Key</tt>) and the per-agent rate limit on gate
evaluations (429 with <tt>scope: rcns</tt>). New
Attribution-Record Extension Fields section
(<xref target="rcns-attribution-fields"/>) defines the three
contract-lineage fields (<tt>synthesis_id</tt>, <tt>contract_hash</tt>,
<tt>negotiation_origin</tt>) stamped on every action dispatched
under a synthesized contract. New RCNS Configuration
section (<xref target="rcns-config"/>) inventories operator knobs
with conservative defaults.</t>
          </li>
          <li>
            <t><strong>RCNS observability and lifecycle surfaces added.</strong>
The reserved-paths set in <xref target="reserved-discover-paths"/>
extends from five paths to seven with <tt>/patterns</tt> and
<tt>/contracts</tt> added. Two new built-in DISCOVER endpoints
are specified: <tt>DISCOVER /patterns</tt> (<xref target="builtin-patterns"/>)
surfaces the synthesis recipes the server will
negotiate against (with <tt>rcns_enabled</tt> boolean so callers
distinguish "no patterns" from "patterns exist but RCNS
off"); <tt>DISCOVER /contracts</tt> (<xref target="builtin-contracts"/>)
surfaces active synthesized contracts scoped by default
to the requesting agent, with operator visibility via the
<tt>inspect:all</tt> scope. The Attribution-Record extension
fields specified in <xref target="rcns-attribution-fields"/> are
surfaced verbatim on <tt>DISCOVER /contracts</tt> entries so
chain inspectors can correlate by <tt>contract_hash</tt> or
<tt>synthesis_id</tt>. The Status Codes table gains 461 RCNS
Contract Available and 464 RCNS No Contract rows
referencing <xref target="AGTP"/> for the reason vocabulary.</t>
          </li>
          <li>
            <t><strong>Method aliases specified.</strong> Method Policy
(<xref target="method-policy"/>) gains an <tt>aliases</tt> field declaring
a single-hop method-name translation map. The default
seed maps the five legacy HTTP verbs (GET, POST, PUT,
DELETE, PATCH) to their canonical AGTP counterparts
(FETCH, CREATE, REPLACE, REMOVE, MODIFY) so HTTP-style
callers and gateway-fronted deployments translate
cleanly without operator effort. Aliases are resolved
by the dispatcher ahead of catalog matching, <strong>MUST
NOT</strong> chain (alias → alias is a configuration error),
and the original wire method is preserved on the
Attribution-Record as <tt>requested_method</tt> per
<xref target="AGTP-IDENTIFIERS"/>. Operators <strong>MAY</strong> override the
seed or wipe it. The HTTP Gateway Sidecar specified in
<xref target="AGTP"/> relies on this alias map for HTTP method
translation.</t>
          </li>
          <li>
            <t><strong><tt>on_policy_change</tt> config knob given normative
semantics; stale-contract sweep specified.</strong> The
<tt>on_policy_change</tt> knob in <xref target="rcns-config"/> was reserved
in the prior revision; this revision assigns it two
normative values, <tt>grandfather</tt> (default) and
<tt>invalidate</tt>. A new Stale Contract Sweep section
(<xref target="stale-contract-sweep"/>) specifies the operator-fired
<tt>REVOKE target=stale-contracts</tt> invocation that walks
active contracts, compares each contract's captured
<tt>recipe_version</tt> to the current loaded recipe version,
and reports drift per the configured (or per-call
overridden) mode. Drift outcomes are <tt>unchanged</tt>,
<tt>grandfathered</tt>, or <tt>evicted</tt>; evictions emit
<tt>rcns_release</tt> lifecycle events carrying
<tt>reason: policy-change-invalidation</tt> and the
operator's identifier so audit consumers can
distinguish operator-fired invalidations from
agent-initiated releases. The sweep is operator-fired
rather than triggered by config reload because AGTP
daemons do not support hot config reload; operators
explicitly invoke the sweep after recipe edits.
Authorization requires the operator <tt>inspect:all</tt>
scope. Passthrough contracts (no recipe lineage) are
skipped; removed-recipe drift is reported with
<tt>current_version: null</tt> and evicted under <tt>invalidate</tt>
mode.</t>
          </li>
          <li>
            <t><strong>Normative reference to <xref target="AGTP"/> updated to v08.</strong> The
base draft has been revised to clean up Agent Genesis
schema language (notably, the canonical Agent-ID is now
defined explicitly as <tt>sha256(canonical_form(Agent_Genesis
_without_signature))</tt> rather than via the
<tt>certificate_hash</tt> field that no longer exists in the
schema). Cross-references in this document continue to
resolve to base draft concepts; no section-number
references were used.</t>
          </li>
        </ol>
      </section>
      <section anchor="wire-format-compatibility">
        <name>Wire Format Compatibility</name>
        <t>None. Adding <tt>DISCOVER /genesis</tt> is purely additive. v00
clients that do not invoke the new built-in continue to
interoperate.</t>
      </section>
    </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-08"/>
        </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-01"/>
        </reference>
        <reference anchor="AGTP-IDENTIFIERS">
          <front>
            <title>AGTP Identifier Stack and Attribution-Record</title>
            <author fullname="Chris Hood">
              <organization/>
            </author>
            <date year="2026"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-hood-agtp-identifiers-01"/>
        </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-02"/>
        </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-01"/>
        </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 3399?>

<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:
H4sIAAAAAAAAA9y963YbSXYu+D+fIoflc4qUAehSqnI36bLNoqgquiVRJqlq
t3vVEAkgSWYLQGKQACk0Ja/5dR7grHmHeY95FD/J7G/fIiKRVKnbx2vWml62
CgQyIyMjduz7/na/389W1Wpa7uc7hz9evO0fvj3Zz38ul6Oml78tVjf0n+P5
ZFFX8xV9LOaT/HwzX92UTdXsZMVotCxvo1t3skk9nhczGm6yLK5W/Zu6nvSL
69WiXyyq/pOn2bhYldf1crOfV/OrOmvWo1nVNFU9X20WJb6clIuS/pmvsmqx
3M9Xy3WzevbkyW+fPMuKZVngYYvFtKJx6KaGZ3RWFtP+RTUrd7K7evn+elmv
F3TdSRgrP/fn7GTvyw1dNtnP8ryfH57kxTVd0fBf/JGeWcybq3KZL5b1qh7X
U/5tuZ6v6Bn5mOa6LMarfE4vsqp4HnxBqeuUN7ZC/HVTzgq6c5zPytVNPZEv
b2mF82nVrPivBS10fr0sZrNiGc2DFjTLmhW94mUxree0PJuyyRYVZk7zkj/z
vKmXq2V51fjfm1ny52pZjVf217ieLQr7MyvWNKWlrMTVejqVrTu6WVZN/hNt
Hf2Q5/XyuphXf+YX3c/f1DN663EvP5mPB/w7vV813c/HuOuf5vLzoKj4t/Wy
2s9vVqtFs//4MehgUNVZNq+XMxrutsSTz14ePXv69Lf68TdP/+65fvzmt7/5
Tj/+9unTJ/gIOtvngZ1oeaUubMfe6o7lu7h0b4evDW+J/z34nk25rGjXiCzt
0pP5qlzOy1X/BYg5oemIUIW+n/yGb5oQfe/nz548+47+/Ofz0zf986Ofjl8f
prPGD/n5+IaWbj8/zF+Xk6rIL+gE5Ff1Mn9RNuNlNarm1zxC/qIer2eg0a7X
iTfukM5KNc9/v6yub1Ydv/9Uzpeb/HA+WZZ3TcfvP5Tz/Kf1asUE3f7xx2V5
TVObz6vmL1qu0Q2P2P9TQ/80/M5gBMliPckyDJRSxXff/p1vev/o+OyitfP0
dS7bf1QuV9UVeEKZH39YlXM56P9Vey/8DE/uj+nJW2/znU365MXxm4uTlyfH
Z+cdcz8B8dC0iWzPV8X4PfOywxUd19EaZ61/Vo6JT/0Xv0fls2gefpHXx2dH
Px2+6dqB1+VyfEMMTl9ntZHXwOoQzzuqZzO6oMx/oANDBP1f/DIznYy+1WrT
J7HR/UoXZ+/Ou97nAgKH34GkoBAV7UV+vijH/td/8VuwzOvcjJ9OT1/gYzrv
c5Mwr1nC5G+KGXgH3uHVq9d6Rg7H4zWJrQ34zRFEWD2dlhMc+fENiZ33eX2V
nx2fXzw+Onv3AvKpWTe6jbclRJFM+6qgzSQGVV3/ZauQvEbXovyeJDdm/bZY
lEtsxi1JlWI0LfPRJl+W/8e6bFaD/HVBG8zDDHayrN8nUTlqWBxn2cUNPXCi
vDJvZMPKJg96DUnlIL6nxYZO3uqmWPH3/KrZQ4Ikv7/Hfz99oqlMMSiRxKrO
r2taqDlpLbQyNCY0kmxUru5KYqS0MDWkIS2jaBhyMEBj9PZY4IFPLZ+UV9Wc
hi0y7NKKNqZYkPZxSx9EbciJ8kgJuM537ypSFnA7PY1+Lm/rKbMLDJ+REjEu
aRNowMWyFGrd6yUKBikyU3oSvzhdc4vFkmf0sXPZtCze04TxUnW2EBUQC+Tq
zWJZzSqmil18T8u/Hq9o1tN8Pa/o6Ojr5eWHRd2QlkHrJAuwJwO5QjSa1sT1
xsWSaGGCbabJkHyyB/VykRbZbTGtJnIMQQjVsmRpaKPxw2jI6opIJBcpIq+n
M6BVlau+bsJb6HrKIERyfRtIlntRk4658ckVTUbvtR71Zc50VnCbPVQGeXt2
+vb0/LhP+9B3FdDUxqxLbaSHgV1VzUxGWN0syzKnbyZTmslIWGZOx4K0xl1o
bnVT4b4ercM1KY/lspxcXq3nY/my/AC+Ukwv8SrVuNwThZ1GzqJNWpZ/KvkG
2rliRdQ5rie0RrvPnzzv5c+ffEv/fPtb+ue7J3t6OuprWpNySa9wyycmHKL+
lLZsml/RUV0vaS/WzB8Geesorml9m3ICWsBJ+/HkvMUD890HVasKYmnPXwQU
W9GZmm76dD6wvRMVUaJdtwbu5aOaSJ/26+6mIs5BJkRmR6OchAOYVQ2/GFHw
Ffab1eQ5L1LM+HHNJr8r8a5khKxW2B9aDFID6OQX42XdNAPhS7NqQruYZV9h
Rst6suY1zzJmAM5N6LGF2BsL0uLd4KDjCw5LE4E+aDYKLryiqQyyE6Jt2r0R
WRBEZblJu55yY/kYNAmhg2Kel1AMiTn1hcoze57t47SulwOSCZual5s2n78S
6mQWjEXg1SwgJLOIneVED+tiOt34saNV4OvszNFEmeU0cnrxWwZDqMG25HzK
5VvmV/ItUQ4xG9or/UVYQhM472K9yvB29XpFH/UqXwYssPIMWctqflvrXtL0
ZNezVCZska9Lkm35QZv91Vf57282/NuR/fZDSfbaNb3vXDiD2ZEko8ocIqxa
lXocr2v6h5cRz7RtL8iGpZcK/MOfm8X842FZs3t29OZ8jwh8rrRDcp6GpLNB
JEsLFguifAaVZ0Qzg7hdkUjO+vmLqpHz3trCiOfqPtOaQyRB9EfCgMT6pFwR
Y+hhFYh50nNp9DFRCE4IjPYGQmtEG0fPYA7DJGoMmrj4mIkbdEMTp69GBY67
HEMa3y79Ggs3nhbY41S48JNYj9sIOfNgpqgKc5dXChTj5EJyC9TyHo+KBSAP
+laYD3Hzu2hx6D3m/Ix5WU6EgOc1i1cWbx+qhjkGCW5mE1CPeZQwgvAQ0xDA
tWjR+MwQS4dS5/MkYVGvr290cpF0oJHf0BNESBEFwSdCb33VIl8S4Eygwqju
aK5ELcHlwcs1qekavMH7eX1nhz5Wd+jViHfRSs5xlR1KUtR+TysBMhPik3UE
r1Pxip3nU67y1/geU+Itb1gWuBpN+qpazoQZsBcHUsuEkSovZDCxmkMrQZKT
z0cvszuVYlWqEw3Wd3acw9W5Khol/6I6ZzaqJ3THdVHNm1VCB183wn6UJ/Wg
shH3o2NDdjx9NX5PR4NUDBZ6ge8IMwbzuYqfQ8y9ur7GngfdoQ+nEgnVMiuL
8Y3uMYh8VS6MKLCqRhOD/BjXiXbS2CQypegmXWoi77Crn1/HjHd5oCq2ispp
XUz6o7JYsgycFtUMDzaBCiYaURvkXEY7QXYNXUoE7tNg6blY5aT13og+TjK3
xlwwLlkI5ZJ597KeZcaSdR1PSUuA8gwGTUtN3P2KVNwS9I5hodmCVAa4cMn3
EFsyaY3FhaZNBwHa7Jw0wXqEBS1G1VSojtaSvx8TUdLTscxs1RaqPeH26woM
MOwhzAfxY2CGpGpM6w2mTFowEV99veHnwmUWn7ycDhRtYE3a74hUk3VTiqaB
n+po8sTmKiF/U0uwjUX0HFl3X105kY1vRHOQRU+1X/0RtFZvyoo3QswjIjLi
vMTK6DEjnlRW42eRe+aYyl+R8UInXbQbNmiCzpev7uo8UtuaclHwwrPK17Cw
YZVw180w2BY/qrWCwxIsz8QM70HG/IreSKsd63tnEEksYEGQeU70TKtO4xEh
Vivd2HoNjwW0BT7us0UlV+DAsf0pvioIUmG+UGKUrk3+0Eru7sCPvpPfQF20
Q0M3rSEFxvDFqi88/4//8/8SZqQ2HmuF4BejNUm1Dc6VsNu+CkLWmuB9PSd7
4f5+Bb44Z/L69GmwJysa6cS7evCFe5zDo1wsJ+Iqm9A36jf42Z/YWln2SjR6
m+qOvrxX9RRjwFxkeYNblS6YGOXl53XuG6+Mxt420bAHoiN1qvmvfyRrnOWJ
TlhpZE/myss2bepIwT+AxjmHWUmbR8eZRlmsRxY9kLNiZjF4B7McMMzFlKiN
bdJEaNo1KntJdWkri0QD9EEMHXrkhJ5MihwdBaye+CKC9n/75O/AtaY0VT1R
Z5F9m78qiFj4WGGe72F51EsaZOf1u/OLnZ78N39zyp/Pjv/l3cnZ8Qt8Pv/p
8NUr/yBXZPTH6btX+js+hTuPTl+/Pn7zQm5+ffiHHZFRO6dvL05O3xy+2hFF
llYmvCeYFvME1gaYT/Cpmojzmiki/+Hobf70Ob2wOvk/fcr4M7z89P5Ql+RR
9Zwkp/wpjG+xoKPGmiNpleNiQYdzigBUkzU39d2cDxWWLL8ItJ/ffxWfhCwT
MtnP9nmjVWNhKTrHO+BYqSKsDHwfX6zp2csxqZr54fnRyQm95vsSDnGZk0gl
cRkZs3NfjZF0vVSlV90OyifcCzFkRYREx0AP05AZkkoaPSBCnkP5Y5iTBTJl
xYm9JJH6q8qvMK+g04LjYOapRFBLD+tEQ6xxrgIx8yTviP7Ui9KLPBzYJWhT
+IEkKN08VfKkbQCjwzIf6vYvmIWTIlPPNzPmpDvyGjvySNaTJ2RhrJtGzlMp
/JBXr/gy9icaht2DeMdQI0yPiV4e68oOEHcYCku9npJurSPyGAfYb5F+NSJv
i4r0JTwc4TmoHAlbxhKoocGmbCE83XeIwyaRCTMwPqXMX3YQTrYDecJnhYJ5
sKbQPGnFNtEYtsvVTCT3bdnHxuDxyUIxv6D9QSTXjgFNXgQcPA5qzreOQY/O
9XU1n2Nr2LYrsIekMsCX25Ccuxkgogo/Us5cv+zyMNIJuL/H9339nmRTllk0
WchFRQFcZjzCoqjMrmTumxqqPfdF8bRoMrC1UpOv11LKxS/gf5KexTsdnRmN
a7fcbkJeolixXczOTV4rDSHk6mYbhAg5s8XPqbnYDHfX/4D5Yh3OzOSM3HS0
MgXZIrzyLcfovtrDPex2vYSwprckvlZCaV2oApvzDIKyJFYUaUe09URuE5zi
HigITgUEE7C+WAi6hjgkPWAMg2Iu7sEZK8NlHzKNl0MprKmZUEF54nggUxCC
L9j2zqYKidvr7EYlvZjYRfD7Q5k5UmerGPjRjXrObKOVF/JSsln3WrmUkfjW
ZIPYSh0frAywC43IWI+2UtW2o/imbljGXYv7Sv+0HVYqcsZOw1xEfoVCOGJQ
LcWYtonUV1cICJjIyt+yoSpnJHJOq/0qTmiZLzsFYM96qIBmQqxVv6Np+LfT
8rqgu5n11IsVMQmZswzep0GF7nAiV7X5CHPazglRJxkPA98i25JtOdZ2kmd5
20U/UK1VnyTvxLzBU0ucV6nzC7Y3tr6IGJZvUAWCa0imN6VYQ+qI55krP1P3
iIga+xosprwpSNFcCrN3B437Y2iMX3fBdDhgfl9NJ8SkJ/wm8MFNSJO2FJDY
CTmj04U3UPf0lsPE9w9HvKGjmSoS7vdqk2vMoDHGGr5ZsAA4X/dzdwkM73ym
yLUph6bc6DzUBxMp9Uwy4bbLYgzGVk6i+xNqZS1NyfpIJSkpajdl39SmfmoQ
fIrMSI+L5RYXcxXrqh0iA5OiFWD7LqPDNWzlnWxrBakKodKYGFg9h72XtU+r
bgQEuHB6OhT19bz6MyzL1/GP83qVbamLrkbwndgbaEIQrxqIef7tb3WY7Oeq
nsb20F9mGe5vKQZiOIhPTxV0d+e59S/uvt0fTk9/10Ms+Pjs5+NefvjuxclF
L/uXd8dnf4BDWVWX9J1GJcQPJvdIVumR6HixeiXKVbX6yxUrU32zRLnCusC3
AF3W9gOmFFFiiCq09CtYcqr6RxM4cAqyW1rqckiSyKCAw8kWpBNN3uLTbMMZ
kZ+rMCde9xVSvfpMnuUcgvdT17Z6TJezfvy8iXcd4mNVL3RCZAzCczLUe4bE
ZVyt0O9a7yha9d1NPS2ZAdOJvr/X3/oeRGY2PCxnZL+RUT9UNvz0N2FBOCCk
CyxqSSxQHz2CTfroEfw/0C/36Ydbtp74pEjUmEmpl784OT86/fn4jD4dnx+d
nfxAxHby5vzt8dFFLz9/9/r14dnJv9F3b18dvukZU9+DttNUHyx0OiaCPf7X
46N3F8cY59Xxj4f4RAMevuJPR6dvXp6cvcaINPSbF7ifDN+Tl3/Q8Civ7JQk
03gzJka/e3h0cfLzoQwXPp8d09Qu8BHJScc/n/6OL3hLxjN9uYdVE/Fqa8bD
/nRBfKxZbaalrtjuj8f0cvQi+PfdhUwZ4789vDj6iWYE2mIrYLncsLAhGbss
xQk6JAa3WLAQq1lHcVZl2ju7LdjdmOe7L49pSFqAs2N9A1rII/7w+hQH+/Xp
C6zCIH8V9IJGXY5QDmAP0ZbqzsayziR5tyUrkRenMVmWPvvIlCqEytTSoXtt
zVbFB4SxNmqX1qbCboytDScaldoMe/lwWa7o7ttiOuyx8TcvphtSHvATO2KF
M+JPkrKuCOPvMWmG8hk3ErdOfnXSwh+TGsf2slkUbA8NB3LqRj7pLoF0Kwm0
zCj4+MYvy890O5kfyS6QhTh549QNtwKwn8Pg17qs5rIAMzxO/2rWJImbpl4O
97alhmm67JbZ0o8hI3INA7w7ewXN/bbksGplwTee23QTyVjmKMzf54gmMbUi
Dw+OMvHmZ+zNJ9k9ZXvu5PDNoWYuLMm0OFqr2MH0yiXmEFxuHpj35y3ZohT3
3YG5XbsYHV1VkjpNs2D5tsmu6ShC02JuWkVKkwqxod55adzUBM6V+lq2FNjD
zlcic3s9RaiiLP9cumM4i8S1LvG4EDOMHnByfPESzBU7dxA8SnIWEUWE/gb2
TNxk+25R0oL3X50i8awqdkbSrUGngpS3iMXu/X1FB6cPzZCknFrEnz7thQBb
nDwSp4z0NGqE3FVkbzeebhL08Rt2gTYZPNzw5Hkixqick2qnugDm+3Uj2uny
VkwlfUt+ocy3dtWU0ysPS4q8Vc3rjJ0O918xo2EPhHsAVStz4UTKT9vJp+Fp
9pg1Ens2xxQtZPkhH/7vfzzs/9svf/s3QxhS82s61N+ARX3zLCduAe+wUOh4
um5o/qlCmPmjg2MzItmeOgxZWRFm3JQr0aB4Ax70Gw5U6IB7NOKDj6y8ZpsP
mBoN5lrzwRLfa0thTLVKzdIAGXG45vgDzCHWyuvZjJnXUu/ocbi4YEIpe2zQ
aB5KyW9Z0O9riJZdVTAxKY67HqjKeQifs4QMVsTI+mxzbkIGgSq6uzIn5q5s
e3G+hPwGGTYpLVwKgx4L4/EHvpOHPtQAPeR0ot7LwjUlD8VrRryb6H9BCv24
WoDS2J1BKzlZs5LPWnExmVS+CpmnbnAYNuVxaR7guYb7PQDNU8ziqLPt4QzK
2bK5qRZ+2qZkt0p8igj1wP1hmbigigl85WAYauDo4azUEdPinhG/VXVWfNIW
S7r/SpzULNBxxGzuROKHfwCFsz3oS+EuhYaOneYVRXbDJpuqzU1fz+wQfJGC
cRQ7yxvEoab1nZjHkseoqxKckRFr+JQTSfLuqvfDA6qcKiV0kXFsgw0YSEnN
zYjrIYQA2c31Ad4tGC/8/lDyB1lripYPUkC5Ns+p2yAc+GAXhIZDKsTAOZKk
0hvL5LzAku0Sm+PYs0FPb+GuKO9SDiCSpJGYFCgFPB5KFdE07Tmf7keP3oL9
0VbuPh08GTzJ/+N//M8cn57ucaQyUl1wot1hHekq0J+uOUt2uhnwkK+reb1s
D0mfZUhVPbEsB8ELI9+u5zLaBC41HiZHcFDC4EZ0lebYSUJOrEFdTYvrRlzz
6cA6r+JP7Xk9w6d4Xqpm5fxksAe4Ht8SzfCZjx+2bjj0gixOV+dYl2DdNVHf
sl3bE1NjNN+uuL4uJ6497KVqHrM9XJ3BoT1ZTzWtjS8ppmrSRKpgvgsnxWwm
gd7IQiD+dxiFxoV/SWICdkKS7kwbIwpZcDrW8iCR75kFIojPD6VOQy3K3xdL
VpdpKNorkIeoAmIXdFqeHnHnTDK3yHruBfTYei/T93X/XS/ns2l+UlvSKFcu
5MJylMicTX0yDK6GdBbrKXuh48P0s45yjHgEsnCSo2TPIK5qAQt1XLdTkvmw
ZdtaJm9V69vmUm0kmHsNLKDK3OrZpETWYD6rGsuNs/w/emq1zMWBGztVYl+h
rbxNi40welu1/hDCy8/l2XBYdFhtkV/OPV9N/pBFi+ezVQs7QYbLIplNRi2S
dULGXiP7D8OtCpZQUGxfhSHMu4C1F1v1P2GpEs/793//90xmeKmGJh1z4vgT
/iVDLluiVjEj10uSLHRX81YwMEWkFU0moklSXWi5YMZzxIEdIXp+i0mUhuP5
ZgXnaM05vAaGhXX229XvwQOwvtVnTskZhiGjB3e9275JzNIo1nP5vtwMcbVs
4AM3iJa3n+9MyimR4w7fIdv8KzewDb7BDapaqTNDVlPytSroKUIIs+p6qVka
iX9Cljh7c2qKfCOGXJyIKW5jpqLmwHMpHz2SvIdHj0KGiKvbSlBi8xCzYa/1
tlQl7WeLcQlb2E4GaBVuQM81D59mjTSWiG8ZxtkNaTAtBsNBWKRwIuSUyjYM
UV3TSQEZcgyzvsvsdVmPkZicscFS3q/1ANXzfg6P48pEZXefeQscbFUhhq8P
//n0bPD65A39y+QwNF0Cf9BWQZySqah6tCkIuxzCMucLTMrNoiaR+YGsSY7S
BlVjicQ+RGZJdc/f1KnCzTl4LBI4EZBv9XUyUY/J6Uz8PvU9R9dK9TNR54ZT
okUnEX08t29RMFVOkswynZE5okVj4CSQWaKz6FywXDoXm3h4cmtw9mgUyykq
BXkwjmyZCqRT0kcOgkIeEcC6EV+ieEJsL3kSLsc4IXBNFhLpvMT5WBuZ2zJ7
MValeorce1eRpEawUaxa04XvRPgfuJj2cFOhN47Ws4XmEEb0/No0yIzzWLsC
DabwsYO001Um/BzxneyeFmoHCtsOCsoQx7iEg/joDzsgrh3TXPErjEWyUeWH
RFPDr08HpBTKb0EZww+sK8oPrnP5w3ayTyJAWqrffstz6DuwUueIKX+cDDor
YzqjwSJ10FObIECrRRIge3hU3rVRyVQkROPLykUADfvJrowwOToRPWAkiULI
GSiW1+XKn3RTSLL4CCrJ+IZUIoSvImVU4tnRBEdsbQtFoTKA059v2Ism/B8e
mXh2yDPw+SGnUHwC/gi1yonrm+Kkw8G3tJ7axPHor5uEvSQyxxMk1MNkmpwJ
hBche4RolaMgbaXPVQH1Nu5n2xrgQ4QQaRTmEWDXUs3Jh7GfgvMuWFUYbI8f
65Ky9FM2Lq+2JED8RCRwuB/CBmcvXA5PyBKLv63Ldjq4iHDwxEH+mpa+6svC
8xtGClxEWsRnnzxxeQ2zhQ1hnnXBcR/ebR2E3vhQ2Bu0J2FwvvxTmoRF1TuW
d6N0kSHVGltPbGvELiR1jDZRyn9l9Rj0IkH3RqqI5AxNcMY8BRyWykJLE7Ys
FyJh0gQ111N/jDngOYtzZBaL1ukJIuoiZhZqj7rDEfOcgqYlMVaR37SDsCqV
Ct36K/sxJdkge8CwE3vObB6zCFWb7rplP48Tc/3Ifs+88iAPbO175qrCOn+S
p6gRDZUiYqZDlp+K5yG+WyCIsDahqR4qiiSSBNkb2NH3bw5fHw89+foBO5l5
xSA/VYO4urKCG/fHaZ6W18rogcfe2aP4wdEL/nx8dn5y+iY8XDmpcVyj8Oix
7I/KPXahnl3dBBwjtbPNAetlngPN+hOaCQHaFUmBTMlqkB+GEuWjVyeaKqAu
Jp6hPkmcVmRs0sFZNhlnGXmIn9V/c0xE3FRzveifMS8uvySObzDZ+ASNSy5K
epjC25kUK0wg340In44y/Mb6nrmYCctytSZuEPIr8ii/At9ylSDPRdwpwd/t
PrutR+dcyfYi9aCI+sdr27rD8rtlg39Qv4Ufc8sHTTRH0ZXskaby9YxDZusF
rfBEA8K6hnKN7zMdmacoe+BUoGre4nHmcbGnqnpAdluUi5LnYbl6KJOws/V5
7oLaIuYw9ObPMIWrtSRooXAomGoXp69fWUgOA8dTabDMZNkuV+sFdCxUU7F5
K3y9TNIuC4758cn4ZpCfzIMMm284OCEZyZJgltP55qxa0BfKqbDyV+Inx4OS
WfSUgETEWDQMpKJ1z/ru8/IDo66EpxDLRw3i80F+/r5adLkg6NSxA213yEeJ
I86avMeBYrANzb4b7tke60R9liHDT9eHA88NPTKq2YqgAUA1CucT7RkvdKPU
JYWxcdmnngWhbS3W5exBYRKN5BPdwdlTm8ZgjAH7W034GknfJTIAAEU+KpCx
S/ae5JzpFoad7WUcWeKIghAqnLyTlvObXX+aC2pOuzcROpMeMkuuI6p930iq
oL660MG2VgPnIFQRrj7zrDjSHNknY3kZdgB6UeJccDbYCSx+xdnnWVEeZsax
ObnK4+duPTPiilCTeuDLebU6UEXXX9A3LdLqZFNdm/qGn0a8rkey7G4OIikt
SHFTXd+AIUseIaq4bOLh/ud6PzsZpsVC/O2ICo+ITvSMkB4+V68H8pob0vpF
y7cJa4SN5UM7tGRa4wzq5GK6xYE4hKw66nRzkDUP3M9aJVN+olCKYmjiu5pv
K+xBTk6Khee+e0jGk685ARikeSF+ZYi6cGwfckCneRoFl5BrxmeWumE0+Q33
4HapsWsvBtgWXlcDK/njzPjFY3jLaBMjueksBEfa12vM6RtRFaOwIrjzd1MO
jofRtpWeDNHT11TNeVXPpmBgtZb1Xm2UiYfBPXuk0USKEen17zVUVcAumTD5
ulYr4q+0fOJqRiTh5aF9M+HYz33By+tpt6qlbu1DXk8nnBqKBZIPf+z39bj0
o6n+vS/EP/wiiqpvyEICUU0qKnh0lC4FC872RXV1ODA9H8Cu0B0LX/DGRYq0
YLtYhQXXO5OIAQDAVjKzoipo2B+/CBXILDTbm61K5KF5PvFnRuyQ20qoGEIJ
omsA+SnI3O4BPJ9+0zmI/iQ7AcUx6xjOFg4pUaeupgbuDBPNiqXqqWmqQbGK
arha5yucQcDKfKhWnBVj9kck65iMwQTM6clvsJ8/yXeJWfKvxN7pfZ/mu/YX
iCIiN05b/bDa62XP8t1FsQRkAApZGsv0MvbROgPwRFfswCymjA3DWlB6ESen
yHFHUgE8dSQoQjIRU66i6lReeOyxwSwd7etQC6mIPVFdt+P+EQnz3VWTqQ9c
HS3sJzAR7om0wraz7OWa02mD7zMqOGc/qExuw45ydyNE/gzPqHhYgjQVfivm
JVef9qS2ApRg+lMW7BpN/QgxK12yz8n5LCAVcZJZ2/RgWlysl4go0qK8hDXy
5ImV3oUMgKb3eXXCDIBsVHruTL+UnSJOuyw2MScIEtFlmYjRDhmYxEjfemaC
RUeTlNTt6EEk4GjwvzxF36MPWVTvPd0kpCBpYgdBvwNtOJ2G3EIsrFFE25iR
fIBVPSk2Cp+TXpiFC+lSUl1XLKXE2R8kFKiuQ5PZUsXi86l3E6+jV1xDmPYz
T0+xH3tSeDsvpn3evPB9uRoP9nC+uODrmmk0E6N9tK6mnHgCLbFQ9bYMVSNp
5XZHyNoi3a08HTDyacmSG0IdWZPOLiMLwxGCglczeC+PkjXzfB7kmHHch9WU
JVEwkvbUbyH2i5HUMgMMyZpDiPh+vVCPqevnwVEhbF+5G3NPnYmuVBR67qlx
d9dJxvGgqpDoECG7y/ZO8BaglLjlHc6L0dWuFLxzshm/ZE9DinwNJ0XaHkeF
5xxIl/y26cYydxGLoXMhiCTOXNr19l8x0K8DLtx/ldRsKmJVUt+psHFNjBuX
G26cubSII67F/LpjEADHfhE/HaNKrBfi6ODRm/JaMnRpFzgcfmVQP+YOQopS
WrRfztmppPYpUG+Q3kXW/bqJsYiICoitz5oDSegVbJFy2pSSQaBG6p/WE56B
cDheFE4qFe1dpsAzjRJJr1G7xYHux7AOuq4TJxRsab+SlNopEihXVjnLSSR0
POhs4GcGbBhxJLFGFiSii7guszUyPsLOaLZsLeocs13el11kufYrFH41XIDR
y4RZITlYygmGfU1GuRzSs94WSMzgK+RpdKqXcOvzsR/eDwaDT8OMUyA+lLNF
VM/jtYPvOQBUsvPjcE7n3fxHYenUJ6cJxY8ePf/uidfRBn8TXciVvhgdNZKC
iBcoJc02BlRPtHlG0Yc/vHnZIut+MZpfaeTe0G4CKsAqcpiC5pQXaVW9DiE2
xL8zRGIe/vd9vvN4J/+jzbE//3P+aJe/s1nv5b/4PvpNj+x6JBNn0c3y89Pu
3/EH/76euxLxOF+MV/2S63bxFwoyJ+W0mhnir//vcb6zv4N//2knW/im21vc
7+T+pZzwnU/RdfIVZrabH756+9MhDfTi5MeTCwx4uZPvZdGcZMity/r89MGO
3kL//js9IZq9zOS/7eQ/Hf8r3aX/ycIr2WT/N777b/jf/87/fs3/7vK/igOd
vvoj/ulv+d8e/3vA/36/dfGD/zvgQM/Zy6McWNVCDsQrhro9wySsSpQE2Kyp
08GuZ5kPw34Phd7JMBjeD+EiGX4aRgnme5JDvWgf0WgwDtn4BUO1R/nwKYvZ
QxzrA661KbGl5WNC0WwyST8Nedf+pHJwPehJWVL1oX9fTT4NWRQ9eiTe9uAa
quZQsQ7yq7be7haH6uuz6kM5kcTzFbEUuIQEtsCmJAn8PqU2F0ZxPh1XBjCT
02yabcboQzaO5p5ZjrAwyHgcr8uMMO8ydWkoAqQmBxGPUTQyEoXEy7PsNV4i
B7ftKebLmGxJpO1sFjelwQzAG21LSUrG6iaAHw4U+sYwIC2gVAlInNSRLdyP
xOXYjSJQGthVL3tfjopR/7bpN/PifdmX+SQbjKPLbJQHDBhT9TIATCloRNgO
d56h1GMSLyntCBkLMOlgITXqW3ksaeJ0weN7+3hJtJI9Jm2Ov+X/4qvH4LF9
IsUZfYvPl/gsFyv1No8tWePxvX26bKbr60/B+zK8x3bScWE60mR3MWz0Jdgz
X3xgg4pTXGkJ352dZBf2++79/T8q8jhKYPRyo/j7fyQaW256C1JzPg172fD+
b43DfYLj/v6rq2XBO/vQifBktCyGYzSC9mmyMsO5xEQtoqzUwYrGAR/Rxo9b
bxyJVin8vokxFFZ5TMYZk7FhtIWqG7UTeTzWpN6XiI2ExDpNBOZcVJijXFYr
5IVAxRigpOVnTvxoWUOHZYHu76sSFb4M+yqir/h8tku3AhZfNmTcj0sB+mA8
nQhln9GvgBJfNibgnQEQ18hWW8+VTaiSkK4oQOlz3M4W2LaUV9QcIopVKjro
a04eWFahokuhRzKaMz3fVRCzkiYKaRI8woxJGJYo0nnoH1iF+WsTB6r3mHiI
CjZcd/TMkkR5Ncs0QA1HsAi8/EhzXxRISpAYx6NHxxAwMvCANuwkVaV4WFNz
6btiKrFeG58jfCqR+Fr4x7Z3xnCkXeIFJIhGQh5TCwQ+w6ScpuJ50chlmGxv
e54yliR7TLoWIwgqkjqr5BllE2q3ENLAeDda1C5kt0YRD9tmpmLrzz4QjpQh
PW2pDvYUW0zBqJBy7OE9rxRxBb0aA4yLBQ6kYV4uRWWexJtuY3Od+CIlWImp
Ejur00VUrEAQgc2pO59EtH3M5PmT52TNrPKXiEQPNDTn7rggbiQEIDTq6xbv
UC8qjYvSGnjz06V0mX9V3snd+nKZr/7urG5WAVTxjjZ7T4Jvd3U0qZvitgwV
RmEXt/QxyaRg7GklsIQxONPgAcEjROXQWLeBLvHJLWaj6nqNSi12+R60CjKy
JNOBVRgBurMMLM4MFw7xLxBfwCXgtOv7r1ic9Rv5+5NI/MCqx1p3x1flcpX7
uYb/OIxSfR7DBYZGJy/evTrOH8/KEh76fwTz+v7Jt0++ffbdfwdfIqWobL4n
rjYu/9uzo1E9CsKbUccEc5KRtZv4RPY1PUbZJQMsYQZQvwVQDvr3p0/7qUEd
TH23UKeaKcY2+MLCjmFAxCTnk3591YceImudvH86rqxGMsSA+XC/5aBQHb3D
XcJmci9LGQiNvWepjAnCVmSmkmJzIHPLdAd1xxhqUbEgINyJ6DhWo4sQLFgi
CqGISNiSlqbY/wlL7BJAWXSbxk1EKOYBsH+Qn84ZudADOL2te1ekpkJ7GJda
8XtWLkoWe7LywLqg+6fTYtF4pHhaACgYvOlAuEef/5jkzU3BkaVqUpqSoG6B
yAcrvAIVwLC6UCo6sX1etEV1i8bycw1fPxs8ffi1+bi9VG2QbAPSMnNTDpHs
8VUxH9+gUp/V70ePzo7/+fjo4hgBqSKC4VM8chyxTMHfHfttbsVBfd4RGRBE
CTUEWj/838OvDNAncaIJVOZdsQHbnkpVaqhCbftonpO6/EMxyc4sKwvciZmR
hLxII+JX79txxSNYKWVrJ35wFsUcaG6yTiRVzsxTIEoMm5bseBNcC01JmYsX
LF/o7ym+6PDx4K6cTvtcMfN4mDlWhOexgSfzhZeINxALYLNywS0LDIIdrIfu
d2j8gxjEIwwZmVxkqEnOHeCf5Y0Ml8xyA2+rItduOVZFC1c8Mcm+61SumfXN
sR9yC6MaMx/Kg8ga0JDggXXsiBQVEuj8MJRJRSlTfpbN+OsLsBXpYX5VB03I
PPKhobfkFq8ZJmlSmTYaQ9Cd1qkWrKIUxy7WFKAehTlHOfx/BIgIe2QMQnI/
3+HCKU67p6/xxvjysXrQ7fsouxs/n/HkVAPSPGa1Lj2twm4FGB7u+QG+oE+9
rikAJWlrBsu6nj3w+B/qmqElcYl7/7mYNL/m46HnXr5Sc2Xzl8zIdmRrVrpB
D0zsVcXZztNpp6YvLviQAd2ezyHPJ4uSINwby6BGbINJuBH+fIYkS5FRFOQJ
HiWaMMzqbWyUIR6nsUD53ALCbNmCKfQhe+nu7+33PgZABfjukKYvfMrhjfQU
2YFBlJXWXC7yg9K1UHsyO83jzPx4RHjeYWl02nF+Xc1pafiv4GALPkBcGhnw
khrOdxEQ4b0sjrAztxBsB+AQH4QCoNYMgHcIE1RrE/vIJPP0mCbBu0deWfym
mnLQwQFaez9Ft5E77jkS2IBNSQuMgHDC9b5dtXv5bort2VhLoKaXdZX+9BzE
k/FI9hJJBqggWQQ8r43pwnxV1Mw+h2b87XbjklndZSOPTFLcFLz3piwWyMG8
6yPh7a6asKiqRxJ7C+0hoaFwmIx2BQkF+NXKVcKqpPj8NT3jvUDRaZEV0mjN
38srGPIGsx86+H0CPNJ++2n1XhJl2c/kdIkINAoBWFx37LcE2nuayoVYmvWd
QO6oZLaKUJB8ERWuEakhzYc7ByVosmxeBRsnv2bryyrm035WPU0E2ktz10Zl
BklNeiBplXj2lpjjxDVju2xeDlVDlwfsDTPA0Vr7AE5v5yijDAuXvstVKfpT
XA0BVMoiyEg22UKkNvABBRZnreGreImv4VSuaImDpqBfRR4cng5wSGXdaT+h
jeqRVxsSZFJqQ778Rxki+4w0twcLoTshLIP0zJKxAk6dCbUYOZIThTxMx3og
XHU8Qv/khVeR7NZL1RcdSGO6QX4ccGYMdDU4VdwsMbmksHgxK5QGjfz9ntVA
KGoBu8/UQZy+DIurat5CV4OC3Mv9KLDzcsiVt3CqqCwi3kRWusFp0cP6pNPc
aHL+rfWgQfaiZ8joKggMXc0osKyd+9Byn4qxBA6mahoyV2AbDVr1jvzelxWr
BH//3fP+TfnhH6RCkU6eCO3BQOT4DroZlOCVybchTeHyz0RYyW+cS0Df/JG/
+oW/47lMLotVciV3MbxUPeEZfxW/zaWpJ5N50xfjpZzoM+z1bTyro3zIQBkm
TqWh0Akp+uneEt3rYXBKbdGXOvqjjlySWxO38WAOwAyhDOAvhT2kRWlpBgAx
uWZVrRgKyTuF9ARWpI+X7iBIz4DQAbFqBwk/CQxWKdp/CIxeX5xs782Kvft9
fODITULksL37/pVi3KQeJk5UaqWuGCGrZhD5Y2UO1nDC290FqAdks0uzSu3A
aC/O3gqwNXjENywA5xIEQShDSucE11eyukwUhr3qSykesXAOoFxZuGTAm624
8GiaaN8r69Nfrqqp9HkkOfQeCzNlQEZMp4rAxLJwtMNO2Euof4CPAnuPGHpX
a42zIWkCz779btcX8hJ7IC0uLnWISyWxSz8Ue3vD0NeoCr7glKBtS0QoRuwn
5lsxQwlYthFvSXk6ce4ogwnuKqaZLdklAigWXfLNr0qu2GgVIearvC2o9CkP
yKnCOl07vpSbn1oEEtmeNZcpxOw7Uos7ZGOMWArFXGFHsy4NOuBK8XwHnZbt
gzw7ql+fFrRnc/u2eV9Np0j4hAq0iRmv24TNJYcY6bffmNEWs+Sn+uWXMWUT
HzpJa/NNMrFtkH7Ju8wYQ+uvepfnXe/y7HPvQs/qI0qFAOxOcrcWh+Ki+M4+
B8QWjG/S8e7FeFb6i/91lq/Du4rrGLWtWhnsxZrcD0Dz1oIy1UQaFlgXO8q5
YzEdDxzqgzbwlHRRlKaLQYHi/ARhaCJvvHuz93RC48lEFC3qxZrDINB/cOw/
5i/ZCP8YGhh81OblUlP/MfvY7/f9/+mGoVHHkC51Mf4xP9pWina/ew5bSlEa
iYriNJhBzqOBnlojnbqa32gvxeYGaQvSdgN+OskVaXXa0wFTUpShvVTgY37O
Q92syW6KmgvEeGhpuVZSECRPSOh56wFvPKTU6YyJOmOwU0YkmQwcDkRrRc7K
BqBvEyUUXJHvPu3RocEef7Pn1erBBy+xf8bMC82yP33SJ22dsoceGF+oEd1h
zFng9EHpTfz3zWZExtWQ5zaMj+7wL59ocsplkkenb16cSFcjnuvb1snAIZbJ
JwtKaz18xuGhNqx5n5E6tcqck/nRtB3u9J8RPxBeICQoeZGWTfIAxxkabRvL
2aIRX16+IsIm/0vWxwrLH1KVzW40FLFQyVlN+BThtSNrTePENPX7fWlM/v1O
W1bnx3Og5DLTaHY0+zJe5l4XbfXa+9gTpS2sT8TofPdsKaSXujJH85lk3aty
sB26VqW3nNkbqt8KNbrXyH9gK/tOWotqzFrnYFXBKX/NnL+K72SQH6nnJ2TI
4Djg7oQCYR7OszZJC2MfB3+eHvJ3JwEBJUHMEmAyxlARCOH2iGyF5xf0zP4z
rk7ecPPrpI3JbrROcYNdmoQJCV4O7gG6XtV9a/0CND/AxySHxyZTNd7TcqJR
t3h39mLAAFssun61rDzZacvjlHWopXEXWXNKsAmiOu6h9ffon8PY7cVp+7CH
mTWJKaIdLpiw4c8FNdxAJBKDtl6jHN9TMuKarYTMYr+KoC9KRou8CVPXvHZQ
iyBh+En1lDsVZSdpQVfkRCy0La/ulcdiFP0kQsUJJ1yrBuDD3NbtY63eayA/
dZjm2wo7sCjrWpI39lK1PYuWIQ81piwGlSDc1eYDhmykaD29J7HXbblntaY7
6OgxqpADWmXRmlghe7tfcRtRyicIPwjrh/dd0ZY4SCIacnqh0OOvX6dWx69f
iDKWL3nuYnswuuiX7FOHKhsn36lOK6qs+ReHvhpD0WS1mP42SL9UE1ba1l61
zGGCP9JyTiQWFDqmSZbkFjFkadQgznopxwH1s0iDRl5RIHOUKNCuSwxI0lYA
iZ60HT/aS6KjCkPLsDnZtq/ZqVaKcKt5i9TFDV0tOWpNp4GeetDhsjbGkC5Y
xq/H0UEp5NCItKcrIbylaQvF1RXrJyjF3lrPBtEO+7Zv0W5uzdYIB07Os3XM
QeCDE6s42FHokePKS/YleG0VuivOBdHSkF/Qd0tSSbUjTceBBNRSgKAzpxtZ
1lxXa43FWJFyc5vnvM2/+IzETIy/+FXPBK7yZsfBN4FN73BNyEN+1TORhMb5
njQ2ww2g7LW1jboU4nL6zHRachfnjsCM9N82c6GXhEeztve0fUAFVkCNGkQ9
uCdJ3JFEzC71erMurCZnR+i2mGfh52D9RTBN2vqK1SSiDM2DpElYPjxy0nUL
wrQs6SYq4OorEzho1STrpiKtQjDlhHVN/lSM2Y5mv6O3jqYz8ProbS8/fHa4
FyvexVQ9tNWyPZdMQnohz9DbUFeMCd3hIluksR383SZCpauYDM+Ozy80FeXw
7UkjQUvSHDhFhf2pWmaFgNldsYnZonedNWYl42ftWT1EtvM0lYMDQW9PEpJV
N8OWl8NIppdSQxexRLQEPe1yvZzKjLLYq8w4/+bJ7wydGu8Ky8O5LpYJhN4Z
tkj9q2WtBZSKlcL8JYsCrIkWFcVZW7u6kOTrZGftu0RHcqLa5h0+xmc0pGQj
IkwjvTXeEgC/ZAH/1bySAqpxdvTm3Os1t9OADKWBZQI+9m8dIxblEWYbboVN
NQdvxYqAjSKJwylxsfFApMJ8nRtFsT3K80JokawsYCzzDMbzpi8VzfTsgzy+
MLMLLY/blRdfaINlsOxZgXfm3FiG2VbwSYisiTiM11VzA0dnWFYO9u8IGNBO
+i1bNWEnwJSurgY7LcUR73CpuNE70i+PA142VtAntQRtRxbv0vymo7p+34+S
jMIVujO46JvwY2e6kqYGXXLyeDtt6X9d4hIP91crlsN4rYbZLr35tCzmQnTD
cNB2WWztqTap33drlcNoMaV7Urxy5lbwdCSuIbYEe81rGIaFo0dzMI3/yJi4
uThPLuFWHAy+f43OPzjnCMxwsoqUXYRq8ySr/WGlMuqokcVdltX7sdtip0Oz
yi85ZIu2U6GB6p7rm3msb9opCDCQ13PiBJnpbPKodpTP1TRv+yjOlhDI33fs
LdJ5oKGtWgklYT/xILHAJrdscUMnzNocJncOkzC63LoYcQjHj+M2o7a8i4RT
+5db2iDUaG4ib0P+WdL1gUUgeqLd+7nMivDQbhGbtUDq8BC/pydV/OxZIKFe
sNVex8kQrpmiLFD20RWSoS77Pv0wbDs41C+p8IvhkeYhR2qg5mztupMAdV3S
QGavO6Tlq2+hoHpR0Dz/IY3rfFEmJc31GvgP9IaXrehSHkeX9EAjhYIuoyv+
k2xUOJgObstyiayOrqdHvSYuZca4isUWFA27LEmW+HuuHf7mm9/6KEQ2AMre
/v1Lg02xXb1lJsabIp3u0txLeNy31xqsI11b7qEXL4jlaW4vwjCLK5PzQ+0G
BVvtjF3ldFJWgCaojb8EiKGM1VZewiK6Ty6DF5sdyL6iGs0PS+iu4UgRGHk0
rOVP3IILDQeBPRpZ99okGIEtl2IWovAR4IOx+zh3NT2gfNQNMFRNdOcjUqRz
/9VDZnoEamB58vkwStIemiMUHz2inQ3VauULFtJFMfBl3d6YcYoKCQbkU1PY
CXXEx5hGZUcKevaAz2YQxfCC38Nuau2UBMnC6iha3NxslCZMxVLjNUvwy0Zh
1A3xaEmJTwpVEtX0FU3soQKrQeF4sZzwxsPgCB2xQt0ZB4My35/Ht8+iLerz
0ZhIYEz2p1zxXtnG9PV635fHtJDsjNvbzt0HPpoA/6RVqozbyaELEqsTxtwJ
fnjkG6mWQjcrGrxDC4nThRNt2Lnt6MOSoJNF/QIHzrek2riee4WTFGnXvv5y
sHlVec8kXK0+9wCzGwFMeOZWGh/IfGuH0mslpK5yQ7glanBpyvO+b73B8Lh0
NneTVTB1xiGinNBtj/Vo4yQGpmBJsHFtdpSCGtK8H/sRj9JRzeYP/vrOHjeq
1DTDzKcmXdl3JXl8u/wE/sw00zXrynQN1VM6u1Zya0hVM5pUFhAhKhykNrv2
NSoyvyPGi3HO7T11HE6qyWjrAjJa0s8oKF6S1f39MP8BaZ8vUdq+G2Cb99Bs
QnprbOHKqYUbJ7kGcIuC00j778sNgsXtpw0GAwMimEf9F7yAKDNPxB03UZGK
ZVAKfNU8hHmr0+xZqZ6L81xHm+R3CbMrW2nPKiRuB4ylDvfhnnjeovczSIVH
j7znMW3Jlq2SRVC92lmH70w7O4kDdGUNCCG0Y5cIYq0FtOp+c8O19yHR3+Ls
C94tF7Mho0t4NPOj9hwkNg8VN5S6STD3gUmnzZy2F/Nfh9oAh20qxjUL4Ilw
r0cr+6/DCGtb+YMM03hKyLCnDlIWxyHXbGiCmUWw+ugO2xALEcsD8GXUhtBC
hvG7IRi9LLlcTQHI21oJ1y63BIEHU4RAJY86xFScRTLmGkfLO6vBs5C2y4WF
uRYWDi2mJPnZihNraVI2+MNR+qbCytM2CEaKGO233Ia4FOEx6MaQ3IZFc8Yu
Okpse3fU0llKh8oYQ5R11LyrAAnosIGRpkyM9wcPwEi6VtJ9PoZ34TYAUY6r
XOEqNNu6LD0dS+vtsppJ4/X7r2gNnOP3F/bDJ+abfgNi/1AwW/Eua3SyZYuz
VEL+btQHXsOw7FzkMlFEm9UkxndXdFy0X626Vq7q9ZJjb4qh2RGGy9jzKxEQ
0aOSWlleiZFIail6bhgIdBVgAvgkNw9WOuFN9vn96XwFlTPtjGQM1zapJzf8
0IKjj1op6Q0msPWGo9YN7qSdxBnODOUHRacjG0z0bKh03A5Cpo3VfZtWs6H3
y7HfFfSTTRByXO8ArjyvQj8y756Vb5eBGhpQe7Hc51BxE67P1LwgAvyhQKAG
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
5jp9Mr5Ocetts/70ye/qt/zmUZZKjjf9Sijd1L+RSv5nb2/+EM8L+Ym4MVlC
e2ZRB91zUX6WxTc4I2UYauxb75jb6Y/nRBH6zBQJPpGpoFpSQZ3cDVenipte
xGoq3e7c7Nz8a9zcOclqJzK6vB+Yjx6Xma+YHqdZnWnqfR4b+4pMBSdueIz7
SZ44wX5wg+upT/WE3plvhJBtp77ApqmmaPhvVLIqHMy29HdTnLTRlLSz4oPn
pxd7XvX+FLqnHfawCqfn+Cv3iFaZmN/dWaW+P7UYpaqa6hv1rEQWzUn3vGA3
V7sa2D1f+TT3y+nKVUKp6yvugAJJ23RdYdv6LCAx/q4eLM+oNXbz+lRCr5nv
6+5BBzdXcovx0CO71WWMOfIJ8sNwT3HJhdDN/R9MKwTpRnVjpJoQZLvCwACI
2ESxdWX37WspWy8MqwPrFFysI7lJlceI83e7vAIfhThytsXz7o6NglmOqiS5
8uWosr+63ftbPF4q8KbBFZTWlRDKep2sSBrYk02wBBsLr4FEQb8PtQx1Wwfj
kWfVAyFQio3KfEQe3VWzIIdsXqgVs9EHvMvXhyW5ykb9bmOoMK9AinHvpBj3
oQMwSDPseZFW1bdepRv1YMz7S3tHOIkz/TWfb2bIEA1bFNHRqSCMZGFkrhYb
A9FZ2x2xHbLo5Qco+4ZX6W645VtztSDM38V9WpcbboJp/oLyeZq7EYn0+6TM
RM7fpEB4ndEF1q8gV7sM5Gu5wWJ5743EPhgAeel2xnkPAIHthdQzo9nOu7LP
MbmeX1MFri9flyfySniQKlLYe7ATNJRVdpvgFECKwTf/FOxnaa9ZDZmuLVlv
rdpgCHOrnjbLXHhUunqloJIXnnnsk4vr6Tv5ooiEOr0pj5TnJ69OML2VITHS
wpWL/23yFQGBGGP9a/0KYRoaepQei5Z0FxP4+Jsv8eUApni+gqm+huxGZp0U
9gcR1SwiwrzltPEQx8iyI7Z5+q8/nL79t/oLCze6L36x/0y++6ephJSETJCI
gFMhg3qcbr3HPchNSt4ZeZk+R24mXWVObv1Fd3PLDKch9nHslLYNEjHLWXLz
Zp1x1NJthhXCtS6JpzaUch1lRu7n3gKsw/0KOMId+EExe4USymoWUTyzYV9k
kusPXjuQTpTflht/qMwwyqq4BAQPVbPwaOhZ/jV3LSt3BP0LN800bALkXXRm
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
KpOn5d2uHX5fRwMcSqm5Tsz84FoTaTWEY8D8g0MmH8GCjXadA1aaZPwut+72
LQcEVmfmjGeWO2bk7pmV6Vpchb0lS4g4pNVzg9yFAYg0Bfj2zVMlSVShwjuq
i6RYANkWTSMyLSCJ8B/z4j9b3AoQJW8I8BgJFOVpPkCNNyCNQGCUH9sMeMSb
vm4F9nkVthbYNsAvGGK69jI5XXLwGBSPVAAUWn5ph0Q85DaeYEo//3Z+BcyI
pPXo9Kwb1CNHqtxcjDbe1701jc3zUsrdoAuGezIE16I1ZCVDZ8ew7j/XDwSK
Q3nRfX2nZUVvgFfRRGXvQuuoJ7gKiDWNUNkpaj/umUYrh2dt2dzTaT/Z23/J
Sm2y/4C/XgZAKQKl9KT9hky7Xh/HlGxAH/D06VCQS0gb4lQ5UmVWr+P8OUBj
ZgrUYR78uABYeC2Seb9c6QvVuPVca3q4zzGrpb0UTbqXJJ7TkD7Ol8uxBJWa
rrcyAOW5mzXUb2cYmYgLO9WKbEJQYV6GBVWcOBZA5cVdEuLgBOW7btMmkakL
xS+cTCQiQwWMtClVL7vhfCXUShcu4oIyir7/5U1LzG9bMbujI8kSZ5Qk3Dt6
sni08qvK0E9+asryIF6KdQcfvioI3rRanGiqnKXpw01pFKzXpbQJBm9Lj/Ea
ZUYdQGyErFy3SqQfFyvhXrDkU3SfQyZM9oAs/OpC7E2hgKkrmBbiOb/MBEK+
254LTyMPHpWT0kLTyRxUrHny+HH9w0rT8Fx5pxLTKZ9WraOMU2MYGCxz24X7
ICLMJHS9YVbshxXjcM7mvXQEx8QApZoeGHa6wJOvv67lFrlrJKL8bWDoqB9s
1409pkXln+MzThZZLZ8bj0A6sxw6pm1f20B90HNTkcb55hF2dzgzA5MJjvwN
UI9cJt7aGlixLbNZ1KYClakDv6isx+XkasMEoZESAH76zstWEm8X/qXVYkEH
OcVcaRdIYlchFdBBnULTiHC5od+cMeal2TNZPLEL4w/d2HCU3d1yoZgYZwiS
E19B/K4j5w3wu+aHttOtTljDQuGyyII9frjCpb1HgeMy5x5MGGcGPOoq2uCK
flhsmc5GlNnhZN1m1LW8vNklRkq+zXLpNqTHxRSRNovCcWxjk/ZsVP07GMQ5
KbmixmfWplt5qe88fkAeYyemqKrdsAWzr7EIzvj55iN4qzX0yEc4PKvnq3iW
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
PW0CR41ExQZ6jMgw9r+Wv444WftpBhSp6VuRhTzHjjgUR+qzGXIP5BkWuo6k
7VRyJ+LqEIQsSe0UFqSlLcdapPcpa+JCcRpq9rl4HpqqhT0n92aBdWqNUDVy
YmlevJg+/NDmQFWHptD3c3W/aY/Wp4BL4tchvslkYHgm82bKiRZI2FwnOb3u
D4/+Gpg++hGv1D8R5N5xDzzurV5ZGP8XFq9c6HevXTm2d3cTAtu9y1rWdFSp
8IKwyVxl9bE9SzgTuCwVPwlKgQ/CfGs2N+aw4kJ1SlqpmytGFT88mPKjc9T0
AY6Pi1HElkY4FJjTJUuUfP2jJufyH1Ok/3E1X0NG8NBJtETogclqLFjwUfQS
ZzwFz96maUAiREA8mjy/Si9KoDzpt3SiNO6wIvKiy1CmfavW9jYDUqfp+43r
kJvblyJF5U8Z5gWUQdozyU+4Y7Ueq88r2R8e/bNpH3AUz1+9e3P69Mx84qfY
uzTaKewl9IJSeh1JMOsXKcK+vE/nES2iSnEdnDw9e/7jCfqInp3m/357mi59
pv/54+t/OSX517PTN29Pn6ZPD0dYW83KY1MDKpr0H2+vHZvz5YfiliiYLK5v
NvO5HobTuU7AtEC5W7cipOKDn1h4J91lc5WOLR0HvWbaJ1mIOoViKKnLyw4w
vblpe8lgDzq0QONXlzaL6ZBd/GwGCZBYTuPSpvGwwHSo1aU4c7960yNnyShO
H2hmOubifXmKZq5XZ9h2aVUCRh8f5sOjxyL4RXiuoPq3q2zwqWBG7bnga7cr
XSVus5/bn55ZBU7u/uL133/HjXOSMN3WJ6dmQ3n62uL6mhvOXr+Ye6MzSeuZ
0y+Uen/5ixvBXTtrG83KgNwZZx85mqDGu/NDZdkxE3FEi5ON7TQacNEya9dg
2htR2FD/DQCAkMsJEHPgLiHTr3Jex06Dl2+HLqCuuCc/MVxd+WUB8McD5o6u
0SgQbum0cF7plKfLjUEVKcolM1LOfWzux8J4P7NQfZLPtJwM6owr9q09qA8G
WGHeJA3HpiHNV0fIIj1/GVnOw3vVjBS8g7MnejUHUz8K02lhx7HQDfphiL/I
5PE7mJlDDZr0qpmTAKbKxi1XPs5ZwT5zsHH73DSz9qOa9m5uUjqiO5O/Zgeu
3k2+RTA0XwBFc3eUI/MYyX6eZl6ajMrXLb13/2XKMHWc/C7R57itg2vJkKUw
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
H6tbaG7nZ0M9TsNQtIdY+/ZOEPuSRFK+Oz9NZlJcgdNUCpCXL5qv52kESfVS
enxWsZ6s7obsgK/I96v2Ilc3CE5hhuCDI4c60VfRw68tKFjwUnPxxMNFy6BY
XOuZd0k8A9VJn2ZvRl62vSjd0lljDUt+TflTuIeyML4wsNnUSxEx9SRDoUmE
GfD8quepIliyV3OJ2ax8l1DYsA/N3bPnj+FI5y58KLUgu8Uahp2Wjmg40PAq
vTpX1knRUkvGsK5VeyvlxdBG9YdV66i7P8iU/cH+LeAn4ossqdNeXf3h8HhP
ti48oH/af0KCoeaDi7OTk3MWmvF5xrfx+HNNONXW8fWILIIuLqM/wytV3bej
9PTqWCiF1gOJmRAk9krte42AVTa9qwZNXWk3UFx3eLYskanZ1RskY3W0rZL8
shd8ySzgfd9OKNSntCb73ODgA+9Pz7l73Pe+6S/rubHXZd71l1UqKYUCKn6y
XJA/ssjCFNQjuMeQCpgOP83IVC9iqWnBFmr+1ZG445v2zoB6EuYHnsvb5q4A
OPKX3XxuVKZawbPMCZu0hIXvYFepuXaRZmo2H+pqBS2+Q55UKHsLEkhgmUTC
6eC7U4o8P317qriDNy9OnvI/Xqa1Mqpfvn72/Lt/O8TeJcVlt7mXeMa28mC5
M5J62VPrr2AJlvcOasoVwqsrQrFP9P1olZEeN3+p9CwhaGlwuDPQV2ACa39M
Akrkx99JCVFW9gFfXP0f//N/yTowSsCI1GVCVkowfurL4dcsBX2SYZuZJKj1
xPbQpk53mqrpmM/OLSF0J5GHgWeePzt9dfb8u+enb98BQvNaZyaQk38A79jM
Ex+yXtBzgdzAYhNocf8uL6R+l76efNfCgoR7po0DSsx5J+PHbHBaIIjovJMq
/oRfhRWsMl9/+csU+CLukXPBUxj0mYdzfc3GmKJsVwd+zeRNLOfjHGF+nM/v
yr2ppZl64D68QTaJ5ivUH5vOD23+VuG1d+uFeLHM9R6XjXHg0l9cpw2OtmLJ
wIYiPbtvUkg8vU5TMLtiv8jUI03HEcDUG+fH1Jz3d3jG4MLLM2a/DsamnIcx
5wE2p8zBeFB5tdBiXz0VF9wK2eV1pOpmPjtj7Y/N8r2qv8kh6N8dSQVzbRoz
9oc/d57zkjtqpjF2KdHX1+4KRSlqykq/lfeT6Ll0gtR1gFmIktF3CjcbBoa/
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
OwIA

-->

</rfc>
