Sourcey
OfficialUse Sourcey's MCP server to research startup credits/deals and Agent Readiness, inspect evidence, track changes, and prepare declarations.
Search current startup credits, discounts, free tiers, grants, perks, and partner offers, with typed eligibility evaluation and explicit unknowns.
Compare 2–10 offers side by side for value, access, eligibility, freshness, and evidence; stacking is explicitly not evaluated.
Inspect provenance for exact offer revisions, including supporting events, observations, freshness, and dispute status.
Track a signed change feed for added, updated, ended, withdrawn, or retired entities/offers/programs/policies/assets.
Search published Agent Readiness report cards by query, entity, product, funnel, or grade.
Get one exact Agent Readiness report card with stages, findings, blockers, remediations, coverage, methods, provenance, and canonical URL.
Prepare a canonical Agent Readiness declaration draft/YAML for submission, with validation diagnostics and no grade assignment.
Discover Sourcey's paid HTTP services, OpenAPI/x402 links, contracts, price floor, and policy URLs without making payments.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Sourceyfind current startup credits and deals for AI companies"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Sourcey
Find evidence-backed startup credits and deals, inspect Agent Readiness report cards, and prepare canonical service declarations from an agent client.
Sourcey is already a hosted Streamable HTTP MCP server:
https://mcp.sourcey.com/mcpGemini CLI can install the hosted connection and bundled sourcey-research skill directly from this repository:
gemini extensions install https://github.com/sourcey/mcp-server --ref main--ref main installs the current extension from the repository. Without it, Gemini CLI selects the older v1.0.0 release archive, which predates the extension manifest. The extension uses the remote Sourcey data MCP; it does not start the npm stdio bridge or invoke Sourcey's separate documentation generator.
Use that URL directly when your client supports remote MCP. This package is the thin stdio bridge for clients that require a local command:
npx -y @sourcey/mcp-server{
"mcpServers": {
"sourcey": {
"command": "npx",
"args": ["-y", "@sourcey/mcp-server"]
}
}
}The bridge downloads no offer dataset and contains no tool implementations. At startup it negotiates with the live Sourcey server, reads the current tool definitions once, and relays tool calls. A data or tool-description update therefore needs no package release.
Agent plugins
This repository also packages the hosted Sourcey connection for Claude, Cursor, Grok Build and portable ChatGPT/Codex distribution. Host manifests are in .claude-plugin/, .cursor-plugin/ and .grok-plugin/; root plugin.json carries Agent Plugins metadata for ChatGPT/Codex. Portable mcp.json and host-specific .mcp.json point directly to https://mcp.sourcey.com/mcp. The bundled Sourcey research skill shows how to check evidence and eligibility before recommending an offer. Marketplace review and live cards are separate from the source package; no ChatGPT/Codex approval is claimed here.
The Claude directory uses the scoped plugin folder at plugins/sourcey. It contains only the hosted connection, research skill, mark, license and README. npm run generate:metadata copies its shared files from the existing root sources; npm run check:metadata verifies the exact file set and bytes. The optional stdio bridge, its dependencies and repository ownership proofs stay outside that installable folder. Other clients can continue using the root manifests.
The plugin connects to Sourcey's startup-offer and Agent Readiness data. It does not run Sourcey's separate documentation generator or pay for Sourcey's HTTP services. The current square mark is in assets/sourcey-mark.png; privacy, terms and support are available on the product site.
Try these prompts after installing the plugin:
“Find current cloud-hosting startup offers in Sourcey. Show the original source, last-checked date, and any eligibility unknowns for three results.”
“Compare two of those offers using their recorded terms and evidence. Separate confirmed conditions from anything Sourcey has not verified.”
“Find a Sourcey Agent Readiness report card and explain the tested workflows, blockers, and claims that remain unverified.”
The Claude plugin's .mcp.json declares only the public HTTPS Sourcey MCP server. It does not run this repository's optional npm stdio bridge or read a local credential. Search terms and record references deliberately sent to the hosted MCP are handled under Sourcey's privacy policy; request bodies are not persisted as product records.
Related MCP server: Vajra
What agents can do
search and compare current startup credits, discounts, free tiers, programs, perks, and deals;
inspect exact evidence, freshness, eligibility unknowns, and the signed change feed;
search and inspect Agent Readiness report cards, including visible grades, five-stage findings, blockers, remediations, methods, coverage, and freshness;
prepare canonical Agent Readiness declaration YAML without assigning a grade; and
discover Sourcey's paid HTTP services and x402 endpoint without paying inside MCP.
Call tools/list for the exact live schemas and descriptions. Sourcey's full agent guide is at
sourcey.com/SKILL.md, its OpenAPI contract is at
api.sourcey.com/openapi.yml, and x402 discovery is at
api.sourcey.com/.well-known/x402.
Boundary
This package performs only two actions: MCP over local stdio and MCP over the configured hosted HTTP endpoint. It has no wallet, payment signer, credentials, telemetry, browser, background daemon, mutable plugin, Catalog data, Agent Readiness executor, or submission authority. Paid work remains on Sourcey's canonical HTTP API.
SOURCEY_MCP_URL may select another HTTPS Sourcey endpoint. Plain HTTP is accepted only for a
loopback test server. URLs containing credentials or fragments are refused.
Development
npm ci
npm run verify
docker build -t sourcey-mcp .The verification path builds from clean output, checks all generated metadata, tests the real HTTP-to-stdio boundary, creates an SBOM, installs the exact packed tarball into a blank project, and repeats protocol introspection from those installed bytes.
MIT. See SECURITY.md and SUPPORT.md for reporting paths.
Available Tools
8 toolscompare_offersCompare offersARead-onlyIdempotentInspect
Compare two to ten startup credit or deal offers side by side, including value, access requirements, eligibility, freshness, and evidence. Unknown eligibility and unsupported stacking remain explicit.
| Name | Required | Description | Default |
|---|---|---|---|
| facts | Yes | Known typed company facts used only for explicit eligibility evaluation; omit unknown facts. | |
| offers | Yes | Two to ten exact startup credit or deal offers to compare in this order. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| stacking | Yes | |
| release_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnly, idempotent, non-destructive, closed-world), so the bar is lower. The description adds real behavioral context: what the comparison surfaces (value, access requirements, eligibility, freshness, evidence) and the epistemic contract that unknown eligibility and unsupported stacking are reported as explicit rather than inferred or fabricated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences with no filler; the scope and compared dimensions are front-loaded, and the caveat about unknown eligibility/stacking closes the sentence without padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present the description need not explain return values, yet it usefully previews them, and annotations carry the safety profile. It is nearly complete, only lacking guidance on offer-slug resolution or error behavior for unresolvable inputs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description restates the two-to-ten range already enforced by minItems/maxItems and echoes the schema's note that eligibility is evaluated explicitly, adding no new syntax, format, or slug-resolution guidance for the offers or facts parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (compare) and resource (startup credit or deal offers) with a precise cardinality bound ('two to ten') and enumerates the compared dimensions. The verb 'compare' implicitly separates it from search_offers, but no sibling is named explicitly, so the differentiation is inferential rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the two-to-ten constraint (you must already hold the offers), but the description never says when to reach for this tool versus search_offers to discover offers first, nor what to do if fewer than two offers are known. Adequate but leaves routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_changesGet changesARead-onlyIdempotentInspect
Track added, changed, withdrawn, and removed startup credits, discounts, free tiers, perks, and deals through Sourcey's signed change feed after an optional cursor.
| Name | Required | Description | Default |
|---|---|---|---|
| cursor | No | Opaque signed cursor returned by the previous change-feed page. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| release_id | Yes | |
| diff_digest | Yes | |
| next_cursor | Yes | |
| snapshot_id | Yes | |
| feed_contract | Yes | |
| retained_from_release_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world behavior, so the safety profile is covered. Beyond that, the description adds that the feed is 'signed' (integrity/authenticity context) and what categories of change it emits, which is genuine added value. It stops short of describing ordering, page size, or how the feed terminates.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded on the verb and the core resource, with no filler. The enumeration of change types and entity types is dense but each item serves to scope what the feed returns.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values and cursor shape need not be explained here, and annotations carry the safety profile. The description covers scope and entity breadth adequately; only paging/ordering details are absent, which is a minor gap for a change-feed tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With a single parameter at 100% schema coverage, the schema already explains that cursor is an opaque signed value from the previous page. The description only adds that the cursor is optional, which is marginal beyond the structured field, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (track) and resource (Sourcey's signed change feed), and enumerates both the change kinds (added, changed, withdrawn, removed) and the entity types covered (credits, discounts, free tiers, perks, deals). This framing is unmistakably distinct from the search/compare siblings, so an agent can select it without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'after an optional cursor' implies this is a paging/polling endpoint, which is useful implied usage guidance. However, it never states when to call this versus search_offers or compare_offers, nor when to omit the cursor (first page), so guidance is only inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_readinessGet an Agent Readiness report cardBRead-onlyIdempotentInspect
Get one published Agent Readiness report card: the job and the interface whose path it grades (none for an F card whose listing names no interface), the letter and its statement, each step's outcome, approvals and human workarounds, the evidence label (probed, or the job verified by a run), discovery facts from the service's own descriptors and llms.txt, the declared surface, policy identity, provenance, and canonical URL. Resolve by immutable profile ID or by one Entity plus exact product and job.
| Name | Required | Description | Default |
|---|---|---|---|
| job | No | ||
| entity | No | Current Sourcey Entity slug or immutable Entity ID. | |
| product | No | ||
| profile_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| release_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered. The description adds one genuinely useful edge case ('none for an F card whose listing names no interface') and notes the evidence label can be probed or run-verified, but it otherwise enumerates return fields that the output schema already carries, and says nothing about failure behavior when no card matches.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sprawling sentence crams an inventory of returned fields (letter, statement, step outcomes, approvals, workarounds, discovery facts, declared surface, policy identity, provenance, canonical URL) ahead of the actual instruction, so the actionable resolution sentence is buried last. Much of that enumeration is redundant with the existing output schema, so the bulk does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the return-value enumeration is unnecessary, and the description does supply the lookup semantics and one edge case. It remains incomplete on not-found behavior, precedence when both profile_id and entity/product are supplied, and any routing against the search/compare siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25% (job and product have patterns but no descriptions), so the description must compensate, and it does: it clarifies that profile_id is an 'immutable' identifier and that the alternative lookup is exactly one Entity plus exact product and job — a grouping constraint the schema does not express. It stops short of explaining the kebab-case pattern or ID form for entity/product, so it isn't fully compensating.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get one published Agent Readiness report card') and scopes it to a single card, which implicitly separates it from the list-style sibling search_readiness. It never names that sibling explicitly, so differentiation requires inference, but the purpose itself is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The closing sentence gives actionable resolution modes ('Resolve by immutable profile ID or by one Entity plus exact product and job'), which is real usage guidance for invocation. However, there is no when-to-use/when-not guidance versus compare_offers, search_readiness, or inspect_evidence, and no mention of what happens if a card isn't published — only implied usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_servicesGet Sourcey paid servicesARead-onlyIdempotentInspect
Discover Sourcey's enabled paid agent services and canonical HTTP resources, including exact request and response contracts, price floor, policy links, and x402 discovery. Payment and durable job status remain on the product HTTP API; this read-only MCP tool never signs, settles, or interprets a payment.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| release_id | Yes | |
| openapi_url | Yes | |
| x402_discovery_url | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds value beyond that by confirming the tool 'never signs, settles, or interprets a payment' and that payment/job status live elsewhere, which sets clear expectations about side effects and scope.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler, and the primary capability is front-loaded before the scope limitation. Every clause carries information: service list, resource contracts, pricing, policy links, and the payment boundary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Return values need not be explained because an output schema exists, and the description still previews what the payload contains. With no inputs, strong annotations, and an explicit scope boundary, everything an agent needs to call this correctly is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so there is nothing for the description to compensate for; the baseline for a no-param tool is 4. The description correctly avoids describing inputs and instead frames the tool as parameterless discovery.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: discovering Sourcey's enabled paid agent services and canonical HTTP resources, with concrete payload contents (request/response contracts, price floor, policy links, x402 discovery). It is clear on its own but never differentiates itself from sibling tools like search_offers or compare_offers, which also concern paid offerings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: an agent infers this is the entry point for enumerating available paid services. The one explicit boundary clause ('Payment and durable job status remain on the product HTTP API') is a useful when-not, but it points outside the MCP server rather than routing to a sibling tool, and no when-to-use condition is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inspect_evidenceInspect evidenceARead-onlyIdempotentInspect
Inspect the provenance behind startup credits and deals. Resolve one to ten exact revisions to supporting events and observations, including freshness and dispute status.
| Name | Required | Description | Default |
|---|---|---|---|
| revision_digests | Yes | Exact offer revision digests returned by Sourcey search or comparison. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| release_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so safety is covered. The description adds genuine behavioral content by disclosing that resolution surfaces freshness and dispute status, telling the agent this is a provenance audit rather than a plain lookup.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with no filler; the domain scope is front-loaded and the resolution behavior follows immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and annotations covering the safety profile, the description only needs to orient the agent — which it does by naming the domain and the returned evidence types. Minor gap: no indication of whether digests from any source are acceptable or what happens with unknown/stale digests.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single parameter is already documented with its source and format. The description restates the cardinality ('one to ten') and the 'exact revisions' expectation, adding emphasis but no format or syntax detail beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb ('Inspect') and resource ('the provenance behind startup credits and deals') and specifies what it resolves revisions into ('supporting events and observations'). It is clear on its own, though it does not explicitly distinguish itself from sibling readers like get_changes or compare_offers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not-to-use guidance is given, and no sibling alternative is named. The closest thing to context is the implicit dependency on revision digests produced by search/comparison, which lives in the schema rather than the description, and even that is not framed as a prerequisite.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prepare_declarationPrepare an Agent Readiness declarationARead-onlyIdempotentInspect
Prepare the canonical Agent Readiness declaration for one service and job: participants, endpoints, API and MCP interfaces, the job operation on each interface that performs the job (the request the probes send with no account, or the operation in the vendor's OpenAPI document where the interface has no public endpoint), and optional job bindings for a verified run. The company must already exist in Sourcey and resolves by exact identity; an unknown company returns identity_allocation_required. Complete declarations use POST /v1/submissions as product agent_readiness. Drafts grant no publication, verification or grade, and startup credits and deals never count as service readiness.
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | ||
| subject | No | ||
| endpoints | Yes | ||
| relations | Yes | ||
| resources | Yes | ||
| interfaces | Yes | ||
| declared_at | No | ||
| job_bindings | Yes | ||
| participants | Yes | ||
| subject_roles | Yes | ||
| job_operations | Yes | ||
| offer_relations | Yes | ||
| authority_intent | No | ||
| command_contract | Yes | ||
| scope_source_uris | Yes | ||
| account_operations | No | ||
| surface_exclusions | Yes | ||
| base_authoring_file | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| release_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the bar is lower, and the description still adds real behavioural context: drafts grant no publication, verification or grade, startup credits and deals never count as service readiness, and unknown companies fail with identity_allocation_required. That is meaningful beyond the structured hints, though it says nothing about payload size limits or how repeated drafts relate to each other.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in the first clause and every subsequent clause carries content — contents, precondition, error semantics, and the draft-versus-published caveat. It is a single dense paragraph with long compound sentences, which costs some readability, but there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be described, and the description covers purpose, preconditions and the draft's lack of force. Against a 12-required/18-parameter nested schema with zero parameter descriptions, however, field-level guidance is thin enough that an agent would still be assembling much of the payload blind.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 18 parameters, so the description carries the burden, and it partially compensates by explaining the trickiest concepts: what a 'job operation' is on each interface (the request probes send with no account, or the vendor OpenAPI operation where no public endpoint exists) and that job bindings are for a verified run. However, many top-level fields (command_contract, scope_source_uris, subject_roles, resources, relations, offer_relations, surface_exclusions, base_authoring_file) remain unaddressed, so the compensation is incomplete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb+resource ('Prepare the canonical Agent Readiness declaration for one service and job') and then enumerates the declaration's contents (participants, endpoints, interfaces, job operations, job bindings), so the agent knows exactly what artifact is produced. It does not explicitly name or differentiate itself from siblings like get_readiness or search_readiness, but the authoring verb versus read verbs makes the distinction inferable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states a precondition ('the company must already exist in Sourcey and resolves by exact identity') and an error outcome ('an unknown company returns identity_allocation_required'), which is useful context, but there is no explicit when-to-use/when-not guidance relative to get_readiness or search_readiness. The mention that complete declarations go through POST /v1/submissions hints at a downstream path but does not route the agent among the sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_offersSearch credits and dealsARead-onlyIdempotentInspect
Search current startup credits and deals, including cloud credits, SaaS discounts, free tiers, grants, perks, and partner offers. Filter by query, vendor, or category and evaluate eligibility from typed company facts; unknowns remain explicit.
| Name | Required | Description | Default |
|---|---|---|---|
| facts | Yes | Known typed company facts used only for explicit eligibility evaluation; omit unknown facts. | |
| limit | No | Maximum results to return; defaults to 10. | |
| query | No | Natural-language search for a startup need, technology, credit, discount, free tier, perk, grant, or deal. | |
| entities | No | Current Entity slugs or immutable Entity IDs to include. | |
| categories | No | Catalog categories to include, such as hosting, databases, or observability. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| total | Yes | |
| truncated | Yes | |
| release_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the safety profile (readOnly, idempotent, non-destructive, closed-world), so the description is not required to restate that. It does add real behavioral context beyond the annotations: results are 'current', eligibility is evaluated only from typed company facts, and unknowns are kept explicit rather than guessed. That last guarantee is meaningful agent-facing behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, purpose first, mechanics second, with no filler. The second sentence is dense (filter axes plus eligibility semantics) but each clause carries information; only the missing sibling contrast leaves room for improvement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need no explanation, and the nested facts object plus all four optional filters are documented in-schema. The description is complete enough to call the tool correctly, falling short only on sibling differentiation and when-not-to-use guidance for a 5-parameter tool in a crowded sibling set.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds a semantic frame over the schema by mapping its filter axes (query, vendor, category, company facts) to the schema's query/entities/categories/facts parameters and clarifying that facts feed eligibility only and that missing facts stay unknown — context the schema's per-property text does not spell out.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Search) and resource (startup credits and deals), then enumerates the covered offer types (cloud credits, SaaS discounts, free tiers, grants, perks, partner offers). The intent is unambiguous, but it never names or contrasts with the obvious sibling compare_offers, leaving the search-vs-compare boundary to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the available filter axes but gives no when-to-use guidance: nothing says when to reach for search_offers rather than compare_offers, get_services, or get_readiness. No prerequisites or exclusions are stated, so usage must be inferred entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_readinessSearch Agent ReadinessARead-onlyIdempotentInspect
Search published Agent Readiness report cards. Each card grades one named job on a vendor's service by where a person or the vendor has to step in on an agent's path to it, from its listing and from probes that send the job's request with no account (or, where its interface has no public endpoint, read the vendor's OpenAPI document for it): one letter, A+ to F, over Discover, Authority, Onboard, Pay, Confirm and Sustain, and how often a person is needed; whether the job itself is reachable (not yet run), verified by a run (proof only, which never changes a step or the letter), or has no machine interface; the evidence label; freshness; and the canonical report URL. Service readiness is separate from startup-credit eligibility.
| Name | Required | Description | Default |
|---|---|---|---|
| job | No | Exact Agent Readiness job key from the job library. | |
| label | No | What the job's outcome rests on: probed (graded from the listing and the probes; the job has not been run) or vendor_run_verified (the account holder ran it and Sourcey verified the attestation). | |
| limit | No | Maximum results to return; defaults to 10. | |
| query | No | Vendor, service, API, product, or job. | |
| entity | No | Current Sourcey Entity slug or immutable Entity ID. | |
| letter | No | Exact published letter. | |
| product | No | Exact Agent Readiness product key. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| total | Yes | |
| truncated | Yes | |
| release_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), and the description adds genuine domain behavior: probes run with no account, OpenAPI documents are read where no public endpoint exists, and a vendor_run_verified label is 'proof only, which never changes a step or the letter.' That last point is a non-obvious behavioral guarantee an agent could otherwise misread as a state mutation. It stops short of describing ordering, pagination, or result shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening clause is well front-loaded, but the remainder is a single run-on sentence with deeply nested parentheticals (probe fallback, the 'proof only' caveat, the six-step enumeration) that is hard to parse at a glance. Content is dense but not structured for scanning; a few sentences would have been more usable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return shape need not be restated, and the description compensates with rich domain framing of letters, steps, labels, and evidence. The one meaningful gap is routing: nothing tells the agent why to pick this search over get_readiness or inspect_evidence, which matters given seven near-neighbor siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real meaning for the enum-ish filters: the letter is 'A+ to F, over Discover, Authority, Onboard, Pay, Confirm and Sustain' and a job's state is reachable/not-yet-run/verified/no-machine-interface. It reinforces the label semantics rather than only repeating the enum. It does not clarify the entity-vs-query interaction or the default 10 / limit 25 behavior beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Search published Agent Readiness report cards') and unpacks what a card contains, so the agent knows this is a search over graded readiness records. It does not name or contrast with the sibling get_readiness (single-record fetch) or inspect_evidence, so the boundary is inferable rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the filter-oriented parameters (job, label, letter, entity, product, query) and the scope note that 'Service readiness is separate from startup-credit eligibility.' However, it never says when to use this vs get_readiness, search_offers, or inspect_evidence, and gives no prerequisites or exclusions for the search itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
6 tool updates
v1.0.1- Changed
compare_offers5 fields changed- added
Output schema / properties / data / items / properties / checkAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "checked_at": { + "format": "date-time", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$", + "type": "string" + }, + "findings": { + "items": { + "additionalProperties": false, + "properties": { + "page": { + "anyOf": [ + { + "format": "uri", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "path": { + "pattern": "^\\/[^\\s]{0,511}$", + "type": "string" + }, + "quote": { + "anyOf": [ + { + "maxLength": 500, + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } + ] + }, + "status": { + "enum": [ + "contradicted", + "unsupported", + "unresolved" + ], + "type": "string" + }, + "subject": { + "additionalProperties": false, + "properties": { + "id": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "kind": { + "enum": [ + "entity", + "program", + "offer" + ], + "type": "string" + } + }, + "required": [ + "kind", + "id" + ], + "type": "object" + } + }, + "required": [ + "subject", + "path", + "status", + "page", + "quote" + ], + "type": "object" + }, + "maxItems": 32, + "type": "array" + }, + "next_due_at": { + "anyOf": [ + { + "format": "date-time", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "proposal": { + "anyOf": [ + { + "format": "uri", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "state": { + "enum": [ + "fresh", + "stale" + ], + "type": "string" + }, + "succeeded_at": { + "anyOf": [ + { + "format": "date-time", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$", + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "checked_at", + "succeeded_at", + "next_due_at", + "state", + "findings", + "proposal" + ], + "type": "object" + }, + { + "type": "null" + } + ] +} - changed
Output schema / properties / data / items / properties / offer / properties / economics / properties / benefits / items / oneOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "benefit_id": { - "pattern": "^[a-z0-9][a-z0-9_-]*$", - "type": "string" - }, - "description": { - "maxLength": 500, - "minLength": 1, - "type": "string" - }, - "duration": { - "oneOf": [ - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "exact", - "type": "string" - }, - "value": { - "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "up-to", - "type": "string" - }, - "value": { - "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "at-least", - "type": "string" - }, - "value": { - "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - } - ] - }, - "kind": { - "const": "credit", - "type": "string" - }, - "value": { - "oneOf": [ - { - "additionalProperties": false, - "properties": { - "amount": { - "additionalProperties": false, - "properties": { - "currency": { - "pattern": "^[A-Z]{3}$", - "type": "string" - }, - "minor_units": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "currency", - "minor_units" - ], - "type": "object" - }, - "kind": { - "const": "exact", - "type": "string" - } - }, - "required": [ - "kind", - "amount" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "amount": { - "additionalProperties": false, - "properties": { - "currency": { - "pattern": "^[A-Z]{3}$", - "type": "string" - }, - "minor_units": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "currency", - "minor_units" - ], - "type": "object" - }, - "kind": { - "const": "up-to", - "type": "string" - } - }, - "required": [ - "kind", - "amount" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "amount": { - "additionalProperties": false, - "properties": { - "currency": { - "pattern": "^[A-Z]{3}$", - "type": "string" - }, - "minor_units": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "currency", - "minor_units" - ], - "type": "object" - }, - "kind": { - "const": "at-least", - "type": "string" - } - }, - "required": [ - "kind", - "amount" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "range", - "type": "string" - }, - "maximum": { - "additionalProperties": false, - "properties": { - "currency": { - "pattern": "^[A-Z]{3}$", - "type": "string" - }, - "minor_units": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "currency", - "minor_units" - ], - "type": "object" - }, - "minimum": { - "additionalProperties": false, - "properties": { - "currency": { - "pattern": "^[A-Z]{3}$", - "type": "string" - }, - "minor_units": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "currency", - "minor_units" - ], - "type": "object" - } - }, - "required": [ - "kind", - "minimum", - "maximum" - ], - "type": "object" - } - ] - } - }, - "required": [ - "benefit_id", - "description", - "kind", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "applies_to": { - "maxLength": 240, - "minLength": 1, - "type": "string" - }, - "benefit_id": { - "pattern": "^[a-z0-9][a-z0-9_-]*$", - "type": "string" - }, - "description": { - "maxLength": 500, - "minLength": 1, - "type": "string" - }, - "duration": { - "oneOf": [ - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "exact", - "type": "string" - }, - "value": { - "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "up-to", - "type": "string" - }, - "value": { - "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "at-least", - "type": "string" - }, - "value": { - "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - } - ] - }, - "kind": { - "const": "discount", - "type": "string" - }, - "percentage": { - "oneOf": [ - { - "additionalProperties": false, - "properties": { - "basis_points": { - "maximum": 10000, - "minimum": 1, - "type": "integer" - }, - "kind": { - "const": "exact", - "type": "string" - } - }, - "required": [ - "kind", - "basis_points" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "basis_points": { - "maximum": 10000, - "minimum": 1, - "type": "integer" - }, - "kind": { - "const": "up-to", - "type": "string" - } - }, - "required": [ - "kind", - "basis_points" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "basis_points": { - "maximum": 10000, - "minimum": 1, - "type": "integer" - }, - "kind": { - "const": "at-least", - "type": "string" - } - }, - "required": [ - "kind", - "basis_points" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "range", - "type": "string" - }, - "maximum_basis_points": { - "maximum": 10000, - "minimum": 1, - "type": "integer" - }, - "minimum_basis_points": { - "maximum": 10000, - "minimum": 1, - "type": "integer" - } - }, - "required": [ - "kind", - "minimum_basis_points", - "maximum_basis_points" - ], - "type": "object" - } - ] - } - }, - "required": [ - "benefit_id", - "description", - "kind", - "percentage" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "benefit_id": { - "pattern": "^[a-z0-9][a-z0-9_-]*$", - "type": "string" - }, - "description": { - "maxLength": 500, - "minLength": 1, - "type": "string" - }, - "duration": { - "oneOf": [ - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "exact", - "type": "string" - }, - "value": { - "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "up-to", - "type": "string" - }, - "value": { - "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "at-least", - "type": "string" - }, - "value": { - "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - } - ] - }, - "kind": { - "const": "cashback", - "type": "string" - }, - "value": { - "oneOf": [ - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "money", - "type": "string" - }, - "value": { - "oneOf": [ - { - "additionalProperties": false, - "properties": { - "amount": { - "additionalProperties": false, - "properties": { - "currency": { - "pattern": "^[A-Z]{3}$", - "type": "string" - }, - "minor_units": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "currency", - "minor_units" - ], - "type": "object" - }, - "kind": { - "const": "exact", - "type": "string" - } - }, - "required": [ - "kind", - "amount" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "amount": { - "additionalProperties": false, - "properties": { - "currency": { - "pattern": "^[A-Z]{3}$", - "type": "string" - }, - "minor_units": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "currency", - "minor_units" - ], - "type": "object" - }, - "kind": { - "const": "up-to", - "type": "string" - } - }, - "required": [ - "kind", - "amount" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "amount": { - "additionalProperties": false, - "properties": { - "currency": { - "pattern": "^[A-Z]{3}$", - "type": "string" - }, - "minor_units": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "currency", - "minor_units" - ], - "type": "object" - }, - "kind": { - "const": "at-least", - "type": "string" - } - }, - "required": [ - "kind", - "amount" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "range", - "type": "string" - }, - "maximum": { - "additionalProperties": false, - "properties": { - "currency": { - "pattern": "^[A-Z]{3}$", - "type": "string" - }, - "minor_units": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "currency", - "minor_units" - ], - "type": "object" - }, - "minimum": { - "additionalProperties": false, - "properties": { - "currency": { - "pattern": "^[A-Z]{3}$", - "type": "string" - }, - "minor_units": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "currency", - "minor_units" - ], - "type": "object" - } - }, - "required": [ - "kind", - "minimum", - "maximum" - ], - "type": "object" - } - ] - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "percentage", - "type": "string" - }, - "value": { - "oneOf": [ - { - "additionalProperties": false, - "properties": { - "basis_points": { - "maximum": 10000, - "minimum": 1, - "type": "integer" - }, - "kind": { - "const": "exact", - "type": "string" - } - }, - "required": [ - "kind", - "basis_points" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "basis_points": { - "maximum": 10000, - "minimum": 1, - "type": "integer" - }, - "kind": { - "const": "up-to", - "type": "string" - } - }, - "required": [ - "kind", - "basis_points" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "basis_points": { - "maximum": 10000, - "minimum": 1, - "type": "integer" - }, - "kind": { - "const": "at-least", - "type": "string" - } - }, - "required": [ - "kind", - "basis_points" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "range", - "type": "string" - }, - "maximum_basis_points": { - "maximum": 10000, - "minimum": 1, - "type": "integer" - }, - "minimum_basis_points": { - "maximum": 10000, - "minimum": 1, - "type": "integer" - } - }, - "required": [ - "kind", - "minimum_basis_points", - "maximum_basis_points" - ], - "type": "object" - } - ] - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - } - ] - } - }, - "required": [ - "benefit_id", - "description", - "kind", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "benefit_id": { - "pattern": "^[a-z0-9][a-z0-9_-]*$", - "type": "string" - }, - "description": { - "maxLength": 500, - "minLength": 1, - "type": "string" - }, - "kind": { - "const": "waiver", - "type": "string" - }, - "waived_item": { - "maxLength": 240, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "benefit_id", - "description", - "kind", - "waived_item" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "benefit_id": { - "pattern": "^[a-z0-9][a-z0-9_-]*$", - "type": "string" - }, - "description": { - "maxLength": 500, - "minLength": 1, - "type": "string" - }, - "duration": { - "oneOf": [ - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "exact", - "type": "string" - }, - "value": { - "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "up-to", - "type": "string" - }, - "value": { - "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "at-least", - "type": "string" - }, - "value": { - "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - } - ] - }, - "kind": { - "const": "free-service", - "type": "string" - }, - "service": { - "maxLength": 240, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "benefit_id", - "description", - "kind", - "service" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "benefit_id": { - "pattern": "^[a-z0-9][a-z0-9_-]*$", - "type": "string" - }, - "description": { - "maxLength": 500, - "minLength": 1, - "type": "string" - }, - "kind": { - "const": "other", - "type": "string" - } - }, - "required": [ - "benefit_id", - "description", - "kind" - ], - "type": "object" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "benefit_id": { + "pattern": "^[a-z0-9][a-z0-9_-]*$", + "type": "string" + }, + "description": { + "maxLength": 500, + "minLength": 1, + "type": "string" + }, + "duration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "exact", + "type": "string" + }, + "value": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "up-to", + "type": "string" + }, + "value": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "at-least", + "type": "string" + }, + "value": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "range", + "type": "string" + }, + "maximum": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + }, + "minimum": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "minimum", + "maximum" + ], + "type": "object" + } + ] + }, + "kind": { + "const": "credit", + "type": "string" + }, + "value": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "amount": { + "additionalProperties": false, + "properties": { + "currency": { + "pattern": "^[A-Z]{3}$", + "type": "string" + }, + "minor_units": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currency", + "minor_units" + ], + "type": "object" + }, + "kind": { + "const": "exact", + "type": "string" + } + }, + "required": [ + "kind", + "amount" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "amount": { + "additionalProperties": false, + "properties": { + "currency": { + "pattern": "^[A-Z]{3}$", + "type": "string" + }, + "minor_units": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currency", + "minor_units" + ], + "type": "object" + }, + "kind": { + "const": "up-to", + "type": "string" + } + }, + "required": [ + "kind", + "amount" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "amount": { + "additionalProperties": false, + "properties": { + "currency": { + "pattern": "^[A-Z]{3}$", + "type": "string" + }, + "minor_units": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currency", + "minor_units" + ], + "type": "object" + }, + "kind": { + "const": "at-least", + "type": "string" + } + }, + "required": [ + "kind", + "amount" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "range", + "type": "string" + }, + "maximum": { + "additionalProperties": false, + "properties": { + "currency": { + "pattern": "^[A-Z]{3}$", + "type": "string" + }, + "minor_units": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currency", + "minor_units" + ], + "type": "object" + }, + "minimum": { + "additionalProperties": false, + "properties": { + "currency": { + "pattern": "^[A-Z]{3}$", + "type": "string" + }, + "minor_units": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currency", + "minor_units" + ], + "type": "object" + } + }, + "required": [ + "kind", + "minimum", + "maximum" + ], + "type": "object" + } + ] + } + }, + "required": [ + "benefit_id", + "description", + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "applies_to": { + "maxLength": 240, + "minLength": 1, + "type": "string" + }, + "benefit_id": { + "pattern": "^[a-z0-9][a-z0-9_-]*$", + "type": "string" + }, + "description": { + "maxLength": 500, + "minLength": 1, + "type": "string" + }, + "duration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "exact", + "type": "string" + }, + "value": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "up-to", + "type": "string" + }, + "value": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "at-least", + "type": "string" + }, + "value": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "range", + "type": "string" + }, + "maximum": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + }, + "minimum": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "minimum", + "maximum" + ], + "type": "object" + } + ] + }, + "kind": { + "const": "discount", + "type": "string" + }, + "percentage": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "basis_points": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "kind": { + "const": "exact", + "type": "string" + } + }, + "required": [ + "kind", + "basis_points" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "basis_points": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "kind": { + "const": "up-to", + "type": "string" + } + }, + "required": [ + "kind", + "basis_points" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "basis_points": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "kind": { + "const": "at-least", + "type": "string" + } + }, + "required": [ + "kind", + "basis_points" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "range", + "type": "string" + }, + "maximum_basis_points": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "minimum_basis_points": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + } + }, + "required": [ + "kind", + "minimum_basis_points", + "maximum_basis_points" + ], + "type": "object" + } + ] + } + }, + "required": [ + "benefit_id", + "description", + "kind", + "percentage" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "benefit_id": { + "pattern": "^[a-z0-9][a-z0-9_-]*$", + "type": "string" + }, + "description": { + "maxLength": 500, + "minLength": 1, + "type": "string" + }, + "duration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "exact", + "type": "string" + }, + "value": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "up-to", + "type": "string" + }, + "value": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "at-least", + "type": "string" + }, + "value": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "range", + "type": "string" + }, + "maximum": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + }, + "minimum": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "minimum", + "maximum" + ], + "type": "object" + } + ] + }, + "kind": { + "const": "cashback", + "type": "string" + }, + "value": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "money", + "type": "string" + }, + "value": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "amount": { + "additionalProperties": false, + "properties": { + "currency": { + "pattern": "^[A-Z]{3}$", + "type": "string" + }, + "minor_units": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currency", + "minor_units" + ], + "type": "object" + }, + "kind": { + "const": "exact", + "type": "string" + } + }, + "required": [ + "kind", + "amount" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "amount": { + "additionalProperties": false, + "properties": { + "currency": { + "pattern": "^[A-Z]{3}$", + "type": "string" + }, + "minor_units": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currency", + "minor_units" + ], + "type": "object" + }, + "kind": { + "const": "up-to", + "type": "string" + } + }, + "required": [ + "kind", + "amount" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "amount": { + "additionalProperties": false, + "properties": { + "currency": { + "pattern": "^[A-Z]{3}$", + "type": "string" + }, + "minor_units": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currency", + "minor_units" + ], + "type": "object" + }, + "kind": { + "const": "at-least", + "type": "string" + } + }, + "required": [ + "kind", + "amount" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "range", + "type": "string" + }, + "maximum": { + "additionalProperties": false, + "properties": { + "currency": { + "pattern": "^[A-Z]{3}$", + "type": "string" + }, + "minor_units": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currency", + "minor_units" + ], + "type": "object" + }, + "minimum": { + "additionalProperties": false, + "properties": { + "currency": { + "pattern": "^[A-Z]{3}$", + "type": "string" + }, + "minor_units": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currency", + "minor_units" + ], + "type": "object" + } + }, + "required": [ + "kind", + "minimum", + "maximum" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "percentage", + "type": "string" + }, + "value": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "basis_points": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "kind": { + "const": "exact", + "type": "string" + } + }, + "required": [ + "kind", + "basis_points" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "basis_points": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "kind": { + "const": "up-to", + "type": "string" + } + }, + "required": [ + "kind", + "basis_points" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "basis_points": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "kind": { + "const": "at-least", + "type": "string" + } + }, + "required": [ + "kind", + "basis_points" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "range", + "type": "string" + }, + "maximum_basis_points": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "minimum_basis_points": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + } + }, + "required": [ + "kind", + "minimum_basis_points", + "maximum_basis_points" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + } + }, + "required": [ + "benefit_id", + "description", + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "benefit_id": { + "pattern": "^[a-z0-9][a-z0-9_-]*$", + "type": "string" + }, + "description": { + "maxLength": 500, + "minLength": 1, + "type": "string" + }, + "kind": { + "const": "waiver", + "type": "string" + }, + "waived_item": { + "maxLength": 240, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "benefit_id", + "description", + "kind", + "waived_item" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "benefit_id": { + "pattern": "^[a-z0-9][a-z0-9_-]*$", + "type": "string" + }, + "description": { + "maxLength": 500, + "minLength": 1, + "type": "string" + }, + "duration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "exact", + "type": "string" + }, + "value": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "up-to", + "type": "string" + }, + "value": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "at-least", + "type": "string" + }, + "value": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "range", + "type": "string" + }, + "maximum": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + }, + "minimum": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "minimum", + "maximum" + ], + "type": "object" + } + ] + }, + "kind": { + "const": "free-service", + "type": "string" + }, + "service": { + "maxLength": 240, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "benefit_id", + "description", + "kind", + "service" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "benefit_id": { + "pattern": "^[a-z0-9][a-z0-9_-]*$", + "type": "string" + }, + "description": { + "maxLength": 500, + "minLength": 1, + "type": "string" + }, + "kind": { + "const": "other", + "type": "string" + } + }, + "required": [ + "benefit_id", + "description", + "kind" + ], + "type": "object" + } +] - added
Output schema / properties / data / items / properties / offer / properties / headlineAdded value: +{ + "additionalProperties": false, + "properties": { + "basis": { + "enum": [ + "typed", + "described" + ], + "type": "string" + }, + "benefit_id": { + "pattern": "^[a-z0-9][a-z0-9_-]*$", + "type": "string" + }, + "figure": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "duration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "exact", + "type": "string" + }, + "value": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "up-to", + "type": "string" + }, + "value": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "at-least", + "type": "string" + }, + "value": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "range", + "type": "string" + }, + "maximum": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + }, + "minimum": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "minimum", + "maximum" + ], + "type": "object" + } + ] + }, + "kind": { + "const": "credit", + "type": "string" + }, + "value": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "amount": { + "additionalProperties": false, + "properties": { + "currency": { + "pattern": "^[A-Z]{3}$", + "type": "string" + }, + "minor_units": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currency", + "minor_units" + ], + "type": "object" + }, + "kind": { + "const": "exact", + "type": "string" + } + }, + "required": [ + "kind", + "amount" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "amount": { + "additionalProperties": false, + "properties": { + "currency": { + "pattern": "^[A-Z]{3}$", + "type": "string" + }, + "minor_units": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currency", + "minor_units" + ], + "type": "object" + }, + "kind": { + "const": "up-to", + "type": "string" + } + }, + "required": [ + "kind", + "amount" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "amount": { + "additionalProperties": false, + "properties": { + "currency": { + "pattern": "^[A-Z]{3}$", + "type": "string" + }, + "minor_units": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currency", + "minor_units" + ], + "type": "object" + }, + "kind": { + "const": "at-least", + "type": "string" + } + }, + "required": [ + "kind", + "amount" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "range", + "type": "string" + }, + "maximum": { + "additionalProperties": false, + "properties": { + "currency": { + "pattern": "^[A-Z]{3}$", + "type": "string" + }, + "minor_units": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currency", + "minor_units" + ], + "type": "object" + }, + "minimum": { + "additionalProperties": false, + "properties": { + "currency": { + "pattern": "^[A-Z]{3}$", + "type": "string" + }, + "minor_units": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currency", + "minor_units" + ], + "type": "object" + } + }, + "required": [ + "kind", + "minimum", + "maximum" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "applies_to": { + "maxLength": 240, + "minLength": 1, + "type": "string" + }, + "duration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "exact", + "type": "string" + }, + "value": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "up-to", + "type": "string" + }, + "value": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "at-least", + "type": "string" + }, + "value": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "range", + "type": "string" + }, + "maximum": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + }, + "minimum": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "minimum", + "maximum" + ], + "type": "object" + } + ] + }, + "kind": { + "const": "discount", + "type": "string" + }, + "percentage": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "basis_points": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "kind": { + "const": "exact", + "type": "string" + } + }, + "required": [ + "kind", + "basis_points" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "basis_points": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "kind": { + "const": "up-to", + "type": "string" + } + }, + "required": [ + "kind", + "basis_points" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "basis_points": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "kind": { + "const": "at-least", + "type": "string" + } + }, + "required": [ + "kind", + "basis_points" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "range", + "type": "string" + }, + "maximum_basis_points": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "minimum_basis_points": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + } + }, + "required": [ + "kind", + "minimum_basis_points", + "maximum_basis_points" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "percentage" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "duration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "exact", + "type": "string" + }, + "value": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "up-to", + "type": "string" + }, + "value": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "at-least", + "type": "string" + }, + "value": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "range", + "type": "string" + }, + "maximum": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + }, + "minimum": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "minimum", + "maximum" + ], + "type": "object" + } + ] + }, + "kind": { + "const": "cashback", + "type": "string" + }, + "value": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "money", + "type": "string" + }, + "value": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "amount": { + "additionalProperties": false, + "properties": { + "currency": { + "pattern": "^[A-Z]{3}$", + "type": "string" + }, + "minor_units": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currency", + "minor_units" + ], + "type": "object" + }, + "kind": { + "const": "exact", + "type": "string" + } + }, + "required": [ + "kind", + "amount" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "amount": { + "additionalProperties": false, + "properties": { + "currency": { + "pattern": "^[A-Z]{3}$", + "type": "string" + }, + "minor_units": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currency", + "minor_units" + ], + "type": "object" + }, + "kind": { + "const": "up-to", + "type": "string" + } + }, + "required": [ + "kind", + "amount" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "amount": { + "additionalProperties": false, + "properties": { + "currency": { + "pattern": "^[A-Z]{3}$", + "type": "string" + }, + "minor_units": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currency", + "minor_units" + ], + "type": "object" + }, + "kind": { + "const": "at-least", + "type": "string" + } + }, + "required": [ + "kind", + "amount" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "range", + "type": "string" + }, + "maximum": { + "additionalProperties": false, + "properties": { + "currency": { + "pattern": "^[A-Z]{3}$", + "type": "string" + }, + "minor_units": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currency", + "minor_units" + ], + "type": "object" + }, + "minimum": { + "additionalProperties": false, + "properties": { + "currency": { + "pattern": "^[A-Z]{3}$", + "type": "string" + }, + "minor_units": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currency", + "minor_units" + ], + "type": "object" + } + }, + "required": [ + "kind", + "minimum", + "maximum" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "percentage", + "type": "string" + }, + "value": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "basis_points": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "kind": { + "const": "exact", + "type": "string" + } + }, + "required": [ + "kind", + "basis_points" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "basis_points": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "kind": { + "const": "up-to", + "type": "string" + } + }, + "required": [ + "kind", + "basis_points" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "basis_points": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "kind": { + "const": "at-least", + "type": "string" + } + }, + "required": [ + "kind", + "basis_points" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "range", + "type": "string" + }, + "maximum_basis_points": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "minimum_basis_points": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + } + }, + "required": [ + "kind", + "minimum_basis_points", + "maximum_basis_points" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "duration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "exact", + "type": "string" + }, + "value": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "up-to", + "type": "string" + }, + "value": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "at-least", + "type": "string" + }, + "value": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "range", + "type": "string" + }, + "maximum": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + }, + "minimum": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "minimum", + "maximum" + ], + "type": "object" + } + ] + }, + "kind": { + "const": "free-service", + "type": "string" + }, + "service": { + "maxLength": 240, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "kind", + "duration" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "waiver", + "type": "string" + }, + "waived_item": { + "maxLength": 240, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "kind", + "waived_item" + ], + "type": "object" + } + ] + }, + "rule": { + "const": "sourcey.offer-headline/v1", + "type": "string" + } + }, + "required": [ + "rule", + "benefit_id", + "basis", + "figure" + ], + "type": "object" +} - changed
Output schema / properties / data / items / properties / offer / properties / lifecycle / enumPrevious value: -[ - "active", - "ended", - "withdrawn" -]New value: +[ + "active", + "paused", + "ended", + "withdrawn" +] - changed
Output schema / properties / data / items / requiredPrevious value: -[ - "entity", - "offer", - "eligibility", - "unresolved", - "evidence", - "canonical_url" -]New value: +[ + "entity", + "offer", + "eligibility", + "unresolved", + "evidence", + "check", + "canonical_url" +]
- Changed
get_readiness43 fields changed- removed
Input schema / properties / funnelRemoved value: -{ - "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", - "type": "string" -} - added
Input schema / properties / jobAdded value: +{ + "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", + "type": "string" +} - added
Output schema / properties / data / properties / freshnessAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "checked_at": { + "format": "date-time", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$", + "type": "string" + }, + "next_due_at": { + "anyOf": [ + { + "format": "date-time", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "state": { + "enum": [ + "fresh", + "stale" + ], + "type": "string" + }, + "succeeded_at": { + "anyOf": [ + { + "format": "date-time", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$", + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "checked_at", + "succeeded_at", + "next_due_at", + "state" + ], + "type": "object" + }, + { + "type": "null" + } + ] +} - removed
Output schema / properties / data / properties / profile / properties / assessment_basisRemoved value: -{ - "additionalProperties": false, - "properties": { - "forbidden_substitutions": { - "items": { - "enum": [ - "captcha_solving", - "human_password_or_session_sharing", - "concealed_agent_identity", - "invented_eligibility", - "unbound_out_of_band_code", - "vendor_policy_bypass", - "unapproved_consequential_action" - ], - "type": "string" - }, - "type": "array" - }, - "initial_state": { - "additionalProperties": false, - "properties": { - "external_identity": { - "const": "only_when_declared_by_exact_funnel", - "type": "string" - }, - "paid_subscription": { - "const": false, - "type": "boolean" - }, - "product_credentials": { - "const": false, - "type": "boolean" - }, - "product_specific_account": { - "const": false, - "type": "boolean" - }, - "provisioned_resource": { - "const": false, - "type": "boolean" - } - }, - "required": [ - "product_specific_account", - "product_credentials", - "paid_subscription", - "provisioned_resource", - "external_identity" - ], - "type": "object" - }, - "observed_assessment": { - "additionalProperties": false, - "properties": { - "allowed_sources": { - "items": { - "enum": [ - "public_documentation", - "public_metadata", - "public_endpoints", - "non_mutating_interaction", - "operator_attested_public_observation" - ], - "type": "string" - }, - "type": "array" - }, - "consequential_claims": { - "const": "certification_required", - "type": "string" - } - }, - "required": [ - "allowed_sources", - "consequential_claims" - ], - "type": "object" - }, - "permitted_human_boundaries": { - "items": { - "enum": [ - "account_ownership_confirmation", - "delegated_identity_consent", - "regulated_approval", - "final_payment_or_irreversible_commitment" - ], - "type": "string" - }, - "type": "array" - }, - "principal": { - "const": "authorized_human_or_organization", - "type": "string" - }, - "required_handoff_properties": { - "items": { - "enum": [ - "exact_disclosure", - "resumable_handoff", - "deterministic_continuation" - ], - "type": "string" - }, - "type": "array" - }, - "success": { - "additionalProperties": false, - "properties": { - "authority": { - "const": "scoped", - "type": "string" - }, - "failure_semantics": { - "const": "documented", - "type": "string" - }, - "interface_coverage": { - "const": "at_least_one_declared_alternative", - "type": "string" - }, - "recovery": { - "const": "supported", - "type": "string" - }, - "target_coverage": { - "const": "every_declared_target", - "type": "string" - } - }, - "required": [ - "target_coverage", - "interface_coverage", - "authority", - "failure_semantics", - "recovery" - ], - "type": "object" - } - }, - "required": [ - "principal", - "initial_state", - "permitted_human_boundaries", - "required_handoff_properties", - "forbidden_substitutions", - "success", - "observed_assessment" - ], - "type": "object" -} - removed
Output schema / properties / data / properties / profile / properties / coverageRemoved value: -{ - "additionalProperties": false, - "properties": { - "barrier_ratio": { - "maximum": 1, - "minimum": 0, - "type": "number" - }, - "barrier_signals": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - }, - "covered_signals": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - }, - "ratio": { - "maximum": 1, - "minimum": 0, - "type": "number" - }, - "required_signals": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - }, - "status": { - "enum": [ - "complete", - "incomplete" - ], - "type": "string" - }, - "verified_barrier_signals": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "status", - "required_signals", - "covered_signals", - "ratio", - "barrier_signals", - "verified_barrier_signals", - "barrier_ratio" - ], - "type": "object" -} - added
Output schema / properties / data / properties / profile / properties / discoveryAdded value: +{ + "items": { + "additionalProperties": false, + "properties": { + "adapter": { + "additionalProperties": false, + "properties": { + "namespace": { + "maxLength": 160, + "minLength": 1, + "type": "string" + }, + "version": { + "maxLength": 80, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "namespace", + "version" + ], + "type": "object" + }, + "attempt_digest": { + "pattern": "^sha256:[a-f0-9]{64}$", + "type": "string" + }, + "descriptor_url": { + "format": "uri", + "type": "string" + }, + "fact": { + "enum": [ + "mcp_endpoint", + "openapi_server", + "oauth_protected_resource", + "oauth_authorization_server", + "ard_entry", + "api_catalog_link", + "agent_documentation", + "agent_skill", + "payment_manifest", + "documentation_route", + "unsupported_descriptor" + ], + "type": "string" + }, + "value": { + "format": "uri", + "type": "string" + } + }, + "required": [ + "fact", + "value", + "descriptor_url", + "attempt_digest", + "adapter" + ], + "type": "object" + }, + "maxItems": 128, + "type": "array" +} - added
Output schema / properties / data / properties / profile / properties / discovery_run_atAdded value: +{ + "anyOf": [ + { + "format": "date-time", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$", + "type": "string" + }, + { + "type": "null" + } + ] +} - removed
Output schema / properties / data / properties / profile / properties / first_blocked_stageRemoved value: -{ - "additionalProperties": false, - "properties": { - "blocker": { - "additionalProperties": false, - "properties": { - "code": { - "maxLength": 160, - "minLength": 1, - "type": "string" - }, - "explanation": { - "maxLength": 500, - "minLength": 1, - "type": "string" - }, - "signal_code": { - "pattern": "^[a-z0-9]+(?:[._-][a-z0-9]+)*$", - "type": "string" - } - }, - "required": [ - "signal_code", - "code", - "explanation" - ], - "type": "object" - }, - "finding": { - "additionalProperties": false, - "properties": { - "condition": { - "maxLength": 160, - "minLength": 1, - "type": "string" - }, - "context": { - "maxLength": 500, - "minLength": 1, - "type": "string" - }, - "finding": { - "maxLength": 280, - "minLength": 1, - "type": "string" - }, - "signal_code": { - "pattern": "^[a-z0-9]+(?:[._-][a-z0-9]+)*$", - "type": "string" - } - }, - "required": [ - "signal_code", - "condition", - "finding" - ], - "type": "object" - }, - "stage": { - "enum": [ - "evaluate", - "sign_up", - "pay", - "provision", - "operate" - ], - "type": "string" - }, - "stage_label": { - "maxLength": 40, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "stage", - "stage_label", - "finding" - ], - "type": "object" -} - removed
Output schema / properties / data / properties / profile / properties / freshnessRemoved value: -{ - "enum": [ - "fresh", - "stale", - "unknown" - ], - "type": "string" -} - added
Output schema / properties / data / properties / profile / properties / grade / additionalPropertiesAdded value: +false - removed
Output schema / properties / data / properties / profile / properties / grade / enumRemoved value: -[ - "A+", - "A", - "B+", - "B", - "C+", - "C", - "D", - "F", - "unrated" -] - added
Output schema / properties / data / properties / profile / properties / grade / propertiesAdded value: +{ + "approvals": { + "items": { + "enum": [ + "discover", + "authority", + "onboard", + "pay", + "confirm", + "sustain" + ], + "type": "string" + }, + "type": "array" + }, + "job": { + "enum": [ + "reachable", + "verified", + "unavailable" + ], + "type": "string" + }, + "letter": { + "enum": [ + "A+", + "A", + "B+", + "B", + "C", + "D", + "F" + ], + "type": "string" + }, + "statement": { + "maxLength": 280, + "minLength": 1, + "type": "string" + }, + "steps": { + "items": { + "additionalProperties": false, + "properties": { + "outcome": { + "enum": [ + "machine", + "not_applicable", + "approval", + "workaround", + "gated", + "not_assessed" + ], + "type": "string" + }, + "step": { + "enum": [ + "discover", + "authority", + "onboard", + "pay", + "confirm", + "sustain" + ], + "type": "string" + }, + "timing": { + "anyOf": [ + { + "enum": [ + "setup", + "recurring" + ], + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "step", + "outcome", + "timing" + ], + "type": "object" + }, + "maxItems": 6, + "minItems": 6, + "type": "array" + }, + "workarounds": { + "items": { + "additionalProperties": false, + "properties": { + "step": { + "enum": [ + "discover", + "authority", + "onboard", + "pay", + "confirm", + "sustain" + ], + "type": "string" + }, + "timing": { + "enum": [ + "setup", + "recurring" + ], + "type": "string" + } + }, + "required": [ + "step", + "timing" + ], + "type": "object" + }, + "type": "array" + } +} - added
Output schema / properties / data / properties / profile / properties / grade / requiredAdded value: +[ + "letter", + "statement", + "steps", + "job", + "approvals", + "workarounds" +] - changed
Output schema / properties / data / properties / profile / properties / grade / typePrevious value: -"string"New value: +"object" - removed
Output schema / properties / data / properties / profile / properties / grade_derivationRemoved value: -{ - "additionalProperties": false, - "properties": { - "coverage_rule": { - "maxLength": 280, - "minLength": 1, - "type": "string" - }, - "explanation": { - "maxLength": 500, - "minLength": 1, - "type": "string" - }, - "label": { - "maxLength": 80, - "minLength": 1, - "type": "string" - }, - "outcome_rule": { - "maxLength": 280, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "label", - "explanation", - "coverage_rule", - "outcome_rule" - ], - "type": "object" -} - added
Output schema / properties / data / properties / profile / properties / interface_idAdded value: +{ + "anyOf": [ + { + "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", + "type": "string" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / data / properties / profile / properties / jobAdded value: +{ + "additionalProperties": false, + "properties": { + "category": { + "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", + "type": "string" + }, + "job_digest": { + "pattern": "^sha256:[a-f0-9]{64}$", + "type": "string" + }, + "job_id": { + "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", + "type": "string" + }, + "name": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "statement": { + "maxLength": 400, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "job_id", + "job_digest", + "category", + "name", + "statement" + ], + "type": "object" +} - added
Output schema / properties / data / properties / profile / properties / labelAdded value: +{ + "enum": [ + "vendor_run_verified", + "probed" + ], + "type": "string" +} - added
Output schema / properties / data / properties / profile / properties / label_run_atAdded value: +{ + "anyOf": [ + { + "format": "date-time", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$", + "type": "string" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / data / properties / profile / properties / last_run_atAdded value: +{ + "format": "date-time", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$", + "type": "string" +} - removed
Output schema / properties / data / properties / profile / properties / last_tested_atRemoved value: -{ - "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$", - "type": "string" -} - changed
Output schema / properties / data / properties / profile / properties / lifecycle / enumPrevious value: -[ - "active", - "ended", - "withdrawn" -]New value: +[ + "active", + "paused", + "ended", + "withdrawn" +] - removed
Output schema / properties / data / properties / profile / properties / limitationsRemoved value: -{ - "items": { - "additionalProperties": false, - "properties": { - "finding": { - "additionalProperties": false, - "properties": { - "condition": { - "maxLength": 160, - "minLength": 1, - "type": "string" - }, - "context": { - "maxLength": 500, - "minLength": 1, - "type": "string" - }, - "finding": { - "maxLength": 280, - "minLength": 1, - "type": "string" - }, - "signal_code": { - "pattern": "^[a-z0-9]+(?:[._-][a-z0-9]+)*$", - "type": "string" - } - }, - "required": [ - "signal_code", - "condition", - "finding" - ], - "type": "object" - }, - "remediation": { - "additionalProperties": false, - "properties": { - "code": { - "maxLength": 160, - "minLength": 1, - "type": "string" - }, - "instruction": { - "maxLength": 500, - "minLength": 1, - "type": "string" - }, - "signal_code": { - "pattern": "^[a-z0-9]+(?:[._-][a-z0-9]+)*$", - "type": "string" - } - }, - "required": [ - "signal_code", - "code", - "instruction" - ], - "type": "object" - }, - "stage": { - "enum": [ - "evaluate", - "sign_up", - "pay", - "provision", - "operate" - ], - "type": "string" - }, - "stage_label": { - "maxLength": 40, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "stage", - "stage_label", - "finding" - ], - "type": "object" - }, - "type": "array" -} - removed
Output schema / properties / data / properties / profile / properties / overall_outcomeRemoved value: -{ - "enum": [ - "pass", - "constrained", - "fail", - "unknown", - "not_applicable" - ], - "type": "string" -} - removed
Output schema / properties / data / properties / profile / properties / primary_findingRemoved value: -{ - "additionalProperties": false, - "properties": { - "blocker": { - "additionalProperties": false, - "properties": { - "code": { - "maxLength": 160, - "minLength": 1, - "type": "string" - }, - "explanation": { - "maxLength": 500, - "minLength": 1, - "type": "string" - }, - "signal_code": { - "pattern": "^[a-z0-9]+(?:[._-][a-z0-9]+)*$", - "type": "string" - } - }, - "required": [ - "signal_code", - "code", - "explanation" - ], - "type": "object" - }, - "finding": { - "additionalProperties": false, - "properties": { - "condition": { - "maxLength": 160, - "minLength": 1, - "type": "string" - }, - "context": { - "maxLength": 500, - "minLength": 1, - "type": "string" - }, - "finding": { - "maxLength": 280, - "minLength": 1, - "type": "string" - }, - "signal_code": { - "pattern": "^[a-z0-9]+(?:[._-][a-z0-9]+)*$", - "type": "string" - } - }, - "required": [ - "signal_code", - "condition", - "finding" - ], - "type": "object" - }, - "public_state": { - "enum": [ - "limited", - "blocked" - ], - "type": "string" - }, - "stage": { - "enum": [ - "evaluate", - "sign_up", - "pay", - "provision", - "operate" - ], - "type": "string" - }, - "stage_label": { - "maxLength": 40, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "stage", - "stage_label", - "public_state", - "finding" - ], - "type": "object" -} - removed
Output schema / properties / data / properties / profile / properties / provenance / properties / coverage_policy_digestRemoved value: -{ - "pattern": "^sha256:[a-f0-9]{64}$", - "type": "string" -} - removed
Output schema / properties / data / properties / profile / properties / provenance / properties / fieldsRemoved value: -{ - "items": { - "additionalProperties": false, - "properties": { - "accepted_proof_kinds": { - "items": { - "enum": [ - "observed", - "derived", - "editorial", - "attested" - ], - "type": "string" - }, - "minItems": 1, - "type": "array" - }, - "contradicting_event_ids": { - "items": { - "pattern": "^sha256:[a-f0-9]{64}$", - "type": "string" - }, - "type": "array" - }, - "evidence_proof_kinds": { - "items": { - "enum": [ - "observed", - "derived", - "editorial", - "attested" - ], - "type": "string" - }, - "type": "array" - }, - "freshness": { - "enum": [ - "fresh", - "stale", - "unknown" - ], - "type": "string" - }, - "latest_observation_at": { - "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$", - "type": "string" - }, - "path": { - "format": "starts_with", - "pattern": "^\\/.*", - "type": "string" - }, - "supporting_event_ids": { - "items": { - "pattern": "^sha256:[a-f0-9]{64}$", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "path", - "supporting_event_ids", - "contradicting_event_ids", - "accepted_proof_kinds", - "evidence_proof_kinds", - "freshness" - ], - "type": "object" - }, - "minItems": 1, - "type": "array" -} - removed
Output schema / properties / data / properties / profile / properties / provenance / properties / freshnessRemoved value: -{ - "enum": [ - "fresh", - "stale", - "unknown" - ], - "type": "string" -} - removed
Output schema / properties / data / properties / profile / properties / provenance / properties / freshness_policy_digestRemoved value: -{ - "pattern": "^sha256:[a-f0-9]{64}$", - "type": "string" -} - changed
Output schema / properties / data / properties / profile / properties / provenance / requiredPrevious value: -[ - "freshness", - "dispute", - "coverage_policy_digest", - "freshness_policy_digest", - "basis_event_ids", - "fields", - "vendor_attestation" -]New value: +[ + "dispute", + "vendor_attestation", + "basis_event_ids" +] - removed
Output schema / properties / data / properties / profile / properties / public_stateRemoved value: -{ - "enum": [ - "ready", - "limited", - "blocked", - "unknown", - "not_applicable" - ], - "type": "string" -} - changed
Output schema / properties / data / properties / profile / properties / publication / properties / reasons / items / enumPrevious value: -[ - "lifecycle_not_active", - "coverage_incomplete", - "required_evidence_not_supported", - "freshness_not_fresh", - "unrated", - "no_useful_finding", - "open_dispute" -]New value: +[ + "lifecycle_not_active", + "open_dispute" +] - added
Output schema / properties / data / properties / profile / properties / runAdded value: +{ + "additionalProperties": false, + "properties": { + "assertions": { + "items": { + "additionalProperties": false, + "properties": { + "assertion": { + "pattern": "^[a-z][a-z0-9_]{0,63}$", + "type": "string" + }, + "failure": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "check": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "reason": { + "maxLength": 300, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "check", + "reason" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "holds": { + "type": "boolean" + }, + "statement": { + "maxLength": 400, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "assertion", + "holds", + "failure", + "statement" + ], + "type": "object" + }, + "maxItems": 8, + "type": "array" + }, + "discovery_reads": { + "maximum": 128, + "minimum": 0, + "type": "integer" + }, + "exchanges": { + "items": { + "additionalProperties": false, + "properties": { + "exchange_digest": { + "pattern": "^sha256:[a-f0-9]{64}$", + "type": "string" + }, + "finished_at": { + "format": "date-time", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$", + "type": "string" + }, + "method": { + "enum": [ + "GET", + "HEAD", + "POST", + "PUT", + "PATCH", + "DELETE" + ], + "type": "string" + }, + "purpose": { + "enum": [ + "delegation", + "job", + "cleanup", + "probe_operation", + "probe_malformed", + "probe_resource_metadata", + "probe_authorization_server", + "probe_client_registration", + "probe_authorization", + "probe_page" + ], + "type": "string" + }, + "response": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "content_bytes": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "content_digest": { + "pattern": "^sha256:[a-f0-9]{64}$", + "type": "string" + }, + "media_type": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "status": { + "maximum": 999, + "minimum": 100, + "type": "integer" + } + }, + "required": [ + "status", + "media_type", + "content_bytes", + "content_digest" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "role": { + "enum": [ + "request", + "session_opening", + "tool_listing", + "session_close" + ], + "type": "string" + }, + "started_at": { + "format": "date-time", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$", + "type": "string" + }, + "transport_error": { + "anyOf": [ + { + "maxLength": 40, + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } + ] + }, + "url": { + "format": "uri", + "type": "string" + } + }, + "required": [ + "purpose", + "role", + "method", + "url", + "started_at", + "finished_at", + "response", + "transport_error", + "exchange_digest" + ], + "type": "object" + }, + "maxItems": 96, + "type": "array" + }, + "finished_at": { + "format": "date-time", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$", + "type": "string" + }, + "started_at": { + "format": "date-time", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$", + "type": "string" + } + }, + "required": [ + "started_at", + "finished_at", + "discovery_reads", + "exchanges", + "assertions" + ], + "type": "object" +} - removed
Output schema / properties / data / properties / profile / properties / scope / properties / funnelRemoved value: -{ - "additionalProperties": false, - "properties": { - "key": { - "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", - "type": "string" - }, - "name": { - "maxLength": 160, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "key", - "name" - ], - "type": "object" -} - added
Output schema / properties / data / properties / profile / properties / scope / properties / jobAdded value: +{ + "additionalProperties": false, + "properties": { + "key": { + "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", + "type": "string" + }, + "name": { + "maxLength": 160, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "key", + "name" + ], + "type": "object" +} - changed
Output schema / properties / data / properties / profile / properties / scope / requiredPrevious value: -[ - "product", - "funnel" -]New value: +[ + "product", + "job" +] - removed
Output schema / properties / data / properties / profile / properties / stagesRemoved value: -{ - "items": { - "additionalProperties": false, - "properties": { - "blockers": { - "items": { - "additionalProperties": false, - "properties": { - "code": { - "maxLength": 160, - "minLength": 1, - "type": "string" - }, - "explanation": { - "maxLength": 500, - "minLength": 1, - "type": "string" - }, - "signal_code": { - "pattern": "^[a-z0-9]+(?:[._-][a-z0-9]+)*$", - "type": "string" - } - }, - "required": [ - "signal_code", - "code", - "explanation" - ], - "type": "object" - }, - "type": "array" - }, - "outcome": { - "enum": [ - "pass", - "constrained", - "fail", - "unknown", - "not_applicable" - ], - "type": "string" - }, - "primary_finding": { - "additionalProperties": false, - "properties": { - "condition": { - "maxLength": 160, - "minLength": 1, - "type": "string" - }, - "context": { - "maxLength": 500, - "minLength": 1, - "type": "string" - }, - "finding": { - "maxLength": 280, - "minLength": 1, - "type": "string" - }, - "signal_code": { - "pattern": "^[a-z0-9]+(?:[._-][a-z0-9]+)*$", - "type": "string" - } - }, - "required": [ - "signal_code", - "condition", - "finding" - ], - "type": "object" - }, - "public_state": { - "enum": [ - "ready", - "limited", - "blocked", - "unknown", - "not_applicable" - ], - "type": "string" - }, - "remediations": { - "items": { - "additionalProperties": false, - "properties": { - "code": { - "maxLength": 160, - "minLength": 1, - "type": "string" - }, - "instruction": { - "maxLength": 500, - "minLength": 1, - "type": "string" - }, - "signal_code": { - "pattern": "^[a-z0-9]+(?:[._-][a-z0-9]+)*$", - "type": "string" - } - }, - "required": [ - "signal_code", - "code", - "instruction" - ], - "type": "object" - }, - "type": "array" - }, - "secondary_context": { - "items": { - "additionalProperties": false, - "properties": { - "condition": { - "maxLength": 160, - "minLength": 1, - "type": "string" - }, - "context": { - "maxLength": 500, - "minLength": 1, - "type": "string" - }, - "finding": { - "maxLength": 280, - "minLength": 1, - "type": "string" - }, - "signal_code": { - "pattern": "^[a-z0-9]+(?:[._-][a-z0-9]+)*$", - "type": "string" - } - }, - "required": [ - "signal_code", - "condition", - "finding" - ], - "type": "object" - }, - "type": "array" - }, - "signals": { - "items": { - "additionalProperties": false, - "properties": { - "assessment_method": { - "additionalProperties": false, - "properties": { - "method_digest": { - "pattern": "^sha256:[a-f0-9]{64}$", - "type": "string" - }, - "name": { - "pattern": "^[a-z0-9]+(?:[._-][a-z0-9]+)*$", - "type": "string" - }, - "version": { - "maxLength": 160, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "name", - "version", - "method_digest" - ], - "type": "object" - }, - "blocker": { - "additionalProperties": false, - "properties": { - "code": { - "maxLength": 160, - "minLength": 1, - "type": "string" - }, - "explanation": { - "maxLength": 500, - "minLength": 1, - "type": "string" - }, - "signal_code": { - "pattern": "^[a-z0-9]+(?:[._-][a-z0-9]+)*$", - "type": "string" - } - }, - "required": [ - "signal_code", - "code", - "explanation" - ], - "type": "object" - }, - "condition": { - "maxLength": 160, - "minLength": 1, - "type": "string" - }, - "determination_bases": { - "items": { - "oneOf": [ - { - "additionalProperties": false, - "properties": { - "artifact_digests": { - "items": { - "pattern": "^sha256:[a-f0-9]{64}$", - "type": "string" - }, - "minItems": 1, - "type": "array" - }, - "captures": { - "items": { - "additionalProperties": false, - "properties": { - "capture_rung": { - "enum": [ - "http", - "headless", - "archive", - "manual" - ], - "type": "string" - }, - "retained_capture_digest": { - "pattern": "^sha256:[a-f0-9]{64}$", - "type": "string" - } - }, - "required": [ - "retained_capture_digest", - "capture_rung" - ], - "type": "object" - }, - "minItems": 1, - "type": "array" - }, - "kind": { - "const": "direct_observation", - "type": "string" - }, - "locators": { - "items": { - "additionalProperties": false, - "properties": { - "artifact_digest": { - "pattern": "^sha256:[a-f0-9]{64}$", - "type": "string" - }, - "end_byte": { - "exclusiveMinimum": 0, - "maximum": 9007199254740991, - "type": "integer" - }, - "start_byte": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - }, - "value_digest": { - "pattern": "^sha256:[a-f0-9]{64}$", - "type": "string" - } - }, - "required": [ - "artifact_digest", - "start_byte", - "end_byte", - "value_digest" - ], - "type": "object" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "kind", - "captures", - "artifact_digests", - "locators" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "artifact_digests": { - "items": { - "pattern": "^sha256:[a-f0-9]{64}$", - "type": "string" - }, - "minItems": 1, - "type": "array" - }, - "captures": { - "items": { - "additionalProperties": false, - "properties": { - "capture_rung": { - "enum": [ - "http", - "headless", - "archive", - "manual" - ], - "type": "string" - }, - "retained_capture_digest": { - "pattern": "^sha256:[a-f0-9]{64}$", - "type": "string" - } - }, - "required": [ - "retained_capture_digest", - "capture_rung" - ], - "type": "object" - }, - "minItems": 1, - "type": "array" - }, - "coverage_scope": { - "enum": [ - "exact_resource", - "tested_surfaces", - "exact_funnel" - ], - "type": "string" - }, - "covered_branches": { - "exclusiveMinimum": 0, - "maximum": 9007199254740991, - "type": "integer" - }, - "covered_surfaces": { - "items": { - "additionalProperties": false, - "properties": { - "node_id": { - "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", - "type": "string" - }, - "node_kind": { - "enum": [ - "resource", - "endpoint", - "interface", - "surface_exclusion" - ], - "type": "string" - } - }, - "required": [ - "node_kind", - "node_id" - ], - "type": "object" - }, - "minItems": 1, - "type": "array" - }, - "kind": { - "const": "bounded_absence", - "type": "string" - } - }, - "required": [ - "kind", - "captures", - "artifact_digests", - "coverage_scope", - "covered_surfaces", - "covered_branches" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "artifact_digests": { - "items": { - "pattern": "^sha256:[a-f0-9]{64}$", - "type": "string" - }, - "minItems": 1, - "type": "array" - }, - "captures": { - "items": { - "additionalProperties": false, - "properties": { - "capture_rung": { - "enum": [ - "http", - "headless", - "archive", - "manual" - ], - "type": "string" - }, - "retained_capture_digest": { - "pattern": "^sha256:[a-f0-9]{64}$", - "type": "string" - } - }, - "required": [ - "retained_capture_digest", - "capture_rung" - ], - "type": "object" - }, - "minItems": 1, - "type": "array" - }, - "kind": { - "const": "explicit_first_party_declaration", - "type": "string" - }, - "locators": { - "items": { - "additionalProperties": false, - "properties": { - "artifact_digest": { - "pattern": "^sha256:[a-f0-9]{64}$", - "type": "string" - }, - "end_byte": { - "exclusiveMinimum": 0, - "maximum": 9007199254740991, - "type": "integer" - }, - "start_byte": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - }, - "value_digest": { - "pattern": "^sha256:[a-f0-9]{64}$", - "type": "string" - } - }, - "required": [ - "artifact_digest", - "start_byte", - "end_byte", - "value_digest" - ], - "type": "object" - }, - "minItems": 1, - "type": "array" - }, - "source_surface": { - "additionalProperties": false, - "properties": { - "node_id": { - "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", - "type": "string" - }, - "node_kind": { - "enum": [ - "resource", - "endpoint", - "interface", - "surface_exclusion" - ], - "type": "string" - } - }, - "required": [ - "node_kind", - "node_id" - ], - "type": "object" - } - }, - "required": [ - "kind", - "captures", - "artifact_digests", - "source_surface", - "locators" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "adapter_digest": { - "pattern": "^sha256:[a-f0-9]{64}$", - "type": "string" - }, - "artifact_digests": { - "items": { - "pattern": "^sha256:[a-f0-9]{64}$", - "type": "string" - }, - "minItems": 1, - "type": "array" - }, - "evidence_record_digest": { - "pattern": "^sha256:[a-f0-9]{64}$", - "type": "string" - }, - "kind": { - "const": "standard_requirement", - "type": "string" - }, - "requirement": { - "additionalProperties": false, - "properties": { - "namespace": { - "pattern": "^[a-z0-9]+(?:[._-][a-z0-9]+)*$", - "type": "string" - }, - "relation": { - "enum": [ - "tests", - "informational-reference" - ], - "type": "string" - }, - "requirement_id": { - "maxLength": 240, - "minLength": 1, - "type": "string" - }, - "version": { - "maxLength": 160, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "namespace", - "version", - "requirement_id", - "relation" - ], - "type": "object" - } - }, - "required": [ - "kind", - "adapter_digest", - "evidence_record_digest", - "requirement", - "artifact_digests" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "certification_receipt_digest": { - "pattern": "^sha256:[a-f0-9]{64}$", - "type": "string" - }, - "kind": { - "const": "certification_receipt", - "type": "string" - } - }, - "required": [ - "kind", - "certification_receipt_digest" - ], - "type": "object" - } - ] - }, - "type": "array" - }, - "evaluation_role": { - "enum": [ - "graded", - "barrier", - "informational" - ], - "type": "string" - }, - "evidence_status": { - "enum": [ - "supported", - "contradicted", - "mixed", - "missing" - ], - "type": "string" - }, - "finding": { - "maxLength": 280, - "minLength": 1, - "type": "string" - }, - "freshness": { - "enum": [ - "fresh", - "stale", - "unknown" - ], - "type": "string" - }, - "note": { - "maxLength": 500, - "minLength": 1, - "type": "string" - }, - "observed_at": { - "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$", - "type": "string" - }, - "outcome": { - "enum": [ - "pass", - "constrained", - "fail", - "unknown", - "not_applicable" - ], - "type": "string" - }, - "public_state": { - "enum": [ - "ready", - "limited", - "blocked", - "unknown", - "not_applicable" - ], - "type": "string" - }, - "remediation": { - "additionalProperties": false, - "properties": { - "code": { - "maxLength": 160, - "minLength": 1, - "type": "string" - }, - "instruction": { - "maxLength": 500, - "minLength": 1, - "type": "string" - }, - "signal_code": { - "pattern": "^[a-z0-9]+(?:[._-][a-z0-9]+)*$", - "type": "string" - } - }, - "required": [ - "signal_code", - "code", - "instruction" - ], - "type": "object" - }, - "required": { - "type": "boolean" - }, - "signal_code": { - "pattern": "^[a-z0-9]+(?:[._-][a-z0-9]+)*$", - "type": "string" - }, - "tested_surfaces": { - "items": { - "additionalProperties": false, - "properties": { - "node_id": { - "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", - "type": "string" - }, - "node_kind": { - "enum": [ - "resource", - "endpoint", - "interface", - "surface_exclusion" - ], - "type": "string" - } - }, - "required": [ - "node_kind", - "node_id" - ], - "type": "object" - }, - "type": "array" - }, - "value": { - "enum": [ - "yes", - "no", - "partial", - "unknown", - "not_applicable" - ], - "type": "string" - }, - "value_label": { - "maxLength": 40, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "signal_code", - "evaluation_role", - "required", - "value", - "value_label", - "outcome", - "public_state", - "condition", - "finding", - "evidence_status", - "freshness", - "tested_surfaces", - "determination_bases" - ], - "type": "object" - }, - "type": "array" - }, - "stage": { - "enum": [ - "evaluate", - "sign_up", - "pay", - "provision", - "operate" - ], - "type": "string" - }, - "stage_label": { - "maxLength": 40, - "minLength": 1, - "type": "string" - }, - "state_label": { - "maxLength": 40, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "stage", - "stage_label", - "outcome", - "public_state", - "state_label", - "primary_finding", - "secondary_context", - "signals", - "blockers", - "remediations" - ], - "type": "object" - }, - "maxItems": 5, - "minItems": 5, - "type": "array" -} - removed
Output schema / properties / data / properties / profile / properties / state_labelRemoved value: -{ - "maxLength": 40, - "minLength": 1, - "type": "string" -} - removed
Output schema / properties / data / properties / profile / properties / surface_catalog / properties / assessment_targetsRemoved value: -{ - "items": { - "additionalProperties": false, - "properties": { - "interface_ids": { - "items": { - "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", - "type": "string" - }, - "minItems": 1, - "type": "array" - }, - "name": { - "maxLength": 240, - "minLength": 1, - "type": "string" - }, - "target_id": { - "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", - "type": "string" - } - }, - "required": [ - "target_id", - "name", - "interface_ids" - ], - "type": "object" - }, - "type": "array" -} - changed
Output schema / properties / data / properties / profile / properties / surface_catalog / properties / endpoints / items / properties / roles / items / enumPrevious value: -[ - "service", - "authorization", - "token", - "registration", - "protected_resource", - "checkout", - "status", - "recovery", - "webhook" -]New value: +[ + "service", + "authorization", + "token", + "registration", + "access_request", + "access_setting", + "claim", + "protected_resource", + "checkout", + "top_up", + "key_renewal", + "status", + "recovery", + "webhook" +] - changed
Output schema / properties / data / properties / profile / properties / surface_catalog / requiredPrevious value: -[ - "assessment_targets", - "participants", - "resources", - "endpoints", - "interfaces", - "relations", - "surface_exclusions" -]New value: +[ + "participants", + "resources", + "endpoints", + "interfaces", + "relations", + "surface_exclusions" +] - changed
Output schema / properties / data / properties / profile / requiredPrevious value: -[ - "agent_readiness_profile_id", - "entity_id", - "scope", - "lifecycle", - "effective_from", - "revision_digest", - "policy_digest", - "policy_version", - "policy_as_of", - "assessment_basis", - "surface_catalog", - "overall_outcome", - "public_state", - "state_label", - "grade", - "grade_derivation", - "publication", - "limitations", - "stages", - "coverage", - "last_tested_at", - "freshness", - "provenance", - "canonical_url", - "projection_digest" -]New value: +[ + "agent_readiness_profile_id", + "entity_id", + "scope", + "surface_catalog", + "lifecycle", + "effective_from", + "revision_digest", + "policy_digest", + "policy_version", + "policy_as_of", + "job", + "interface_id", + "label", + "label_run_at", + "grade", + "discovery", + "discovery_run_at", + "run", + "last_run_at", + "publication", + "provenance", + "canonical_url", + "projection_digest" +] - changed
Output schema / properties / data / requiredPrevious value: -[ - "entity", - "profile" -]New value: +[ + "entity", + "profile", + "freshness" +]
- Changed
get_services1 field changed- changed
Output schema / properties / data / items / properties / floor_price / properties / minor_units / constPrevious value: -4900New value: +2900
- Changed
prepare_declaration13 fields changed- added
Input schema / definitionsAdded value: +{ + "__schema0": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/definitions/__schema0" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/definitions/__schema0" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] + }, + "__schema1": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/definitions/__schema1" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/definitions/__schema1" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] + } +} - added
Input schema / properties / account_operationsAdded value: +{ + "items": { + "additionalProperties": false, + "properties": { + "operation": { + "additionalProperties": false, + "properties": { + "endpoint_id": { + "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", + "type": "string" + }, + "interface_id": { + "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", + "type": "string" + }, + "method": { + "enum": [ + "POST", + "PUT", + "PATCH" + ], + "type": "string" + }, + "operation_id": { + "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", + "type": "string" + }, + "role": { + "enum": [ + "registration", + "top_up" + ], + "type": "string" + }, + "spec_url": { + "format": "uri", + "maxLength": 2048, + "type": "string" + }, + "url": { + "format": "uri", + "maxLength": 2048, + "type": "string" + } + }, + "required": [ + "operation_id", + "interface_id", + "role", + "endpoint_id", + "method", + "url", + "spec_url" + ], + "type": "object" + }, + "source_uris": { + "items": { + "format": "uri", + "type": "string" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "operation", + "source_uris" + ], + "type": "object" + }, + "type": "array" +} - removed
Input schema / properties / assessment_targetsRemoved value: -{ - "default": [], - "items": { - "additionalProperties": false, - "properties": { - "interface_ids": { - "items": { - "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", - "type": "string" - }, - "minItems": 1, - "type": "array" - }, - "name": { - "maxLength": 240, - "minLength": 1, - "type": "string" - }, - "source_uris": { - "items": { - "format": "uri", - "type": "string" - }, - "minItems": 1, - "type": "array" - }, - "target_id": { - "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", - "type": "string" - } - }, - "required": [ - "target_id", - "name", - "interface_ids", - "source_uris" - ], - "type": "object" - }, - "type": "array" -} - changed
Input schema / properties / endpoints / items / properties / roles / items / enumPrevious value: -[ - "service", - "authorization", - "token", - "registration", - "protected_resource", - "checkout", - "status", - "recovery", - "webhook" -]New value: +[ + "service", + "authorization", + "token", + "registration", + "access_request", + "access_setting", + "claim", + "protected_resource", + "checkout", + "top_up", + "key_renewal", + "status", + "recovery", + "webhook" +] - added
Input schema / properties / job_bindingsAdded value: +{ + "default": [], + "items": { + "additionalProperties": false, + "properties": { + "binding": { + "additionalProperties": false, + "properties": { + "assertions": { + "items": { + "additionalProperties": false, + "properties": { + "assertion": { + "pattern": "^[a-z][a-z0-9_]{0,63}$", + "type": "string" + }, + "observations": { + "items": { + "additionalProperties": false, + "properties": { + "call": { + "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", + "type": "string" + }, + "name": { + "pattern": "^[a-z][a-z0-9_]{0,63}$", + "type": "string" + }, + "pointer": { + "maxLength": 256, + "pattern": "^(?:\\/(?:[^~/]|~[01])*)*$", + "type": "string" + }, + "source": { + "enum": [ + "json", + "stream", + "request" + ], + "type": "string" + } + }, + "required": [ + "name", + "call", + "source", + "pointer" + ], + "type": "object" + }, + "maxItems": 8, + "type": "array" + } + }, + "required": [ + "assertion", + "observations" + ], + "type": "object" + }, + "maxItems": 8, + "minItems": 1, + "type": "array" + }, + "binding_id": { + "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", + "type": "string" + }, + "calls": { + "items": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "body": { + "anyOf": [ + { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "json": { + "$ref": "#/definitions/__schema0" + }, + "media_type": { + "const": "application/json", + "type": "string" + } + }, + "required": [ + "media_type", + "json" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "form": { + "items": { + "additionalProperties": false, + "properties": { + "name": { + "pattern": "^[A-Za-z0-9_.-]{1,64}$", + "type": "string" + }, + "value": { + "maxLength": 2048, + "type": "string" + } + }, + "required": [ + "name", + "value" + ], + "type": "object" + }, + "maxItems": 32, + "type": "array" + }, + "media_type": { + "const": "application/x-www-form-urlencoded", + "type": "string" + } + }, + "required": [ + "media_type", + "form" + ], + "type": "object" + } + ] + }, + { + "type": "null" + } + ] + }, + "call_id": { + "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", + "type": "string" + }, + "credentials": { + "items": { + "pattern": "^[a-z][a-z0-9_]{0,63}$", + "type": "string" + }, + "maxItems": 4, + "type": "array" + }, + "endpoint_id": { + "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", + "type": "string" + }, + "headers": { + "items": { + "additionalProperties": false, + "properties": { + "name": { + "pattern": "^[a-z0-9!#$%&'*+.^_`|~-]{1,128}$", + "type": "string" + }, + "value": { + "maxLength": 512, + "type": "string" + } + }, + "required": [ + "name", + "value" + ], + "type": "object" + }, + "maxItems": 16, + "type": "array" + }, + "kind": { + "const": "http", + "type": "string" + }, + "method": { + "enum": [ + "GET", + "HEAD", + "POST", + "PUT", + "PATCH", + "DELETE" + ], + "type": "string" + }, + "url": { + "maxLength": 2048, + "type": "string" + } + }, + "required": [ + "kind", + "call_id", + "endpoint_id", + "method", + "url", + "headers", + "body", + "credentials" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "arguments": { + "$ref": "#/definitions/__schema1" + }, + "call_id": { + "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", + "type": "string" + }, + "credentials": { + "items": { + "pattern": "^[a-z][a-z0-9_]{0,63}$", + "type": "string" + }, + "maxItems": 4, + "type": "array" + }, + "endpoint_id": { + "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", + "type": "string" + }, + "kind": { + "const": "mcp", + "type": "string" + }, + "tool": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "kind", + "call_id", + "endpoint_id", + "tool", + "arguments", + "credentials" + ], + "type": "object" + } + ] + }, + "maxItems": 8, + "minItems": 1, + "type": "array" + }, + "cleanup": { + "items": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "body": { + "anyOf": [ + { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "json": { + "$ref": "#/definitions/__schema0" + }, + "media_type": { + "const": "application/json", + "type": "string" + } + }, + "required": [ + "media_type", + "json" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "form": { + "items": { + "additionalProperties": false, + "properties": { + "name": { + "pattern": "^[A-Za-z0-9_.-]{1,64}$", + "type": "string" + }, + "value": { + "maxLength": 2048, + "type": "string" + } + }, + "required": [ + "name", + "value" + ], + "type": "object" + }, + "maxItems": 32, + "type": "array" + }, + "media_type": { + "const": "application/x-www-form-urlencoded", + "type": "string" + } + }, + "required": [ + "media_type", + "form" + ], + "type": "object" + } + ] + }, + { + "type": "null" + } + ] + }, + "call_id": { + "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", + "type": "string" + }, + "credentials": { + "items": { + "pattern": "^[a-z][a-z0-9_]{0,63}$", + "type": "string" + }, + "maxItems": 4, + "type": "array" + }, + "endpoint_id": { + "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", + "type": "string" + }, + "headers": { + "items": { + "additionalProperties": false, + "properties": { + "name": { + "pattern": "^[a-z0-9!#$%&'*+.^_`|~-]{1,128}$", + "type": "string" + }, + "value": { + "maxLength": 512, + "type": "string" + } + }, + "required": [ + "name", + "value" + ], + "type": "object" + }, + "maxItems": 16, + "type": "array" + }, + "kind": { + "const": "http", + "type": "string" + }, + "method": { + "enum": [ + "GET", + "HEAD", + "POST", + "PUT", + "PATCH", + "DELETE" + ], + "type": "string" + }, + "url": { + "maxLength": 2048, + "type": "string" + } + }, + "required": [ + "kind", + "call_id", + "endpoint_id", + "method", + "url", + "headers", + "body", + "credentials" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "arguments": { + "$ref": "#/definitions/__schema1" + }, + "call_id": { + "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", + "type": "string" + }, + "credentials": { + "items": { + "pattern": "^[a-z][a-z0-9_]{0,63}$", + "type": "string" + }, + "maxItems": 4, + "type": "array" + }, + "endpoint_id": { + "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", + "type": "string" + }, + "kind": { + "const": "mcp", + "type": "string" + }, + "tool": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "kind", + "call_id", + "endpoint_id", + "tool", + "arguments", + "credentials" + ], + "type": "object" + } + ] + }, + "maxItems": 4, + "type": "array" + }, + "delegation": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "none", + "type": "string" + } + }, + "required": [ + "kind" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "credentials": { + "items": { + "additionalProperties": false, + "properties": { + "endpoint_ids": { + "items": { + "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", + "type": "string" + }, + "maxItems": 8, + "minItems": 1, + "type": "array" + }, + "methods": { + "items": { + "enum": [ + "GET", + "HEAD", + "POST", + "PUT", + "PATCH", + "DELETE" + ], + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "placement": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "header_name": { + "const": "authorization", + "type": "string" + }, + "scheme": { + "enum": [ + "bearer", + "basic" + ], + "type": "string" + } + }, + "required": [ + "scheme", + "header_name" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "header_name": { + "pattern": "^[a-z0-9!#$%&'*+.^_`|~-]{1,128}$", + "type": "string" + }, + "scheme": { + "const": "header", + "type": "string" + } + }, + "required": [ + "scheme", + "header_name" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "field": { + "pattern": "^[A-Za-z0-9_.-]{1,64}$", + "type": "string" + }, + "scheme": { + "const": "form", + "type": "string" + } + }, + "required": [ + "scheme", + "field" + ], + "type": "object" + } + ] + }, + "role": { + "pattern": "^[a-z][a-z0-9_]{0,63}$", + "type": "string" + } + }, + "required": [ + "role", + "placement", + "endpoint_ids", + "methods" + ], + "type": "object" + }, + "maxItems": 4, + "minItems": 1, + "type": "array" + }, + "kind": { + "const": "entered", + "type": "string" + } + }, + "required": [ + "kind", + "credentials" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "authorization_endpoint_id": { + "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", + "type": "string" + }, + "client": { + "enum": [ + "client_id_metadata_document", + "dynamic_registration", + "preregistered" + ], + "type": "string" + }, + "keep": { + "items": { + "additionalProperties": false, + "properties": { + "endpoint_ids": { + "items": { + "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", + "type": "string" + }, + "maxItems": 8, + "minItems": 1, + "type": "array" + }, + "expires_in_pointer": { + "maxLength": 256, + "pattern": "^(?:\\/(?:[^~/]|~[01])*)*$", + "type": "string" + }, + "methods": { + "items": { + "enum": [ + "GET", + "HEAD", + "POST", + "PUT", + "PATCH", + "DELETE" + ], + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "placement": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "header_name": { + "const": "authorization", + "type": "string" + }, + "scheme": { + "enum": [ + "bearer", + "basic" + ], + "type": "string" + } + }, + "required": [ + "scheme", + "header_name" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "header_name": { + "pattern": "^[a-z0-9!#$%&'*+.^_`|~-]{1,128}$", + "type": "string" + }, + "scheme": { + "const": "header", + "type": "string" + } + }, + "required": [ + "scheme", + "header_name" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "field": { + "pattern": "^[A-Za-z0-9_.-]{1,64}$", + "type": "string" + }, + "scheme": { + "const": "form", + "type": "string" + } + }, + "required": [ + "scheme", + "field" + ], + "type": "object" + } + ] + }, + "pointer": { + "maxLength": 256, + "pattern": "^(?:\\/(?:[^~/]|~[01])*)*$", + "type": "string" + }, + "role": { + "pattern": "^[a-z][a-z0-9_]{0,63}$", + "type": "string" + } + }, + "required": [ + "role", + "placement", + "endpoint_ids", + "methods", + "pointer" + ], + "type": "object" + }, + "maxItems": 4, + "minItems": 1, + "type": "array" + }, + "kind": { + "const": "oauth", + "type": "string" + }, + "scopes": { + "items": { + "pattern": "^[\\x21\\x23-\\x5B\\x5D-\\x7E]{1,128}$", + "type": "string" + }, + "maxItems": 32, + "type": "array" + }, + "token_endpoint_id": { + "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", + "type": "string" + } + }, + "required": [ + "kind", + "authorization_endpoint_id", + "token_endpoint_id", + "client", + "scopes", + "keep" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "call": { + "additionalProperties": false, + "properties": { + "body": { + "anyOf": [ + { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "json": { + "$ref": "#/definitions/__schema0" + }, + "media_type": { + "const": "application/json", + "type": "string" + } + }, + "required": [ + "media_type", + "json" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "form": { + "items": { + "additionalProperties": false, + "properties": { + "name": { + "pattern": "^[A-Za-z0-9_.-]{1,64}$", + "type": "string" + }, + "value": { + "maxLength": 2048, + "type": "string" + } + }, + "required": [ + "name", + "value" + ], + "type": "object" + }, + "maxItems": 32, + "type": "array" + }, + "media_type": { + "const": "application/x-www-form-urlencoded", + "type": "string" + } + }, + "required": [ + "media_type", + "form" + ], + "type": "object" + } + ] + }, + { + "type": "null" + } + ] + }, + "call_id": { + "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", + "type": "string" + }, + "credentials": { + "items": { + "pattern": "^[a-z][a-z0-9_]{0,63}$", + "type": "string" + }, + "maxItems": 4, + "type": "array" + }, + "endpoint_id": { + "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", + "type": "string" + }, + "headers": { + "items": { + "additionalProperties": false, + "properties": { + "name": { + "pattern": "^[a-z0-9!#$%&'*+.^_`|~-]{1,128}$", + "type": "string" + }, + "value": { + "maxLength": 512, + "type": "string" + } + }, + "required": [ + "name", + "value" + ], + "type": "object" + }, + "maxItems": 16, + "type": "array" + }, + "kind": { + "const": "http", + "type": "string" + }, + "method": { + "enum": [ + "GET", + "HEAD", + "POST", + "PUT", + "PATCH", + "DELETE" + ], + "type": "string" + }, + "url": { + "maxLength": 2048, + "type": "string" + } + }, + "required": [ + "kind", + "call_id", + "endpoint_id", + "method", + "url", + "headers", + "body", + "credentials" + ], + "type": "object" + }, + "from": { + "additionalProperties": false, + "properties": { + "endpoint_ids": { + "items": { + "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", + "type": "string" + }, + "maxItems": 8, + "minItems": 1, + "type": "array" + }, + "methods": { + "items": { + "enum": [ + "GET", + "HEAD", + "POST", + "PUT", + "PATCH", + "DELETE" + ], + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "placement": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "header_name": { + "const": "authorization", + "type": "string" + }, + "scheme": { + "enum": [ + "bearer", + "basic" + ], + "type": "string" + } + }, + "required": [ + "scheme", + "header_name" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "header_name": { + "pattern": "^[a-z0-9!#$%&'*+.^_`|~-]{1,128}$", + "type": "string" + }, + "scheme": { + "const": "header", + "type": "string" + } + }, + "required": [ + "scheme", + "header_name" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "field": { + "pattern": "^[A-Za-z0-9_.-]{1,64}$", + "type": "string" + }, + "scheme": { + "const": "form", + "type": "string" + } + }, + "required": [ + "scheme", + "field" + ], + "type": "object" + } + ] + }, + "role": { + "pattern": "^[a-z][a-z0-9_]{0,63}$", + "type": "string" + } + }, + "required": [ + "role", + "placement", + "endpoint_ids", + "methods" + ], + "type": "object" + }, + "keep": { + "items": { + "additionalProperties": false, + "properties": { + "endpoint_ids": { + "items": { + "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", + "type": "string" + }, + "maxItems": 8, + "minItems": 1, + "type": "array" + }, + "expires_in_pointer": { + "maxLength": 256, + "pattern": "^(?:\\/(?:[^~/]|~[01])*)*$", + "type": "string" + }, + "methods": { + "items": { + "enum": [ + "GET", + "HEAD", + "POST", + "PUT", + "PATCH", + "DELETE" + ], + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "placement": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "header_name": { + "const": "authorization", + "type": "string" + }, + "scheme": { + "enum": [ + "bearer", + "basic" + ], + "type": "string" + } + }, + "required": [ + "scheme", + "header_name" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "header_name": { + "pattern": "^[a-z0-9!#$%&'*+.^_`|~-]{1,128}$", + "type": "string" + }, + "scheme": { + "const": "header", + "type": "string" + } + }, + "required": [ + "scheme", + "header_name" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "field": { + "pattern": "^[A-Za-z0-9_.-]{1,64}$", + "type": "string" + }, + "scheme": { + "const": "form", + "type": "string" + } + }, + "required": [ + "scheme", + "field" + ], + "type": "object" + } + ] + }, + "pointer": { + "maxLength": 256, + "pattern": "^(?:\\/(?:[^~/]|~[01])*)*$", + "type": "string" + }, + "role": { + "pattern": "^[a-z][a-z0-9_]{0,63}$", + "type": "string" + } + }, + "required": [ + "role", + "placement", + "endpoint_ids", + "methods", + "pointer" + ], + "type": "object" + }, + "maxItems": 4, + "minItems": 1, + "type": "array" + }, + "kind": { + "const": "minted", + "type": "string" + } + }, + "required": [ + "kind", + "from", + "call", + "keep" + ], + "type": "object" + } + ] + }, + "interface_id": { + "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", + "type": "string" + }, + "payment": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "none", + "type": "string" + } + }, + "required": [ + "kind" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "prepaid_balance", + "type": "string" + } + }, + "required": [ + "kind" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "per_call", + "type": "string" + }, + "protocol": { + "enum": [ + "x402", + "mpp" + ], + "type": "string" + } + }, + "required": [ + "kind", + "protocol" + ], + "type": "object" + } + ] + } + }, + "required": [ + "binding_id", + "interface_id", + "calls", + "assertions", + "delegation", + "payment", + "cleanup" + ], + "type": "object" + }, + "source_uris": { + "items": { + "format": "uri", + "type": "string" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "binding", + "source_uris" + ], + "type": "object" + }, + "type": "array" +} - added
Input schema / properties / job_operationsAdded value: +{ + "default": [], + "items": { + "additionalProperties": false, + "properties": { + "operation": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "body": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "credential_field": { + "pattern": "^[A-Za-z0-9_.-]{1,64}$", + "type": "string" + }, + "media_type": { + "maxLength": 127, + "pattern": "^[a-z]+\\/[a-z0-9][a-z0-9.+-]*$", + "type": "string" + } + }, + "required": [ + "media_type" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "endpoint_id": { + "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", + "type": "string" + }, + "headers": { + "items": { + "additionalProperties": false, + "properties": { + "name": { + "pattern": "^[a-z0-9!#$%&'*+.^_`|~-]{1,128}$", + "type": "string" + }, + "value": { + "pattern": "^[\\x21-\\x7E](?:[\\x20-\\x7E]{0,510}[\\x21-\\x7E])?$", + "type": "string" + } + }, + "required": [ + "name", + "value" + ], + "type": "object" + }, + "maxItems": 8, + "type": "array" + }, + "interface_id": { + "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", + "type": "string" + }, + "kind": { + "const": "http", + "type": "string" + }, + "method": { + "enum": [ + "GET", + "POST", + "PUT", + "PATCH" + ], + "type": "string" + }, + "operation_id": { + "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", + "type": "string" + }, + "spec": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "key_operations": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "create": { + "additionalProperties": false, + "properties": { + "method": { + "enum": [ + "GET", + "POST", + "PUT", + "PATCH", + "DELETE" + ], + "type": "string" + }, + "path": { + "maxLength": 512, + "pattern": "^\\/[\\x21-\\x7E]*$", + "type": "string" + } + }, + "required": [ + "method", + "path" + ], + "type": "object" + }, + "revoke": { + "additionalProperties": false, + "properties": { + "method": { + "enum": [ + "GET", + "POST", + "PUT", + "PATCH", + "DELETE" + ], + "type": "string" + }, + "path": { + "maxLength": 512, + "pattern": "^\\/[\\x21-\\x7E]*$", + "type": "string" + } + }, + "required": [ + "method", + "path" + ], + "type": "object" + } + }, + "required": [ + "create", + "revoke" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "url": { + "format": "uri", + "maxLength": 2048, + "type": "string" + } + }, + "required": [ + "url", + "key_operations" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "url": { + "format": "uri", + "maxLength": 2048, + "type": "string" + } + }, + "required": [ + "operation_id", + "interface_id", + "kind", + "endpoint_id", + "method", + "url", + "headers", + "body", + "spec" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "endpoint_id": { + "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", + "type": "string" + }, + "interface_id": { + "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", + "type": "string" + }, + "kind": { + "const": "mcp", + "type": "string" + }, + "operation_id": { + "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", + "type": "string" + }, + "tool": { + "pattern": "^[A-Za-z0-9_.\\-/]{1,128}$", + "type": "string" + } + }, + "required": [ + "operation_id", + "interface_id", + "kind", + "endpoint_id", + "tool" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "interface_id": { + "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", + "type": "string" + }, + "key_operations": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "create": { + "additionalProperties": false, + "properties": { + "method": { + "enum": [ + "GET", + "POST", + "PUT", + "PATCH", + "DELETE" + ], + "type": "string" + }, + "path": { + "maxLength": 512, + "pattern": "^\\/[\\x21-\\x7E]*$", + "type": "string" + } + }, + "required": [ + "method", + "path" + ], + "type": "object" + }, + "revoke": { + "additionalProperties": false, + "properties": { + "method": { + "enum": [ + "GET", + "POST", + "PUT", + "PATCH", + "DELETE" + ], + "type": "string" + }, + "path": { + "maxLength": 512, + "pattern": "^\\/[\\x21-\\x7E]*$", + "type": "string" + } + }, + "required": [ + "method", + "path" + ], + "type": "object" + } + }, + "required": [ + "create", + "revoke" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "kind": { + "const": "spec", + "type": "string" + }, + "method": { + "enum": [ + "GET", + "POST", + "PUT", + "PATCH", + "DELETE" + ], + "type": "string" + }, + "operation_id": { + "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", + "type": "string" + }, + "path": { + "maxLength": 512, + "pattern": "^\\/[\\x21-\\x7E]*$", + "type": "string" + }, + "spec_url": { + "format": "uri", + "maxLength": 2048, + "type": "string" + } + }, + "required": [ + "operation_id", + "interface_id", + "kind", + "spec_url", + "method", + "path", + "key_operations" + ], + "type": "object" + } + ] + }, + "source_uris": { + "items": { + "format": "uri", + "type": "string" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "operation", + "source_uris" + ], + "type": "object" + }, + "type": "array" +} - removed
Input schema / properties / offer_relations / items / properties / applicable_stagesRemoved value: -{ - "items": { - "enum": [ - "evaluate", - "sign_up", - "pay", - "provision", - "operate" - ], - "type": "string" - }, - "minItems": 1, - "type": "array" -} - changed
Input schema / properties / offer_relations / items / requiredPrevious value: -[ - "offer_relation_proposal_id", - "offer_id", - "purpose", - "applicable_stages", - "source_uris" -]New value: +[ + "offer_relation_proposal_id", + "offer_id", + "purpose", + "source_uris" +] - removed
Input schema / properties / scope / properties / funnelRemoved value: -{ - "additionalProperties": false, - "properties": { - "key": { - "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", - "type": "string" - }, - "name": { - "maxLength": 160, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "key", - "name" - ], - "type": "object" -} - added
Input schema / properties / scope / properties / jobAdded value: +{ + "additionalProperties": false, + "properties": { + "key": { + "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", + "type": "string" + }, + "name": { + "maxLength": 160, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "key", + "name" + ], + "type": "object" +} - changed
Input schema / properties / scope / requiredPrevious value: -[ - "product", - "funnel" -]New value: +[ + "product", + "job" +] - changed
Input schema / requiredPrevious value: -[ - "command_contract", - "scope_source_uris", - "subject_roles", - "assessment_targets", - "participants", - "resources", - "endpoints", - "interfaces", - "relations", - "offer_relations", - "surface_exclusions" -]New value: +[ + "command_contract", + "scope_source_uris", + "subject_roles", + "job_operations", + "job_bindings", + "participants", + "resources", + "endpoints", + "interfaces", + "relations", + "offer_relations", + "surface_exclusions" +] - changed
Output schema / properties / data / oneOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "diagnostics": { - "items": { - "additionalProperties": false, - "properties": { - "code": { - "enum": [ - "required", - "invalid", - "ambiguous_identity", - "cross_entity_offer", - "base_authoring_mismatch" - ], - "type": "string" - }, - "message": { - "maxLength": 500, - "minLength": 1, - "type": "string" - }, - "path": { - "format": "starts_with", - "pattern": "^\\/.*", - "type": "string" - } - }, - "required": [ - "code", - "path", - "message" - ], - "type": "object" - }, - "minItems": 1, - "type": "array" - }, - "status": { - "const": "invalid", - "type": "string" - } - }, - "required": [ - "status", - "diagnostics" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "diagnostics": { - "items": { - "additionalProperties": false, - "properties": { - "code": { - "enum": [ - "required", - "invalid", - "ambiguous_identity", - "cross_entity_offer", - "base_authoring_mismatch" - ], - "type": "string" - }, - "message": { - "maxLength": 500, - "minLength": 1, - "type": "string" - }, - "path": { - "format": "starts_with", - "pattern": "^\\/.*", - "type": "string" - } - }, - "required": [ - "code", - "path", - "message" - ], - "type": "object" - }, - "minItems": 1, - "type": "array" - }, - "status": { - "const": "identity_allocation_required", - "type": "string" - } - }, - "required": [ - "status", - "diagnostics" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "base_release_id": { - "pattern": "^sha256:[a-f0-9]{64}$", - "type": "string" - }, - "diagnostics": { - "items": { - "additionalProperties": false, - "properties": { - "code": { - "enum": [ - "required", - "invalid", - "ambiguous_identity", - "cross_entity_offer", - "base_authoring_mismatch" - ], - "type": "string" - }, - "message": { - "maxLength": 500, - "minLength": 1, - "type": "string" - }, - "path": { - "format": "starts_with", - "pattern": "^\\/.*", - "type": "string" - } - }, - "required": [ - "code", - "path", - "message" - ], - "type": "object" - }, - "minItems": 1, - "type": "array" - }, - "entity_id": { - "pattern": "^ent_[0-9a-hjkmnp-tv-z]{26}$", - "type": "string" - }, - "entity_revision_digest": { - "pattern": "^sha256:[a-f0-9]{64}$", - "type": "string" - }, - "status": { - "const": "incomplete", - "type": "string" - } - }, - "required": [ - "status", - "base_release_id", - "entity_id", - "entity_revision_digest", - "diagnostics" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "base_release_id": { - "pattern": "^sha256:[a-f0-9]{64}$", - "type": "string" - }, - "diagnostics": { - "items": { - "additionalProperties": false, - "properties": { - "code": { - "enum": [ - "required", - "invalid", - "ambiguous_identity", - "cross_entity_offer", - "base_authoring_mismatch" - ], - "type": "string" - }, - "message": { - "maxLength": 500, - "minLength": 1, - "type": "string" - }, - "path": { - "format": "starts_with", - "pattern": "^\\/.*", - "type": "string" - } - }, - "required": [ - "code", - "path", - "message" - ], - "type": "object" - }, - "minItems": 1, - "type": "array" - }, - "entity_id": { - "pattern": "^ent_[0-9a-hjkmnp-tv-z]{26}$", - "type": "string" - }, - "entity_revision_digest": { - "pattern": "^sha256:[a-f0-9]{64}$", - "type": "string" - }, - "status": { - "const": "conflict", - "type": "string" - } - }, - "required": [ - "status", - "base_release_id", - "diagnostics" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "authoring_file": { - "additionalProperties": false, - "properties": { - "content": { - "minLength": 1, - "type": "string" - }, - "content_digest": { - "pattern": "^sha256:[a-f0-9]{64}$", - "type": "string" - }, - "path": { - "pattern": "^entities\\/[a-z0-9]{1,2}\\/[a-z0-9]+(?:-[a-z0-9]+)*\\.yaml$", - "type": "string" - } - }, - "required": [ - "path", - "content", - "content_digest" - ], - "type": "object" - }, - "base_release_id": { - "pattern": "^sha256:[a-f0-9]{64}$", - "type": "string" - }, - "declaration_id": { - "pattern": "^[a-z0-9][a-z0-9_-]*$", - "type": "string" - }, - "diagnostics": { - "items": { - "additionalProperties": false, - "properties": { - "code": { - "enum": [ - "required", - "invalid", - "ambiguous_identity", - "cross_entity_offer", - "base_authoring_mismatch" - ], - "type": "string" - }, - "message": { - "maxLength": 500, - "minLength": 1, - "type": "string" - }, - "path": { - "format": "starts_with", - "pattern": "^\\/.*", - "type": "string" - } - }, - "required": [ - "code", - "path", - "message" - ], - "type": "object" - }, - "maxItems": 0, - "minItems": 0, - "type": "array" - }, - "entity_id": { - "pattern": "^ent_[0-9a-hjkmnp-tv-z]{26}$", - "type": "string" - }, - "entity_revision_digest": { - "pattern": "^sha256:[a-f0-9]{64}$", - "type": "string" - }, - "scope": { - "additionalProperties": false, - "properties": { - "funnel": { - "additionalProperties": false, - "properties": { - "key": { - "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", - "type": "string" - }, - "name": { - "maxLength": 160, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "key", - "name" - ], - "type": "object" - }, - "product": { - "additionalProperties": false, - "properties": { - "key": { - "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", - "type": "string" - }, - "name": { - "maxLength": 160, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "key", - "name" - ], - "type": "object" - } - }, - "required": [ - "product", - "funnel" - ], - "type": "object" - }, - "status": { - "const": "materialized", - "type": "string" - }, - "subject_display": { - "additionalProperties": false, - "properties": { - "name": { - "maxLength": 240, - "minLength": 1, - "type": "string" - }, - "slug": { - "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", - "type": "string" - } - }, - "required": [ - "slug", - "name" - ], - "type": "object" - }, - "submission": { - "additionalProperties": false, - "properties": { - "method": { - "const": "POST", - "type": "string" - }, - "path": { - "const": "/v1/submissions", - "type": "string" - }, - "product": { - "const": "agent_readiness", - "type": "string" - } - }, - "required": [ - "method", - "path", - "product" - ], - "type": "object" - } - }, - "required": [ - "status", - "base_release_id", - "entity_id", - "entity_revision_digest", - "subject_display", - "scope", - "declaration_id", - "authoring_file", - "submission", - "diagnostics" - ], - "type": "object" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "diagnostics": { + "items": { + "additionalProperties": false, + "properties": { + "code": { + "enum": [ + "required", + "invalid", + "ambiguous_identity", + "cross_entity_offer", + "base_authoring_mismatch" + ], + "type": "string" + }, + "message": { + "maxLength": 500, + "minLength": 1, + "type": "string" + }, + "path": { + "format": "starts_with", + "pattern": "^\\/.*", + "type": "string" + } + }, + "required": [ + "code", + "path", + "message" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" + }, + "status": { + "const": "invalid", + "type": "string" + } + }, + "required": [ + "status", + "diagnostics" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "diagnostics": { + "items": { + "additionalProperties": false, + "properties": { + "code": { + "enum": [ + "required", + "invalid", + "ambiguous_identity", + "cross_entity_offer", + "base_authoring_mismatch" + ], + "type": "string" + }, + "message": { + "maxLength": 500, + "minLength": 1, + "type": "string" + }, + "path": { + "format": "starts_with", + "pattern": "^\\/.*", + "type": "string" + } + }, + "required": [ + "code", + "path", + "message" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" + }, + "status": { + "const": "identity_allocation_required", + "type": "string" + } + }, + "required": [ + "status", + "diagnostics" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "base_release_id": { + "pattern": "^sha256:[a-f0-9]{64}$", + "type": "string" + }, + "diagnostics": { + "items": { + "additionalProperties": false, + "properties": { + "code": { + "enum": [ + "required", + "invalid", + "ambiguous_identity", + "cross_entity_offer", + "base_authoring_mismatch" + ], + "type": "string" + }, + "message": { + "maxLength": 500, + "minLength": 1, + "type": "string" + }, + "path": { + "format": "starts_with", + "pattern": "^\\/.*", + "type": "string" + } + }, + "required": [ + "code", + "path", + "message" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" + }, + "entity_id": { + "pattern": "^ent_[0-9a-hjkmnp-tv-z]{26}$", + "type": "string" + }, + "entity_revision_digest": { + "pattern": "^sha256:[a-f0-9]{64}$", + "type": "string" + }, + "status": { + "const": "incomplete", + "type": "string" + } + }, + "required": [ + "status", + "base_release_id", + "entity_id", + "entity_revision_digest", + "diagnostics" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "base_release_id": { + "pattern": "^sha256:[a-f0-9]{64}$", + "type": "string" + }, + "diagnostics": { + "items": { + "additionalProperties": false, + "properties": { + "code": { + "enum": [ + "required", + "invalid", + "ambiguous_identity", + "cross_entity_offer", + "base_authoring_mismatch" + ], + "type": "string" + }, + "message": { + "maxLength": 500, + "minLength": 1, + "type": "string" + }, + "path": { + "format": "starts_with", + "pattern": "^\\/.*", + "type": "string" + } + }, + "required": [ + "code", + "path", + "message" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" + }, + "entity_id": { + "pattern": "^ent_[0-9a-hjkmnp-tv-z]{26}$", + "type": "string" + }, + "entity_revision_digest": { + "pattern": "^sha256:[a-f0-9]{64}$", + "type": "string" + }, + "status": { + "const": "conflict", + "type": "string" + } + }, + "required": [ + "status", + "base_release_id", + "diagnostics" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "authoring_file": { + "additionalProperties": false, + "properties": { + "content": { + "minLength": 1, + "type": "string" + }, + "content_digest": { + "pattern": "^sha256:[a-f0-9]{64}$", + "type": "string" + }, + "path": { + "pattern": "^entities\\/[a-z0-9]{1,2}\\/[a-z0-9]+(?:-[a-z0-9]+)*\\.yaml$", + "type": "string" + } + }, + "required": [ + "path", + "content", + "content_digest" + ], + "type": "object" + }, + "base_release_id": { + "pattern": "^sha256:[a-f0-9]{64}$", + "type": "string" + }, + "declaration_id": { + "pattern": "^[a-z0-9][a-z0-9_-]*$", + "type": "string" + }, + "diagnostics": { + "items": { + "additionalProperties": false, + "properties": { + "code": { + "enum": [ + "required", + "invalid", + "ambiguous_identity", + "cross_entity_offer", + "base_authoring_mismatch" + ], + "type": "string" + }, + "message": { + "maxLength": 500, + "minLength": 1, + "type": "string" + }, + "path": { + "format": "starts_with", + "pattern": "^\\/.*", + "type": "string" + } + }, + "required": [ + "code", + "path", + "message" + ], + "type": "object" + }, + "maxItems": 0, + "minItems": 0, + "type": "array" + }, + "entity_id": { + "pattern": "^ent_[0-9a-hjkmnp-tv-z]{26}$", + "type": "string" + }, + "entity_revision_digest": { + "pattern": "^sha256:[a-f0-9]{64}$", + "type": "string" + }, + "scope": { + "additionalProperties": false, + "properties": { + "job": { + "additionalProperties": false, + "properties": { + "key": { + "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", + "type": "string" + }, + "name": { + "maxLength": 160, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "key", + "name" + ], + "type": "object" + }, + "product": { + "additionalProperties": false, + "properties": { + "key": { + "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", + "type": "string" + }, + "name": { + "maxLength": 160, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "key", + "name" + ], + "type": "object" + } + }, + "required": [ + "product", + "job" + ], + "type": "object" + }, + "status": { + "const": "materialized", + "type": "string" + }, + "subject_display": { + "additionalProperties": false, + "properties": { + "name": { + "maxLength": 240, + "minLength": 1, + "type": "string" + }, + "slug": { + "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", + "type": "string" + } + }, + "required": [ + "slug", + "name" + ], + "type": "object" + }, + "submission": { + "additionalProperties": false, + "properties": { + "method": { + "const": "POST", + "type": "string" + }, + "path": { + "const": "/v1/submissions", + "type": "string" + }, + "product": { + "const": "agent_readiness", + "type": "string" + } + }, + "required": [ + "method", + "path", + "product" + ], + "type": "object" + } + }, + "required": [ + "status", + "base_release_id", + "entity_id", + "entity_revision_digest", + "subject_display", + "scope", + "declaration_id", + "authoring_file", + "submission", + "diagnostics" + ], + "type": "object" + } +]
- Changed
search_offers5 fields changed- added
Output schema / properties / data / items / properties / checkAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "checked_at": { + "format": "date-time", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$", + "type": "string" + }, + "findings": { + "items": { + "additionalProperties": false, + "properties": { + "page": { + "anyOf": [ + { + "format": "uri", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "path": { + "pattern": "^\\/[^\\s]{0,511}$", + "type": "string" + }, + "quote": { + "anyOf": [ + { + "maxLength": 500, + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } + ] + }, + "status": { + "enum": [ + "contradicted", + "unsupported", + "unresolved" + ], + "type": "string" + }, + "subject": { + "additionalProperties": false, + "properties": { + "id": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "kind": { + "enum": [ + "entity", + "program", + "offer" + ], + "type": "string" + } + }, + "required": [ + "kind", + "id" + ], + "type": "object" + } + }, + "required": [ + "subject", + "path", + "status", + "page", + "quote" + ], + "type": "object" + }, + "maxItems": 32, + "type": "array" + }, + "next_due_at": { + "anyOf": [ + { + "format": "date-time", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "proposal": { + "anyOf": [ + { + "format": "uri", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "state": { + "enum": [ + "fresh", + "stale" + ], + "type": "string" + }, + "succeeded_at": { + "anyOf": [ + { + "format": "date-time", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$", + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "checked_at", + "succeeded_at", + "next_due_at", + "state", + "findings", + "proposal" + ], + "type": "object" + }, + { + "type": "null" + } + ] +} - changed
Output schema / properties / data / items / properties / offer / properties / economics / properties / benefits / items / oneOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "benefit_id": { - "pattern": "^[a-z0-9][a-z0-9_-]*$", - "type": "string" - }, - "description": { - "maxLength": 500, - "minLength": 1, - "type": "string" - }, - "duration": { - "oneOf": [ - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "exact", - "type": "string" - }, - "value": { - "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "up-to", - "type": "string" - }, - "value": { - "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "at-least", - "type": "string" - }, - "value": { - "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - } - ] - }, - "kind": { - "const": "credit", - "type": "string" - }, - "value": { - "oneOf": [ - { - "additionalProperties": false, - "properties": { - "amount": { - "additionalProperties": false, - "properties": { - "currency": { - "pattern": "^[A-Z]{3}$", - "type": "string" - }, - "minor_units": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "currency", - "minor_units" - ], - "type": "object" - }, - "kind": { - "const": "exact", - "type": "string" - } - }, - "required": [ - "kind", - "amount" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "amount": { - "additionalProperties": false, - "properties": { - "currency": { - "pattern": "^[A-Z]{3}$", - "type": "string" - }, - "minor_units": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "currency", - "minor_units" - ], - "type": "object" - }, - "kind": { - "const": "up-to", - "type": "string" - } - }, - "required": [ - "kind", - "amount" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "amount": { - "additionalProperties": false, - "properties": { - "currency": { - "pattern": "^[A-Z]{3}$", - "type": "string" - }, - "minor_units": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "currency", - "minor_units" - ], - "type": "object" - }, - "kind": { - "const": "at-least", - "type": "string" - } - }, - "required": [ - "kind", - "amount" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "range", - "type": "string" - }, - "maximum": { - "additionalProperties": false, - "properties": { - "currency": { - "pattern": "^[A-Z]{3}$", - "type": "string" - }, - "minor_units": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "currency", - "minor_units" - ], - "type": "object" - }, - "minimum": { - "additionalProperties": false, - "properties": { - "currency": { - "pattern": "^[A-Z]{3}$", - "type": "string" - }, - "minor_units": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "currency", - "minor_units" - ], - "type": "object" - } - }, - "required": [ - "kind", - "minimum", - "maximum" - ], - "type": "object" - } - ] - } - }, - "required": [ - "benefit_id", - "description", - "kind", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "applies_to": { - "maxLength": 240, - "minLength": 1, - "type": "string" - }, - "benefit_id": { - "pattern": "^[a-z0-9][a-z0-9_-]*$", - "type": "string" - }, - "description": { - "maxLength": 500, - "minLength": 1, - "type": "string" - }, - "duration": { - "oneOf": [ - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "exact", - "type": "string" - }, - "value": { - "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "up-to", - "type": "string" - }, - "value": { - "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "at-least", - "type": "string" - }, - "value": { - "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - } - ] - }, - "kind": { - "const": "discount", - "type": "string" - }, - "percentage": { - "oneOf": [ - { - "additionalProperties": false, - "properties": { - "basis_points": { - "maximum": 10000, - "minimum": 1, - "type": "integer" - }, - "kind": { - "const": "exact", - "type": "string" - } - }, - "required": [ - "kind", - "basis_points" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "basis_points": { - "maximum": 10000, - "minimum": 1, - "type": "integer" - }, - "kind": { - "const": "up-to", - "type": "string" - } - }, - "required": [ - "kind", - "basis_points" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "basis_points": { - "maximum": 10000, - "minimum": 1, - "type": "integer" - }, - "kind": { - "const": "at-least", - "type": "string" - } - }, - "required": [ - "kind", - "basis_points" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "range", - "type": "string" - }, - "maximum_basis_points": { - "maximum": 10000, - "minimum": 1, - "type": "integer" - }, - "minimum_basis_points": { - "maximum": 10000, - "minimum": 1, - "type": "integer" - } - }, - "required": [ - "kind", - "minimum_basis_points", - "maximum_basis_points" - ], - "type": "object" - } - ] - } - }, - "required": [ - "benefit_id", - "description", - "kind", - "percentage" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "benefit_id": { - "pattern": "^[a-z0-9][a-z0-9_-]*$", - "type": "string" - }, - "description": { - "maxLength": 500, - "minLength": 1, - "type": "string" - }, - "duration": { - "oneOf": [ - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "exact", - "type": "string" - }, - "value": { - "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "up-to", - "type": "string" - }, - "value": { - "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "at-least", - "type": "string" - }, - "value": { - "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - } - ] - }, - "kind": { - "const": "cashback", - "type": "string" - }, - "value": { - "oneOf": [ - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "money", - "type": "string" - }, - "value": { - "oneOf": [ - { - "additionalProperties": false, - "properties": { - "amount": { - "additionalProperties": false, - "properties": { - "currency": { - "pattern": "^[A-Z]{3}$", - "type": "string" - }, - "minor_units": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "currency", - "minor_units" - ], - "type": "object" - }, - "kind": { - "const": "exact", - "type": "string" - } - }, - "required": [ - "kind", - "amount" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "amount": { - "additionalProperties": false, - "properties": { - "currency": { - "pattern": "^[A-Z]{3}$", - "type": "string" - }, - "minor_units": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "currency", - "minor_units" - ], - "type": "object" - }, - "kind": { - "const": "up-to", - "type": "string" - } - }, - "required": [ - "kind", - "amount" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "amount": { - "additionalProperties": false, - "properties": { - "currency": { - "pattern": "^[A-Z]{3}$", - "type": "string" - }, - "minor_units": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "currency", - "minor_units" - ], - "type": "object" - }, - "kind": { - "const": "at-least", - "type": "string" - } - }, - "required": [ - "kind", - "amount" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "range", - "type": "string" - }, - "maximum": { - "additionalProperties": false, - "properties": { - "currency": { - "pattern": "^[A-Z]{3}$", - "type": "string" - }, - "minor_units": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "currency", - "minor_units" - ], - "type": "object" - }, - "minimum": { - "additionalProperties": false, - "properties": { - "currency": { - "pattern": "^[A-Z]{3}$", - "type": "string" - }, - "minor_units": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "currency", - "minor_units" - ], - "type": "object" - } - }, - "required": [ - "kind", - "minimum", - "maximum" - ], - "type": "object" - } - ] - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "percentage", - "type": "string" - }, - "value": { - "oneOf": [ - { - "additionalProperties": false, - "properties": { - "basis_points": { - "maximum": 10000, - "minimum": 1, - "type": "integer" - }, - "kind": { - "const": "exact", - "type": "string" - } - }, - "required": [ - "kind", - "basis_points" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "basis_points": { - "maximum": 10000, - "minimum": 1, - "type": "integer" - }, - "kind": { - "const": "up-to", - "type": "string" - } - }, - "required": [ - "kind", - "basis_points" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "basis_points": { - "maximum": 10000, - "minimum": 1, - "type": "integer" - }, - "kind": { - "const": "at-least", - "type": "string" - } - }, - "required": [ - "kind", - "basis_points" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "range", - "type": "string" - }, - "maximum_basis_points": { - "maximum": 10000, - "minimum": 1, - "type": "integer" - }, - "minimum_basis_points": { - "maximum": 10000, - "minimum": 1, - "type": "integer" - } - }, - "required": [ - "kind", - "minimum_basis_points", - "maximum_basis_points" - ], - "type": "object" - } - ] - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - } - ] - } - }, - "required": [ - "benefit_id", - "description", - "kind", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "benefit_id": { - "pattern": "^[a-z0-9][a-z0-9_-]*$", - "type": "string" - }, - "description": { - "maxLength": 500, - "minLength": 1, - "type": "string" - }, - "kind": { - "const": "waiver", - "type": "string" - }, - "waived_item": { - "maxLength": 240, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "benefit_id", - "description", - "kind", - "waived_item" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "benefit_id": { - "pattern": "^[a-z0-9][a-z0-9_-]*$", - "type": "string" - }, - "description": { - "maxLength": 500, - "minLength": 1, - "type": "string" - }, - "duration": { - "oneOf": [ - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "exact", - "type": "string" - }, - "value": { - "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "up-to", - "type": "string" - }, - "value": { - "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "at-least", - "type": "string" - }, - "value": { - "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - } - ] - }, - "kind": { - "const": "free-service", - "type": "string" - }, - "service": { - "maxLength": 240, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "benefit_id", - "description", - "kind", - "service" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "benefit_id": { - "pattern": "^[a-z0-9][a-z0-9_-]*$", - "type": "string" - }, - "description": { - "maxLength": 500, - "minLength": 1, - "type": "string" - }, - "kind": { - "const": "other", - "type": "string" - } - }, - "required": [ - "benefit_id", - "description", - "kind" - ], - "type": "object" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "benefit_id": { + "pattern": "^[a-z0-9][a-z0-9_-]*$", + "type": "string" + }, + "description": { + "maxLength": 500, + "minLength": 1, + "type": "string" + }, + "duration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "exact", + "type": "string" + }, + "value": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "up-to", + "type": "string" + }, + "value": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "at-least", + "type": "string" + }, + "value": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "range", + "type": "string" + }, + "maximum": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + }, + "minimum": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "minimum", + "maximum" + ], + "type": "object" + } + ] + }, + "kind": { + "const": "credit", + "type": "string" + }, + "value": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "amount": { + "additionalProperties": false, + "properties": { + "currency": { + "pattern": "^[A-Z]{3}$", + "type": "string" + }, + "minor_units": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currency", + "minor_units" + ], + "type": "object" + }, + "kind": { + "const": "exact", + "type": "string" + } + }, + "required": [ + "kind", + "amount" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "amount": { + "additionalProperties": false, + "properties": { + "currency": { + "pattern": "^[A-Z]{3}$", + "type": "string" + }, + "minor_units": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currency", + "minor_units" + ], + "type": "object" + }, + "kind": { + "const": "up-to", + "type": "string" + } + }, + "required": [ + "kind", + "amount" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "amount": { + "additionalProperties": false, + "properties": { + "currency": { + "pattern": "^[A-Z]{3}$", + "type": "string" + }, + "minor_units": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currency", + "minor_units" + ], + "type": "object" + }, + "kind": { + "const": "at-least", + "type": "string" + } + }, + "required": [ + "kind", + "amount" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "range", + "type": "string" + }, + "maximum": { + "additionalProperties": false, + "properties": { + "currency": { + "pattern": "^[A-Z]{3}$", + "type": "string" + }, + "minor_units": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currency", + "minor_units" + ], + "type": "object" + }, + "minimum": { + "additionalProperties": false, + "properties": { + "currency": { + "pattern": "^[A-Z]{3}$", + "type": "string" + }, + "minor_units": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currency", + "minor_units" + ], + "type": "object" + } + }, + "required": [ + "kind", + "minimum", + "maximum" + ], + "type": "object" + } + ] + } + }, + "required": [ + "benefit_id", + "description", + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "applies_to": { + "maxLength": 240, + "minLength": 1, + "type": "string" + }, + "benefit_id": { + "pattern": "^[a-z0-9][a-z0-9_-]*$", + "type": "string" + }, + "description": { + "maxLength": 500, + "minLength": 1, + "type": "string" + }, + "duration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "exact", + "type": "string" + }, + "value": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "up-to", + "type": "string" + }, + "value": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "at-least", + "type": "string" + }, + "value": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "range", + "type": "string" + }, + "maximum": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + }, + "minimum": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "minimum", + "maximum" + ], + "type": "object" + } + ] + }, + "kind": { + "const": "discount", + "type": "string" + }, + "percentage": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "basis_points": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "kind": { + "const": "exact", + "type": "string" + } + }, + "required": [ + "kind", + "basis_points" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "basis_points": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "kind": { + "const": "up-to", + "type": "string" + } + }, + "required": [ + "kind", + "basis_points" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "basis_points": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "kind": { + "const": "at-least", + "type": "string" + } + }, + "required": [ + "kind", + "basis_points" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "range", + "type": "string" + }, + "maximum_basis_points": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "minimum_basis_points": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + } + }, + "required": [ + "kind", + "minimum_basis_points", + "maximum_basis_points" + ], + "type": "object" + } + ] + } + }, + "required": [ + "benefit_id", + "description", + "kind", + "percentage" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "benefit_id": { + "pattern": "^[a-z0-9][a-z0-9_-]*$", + "type": "string" + }, + "description": { + "maxLength": 500, + "minLength": 1, + "type": "string" + }, + "duration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "exact", + "type": "string" + }, + "value": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "up-to", + "type": "string" + }, + "value": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "at-least", + "type": "string" + }, + "value": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "range", + "type": "string" + }, + "maximum": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + }, + "minimum": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "minimum", + "maximum" + ], + "type": "object" + } + ] + }, + "kind": { + "const": "cashback", + "type": "string" + }, + "value": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "money", + "type": "string" + }, + "value": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "amount": { + "additionalProperties": false, + "properties": { + "currency": { + "pattern": "^[A-Z]{3}$", + "type": "string" + }, + "minor_units": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currency", + "minor_units" + ], + "type": "object" + }, + "kind": { + "const": "exact", + "type": "string" + } + }, + "required": [ + "kind", + "amount" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "amount": { + "additionalProperties": false, + "properties": { + "currency": { + "pattern": "^[A-Z]{3}$", + "type": "string" + }, + "minor_units": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currency", + "minor_units" + ], + "type": "object" + }, + "kind": { + "const": "up-to", + "type": "string" + } + }, + "required": [ + "kind", + "amount" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "amount": { + "additionalProperties": false, + "properties": { + "currency": { + "pattern": "^[A-Z]{3}$", + "type": "string" + }, + "minor_units": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currency", + "minor_units" + ], + "type": "object" + }, + "kind": { + "const": "at-least", + "type": "string" + } + }, + "required": [ + "kind", + "amount" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "range", + "type": "string" + }, + "maximum": { + "additionalProperties": false, + "properties": { + "currency": { + "pattern": "^[A-Z]{3}$", + "type": "string" + }, + "minor_units": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currency", + "minor_units" + ], + "type": "object" + }, + "minimum": { + "additionalProperties": false, + "properties": { + "currency": { + "pattern": "^[A-Z]{3}$", + "type": "string" + }, + "minor_units": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currency", + "minor_units" + ], + "type": "object" + } + }, + "required": [ + "kind", + "minimum", + "maximum" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "percentage", + "type": "string" + }, + "value": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "basis_points": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "kind": { + "const": "exact", + "type": "string" + } + }, + "required": [ + "kind", + "basis_points" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "basis_points": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "kind": { + "const": "up-to", + "type": "string" + } + }, + "required": [ + "kind", + "basis_points" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "basis_points": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "kind": { + "const": "at-least", + "type": "string" + } + }, + "required": [ + "kind", + "basis_points" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "range", + "type": "string" + }, + "maximum_basis_points": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "minimum_basis_points": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + } + }, + "required": [ + "kind", + "minimum_basis_points", + "maximum_basis_points" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + } + }, + "required": [ + "benefit_id", + "description", + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "benefit_id": { + "pattern": "^[a-z0-9][a-z0-9_-]*$", + "type": "string" + }, + "description": { + "maxLength": 500, + "minLength": 1, + "type": "string" + }, + "kind": { + "const": "waiver", + "type": "string" + }, + "waived_item": { + "maxLength": 240, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "benefit_id", + "description", + "kind", + "waived_item" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "benefit_id": { + "pattern": "^[a-z0-9][a-z0-9_-]*$", + "type": "string" + }, + "description": { + "maxLength": 500, + "minLength": 1, + "type": "string" + }, + "duration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "exact", + "type": "string" + }, + "value": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "up-to", + "type": "string" + }, + "value": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "at-least", + "type": "string" + }, + "value": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "range", + "type": "string" + }, + "maximum": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + }, + "minimum": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "minimum", + "maximum" + ], + "type": "object" + } + ] + }, + "kind": { + "const": "free-service", + "type": "string" + }, + "service": { + "maxLength": 240, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "benefit_id", + "description", + "kind", + "service" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "benefit_id": { + "pattern": "^[a-z0-9][a-z0-9_-]*$", + "type": "string" + }, + "description": { + "maxLength": 500, + "minLength": 1, + "type": "string" + }, + "kind": { + "const": "other", + "type": "string" + } + }, + "required": [ + "benefit_id", + "description", + "kind" + ], + "type": "object" + } +] - added
Output schema / properties / data / items / properties / offer / properties / headlineAdded value: +{ + "additionalProperties": false, + "properties": { + "basis": { + "enum": [ + "typed", + "described" + ], + "type": "string" + }, + "benefit_id": { + "pattern": "^[a-z0-9][a-z0-9_-]*$", + "type": "string" + }, + "figure": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "duration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "exact", + "type": "string" + }, + "value": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "up-to", + "type": "string" + }, + "value": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "at-least", + "type": "string" + }, + "value": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "range", + "type": "string" + }, + "maximum": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + }, + "minimum": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "minimum", + "maximum" + ], + "type": "object" + } + ] + }, + "kind": { + "const": "credit", + "type": "string" + }, + "value": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "amount": { + "additionalProperties": false, + "properties": { + "currency": { + "pattern": "^[A-Z]{3}$", + "type": "string" + }, + "minor_units": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currency", + "minor_units" + ], + "type": "object" + }, + "kind": { + "const": "exact", + "type": "string" + } + }, + "required": [ + "kind", + "amount" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "amount": { + "additionalProperties": false, + "properties": { + "currency": { + "pattern": "^[A-Z]{3}$", + "type": "string" + }, + "minor_units": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currency", + "minor_units" + ], + "type": "object" + }, + "kind": { + "const": "up-to", + "type": "string" + } + }, + "required": [ + "kind", + "amount" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "amount": { + "additionalProperties": false, + "properties": { + "currency": { + "pattern": "^[A-Z]{3}$", + "type": "string" + }, + "minor_units": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currency", + "minor_units" + ], + "type": "object" + }, + "kind": { + "const": "at-least", + "type": "string" + } + }, + "required": [ + "kind", + "amount" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "range", + "type": "string" + }, + "maximum": { + "additionalProperties": false, + "properties": { + "currency": { + "pattern": "^[A-Z]{3}$", + "type": "string" + }, + "minor_units": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currency", + "minor_units" + ], + "type": "object" + }, + "minimum": { + "additionalProperties": false, + "properties": { + "currency": { + "pattern": "^[A-Z]{3}$", + "type": "string" + }, + "minor_units": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currency", + "minor_units" + ], + "type": "object" + } + }, + "required": [ + "kind", + "minimum", + "maximum" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "applies_to": { + "maxLength": 240, + "minLength": 1, + "type": "string" + }, + "duration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "exact", + "type": "string" + }, + "value": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "up-to", + "type": "string" + }, + "value": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "at-least", + "type": "string" + }, + "value": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "range", + "type": "string" + }, + "maximum": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + }, + "minimum": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "minimum", + "maximum" + ], + "type": "object" + } + ] + }, + "kind": { + "const": "discount", + "type": "string" + }, + "percentage": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "basis_points": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "kind": { + "const": "exact", + "type": "string" + } + }, + "required": [ + "kind", + "basis_points" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "basis_points": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "kind": { + "const": "up-to", + "type": "string" + } + }, + "required": [ + "kind", + "basis_points" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "basis_points": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "kind": { + "const": "at-least", + "type": "string" + } + }, + "required": [ + "kind", + "basis_points" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "range", + "type": "string" + }, + "maximum_basis_points": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "minimum_basis_points": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + } + }, + "required": [ + "kind", + "minimum_basis_points", + "maximum_basis_points" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "percentage" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "duration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "exact", + "type": "string" + }, + "value": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "up-to", + "type": "string" + }, + "value": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "at-least", + "type": "string" + }, + "value": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "range", + "type": "string" + }, + "maximum": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + }, + "minimum": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "minimum", + "maximum" + ], + "type": "object" + } + ] + }, + "kind": { + "const": "cashback", + "type": "string" + }, + "value": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "money", + "type": "string" + }, + "value": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "amount": { + "additionalProperties": false, + "properties": { + "currency": { + "pattern": "^[A-Z]{3}$", + "type": "string" + }, + "minor_units": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currency", + "minor_units" + ], + "type": "object" + }, + "kind": { + "const": "exact", + "type": "string" + } + }, + "required": [ + "kind", + "amount" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "amount": { + "additionalProperties": false, + "properties": { + "currency": { + "pattern": "^[A-Z]{3}$", + "type": "string" + }, + "minor_units": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currency", + "minor_units" + ], + "type": "object" + }, + "kind": { + "const": "up-to", + "type": "string" + } + }, + "required": [ + "kind", + "amount" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "amount": { + "additionalProperties": false, + "properties": { + "currency": { + "pattern": "^[A-Z]{3}$", + "type": "string" + }, + "minor_units": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currency", + "minor_units" + ], + "type": "object" + }, + "kind": { + "const": "at-least", + "type": "string" + } + }, + "required": [ + "kind", + "amount" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "range", + "type": "string" + }, + "maximum": { + "additionalProperties": false, + "properties": { + "currency": { + "pattern": "^[A-Z]{3}$", + "type": "string" + }, + "minor_units": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currency", + "minor_units" + ], + "type": "object" + }, + "minimum": { + "additionalProperties": false, + "properties": { + "currency": { + "pattern": "^[A-Z]{3}$", + "type": "string" + }, + "minor_units": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currency", + "minor_units" + ], + "type": "object" + } + }, + "required": [ + "kind", + "minimum", + "maximum" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "percentage", + "type": "string" + }, + "value": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "basis_points": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "kind": { + "const": "exact", + "type": "string" + } + }, + "required": [ + "kind", + "basis_points" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "basis_points": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "kind": { + "const": "up-to", + "type": "string" + } + }, + "required": [ + "kind", + "basis_points" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "basis_points": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "kind": { + "const": "at-least", + "type": "string" + } + }, + "required": [ + "kind", + "basis_points" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "range", + "type": "string" + }, + "maximum_basis_points": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "minimum_basis_points": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + } + }, + "required": [ + "kind", + "minimum_basis_points", + "maximum_basis_points" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "duration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "exact", + "type": "string" + }, + "value": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "up-to", + "type": "string" + }, + "value": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "at-least", + "type": "string" + }, + "value": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "range", + "type": "string" + }, + "maximum": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + }, + "minimum": { + "pattern": "^P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$", + "type": "string" + } + }, + "required": [ + "kind", + "minimum", + "maximum" + ], + "type": "object" + } + ] + }, + "kind": { + "const": "free-service", + "type": "string" + }, + "service": { + "maxLength": 240, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "kind", + "duration" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "waiver", + "type": "string" + }, + "waived_item": { + "maxLength": 240, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "kind", + "waived_item" + ], + "type": "object" + } + ] + }, + "rule": { + "const": "sourcey.offer-headline/v1", + "type": "string" + } + }, + "required": [ + "rule", + "benefit_id", + "basis", + "figure" + ], + "type": "object" +} - changed
Output schema / properties / data / items / properties / offer / properties / lifecycle / enumPrevious value: -[ - "active", - "ended", - "withdrawn" -]New value: +[ + "active", + "paused", + "ended", + "withdrawn" +] - changed
Output schema / properties / data / items / requiredPrevious value: -[ - "entity", - "offer", - "eligibility", - "unresolved", - "evidence", - "canonical_url" -]New value: +[ + "entity", + "offer", + "eligibility", + "unresolved", + "evidence", + "check", + "canonical_url" +]
- Changed
search_readiness35 fields changed- removed
Input schema / properties / funnelRemoved value: -{ - "description": "Exact Agent Readiness service-use funnel key.", - "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", - "type": "string" -} - removed
Input schema / properties / gradeRemoved value: -{ - "description": "Exact published report-card grade.", - "enum": [ - "A+", - "A", - "B+", - "B", - "C+", - "C", - "D", - "F", - "unrated" - ], - "type": "string" -} - added
Input schema / properties / jobAdded value: +{ + "description": "Exact Agent Readiness job key from the job library.", + "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", + "type": "string" +} - added
Input schema / properties / labelAdded value: +{ + "description": "What the job's outcome rests on: probed (graded from the listing and the probes; the job has not been run) or vendor_run_verified (the account holder ran it and Sourcey verified the attestation).", + "enum": [ + "vendor_run_verified", + "probed" + ], + "type": "string" +} - added
Input schema / properties / letterAdded value: +{ + "description": "Exact published letter.", + "enum": [ + "A+", + "A", + "B+", + "B", + "C", + "D", + "F" + ], + "type": "string" +} - changed
Input schema / properties / query / descriptionPrevious value: -"Vendor, service, API, product, capability, blocker, or readiness need."New value: +"Vendor, service, API, product, or job." - added
Output schema / properties / data / items / properties / freshnessAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "checked_at": { + "format": "date-time", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$", + "type": "string" + }, + "next_due_at": { + "anyOf": [ + { + "format": "date-time", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "state": { + "enum": [ + "fresh", + "stale" + ], + "type": "string" + }, + "succeeded_at": { + "anyOf": [ + { + "format": "date-time", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$", + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "checked_at", + "succeeded_at", + "next_due_at", + "state" + ], + "type": "object" + }, + { + "type": "null" + } + ] +} - removed
Output schema / properties / data / items / properties / profile / properties / coverageRemoved value: -{ - "additionalProperties": false, - "properties": { - "barrier_ratio": { - "maximum": 1, - "minimum": 0, - "type": "number" - }, - "barrier_signals": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - }, - "covered_signals": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - }, - "ratio": { - "maximum": 1, - "minimum": 0, - "type": "number" - }, - "required_signals": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - }, - "status": { - "enum": [ - "complete", - "incomplete" - ], - "type": "string" - }, - "verified_barrier_signals": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "status", - "required_signals", - "covered_signals", - "ratio", - "barrier_signals", - "verified_barrier_signals", - "barrier_ratio" - ], - "type": "object" -} - removed
Output schema / properties / data / items / properties / profile / properties / freshnessRemoved value: -{ - "enum": [ - "fresh", - "stale", - "unknown" - ], - "type": "string" -} - added
Output schema / properties / data / items / properties / profile / properties / grade / additionalPropertiesAdded value: +false - removed
Output schema / properties / data / items / properties / profile / properties / grade / enumRemoved value: -[ - "A+", - "A", - "B+", - "B", - "C+", - "C", - "D", - "F", - "unrated" -] - added
Output schema / properties / data / items / properties / profile / properties / grade / propertiesAdded value: +{ + "job": { + "enum": [ + "reachable", + "verified", + "unavailable" + ], + "type": "string" + }, + "letter": { + "enum": [ + "A+", + "A", + "B+", + "B", + "C", + "D", + "F" + ], + "type": "string" + }, + "steps": { + "items": { + "additionalProperties": false, + "properties": { + "outcome": { + "enum": [ + "machine", + "not_applicable", + "approval", + "workaround", + "gated", + "not_assessed" + ], + "type": "string" + }, + "step": { + "enum": [ + "discover", + "authority", + "onboard", + "pay", + "confirm", + "sustain" + ], + "type": "string" + }, + "timing": { + "anyOf": [ + { + "enum": [ + "setup", + "recurring" + ], + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "step", + "outcome", + "timing" + ], + "type": "object" + }, + "maxItems": 6, + "minItems": 6, + "type": "array" + } +} - added
Output schema / properties / data / items / properties / profile / properties / grade / requiredAdded value: +[ + "letter", + "steps", + "job" +] - changed
Output schema / properties / data / items / properties / profile / properties / grade / typePrevious value: -"string"New value: +"object" - removed
Output schema / properties / data / items / properties / profile / properties / grade_derivationRemoved value: -{ - "additionalProperties": false, - "properties": { - "coverage_rule": { - "maxLength": 280, - "minLength": 1, - "type": "string" - }, - "explanation": { - "maxLength": 500, - "minLength": 1, - "type": "string" - }, - "label": { - "maxLength": 80, - "minLength": 1, - "type": "string" - }, - "outcome_rule": { - "maxLength": 280, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "label", - "explanation", - "coverage_rule", - "outcome_rule" - ], - "type": "object" -} - added
Output schema / properties / data / items / properties / profile / properties / interface_idAdded value: +{ + "anyOf": [ + { + "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", + "type": "string" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / data / items / properties / profile / properties / labelAdded value: +{ + "enum": [ + "vendor_run_verified", + "probed" + ], + "type": "string" +} - added
Output schema / properties / data / items / properties / profile / properties / label_run_atAdded value: +{ + "anyOf": [ + { + "format": "date-time", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$", + "type": "string" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / data / items / properties / profile / properties / last_run_atAdded value: +{ + "format": "date-time", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$", + "type": "string" +} - removed
Output schema / properties / data / items / properties / profile / properties / last_tested_atRemoved value: -{ - "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$", - "type": "string" -} - changed
Output schema / properties / data / items / properties / profile / properties / lifecycle / enumPrevious value: -[ - "active", - "ended", - "withdrawn" -]New value: +[ + "active", + "paused", + "ended", + "withdrawn" +] - removed
Output schema / properties / data / items / properties / profile / properties / overall_outcomeRemoved value: -{ - "enum": [ - "pass", - "constrained", - "fail", - "unknown", - "not_applicable" - ], - "type": "string" -} - removed
Output schema / properties / data / items / properties / profile / properties / primary_findingRemoved value: -{ - "additionalProperties": false, - "properties": { - "blocker": { - "additionalProperties": false, - "properties": { - "code": { - "maxLength": 160, - "minLength": 1, - "type": "string" - }, - "explanation": { - "maxLength": 500, - "minLength": 1, - "type": "string" - }, - "signal_code": { - "pattern": "^[a-z0-9]+(?:[._-][a-z0-9]+)*$", - "type": "string" - } - }, - "required": [ - "signal_code", - "code", - "explanation" - ], - "type": "object" - }, - "finding": { - "additionalProperties": false, - "properties": { - "condition": { - "maxLength": 160, - "minLength": 1, - "type": "string" - }, - "context": { - "maxLength": 500, - "minLength": 1, - "type": "string" - }, - "finding": { - "maxLength": 280, - "minLength": 1, - "type": "string" - }, - "signal_code": { - "pattern": "^[a-z0-9]+(?:[._-][a-z0-9]+)*$", - "type": "string" - } - }, - "required": [ - "signal_code", - "condition", - "finding" - ], - "type": "object" - }, - "public_state": { - "enum": [ - "limited", - "blocked" - ], - "type": "string" - }, - "stage": { - "enum": [ - "evaluate", - "sign_up", - "pay", - "provision", - "operate" - ], - "type": "string" - }, - "stage_label": { - "maxLength": 40, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "stage", - "stage_label", - "public_state", - "finding" - ], - "type": "object" -} - added
Output schema / properties / data / items / properties / profile / properties / provenance / properties / basis_event_idsAdded value: +{ + "items": { + "pattern": "^sha256:[a-f0-9]{64}$", + "type": "string" + }, + "type": "array" +} - removed
Output schema / properties / data / items / properties / profile / properties / provenance / properties / freshnessRemoved value: -{ - "enum": [ - "fresh", - "stale", - "unknown" - ], - "type": "string" -} - changed
Output schema / properties / data / items / properties / profile / properties / provenance / requiredPrevious value: -[ - "freshness", - "dispute", - "vendor_attestation" -]New value: +[ + "dispute", + "vendor_attestation", + "basis_event_ids" +] - removed
Output schema / properties / data / items / properties / profile / properties / public_stateRemoved value: -{ - "enum": [ - "ready", - "limited", - "blocked", - "unknown", - "not_applicable" - ], - "type": "string" -} - changed
Output schema / properties / data / items / properties / profile / properties / publication / properties / reasons / items / enumPrevious value: -[ - "lifecycle_not_active", - "coverage_incomplete", - "required_evidence_not_supported", - "freshness_not_fresh", - "unrated", - "no_useful_finding", - "open_dispute" -]New value: +[ + "lifecycle_not_active", + "open_dispute" +] - removed
Output schema / properties / data / items / properties / profile / properties / scope / properties / funnelRemoved value: -{ - "additionalProperties": false, - "properties": { - "key": { - "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", - "type": "string" - }, - "name": { - "maxLength": 160, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "key", - "name" - ], - "type": "object" -} - added
Output schema / properties / data / items / properties / profile / properties / scope / properties / jobAdded value: +{ + "additionalProperties": false, + "properties": { + "key": { + "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", + "type": "string" + }, + "name": { + "maxLength": 160, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "key", + "name" + ], + "type": "object" +} - changed
Output schema / properties / data / items / properties / profile / properties / scope / requiredPrevious value: -[ - "product", - "funnel" -]New value: +[ + "product", + "job" +] - removed
Output schema / properties / data / items / properties / profile / properties / stagesRemoved value: -{ - "items": { - "additionalProperties": false, - "properties": { - "outcome": { - "enum": [ - "pass", - "constrained", - "fail", - "unknown", - "not_applicable" - ], - "type": "string" - }, - "primary_finding": { - "additionalProperties": false, - "properties": { - "condition": { - "maxLength": 160, - "minLength": 1, - "type": "string" - }, - "context": { - "maxLength": 500, - "minLength": 1, - "type": "string" - }, - "finding": { - "maxLength": 280, - "minLength": 1, - "type": "string" - }, - "signal_code": { - "pattern": "^[a-z0-9]+(?:[._-][a-z0-9]+)*$", - "type": "string" - } - }, - "required": [ - "signal_code", - "condition", - "finding" - ], - "type": "object" - }, - "public_state": { - "enum": [ - "ready", - "limited", - "blocked", - "unknown", - "not_applicable" - ], - "type": "string" - }, - "stage": { - "enum": [ - "evaluate", - "sign_up", - "pay", - "provision", - "operate" - ], - "type": "string" - }, - "stage_label": { - "maxLength": 40, - "minLength": 1, - "type": "string" - }, - "state_label": { - "maxLength": 40, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "stage", - "stage_label", - "outcome", - "public_state", - "state_label", - "primary_finding" - ], - "type": "object" - }, - "maxItems": 5, - "minItems": 5, - "type": "array" -} - removed
Output schema / properties / data / items / properties / profile / properties / state_labelRemoved value: -{ - "maxLength": 40, - "minLength": 1, - "type": "string" -} - changed
Output schema / properties / data / items / properties / profile / requiredPrevious value: -[ - "agent_readiness_profile_id", - "entity_id", - "scope", - "declaration_revision_digest", - "lifecycle", - "effective_from", - "revision_digest", - "policy_digest", - "policy_version", - "policy_as_of", - "overall_outcome", - "public_state", - "state_label", - "grade", - "grade_derivation", - "publication", - "coverage", - "last_tested_at", - "freshness", - "canonical_url", - "projection_digest", - "stages", - "provenance" -]New value: +[ + "agent_readiness_profile_id", + "entity_id", + "scope", + "declaration_revision_digest", + "lifecycle", + "effective_from", + "revision_digest", + "policy_digest", + "policy_version", + "policy_as_of", + "interface_id", + "label", + "label_run_at", + "last_run_at", + "publication", + "provenance", + "canonical_url", + "projection_digest", + "grade" +] - changed
Output schema / properties / data / items / requiredPrevious value: -[ - "entity", - "profile" -]New value: +[ + "entity", + "profile", + "freshness" +]
8 tool updates
v1.0.0- First observed
compare_offers - First observed
get_changes - First observed
get_readiness - First observed
get_services - First observed
inspect_evidence - First observed
prepare_declaration - First observed
search_offers - First observed
search_readiness
TDQS
Scored across 8 tools
Each tool targets a distinct action and resource: search/compare offers, inspect evidence, track changes, search/get readiness, prepare a declaration, and discover services. The offer and readiness tools are clearly separated, and search vs. get/compare boundaries are explicit.
All eight tools follow a consistent snake_case verb_noun pattern: compare_offers, search_offers, inspect_evidence, get_changes, search_readiness, get_readiness, prepare_declaration, get_services. There are no mixed styles or vague standalone verbs.
Eight tools is well scoped for a server covering startup offers/credits plus Agent Readiness reports. Each tool has a clear role, and the set avoids both thinness and unnecessary sprawl.
The offer side covers discovery, comparison, provenance, and change tracking; readiness covers search, detail, and declaration preparation. Minor gaps remain, such as no direct single-offer retrieval tool and no MCP tool for submitting or publishing a prepared declaration, though the latter is explicitly delegated to the product HTTP API.
Maintenance
Related MCP Connectors
Search and inspect source-pinned agent skills, plugins and tools through a free public MCP.
Search GitHub, npm, PyPI, StackOverflow, ArXiv from one MCP — built for coding agents.
Turn a GitHub repo or docs site into agent-ready context: pack it or search it, over MCP.
Remote MCP utilities for agents: structured data, commerce checks, and x402 paid API discovery.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables coding agents to search local repositories and retrieve bounded, cited source chunks, look up full indexed chunks, and inspect index statistics through read-only MCP tools over stdio.MIT
- AlicenseNot gradedqualityAmaintenanceA local stdio MCP server that exposes tools for running evidence-first research with source-linked, replayable reports, plus replay, citation-audit, and Agent Reach health checks. It preserves fetched page text, exact quote offsets, hashes, and run traces so a client can verify that quotes match retrieved sources, while withholding arbitrary shell or local-file access.1MIT
- AlicenseAqualityCmaintenanceEnables users to search registered agents, fetch capability offers, list and inspect jobs, and submit bounty work to the LAX registry through MCP tools over stdio or Streamable HTTP.5Apache 2.0
- AlicenseNot gradedqualityBmaintenanceEnables MCP clients to search, record, correct, and review the provenance and version history of memories, and to obtain answers composed from guarded context in which private values are replaced by placeholders and resolved locally on the device. Exposes these capabilities through dependency-free tools over stdio.MIT