Skip to main content
Glama

Server Details

Federal contract opportunities for government contractors. Set-aside coverage is the deepest part.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
30.7% over 34 days
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

B3.4/5.0

Scored across 45 tools

Disambiguation2/5

Several tools have unclear boundaries: search_open_notices and search_opportunities explicitly use the same stored-notice engine, and find_likely_recompetes, get_recompete_calendar, get_recompete_detail, and track_recompete overlap heavily. find_partners and find_teaming_partners are also hard to distinguish, while get_record competes with get_notice_record and get_grant_record. Pointer tools like analyze_market and check_risk add further selection ambiguity because their names suggest direct data retrieval.

Naming Consistency4/5

Most tools follow a readable verb_noun convention, with a strong search_* pattern for source-specific searches and get_/list_/find_ for retrieval and discovery. Minor deviations like research, signin, show_govinbox, and generic get_record keep it from being fully consistent, but the overall pattern is predictable.

Tool Count2/5

At 45 tools, the surface is well above the typical 3-15 range and beyond the 25-tool threshold for being too many. The broad federal contracting domain explains some breadth, but duplicate search paths, multiple recompete tools, and pointer tools make the count heavier than necessary.

Completeness4/5

The server covers a wide range of federal contracting intelligence: opportunity and grant search, award/subaward lookup, protests, cancellations, recompetes, teaming, watchlist actions, daily briefs, and FAR clauses. Notable gaps include no direct SAM entity/exclusion profile lookup, no solicitation document retrieval, and no clear tool to read or list the saved watchlist, though agents can partly work around these.

Available Tools

45 tools
analyze_marketAnalyze marketB
Read-onlyIdempotent
Inspect

Not affiliated with the U.S. government, GSA, or SAM.gov. Not a U.S. government service. NOT for bid/no-bid, pursue-or-pass, eligibility, qualification, certification, size-standard, or submit-a-bid questions: for those call explain_policy_boundary first and do not research or use memory to answer. Market intelligence: award history, subawards, OTA awards, and agency spending patterns. Shows who won what, for how much. Present as information only; not a prediction of future awards. This is a pointer tool: it does not consume quota; it directs you to the tool that does the work.

NameRequiredDescriptionDefault
limitNo
naicsNoNAICS codes to analyze
agencyNoAgency name filter

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds real context beyond the annotations: no quota consumption, pointer semantics, informational-only framing, and an explicit disclaimer that results are not a prediction of future awards. The annotations already cover read-only/idempotent/non-destructive, so this extra economic and interpretive context is genuinely additive. The gap is that it never says what a 'pointer' response looks like, despite there being no output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The actual purpose sentence appears third, buried behind three compliance disclaimers. The disclaimers likely earn their place legally, but they push the operationally useful content back and force the agent to read past boilerplate to find scope.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-required-param, no-output-schema tool that self-describes as a router, the description leaves the most important question open: what does it return, and how should the agent act on a pointer? Interpretation guidance is partly covered ("present as information only"), but the core mechanics of the pointer behavior are not.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 67%; naics and agency carry descriptions, limit does not (though min/max self-document it). The description contributes nothing about the parameters — not whether multiple NAICS codes are compared side by side, whether agency is fuzzy-matched, or how limit bounds the analysis. With a tool this opinionated about interpretation, that silence matters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a domain ("award history, subawards, OTA awards, and agency spending patterns. Shows who won what, for how much"), which is more than a restatement of the name. But the closing "This is a pointer tool... it directs you to the tool that does the work" undercuts that, making it unclear whether analyze_market computes an answer or just routes. Siblings search_award_history, search_subawards, and search_ota_awards cover the same territory and no differentiation is offered.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit negative routing is present and strong: "NOT for bid/no-bid, pursue-or-pass, eligibility, qualification... for those call explain_policy_boundary first and do not research or use memory to answer" names the exact alternative tool. What's missing is positive routing — given it claims to be a pointer, it doesn't say which downstream tool it points to or when to skip it and call search_award_history directly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_notice_filtersNotice checklist: your criteria vs one noticeA
Read-onlyIdempotent
Inspect

Not affiliated with the U.S. government, GSA, or SAM.gov. Not a U.S. government service. Checks one federal notice against criteria YOU write. You supply the rules, for example 'Set-aside is SDVOSB' or 'Work is in Texas'; the tool marks each rule with a green check when the notice's stated field satisfies it, or no check when it does not. Every mark is labeled as a notice fact ('Notice states set-aside: ...') next to your rule text. This tool never scores, ranks, or counts: no 0-100, no percent, no 'all passed'. It does not determine eligibility, recommend bids, or suggest partners. Give the checklist any name you like, for example 'SDVOSB shop'; the name is only a label and nothing is inferred from it. Each check has three states: match (green check), no_match (the notice states a value your filter does not satisfy), or not_stated (the notice does not state the field, so your filter could not be evaluated; a blank field is never a no match). Each check shows the notice's raw stated value, and the result carries the notice's posted and retrieval dates. Every check is phrased 'The notice states X, which matches your filter Y' — never eligibility language. Follow-ups within 30 minutes after a search ride free (up to 30 per search); otherwise one accepted call counts as one use, regardless of how many criteria you check. Every result carries the standing line that a green check is a notice-field match, not a certification, size, or award determination.

NameRequiredDescriptionDefault
criteriaYesYour rules. Each rule names one stated notice field and how to compare it. You author every rule; nothing is auto-filled.
notice_idYesNotice id from search_open_notices
checklist_nameNoA name you choose for this checklist, e.g. 'SDVOSB shop'. Only a label; nothing is inferred from it.

Output Schema

NameRequiredDescription
quotaYes
titleNo
checksYesOne entry per criterion you supplied, each on its own. Never rolled up, counted, or ranked.
coverageYes
notice_idYes
query_timeNoUTC time this stored-data checklist was evaluated; not source freshness
sam_gov_urlNo
checklist_nameNoA name you choose, e.g. 'SDVOSB shop'. It is only a label; nothing is inferred from it.
notice_ingested_atNoRecorded ingestion time; not source retrieval
notice_posted_dateNoThe notice's posted date on SAM.gov, if stated.
notice_retrieved_atNoWhen GovInbox retrieved this notice record. Every call evaluates the current stored record, so re-run the tool after the notice is amended to re-check against the new fields. Null when the source fetch was not recorded.
checklist_disclaimerNo
notice_first_seen_atNoWhen GovInbox first stored this record; not source retrieval
analytical_disclaimerYes

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare it a safe, idempotent read, so the bar is lower, yet the description adds real behavioral context: the three check states (match/no_match/not_stated), the rule that a blank field is never a no-match, the billing rule (follow-ups within 30 minutes free, otherwise one use per accepted call), and the standing disclaimer on results. That is exactly the value-add structured fields cannot express.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and the key constraints are front-loaded, but the text runs long and repeats itself: the non-affiliation disclaimer, the 'never scores/ranks' point, and the no-eligibility line are all restated in several forms. The redundancy dilutes an otherwise informative definition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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 detail return values, and it still covers the states, result phrasing, dates carried on results, and cost model. An agent has everything needed to invoke it correctly without opening other tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with the criterion fields, enums and checklist_name label already documented in the schema itself. The description reinforces semantics (each rule names one stated field; checklist name is only a label, nothing inferred) but largely echoes what the schema already states, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb, resource and scope: 'Checks one federal notice against criteria YOU write,' with the user authoring every rule. This is clearly distinguishable from siblings like search_open_notices (which finds notices) and check_risk (which assesses risk).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It grounds the input by pointing to 'Notice id from search_open_notices' and lays out explicit exclusions ('never scores, ranks, or counts', 'does not determine eligibility, recommend bids'). It does not explicitly route between this tool and near-neighbors such as get_notice_record or compare_notice_record_versions, so the guidance is strong but not fully prescriptive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_riskCheck risk signalsB
Read-onlyIdempotent
Inspect

Not affiliated with the U.S. government, GSA, or SAM.gov. Not a U.S. government service. NOT for bid/no-bid, pursue-or-pass, eligibility, qualification, certification, size-standard, or submit-a-bid questions: for those call explain_policy_boundary first and do not research or use memory to answer. Risk signals: protest history, cancellation records, and opportunity scoring. Shows what happened before, not what will happen. Present as information only. This is a pointer tool: it does not consume quota; it directs you to the tool that does the work.

NameRequiredDescriptionDefault
keywordsNoKeywords to search cancelled records
notice_idNoNotice ID to check protest history for

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, and openWorld, so safety behavior is covered. The description adds useful quota information and a 'shows what happened before, not what will happen' framing, but 'directs you to the tool that does the work' is incomplete because the target tool is never named. This is not an annotation contradiction, but it is ambiguous.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It opens with two sentences of legal disclaimer rather than the tool's function, then spends multiple sentences on scope exclusions. The core action is never stated crisply, so the structure is not front-loaded for an agent deciding whether to invoke it.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, and the description never says what a successful check_risk result contains or which tool it points to. For a routing tool with zero required parameters, the destination tool and return shape are essential and missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already documents keywords for cancelled records and notice_id for protest history. The description only loosely maps those domains to the parameters and adds no syntax or selection guidance beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names risk-signal categories (protest history, cancellation records, opportunity scoring), but it never states whether check_risk returns those records or merely routes elsewhere. The 'pointer tool' claim muddies the verb, and it does not distinguish itself from sibling tools like get_protest_history or search_cancelled_contracts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly excludes bid/no-bid, eligibility, certification, and related questions, and names explain_policy_boundary as the alternative for those cases. However, it gives no positive trigger for using check_risk over get_protest_history or search_cancelled_contracts, so the core routing decision is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compare_notice_record_versionsWhat changed in the notice recordAInspect

Not affiliated with the U.S. government, GSA, or SAM.gov. Not a U.S. government service. Compares recorded notice facts with the baseline identified by a receipt previously returned by get_notice_record. The receipt must belong to the same caller and must not be expired. Reports source-supported fact changes and whether the supplied comparison filters changed; it does not compare or generate model estimates. Creates a new private comparison receipt, with the exact UTC expiry shown in expires_at. An empty changed_facts array means that no recorded fact changes were found against that baseline. Does not recommend bids, determine eligibility, or suggest partners. Follow-ups within 30 minutes after a search ride free (up to 30 per search); otherwise one accepted call counts as one use. Without a connected GovInbox account, both limits apply: 3 searches per UTC calendar day and 10 per UTC calendar month. With a connected free GovInbox account, the limit is 20 searches per UTC calendar month, with no separate daily limit. One accepted search counts as one use, regardless of the number of records returned. Follow-up calls (opening records, comparing versions, listing awards or subawards) within 30 minutes after a search do not count extra, up to 30 follow-ups per search. A follow-up invoked with no active search window counts as one use and opens a new 30-minute window. Empty results consume the search. A lookup for a record that does not exist is not charged. Each retry of a search counts as a new search, as does each call for another page of search results. Daily limits reset at 00:00 UTC each day; monthly limits reset at 00:00 UTC on the first day of each month. Requests rejected for invalid authentication or an exhausted quota do not consume a use.

NameRequiredDescriptionDefault
notice_idNoNotice id; defaults to the receipt's notice
prior_receiptYesreceipt_id from a get_notice_record result
search_filtersNoSame filters as get_notice_record; supply them again to detect input changes

Output Schema

NameRequiredDescription
quotaYes
notice_idYes
new_receiptYes
sam_gov_urlNoDeep link to the notice on SAM.gov for verification
changed_factsNo
inputs_changedYes
prior_receipt_idYes
analytical_disclaimerYes

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: it discloses that a new private receipt is created with a UTC expiry in expires_at, that the receipt is caller-scoped and expiry-checked, that an empty changed_facts array means no recorded changes, and how quota consumption works. readOnlyHint=false is consistent with the stated side effect of creating a receipt, so no contradiction. Minor deduction because the quota prose is generic boilerplate rather than specific to this tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core comparison sentence is front-loaded, but the body is dominated by repeated quota rules — the 30-minute follow-up window and the 'up to 30 follow-ups per search' limit are literally stated twice, and daily/monthly reset rules are restated across several sentences. A large fraction of the text is boilerplate duplicated from other tools rather than earning its place here.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 explained, and the description covers the remaining essentials: receipt origin, ownership and expiry constraints, side effects, filter semantics, and empty-result meaning. The only gap is that it does not clarify what happens when notice_id conflicts with the receipt's notice.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so notice_id defaulting, prior_receipt provenance, and search_filters' role are already fully documented in the schema. The description restates the receipt provenance requirement and the filter input-change detection but adds no syntax or format details beyond the schema. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: compares recorded notice facts against a baseline receipt produced by get_notice_record, and explicitly names what it does not do (no model estimates, no bid recommendations, no eligibility determination). An agent can tell it apart from get_notice_record, though the legal disclaimer lead-in delays the actual purpose statement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives prerequisite conditions (receipt must be from the same caller, must not be expired) and positional context (a follow-up call), which implies when to use it. However it never explicitly states when to choose this over get_notice_record or check_notice_filters, and the caller must infer that this tool applies only after a prior get_notice_record call.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

explain_policy_boundaryExplain GovInbox policy boundaryA
Read-onlyIdempotent
Inspect

Not affiliated with the U.S. government, GSA, or SAM.gov. Not a U.S. government service. Call this FIRST whenever the user asks whether to bid, pursue, or whether it is worth it; whether they qualify, are eligible, are certified, or meet a size standard; or asks GovInbox to submit, send, file, or certify anything. Returns the recorded policy boundary and what GovInbox can do instead. Read-only; uses no search allowance and does not consume quota; do not research or use memory to answer these requests.

NameRequiredDescriptionDefault
request_typeYesbid_advice: should I bid/pursue; eligibility: do I qualify or meet a size standard; submission: send/file a bid or proposal; certification: certify a business; other: any related request
notice_referenceNoThe title or solicitation number the user used, in their words. Echoed back only; no lookup is performed.

Output Schema

NameRequiredDescription
policyYesThe recorded GovInbox policy statement for this request type.
searchedNoNo search or record lookup was performed.
quota_noteNoQuota statement; this tool never consumes a use.
request_typeYes
what_govinbox_can_doYesNeutral next steps GovInbox can perform instead.
analytical_disclaimerNo
assistant_instructionsYesDirective for the connected assistant on how to answer.
recorded_notice_referenceNoThe notice title or number the user mentioned, echoed back only; not looked up.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, and the description adds non-obvious operational facts beyond them: it uses no search allowance and does not consume quota. It also states what the tool returns (the recorded boundary and permitted alternatives), which matters for an agent deciding whether to spend a call.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The critical 'Call this FIRST' routing instruction and trigger list are front-loaded and every clause carries routing or behavioral information. The two opening disclaimer sentences are somewhat repetitive of each other ('Not affiliated...' / 'Not a U.S. government service'), costing a little density.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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 need not be explained, parameters are fully documented in the schema, and the description covers trigger conditions, cost/behavioral profile, and the negative constraint against using research tools. Nothing an agent needs to invoke this correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with an enum whose values are fully documented in the schema, so parameter meaning is already carried by structured data. The description adds no per-parameter detail (e.g. how notice_reference is used beyond echoing), so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and outcome: it returns the recorded policy boundary plus what GovInbox can do instead. The disclaimer sentences and the explicit 'do not research or use memory' line separate it cleanly from the research/search sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit trigger ('Call this FIRST whenever...') followed by enumerated conditions that map directly onto the request_type enum values. It also names the alternatives it replaces ('do not research or use memory to answer these requests'), which is exactly the when/when-not guidance an agent needs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_likely_recompetesLikely recompete opportunitiesB
Read-onlyIdempotent
Inspect

Not affiliated with the U.S. government, GSA, or SAM.gov. Not a U.S. government service. Notices flagged as likely recompetes, with the recorded incumbent contractor name and incumbent period end date where available. Flags are analytical matches against public award records, not predictions of a recompete solicitation. Present as information only; do not frame results as a bid/no-bid recommendation, eligibility determination, or partnership recommendation. Follow-ups within 30 minutes after a search ride free (up to 30 per search); otherwise one accepted call counts as one use, regardless of how many records are returned. Every record carries a direct source link (or source name and record ID) so you can verify and cite the underlying record.

NameRequiredDescriptionDefault
limitNo
naicsNoNAICS codes, 2-6 digits each; omit for all lanes
confidenceNoMinimum confidence: high, medium, or low

Output Schema

NameRequiredDescription
countYes
quotaYes
coverageYes
recompetesYes
analytical_disclaimerYes

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only/idempotent/open-world safety, so the description adds meaningful context beyond them: flags are analytical matches against public award records, not solicitation predictions, incumbent data is returned only 'where available', each record carries a source link or ID for verification, and the 30-minute follow-up quota and one-call-per-use accounting are disclosed. It still omits ordering/pagination behavior and how confidence tiers are applied.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first three sentences are repetitive legal disclaimers ('Not affiliated... Not a U.S. government service'), occupying the most valuable front-loaded position before the actual tool purpose. The remaining sentences are informative, though the quota explanation is wordy and could be tightened.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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 needn't explain return values, and it does cover the analytical basis, data availability caveats, citation support, and usage quota. However, for a filtered search tool with three parameters, it leaves the confidence and naics filter semantics unexplained and gives no sibling routing, so an agent cannot fully determine correct invocation from the description alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers 67% of parameters, and the description says nothing about limit, naics, or confidence. In particular, the confidence parameter's high/medium/low semantics and the naics lane filtering are undocumented in both the description and the schema, leaving an agent without guidance on how to constrain the search effectively.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific resource and qualifier: notices flagged as likely recompetes, including incumbent contractor and incumbent period end date where available. That is clear enough to distinguish it from generic notice search tools, but it never names the closest siblings (get_recompete_calendar, get_recompete_detail, track_recompete) to sharpen the distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied by the resource name and the data it returns. The description gives presentation constraints ('information only', no bid/no-bid framing) but does not state when to choose this over get_recompete_detail, get_recompete_calendar, or track_recompete, nor any prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_partnersFind teaming partnersB
Read-onlyIdempotent
Inspect

Not affiliated with the U.S. government, GSA, or SAM.gov. Not a U.S. government service. Find firms with a track record of teaming in a trade lane, based on historical subaward and prime-award activity. These are firms that might be worth a conversation, not recommendations. Inclusion is NOT a statement that a firm is seeking partners, has openings, or would be interested in any particular firm. WARNING: teaming with a large business can trigger affiliation rules that cost you your small business or set-aside eligibility (SDVOSB, 8(a), HUBZone). Size status shown is UNVERIFIED - check SAM.gov before relying on it. Exclusion screening is not established here; verify current status in SAM.gov. Present as information only; do not frame results as a partnership recommendation. Follow-ups within 30 minutes after a search ride free (up to 30 per search); otherwise one accepted call counts as one use.

NameRequiredDescriptionDefault
limitNo
naicsYesNAICS code for the trade lane

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), but the description adds genuinely operational context beyond them: the follow-up billing window ('within 30 minutes... ride free; otherwise one accepted call counts as one use'), the affiliation-rule risk from teaming with a large business, and the caveat that size status is UNVERIFIED and must be checked in SAM.gov. This is meaningful disclosure the annotations do not carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is long and front-loaded with legal disclaimers ('Not affiliated with the U.S. government, GSA, or SAM.gov. Not a U.S. government service.') rather than the tool's purpose, which appears only third. Repetitive disclaimers and a WARNING block consume space that does not help an agent decide or invoke correctly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 2-parameter tool with no output schema, the description conveys what kind of records come back (firms with teaming history) and the domain caveats, but it does not describe the return structure or the meaning of 'limit' beyond the schema. Adequate for invocation, incomplete on results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50%: 'naics' is documented in the schema ('NAICS code for the trade lane') and the description reinforces the 'trade lane' concept, but neither the schema nor the description explains 'limit' (default 10, max 25). The description adds only marginal meaning over the structured fields, so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The sentence 'Find firms with a track record of teaming in a trade lane, based on historical subaward and prime-award activity' gives a specific verb+resource and the data basis. However, it is buried behind three sentences of disclaimers, and it does not distinguish this tool from the similarly named sibling 'find_teaming_partners', leaving ambiguity an agent cannot resolve from the description alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description tells the agent how to present results ('information only', 'not recommendations') but never says when to use this tool versus alternatives such as find_teaming_partners or research. There is no when-to-use or when-not-to-use guidance for tool selection, only framing rules for the output.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_teaming_partnersTeaming partner finderA
Read-onlyIdempotent
Inspect

Not affiliated with the U.S. government, GSA, or SAM.gov. Not a U.S. government service. Prime contractors with a recorded track record of subcontracting in a NAICS lane, ranked by their small-business subaward history. For a small business looking for teaming conversations: which primes have actually used subs in your lane. Results are historical facts from reported subaward filings, inclusion is NOT a statement that a prime is seeking partners, has openings, or would be interested in any particular firm. WARNING: teaming with a large business can trigger affiliation rules that cost you your small business or set-aside eligibility (SDVOSB, 8(a), HUBZone). Size status shown is UNVERIFIED - check SAM.gov before relying on it. Exclusion screening is not established here; verify current status in SAM.gov. Present as information only; do not frame results as a bid/no-bid recommendation, eligibility determination, or partnership recommendation. Follow-ups within 30 minutes after a search ride free (up to 30 per search); otherwise one accepted call counts as one use, regardless of how many records are returned. Every record carries a direct source link (or source name and record ID) so you can verify and cite the underlying record.

NameRequiredDescriptionDefault
limitNo
naicsNoYour NAICS codes, 2-6 digits each; primes are ranked on subcontracting in these lanes. Omit for all lanes
stateNoSubaward place-of-performance state code, e.g. VA
agencyNoAwarding agency name substring filter
certificationsNoNarrow to primes with subawards to subs holding these certifications: small, 8a, hubzone, sdvosb, vosb, veteran, wosb, edwosb, sdb

Output Schema

NameRequiredDescription
countYes
quotaYes
primesYes
coverageYes
data_caveatNoData quality caveat
analytical_disclaimerYes

TDQS

A3.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish read-only, idempotent, non-destructive behavior, and the description still adds substantial non-obvious context: results are historical facts from reported subaward filings, inclusion does not imply a prime is seeking partners, size status is UNVERIFIED and must be checked in SAM.gov, exclusion screening is not established, and every record carries a source link for citation. It also discloses the billing/rate-limit model (free follow-ups within 30 minutes, otherwise one call per use).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core purpose sentence arrives after two near-duplicate disclaimers ('Not affiliated with the U.S. government, GSA, or SAM.gov. Not a U.S. government service.'), which is wasted front-load. The remainder is dense but mostly earns its place: affiliation-rule warning, unverified size status, and the rate-limit sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 safety, the description needs only to frame interpretation, scope, and limits, which it does thoroughly. The one gap versus sibling differentiation (find_partners) is a routing concern rather than a completeness-of-calling concern, keeping it just under a 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 80%, so the schema already documents naics, state, agency, and certifications well, and the description adds only the framing that rankings are on subcontracting in 'these lanes.' It adds nothing on limit, on the state/place-of-performance semantics, or on how certification filters interact with the ranking, so it does not exceed the baseline for a high-coverage schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: primes with a recorded subcontracting track record in a NAICS lane, ranked by small-business subaward history. That is far more precise than the title. It does not, however, distinguish itself from the overlapping sibling find_partners, so an agent cannot tell which of the two to call from this text alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a clear usage context ('For a small business looking for teaming conversations: which primes have actually used subs in your lane') and firm interpretation limits ('do not frame results as a bid/no-bid recommendation, eligibility determination, or partnership recommendation'). But it never names an alternative tool or says when not to call this in favor of find_partners, which is the obvious sibling in this space.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_briefGet daily briefA
Read-onlyIdempotent
Inspect

Not affiliated with the U.S. government, GSA, or SAM.gov. Not a U.S. government service. NOT for bid/no-bid, pursue-or-pass, eligibility, qualification, certification, size-standard, or submit-a-bid questions: for those call explain_policy_boundary first and do not research or use memory to answer. The GovInbox daily brief: new opportunities, expiring notices, awards, grants, and regulatory changes. One or two lines per item, designed for scanning. Present as information only. This is a pointer tool: it does not consume quota; it directs you to the tool that does the work.

NameRequiredDescriptionDefault
dateNoDate YYYY-MM-DD, defaults to today

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, open-world, and non-destructive behavior. The description adds important behavior beyond annotations: it is a pointer tool, does not consume quota, directs the caller to the tool that does the work, presents information only, and returns one or two lines per item for scanning.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description contains useful constraints, but the opening disclaimers are repetitive and push the actual purpose behind them. The content is reasonably organized after that, yet it could be tighter and more front-loaded around what the tool returns.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only pointer tool with one optional parameter and no output schema, the description explains the content categories, scan-friendly output format, quota behavior, and policy-boundary exclusion. An agent has enough context to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 100% description coverage for the single optional date parameter, including YYYY-MM-DD format and defaulting to today. The description adds no additional parameter guidance, so the schema already carries the parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly says this returns the GovInbox daily brief and lists its contents: new opportunities, expiring notices, awards, grants, and regulatory changes. It does not explicitly distinguish this from siblings such as show_govinbox or the search_* tools, except for the policy-boundary exclusion, so it is clear but not fully differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a strong explicit when-not rule for bid/no-bid, eligibility, qualification, certification, and related questions, and routes those to explain_policy_boundary. It also signals the daily-scan use case, but does not explicitly compare this tool with other daily overview or inbox-related siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_far_clauseLook up a FAR clauseA
Read-onlyIdempotent
Inspect

Not affiliated with the U.S. government, GSA, or SAM.gov. Not a U.S. government service. Stored excerpt of a Federal Acquisition Regulation section by number (e.g. 52.212-4, 52.219-8), from the Electronic Code of Federal Regulations, Title 48. Every response carries the eCFR version date and a clickable link to the official eCFR section page so you can verify the current text. Length limits and content guards may prevent full delivery; text_delivery explains truncation, withholding or absent deliverable text. Informational only, not legal advice; the clause version in your contract and solicitation controls. Follow-ups within 30 minutes after a search ride free (up to 30 per search); otherwise one accepted call counts as one use. Every record carries a direct source link (or source name and record ID) so you can verify and cite the underlying record.

NameRequiredDescriptionDefault
clause_numberNoFAR section number, e.g. 52.212-4

Output Schema

NameRequiredDescription
partNoFAR part number, e.g. 52
textYesSanitized stored regulatory excerpt; may be length-truncated or withheld. See text_delivery status.
quotaYes
titleNoSection title as published in the eCFR
coverageYes
truncatedNoTrue when the text was cut to fit the response
as_of_dateNoeCFR version date the text was taken from; shown prominently because clauses change
source_urlNoClickable link to the official eCFR section page for this clause; use it to verify the current text
data_caveatNoData quality caveat
text_deliveryNo
section_numberYesFAR section number, e.g. 52.212-4
suppression_reasonNo
text_delivery_noteNo
analytical_disclaimerYes

TDQS

A3.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations (which only cover safe-read/idempotent): it discloses that content is a stored excerpt rather than live text, that every response carries an eCFR version date and verification link, that length limits and content guards can truncate or withhold text with `text_delivery` explaining it, and that follow-up calls within 30 minutes are free while others consume a use. These are exactly the operational facts an agent needs and none of them are in structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It opens with two defensive disclaimer sentences before saying what the tool does, and it repeats the source-link point twice ('Every response carries… a clickable link' and 'Every record carries a direct source link…'). The usage/rate-limit and legal-disclaimer material is not clearly separated from the functional description, so the agent must parse a legal notice to find the core behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and a single well-documented parameter, the description covers the remaining gaps well (staleness, truncation via `text_delivery`, citation links, quota). The one missing piece is the not-found / invalid-number case, which matters for a lookup-by-ID tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already documents `clause_number` with the same example format ('52.212-4'). The description adds no syntax, normalization, or failure semantics (e.g. what happens for a non-existent or Section-vs-clause number) beyond the schema, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening substantive clause states a specific resource and retrieval mode: 'Stored excerpt of a Federal Acquisition Regulation section by number (e.g. 52.212-4, 52.219-8), from the eCFR, Title 48.' It is distinguishable from siblings (no other tool looks up FAR text), but the statement of purpose is preceded by two boilerplate disclaimer sentences, which dilutes front-loading.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: the agent infers it should call this when it has a FAR clause number in hand. There is no explicit 'use this when… / do not use for…' guidance and no pointer to an alternative tool for statutes, agency supplements, or free-text regulation search.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_grant_recordGrant opportunity detailsA
Read-onlyIdempotent
Inspect

Not affiliated with the U.S. government, GSA, or SAM.gov. Not a U.S. government service. Full details for one grant opportunity: eligibility applicant types, funding categories, award range, dates, and summary as recorded from the public posting. Present as information only; do not frame results as an eligibility determination or application recommendation. Verify every fact against the official grant posting before acting. Follow-ups within 30 minutes after a search ride free (up to 30 per search); otherwise one accepted call counts as one use. Every record carries a direct source link (or source name and record ID) so you can verify and cite the underlying record.

NameRequiredDescriptionDefault
opportunity_numberYesOpportunity number from a search result

Output Schema

NameRequiredDescription
quotaYes
titleYes
agencyNo
statusNo
summaryNo
coverageYes
post_dateNo
close_dateNo
source_urlNoDeep link to the opportunity on Grants.gov or Simpler.Grants.gov for verification
attachmentsNo
award_floorNo
record_typeNo
source_nameNo
archive_dateNo
field_statusNo
award_ceilingNo
source_versionNo
applicant_typesNo
expected_awardsNo
funding_amountsNo
is_cost_sharingNo
record_deliveryNo
summary_deliveryNo
top_level_agencyNo
enrichment_statusNo
source_fetched_atNo
source_updated_atNo
funding_categoriesNo
opportunity_numberYes
additional_info_urlNo
attachments_deliveryNo
analytical_disclaimerYes
application_deadlinesNo
record_content_policyNo
attachment_text_statusNo
close_date_descriptionNo
application_deadlines_deliveryNo
applicant_eligibility_descriptionNo

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/openWorld, so the safety profile is covered, but the description adds genuinely new behavioral context: every record carries a source link or source name plus record ID for verification, plus the framing constraint that results must not be presented as an eligibility determination. It also discloses call accounting (one accepted call = one use, free follow-ups after a search), which annotations cannot express.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three leading sentences are legal/attribution boilerplate ('Not affiliated with the U.S. government, GSA, or SAM.gov. Not a U.S. government service.'), pushing the actual statement of purpose into the fourth sentence. The remaining sentences are dense and useful, but the definition is not front-loaded on what the tool does.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and the input schema fully documents the sole parameter, so the description needn't explain return shapes; it appropriately focuses on verification and citation behavior and use accounting. What's missing is only explicit sibling routing, which is a modest gap for a single-param read tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single required parameter, so the schema already explains that opportunity_number comes from a search result. The description adds no additional format, example, or constraint information beyond that, making baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource (one grant opportunity) and enumerates the record fields returned: eligibility applicant types, funding categories, award range, dates, summary. Sibling differentiation is only implicit (it's the record fetch behind search_grants_gov/search_open_grants), and it never distinguishes itself from get_record or get_notice_record by name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is implied rather than stated: the parameter is described as 'Opportunity number from a search result' and the billing note about follow-ups within 30 minutes after a search makes clear this tool is called after a search. However, there is no explicit guidance on when to use this versus the other record-fetching siblings, and no stated preconditions or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_notice_recordEvidence brief for one noticeA
Read-onlyIdempotent
Inspect

Not affiliated with the U.S. government, GSA, or SAM.gov. Not a U.S. government service. NOT for bid/no-bid, pursue-or-pass, eligibility, qualification, certification, size-standard, or submit-a-bid questions: for those call explain_policy_boundary first and do not research or use memory to answer. Returns a source-based brief for a notice ID, including recorded constraints, deadline status, competition method, source information, and facts needing authoritative verification. Does not assess whether the caller qualifies for a set-aside. GovInbox does not return model estimates through these tools. Creates a private, caller-bound comparison receipt: a signed token binding the notice ID, the comparison inputs, and their hashes. No notice data is stored server-side; the receipt is stateless and verified cryptographically. The receipt expires 7 days after issue; expires_at gives the exact UTC expiry time. Optional search_filters are used for comparison input-change detection and do not change the brief's content. Does not recommend bids, determine eligibility, or suggest partners. Follow-ups within 30 minutes after a search ride free (up to 30 per search); otherwise one accepted call counts as one use. Without a connected GovInbox account, both limits apply: 3 searches per UTC calendar day and 10 per UTC calendar month. With a connected free GovInbox account, the limit is 20 searches per UTC calendar month, with no separate daily limit. One accepted search counts as one use, regardless of the number of records returned. Follow-up calls (opening records, comparing versions, listing awards or subawards) within 30 minutes after a search do not count extra, up to 30 follow-ups per search. A follow-up invoked with no active search window counts as one use and opens a new 30-minute window. Empty results consume the search. A lookup for a record that does not exist is not charged. Each retry of a search counts as a new search, as does each call for another page of search results. Daily limits reset at 00:00 UTC each day; monthly limits reset at 00:00 UTC on the first day of each month. Requests rejected for invalid authentication or an exhausted quota do not consume a use.

NameRequiredDescriptionDefault
notice_idYesNotice id from search_open_notices
search_filtersNoOptional search filters: naics[], states[]. Non-PII.

Output Schema

NameRequiredDescription
quotaYes
receiptYes
notice_idYes
data_as_ofYesUTC ISO 8601: when this stored-data brief was calculated; not source freshness
provenanceNo
sam_gov_urlNoCanonical SAM.gov notice URL
source_factNo
record_classesNo
withheld_countNoNumber of statements withheld by the verdict-word backstop
record_coverageNo
award_value_rangeNoRange of obligated amounts across the awards listed above. Obligated amount is not the ceiling and is not this notice's value.
deadline_readableNoHuman-readable deadline next to the raw timestamp
analytical_disclaimerYes
past_awards_by_agencyNoAggregates of this agency's past awards, as recorded
size_standard_coverageNo
fields_missing_from_sourceNoFields the source record did not answer
deadline_timezone_assumptionNo
past_awards_same_naics_and_agencyNoPrior awards in the same NAICS and agency, as recorded facts
prior_awards_same_naics_and_officeNoPrior award holders in the same NAICS and office, as recorded

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent annotations, it discloses a great deal: receipt signing, statelessness and cryptographic verification, 7-day expiry with expires_at, a 30-minute free follow-up window, quota tiers (3/day, 10/month anonymous; 20/month on free account), UTC reset times, and which calls are charged vs not. The 'Creates a receipt' language is reconciled by the explicit no-server-side-storage statement, so it does not truly contradict readOnlyHint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very long and repetitive: the 30-minute follow-up window and the 'one accepted search counts as one use' rule are each stated more than once, and quota resets are recapped twice. It is not front-loaded on purpose; it opens with disclaimers rather than the tool's function. Much of the rate-limit prose could be consolidated or pushed to a dedicated policy field.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 need not be explained, and the safety annotations cover the read-only profile. The description is thorough about constraints and contents, leaving only minor ambiguity about the brief's structure. It is complete enough to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds genuine meaning about search_filters: it is used for 'comparison input-change detection' and 'does not change the brief's content,' which tells the agent something the schema does not. Slightly above baseline for that extra semantic layer.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description does state a specific verb+resource: 'Returns a source-based brief for a notice ID,' and lists the brief's contents (recorded constraints, deadline status, competition method, source info, verification-needed facts). It also distinguishes itself from explain_policy_boundary. However, the actual purpose is buried behind four front-loaded legal disclaimers, so the reader must dig for it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit when-not guidance: 'NOT for bid/no-bid, pursue-or-pass, eligibility... for those call explain_policy_boundary first.' It names the alternative tool and the exact conditions that select it, plus a prohibition on using memory to answer. This is textbook routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_protest_historyGet GAO protest history for a solicitationA
Read-onlyIdempotent
Inspect

Not affiliated with the U.S. government, GSA, or SAM.gov. Not a U.S. government service. GAO bid protest history for a federal solicitation number. Returns every published GAO protest decision tied to the solicitation, each protest's outcome (sustained, denied, dismissed, withdrawn), and a risk level: HIGH means a sustained protest on record within the last 120 days; MEDIUM means protest activity within 120 days; LOW means older history only; UNKNOWN means protest data is not loaded; CLEAR means no protests found. This corpus holds GAO decisions only - it cannot tell you whether a procurement is currently frozen by a pending protest. GAO FY2025: 1,737 cases closed, only 53 sustained (most resolved via corrective action, not sustain). Agency-level protests and Court of Federal Claims cases are NOT in this corpus - they are separate dockets. GAO decisions are public-domain U.S. government works and are recommendations, not binding law. GAO does not publish most dismissals and protests filed but not yet decided are not included, so verify status against the GAO bid protest docket before acting. Follow-ups within 30 minutes after a search ride free (up to 30 per search); otherwise one accepted call counts as one use, regardless of how many records are returned. Every record carries a direct source link (or source name and record ID) so you can verify and cite the underlying record.

NameRequiredDescriptionDefault
solicitation_numberYesFederal solicitation number, e.g. W519TC-23-R-0111 or 36C24123Q0765

Output Schema

NameRequiredDescription
quotaYes
agencyNo
summaryYes
coverageYes
protestsYes
risk_levelYes
protest_countYes
agency_sustain_rateNo
solicitation_numberYes
agency_protest_countNo
analytical_disclaimerYes

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare read-only/idempotent, and the description adds substantial context beyond them: the full risk-level taxonomy (HIGH/MEDIUM/LOW/UNKNOWN/CLEAR) with its 120-day window, corpus boundaries, data gaps, and the 30-minute follow-up billing rule. This is exactly the kind of behavioral detail annotations cannot carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The risk-level legend and corpus limitations earn their place and the purpose is front-loaded, but the opening disclaimer is redundant ('Not affiliated with the U.S. government, GSA, or SAM.gov. Not a U.S. government service.'), and the FY2025 statistics plus public-domain discussion are tangential to invoking the tool correctly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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 is covered, and the description still supplies the interpretive key for the risk classification that the schema alone would not convey. Combined with corpus scoping and verification advice, nothing needed to call and interpret it is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter and schema coverage is 100%, with an example format already in the schema ('W519TC-23-R-0111'). The description adds no further guidance on solicitation-number formatting or normalization, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('GAO bid protest history for a federal solicitation number') and immediately delimits it: 'This corpus holds GAO decisions only', excluding agency-level protests and Court of Federal Claims dockets. An agent can distinguish this from siblings like check_risk or get_far_clause without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly frames when-not-to-rely: pending protests aren't covered, dismissals are mostly unpublished, and the agent is told to 'verify status against the GAO bid protest docket before acting.' It gives a clear context of use but never names a sibling alternative, so it stops short of full when/when-not/alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_recompete_calendarRanked recompete calendarA
Read-onlyIdempotent
Inspect

Not affiliated with the U.S. government, GSA, or SAM.gov. Not a U.S. government service. Contracts with periods of performance ending soon, ranked for business development: incumbent name, award value, end date, days to expiry, set-aside lane, bridge-contract flag, any matched SAM follow-on notice, and GAO protest-risk flags on the follow-on (HIGH means a sustained protest on record within 120 days). All dates are ESTIMATES from award records - completion dates move with modifications, and some paths (AbilityOne, 8(a) sole-source follow-ons, schedule orders) never become open SAM notices. Ranks are analytical scores from public award records, not predictions of a recompete solicitation. Present as information only; do not frame results as a bid/no-bid recommendation, eligibility determination, or partnership recommendation. Follow-ups within 30 minutes after a search ride free (up to 30 per search); otherwise one accepted call counts as one use, regardless of how many records are returned. Every record carries a direct source link (or source name and record ID) so you can verify and cite the underlying record.

NameRequiredDescriptionDefault
limitNo
naicsNoNAICS codes, 2-6 digits each; omit for all lanes
agencyNoAgency name substring filter
days_outNoInclude contracts expiring within this many days
set_asideNoSet-aside lane slug: sdvosb, 8a, hubzone, wosb, veteran, indian, smallbiz, local
bridge_onlyNoOnly bridge contracts (short-term extensions that often precede a recompete)

Output Schema

NameRequiredDescription
countYes
quotaYes
calendarYes
coverageYes
snapshot_dateNoWhen the calendar snapshot was taken, UTC
analytical_disclaimerYes

TDQS

A3.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With annotations already covering read-only/idempotent/open-world safety, the description still adds substantial behavioral context: dates are ESTIMATES that shift with modifications, certain paths (AbilityOne, 8(a) sole-source, schedule orders) never surface as SAM notices, GAO HIGH means a sustained protest within 120 days, and billing semantics ('follow-ups within 30 minutes ride free, one accepted call counts as one use regardless of record count'). It also commits to a verifiable source link per record — all beyond what structured fields declare.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single dense paragraph whose first two sentences are legal disclaimers ('Not affiliated with the U.S. government...') rather than purpose, so the useful content is not front-loaded. The billing and presentation clauses are necessary but could be tightened; still, nearly every sentence carries information once past the disclaimer.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 needn't be described, yet the description still explains the ranked fields and their interpretation. Caveats on estimate accuracy, non-convertible paths, ranking meaning, and citation requirements make it largely self-sufficient; the only real gap is guidance on the filters and on choosing this tool over its recompete siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 83%, so the schema already documents naics, agency, days_out, set_aside, and bridge_only, putting this at the baseline. The description itself never mentions any filter (NAICS, agency, days_out window, bridge_only) or the limit cap of 50, so it adds no semantics beyond the schema and an agent could miss that filtering exists at all.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the resource precisely: contracts whose periods of performance end soon, ranked for business development, with an enumerated field list (incumbent, value, end date, days to expiry, set-aside, bridge flag, SAM follow-on, GAO protest risk). It is clear what the tool returns, but it never distinguishes itself from close siblings like find_likely_recompetes, get_recompete_detail, track_recompete, or list_awards_by_period_end, so an agent must infer which ranked-recompete surface to pick.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied by phrases like 'ranked for business development' and the presentation rules ('Present as information only; do not frame results as a bid/no-bid recommendation'). There is no explicit when-to-use or when-not-to-use guidance and no named alternative among the many overlapping recompete siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_recompete_detailRecompete candidate awardsA
Read-onlyIdempotent
Inspect

Not affiliated with the U.S. government, GSA, or SAM.gov. Not a U.S. government service. Ranked candidate incumbent awards for one notice, from GovInbox's recompete analysis of public award records. Candidates are analytical matches, not confirmed incumbents. Present as information only; do not frame results as a bid/no-bid recommendation, eligibility determination, or partnership recommendation. Follow-ups within 30 minutes after a search ride free (up to 30 per search); otherwise one accepted call counts as one use. Every record carries a direct source link (or source name and record ID) so you can verify and cite the underlying record.

NameRequiredDescriptionDefault
notice_idYesNotice id from a search result

Output Schema

NameRequiredDescription
countYes
quotaYes
coverageYes
notice_idYes
candidatesYes
analytical_disclaimerYes

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, yet the description adds real context beyond them: per-call metering ('one accepted call counts as one use'), a 30-minute free follow-up window capped at 30 per search, and provenance via direct source links. It stops short of stating result volume/ranking criteria, so not a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The legal disclaimer boilerplate ('Not affiliated with the U.S. government...') occupies the opening before the actual purpose, so the description is not front-loaded on what the tool does. The remainder is dense but each sentence carries billing, caveat, or citation information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 explained, and the description covers the analytical caveat (matches, not confirmed incumbents), metering, and citation guidance. It omits ranking criteria and behavior on a non-recompete notice, which are minor residual gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Single required parameter with 100% schema description coverage ('Notice id from a search result'), so the schema already carries the meaning. The description only implies the same constraint ('for one notice') without adding format or retrieval guidance beyond it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: 'Ranked candidate incumbent awards for one notice,' sourced from GovInbox recompete analysis of public award records. This clearly separates it from search-oriented siblings (find_likely_recompetes, list_awards_by_period_end) though no sibling is named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies the workflow — it is a follow-up detail call for a notice ('Follow-ups within 30 minutes after a search ride free'), suggesting it be used after a search. But there is no explicit when-to-use/when-not or named alternative (e.g. vs. find_likely_recompetes for discovery), leaving selection to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_recordGet full recordA
Read-onlyIdempotent
Inspect

Not affiliated with the U.S. government, GSA, or SAM.gov. Not a U.S. government service. NOT for bid/no-bid, pursue-or-pass, eligibility, qualification, certification, size-standard, or submit-a-bid questions: for those call explain_policy_boundary first and do not research or use memory to answer. Get bounded typed details of a contract notice or grant by source ID. Grants require the full account connection. Specify record_type when IDs overlap. Returns recorded display facts and source links; record_delivery describes output limits and omitted upstream fields. Present as information only. Follow-ups within 30 minutes after a search ride free (up to 30 per search); otherwise one accepted call counts as one use.

NameRequiredDescriptionDefault
notice_idYesContract notice ID or grant opportunity number
record_typeNoRecord type; required when a contract and grant share an ID

TDQS

A4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent annotations, it discloses two things annotations cannot: an auth requirement ('Grants require the full account connection') and a usage/quota model ('follow-ups within 30 minutes... ride free (up to 30 per search); otherwise one accepted call counts as one use'). It also points to record_delivery for output limits and omitted upstream fields, and sets a framing expectation ('Present as information only').

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The tool's actual function is buried in the third sentence behind two sentences of legal disclaimer and one of policy routing, so the definition is not front-loaded. The remaining content is dense but each clause does work; the problem is ordering and density rather than padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter read tool with no output schema, it covers auth, quota, output-limit pointer, and liability framing. The one material omission is disambiguation from get_notice_record and get_grant_record, which an agent needs in order to route correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already carries both parameters, including the rule that record_type is required when a contract and grant share an ID; the description merely restates that. The phrase 'by source ID' adds only marginal meaning about notice_id beyond the schema's 'Contract notice ID or grant opportunity number.'

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The operative sentence 'Get bounded typed details of a contract notice or grant by source ID' is a specific verb plus resource and scope. However, it never distinguishes itself from the closely related siblings get_notice_record and get_grant_record, which an agent will see in the same list; 'Specify record_type when IDs overlap' addresses ID collisions, not tool choice.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives an explicit when-not and a named alternative: 'NOT for bid/no-bid, pursue-or-pass, eligibility... for those call explain_policy_boundary first.' It also states a prerequisite ('Grants require the full account connection') and a selection rule for record_type. The gap is that it never says when to prefer this tool over get_notice_record or get_grant_record.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_awards_by_period_endContracts nearing end dateB
Read-onlyIdempotent
Inspect

Not affiliated with the U.S. government, GSA, or SAM.gov. Not a U.S. government service. Lists public award records in GovInbox's database whose recorded period-of-performance end dates fall within the requested lookahead window. Dates are reported source facts, and unexercised options or later modifications may change them. These are award records, not open solicitations; an ending performance period does not predict a new solicitation. GovInbox does not return model estimates through these tools. Does not recommend bids, determine eligibility, or suggest partners. Follow-ups within 30 minutes after a search ride free (up to 30 per search); otherwise one accepted call counts as one use, regardless of the number of records returned. Every record carries a direct source link (or source name and record ID) so you can verify and cite the underlying record. Without a connected GovInbox account, both limits apply: 3 searches per UTC calendar day and 10 per UTC calendar month. With a connected free GovInbox account, the limit is 20 searches per UTC calendar month, with no separate daily limit. One accepted search counts as one use, regardless of the number of records returned. Follow-up calls (opening records, comparing versions, listing awards or subawards) within 30 minutes after a search do not count extra, up to 30 follow-ups per search. A follow-up invoked with no active search window counts as one use and opens a new 30-minute window. Empty results consume the search. A lookup for a record that does not exist is not charged. Each retry of a search counts as a new search, as does each call for another page of search results. Daily limits reset at 00:00 UTC each day; monthly limits reset at 00:00 UTC on the first day of each month. Requests rejected for invalid authentication or an exhausted quota do not consume a use.

NameRequiredDescriptionDefault
limitNo
naicsYesNAICS codes, 2-6 digits each
cursorNoOpaque next_cursor from a previous page
geographyNoUppercase US state, District of Columbia, or territory code, e.g. WA
certificationsNosdvosb | 8a | hubzone | wosb | edwosb
lookahead_monthsNo

Output Schema

NameRequiredDescription
countYes
quotaYes
coverageYes
contractsYes
data_noteNoData freshness caveat
sort_labelNoHuman-readable sort rule; never a ranking
next_cursorNo
analytical_disclaimerYes

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, idempotent, non-destructive, and open-world behavior, yet the description adds real operational detail: dates are source-reported facts that options or modifications can change, empty results still consume a search, retries and additional pages each count as new searches, and follow-ups within 30 minutes ride free up to 30 per search. That is meaningful billing and rate-limit context an agent cannot infer from annotations. The main weakness is heavy duplication of the same quota rules, which dilutes rather than contradicts the disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core purpose is preceded by two legal disclaimers, so the first impression is boilerplate rather than function. The quota material is stated at least twice — 'one accepted call counts as one use, regardless of the number of records returned' and the 30-minute free follow-up rule both appear in near-identical form — while the required NAICS parameter is never mentioned at all. Size is dominated by repetition rather than information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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 need not be described, and the description does note that every record carries a source link or record ID for verification. However, for a six-parameter tool whose sole required argument is a NAICS code list, the description never mentions that filter, leaving the agent to infer the primary scoping mechanism from the schema alone. It is adequate but leaves a real gap in how to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 67%, with the schema itself documenting the NAICS pattern, the geography enum, the certification codes, and the cursor's origin, so the baseline is 3. The description refers to a 'requested lookahead window,' loosely mapping to lookahead_months, but never explains that NAICS codes are the required filter or what changing the lookahead range or limit does to results. It therefore adds little beyond the structured schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource: lists public award records whose recorded period-of-performance end dates fall inside the requested lookahead window. It also draws a useful boundary against solicitations, distinguishing it from search_open_notices. It does not, however, distinguish itself from the thematically closest siblings like find_likely_recompetes, get_recompete_calendar, or search_award_history.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied through phrases like 'requested lookahead window' and 'not open solicitations,' which suggest when the tool applies. There is no explicit statement of when to pick this over find_likely_recompetes or get_recompete_calendar, and no stated prerequisite beyond 'with a connected account' in the quota text. The negative statements ('does not recommend bids, determine eligibility, or suggest partners') constrain scope but do not route the agent to an alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_reported_subawardsReported prime subawardsA
Read-onlyIdempotent
Inspect

Not affiliated with the U.S. government, GSA, or SAM.gov. Not a U.S. government service. Returns up to limit rows of reported first-tier subcontract award information from GovInbox's stored USAspending subaward data. Returns reported relationships only, without inferring unreported relationships. Amounts are prime-reported subcontract award amounts, not cash paid or obligations. Reporting may be incomplete or duplicated, and a missing result does not prove that a subcontract relationship does not exist. This tool does not support pagination. Does not suggest partners, recommend bids, or determine eligibility. Follow-ups within 30 minutes after a search ride free (up to 30 per search); otherwise one accepted call counts as one use, regardless of the number of records returned. Without a connected GovInbox account, both limits apply: 3 searches per UTC calendar day and 10 per UTC calendar month. With a connected free GovInbox account, the limit is 20 searches per UTC calendar month, with no separate daily limit. One accepted search counts as one use, regardless of the number of records returned. Follow-up calls (opening records, comparing versions, listing awards or subawards) within 30 minutes after a search do not count extra, up to 30 follow-ups per search. A follow-up invoked with no active search window counts as one use and opens a new 30-minute window. Empty results consume the search. A lookup for a record that does not exist is not charged. Each retry of a search counts as a new search, as does each call for another page of search results. Daily limits reset at 00:00 UTC each day; monthly limits reset at 00:00 UTC on the first day of each month. Requests rejected for invalid authentication or an exhausted quota do not consume a use.

NameRequiredDescriptionDefault
limitNo
naicsYesNAICS codes, 2-6 digits each
agencyNoAgency substring filter
geographyNoUppercase US state, District of Columbia, or territory code, e.g. WA
certificationsNosdvosb | 8a | hubzone | wosb | edwosb

Output Schema

NameRequiredDescription
countYes
quotaYes
coverageYes
data_caveatNoData quality caveat at response level (not per-row)
next_cursorNoPagination is not supported by this tool.
relationshipsYes
reporting_thresholdNo
analytical_disclaimerYes

TDQS

A3.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial context beyond annotations: amounts are prime-reported subcontract values, not cash paid or obligations; reporting may be incomplete or duplicated; missing results do not prove absence of a relationship. It also discloses quota mechanics and that pagination is unsupported.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded, but the description is dominated by repeated rate-limit and quota text that restates the same rules multiple times. Much of this boilerplate does not earn its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex, quota-limited data tool, it thoroughly covers data provenance, limitations, and usage constraints, and an output schema exists for return values. The main gap is lack of explicit sibling differentiation for search_subawards.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers most parameters with descriptions, including NAICS, agency, geography, and certifications. The description only mentions 'limit rows' and adds no filter semantics beyond what the schema already provides, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: returns reported first-tier subcontract award rows from stored USAspending subaward data. It also clarifies that only reported relationships are returned. However, it does not distinguish this from the sibling search_subawards tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides caveats such as no pagination and no inferred relationships, but does not explicitly say when to use this tool instead of search_subawards or other siblings. The reader must infer the use case from the data source and filters.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_watchlistManage watchlistAInspect

Not affiliated with the U.S. government, GSA, or SAM.gov. Not a U.S. government service. Watch or pass on a contract or grant opportunity. Watching saves it to your list. Passing records why, so patterns emerge over time. Changes require applicable write access. Standard dynamically registered OAuth clients are read-only; approved OAuth write clients also require your explicit consent. Follow-ups within 30 minutes after a search ride free (up to 30 per search); otherwise one accepted call counts as one use.

NameRequiredDescriptionDefault
noteNoOptional note with the pass reason
limitNo
actionYeswatch, pass, unwatch, unpass, list, or remove_legacy
cursorNonext_cursor from the previous watchlist page
reasonNoWhy passing (required for pass): wrong_fit, too_small, too_large, bad_timing, incumbent_locked, location, other
notice_idNoThe contract notice ID or grant opportunity number (required for mutations)
legacy_keyNoOpaque legacy_key returned for an unresolved old save; remove_legacy only
record_typeNoSource record type. Required when IDs overlap; widget always supplies it.

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Substantially exceeds the annotations: it discloses write-access requirements, that standard dynamically registered OAuth clients are read-only, that approved write clients still need explicit user consent, and precise metering behavior (free follow-ups within 30 minutes, up to 30 per search, otherwise one accepted call = one use). None of that is inferable from readOnlyHint=false / openWorldHint=true.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Six sentences, each carrying distinct information about purpose, effect, permissions, and quota. The three leading legal disclaimers consume the front-loaded position with compliance boilerplate rather than the tool's function, which slightly weakens the opening.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter mutation tool with no output schema, the description covers permissions, consent, and cost — the parts an agent cannot get elsewhere. Listing/pagination behavior and the remove_legacy path are left entirely to schema field descriptions, which is acceptable given 88% coverage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 88%, so action enumerations, reason values, notice_id, cursor, and legacy_key are already documented in the schema. The description adds only conceptual context (watch vs. pass semantics) and no parameter-level guidance of its own. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource pairing ("Watch or pass on a contract or grant opportunity") and explains what each outcome produces (saved list vs. recorded reason). It clearly is not a search/retrieval tool like search_open_notices or get_record. It never mentions the list/unwatch/unpass/remove_legacy actions that the schema exposes, so the stated scope is narrower than the tool's actual surface.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a real decision rule: watch saves to your list, pass records why so patterns emerge over time. The 30-minute free-follow-up rule implicitly steers the agent to call this soon after a search. No explicit exclusion or named alternative sibling, but the usage context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

researchResearch sourcesA
Read-onlyIdempotent
Inspect

Not affiliated with the U.S. government, GSA, or SAM.gov. Not a U.S. government service. NOT for bid/no-bid, pursue-or-pass, eligibility, qualification, certification, size-standard, or submit-a-bid questions: for those call explain_policy_boundary first and do not research or use memory to answer. For source='DOE eXCHANGE', searches recorded official DOE laboratory-call documents and explicitly ingested lab calls. Returns separate lab-call identities, recorded stage deadlines, source gate facts and scoped provenance. This is a partial stored source, not a live or complete eXCHANGE search. No company eligibility is assessed. One accepted DOE search counts as one use. Other sources return a pointer and source coverage metadata without a source search or primary quota charge. For FAR, Federal Register, Grants.gov and MCC, use the named source tools.

NameRequiredDescriptionDefault
limitNoMaximum 25 DOE lab-call records; minimum 1; default 10. Other sources remain pointers.
queryYesSource query or exact recorded reference
sourceNoDOE eXCHANGE executes a stored lab-call search; far, federal_register, grants and mcc return source pointers

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, openWorld, idempotent, and non-destructive behavior. The description adds meaningful context beyond that: it warns the DOE source is 'a partial stored source, not a live or complete eXCHANGE search,' states that no company eligibility is assessed, and explains quota behavior ('One accepted DOE search counts as one use' vs. other sources without a primary quota charge). These are useful operational details the annotations do not provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long and front-loads two nearly redundant disclaimers ('Not affiliated with the U.S. government, GSA, or SAM.gov. Not a U.S. government service.'), delaying the actual purpose. The remaining content is useful, but the opening could be trimmed and the operational purpose placed first.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a read-only, open-world search tool with an output schema, the description covers the critical non-obvious behaviors: policy boundaries, source-specific behavior, quota implications, partial coverage, and alternatives. The output schema handles return-value details. Minor gaps remain around exact result shape, but the definition is largely complete for safe invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 semantic meaning for the 'source' parameter: DOE eXCHANGE executes a stored lab-call search, while other named sources return only source pointers and coverage metadata without a search or quota charge. That clarifies the consequence of the parameter choice beyond what the schema text alone states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description eventually states that for source='DOE eXCHANGE' it searches recorded DOE laboratory-call documents, but the first three sentences are disclaimers and exclusions rather than a clear verb+resource statement. The tool name 'research' is generic, and the actual purpose is conditional on a parameter value, so an agent must read several sentences before learning what it does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says when NOT to use the tool (bid/no-bid, eligibility, certification, etc.) and directs the agent to call explain_policy_boundary first in those cases. It also names alternatives for other sources: 'For FAR, Federal Register, Grants.gov and MCC, use the named source tools.' This is exactly the when/when-not/alternative guidance an agent needs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_amtrakSearch Amtrak procurement opportunitiesA
Read-onlyIdempotent
Inspect

Not affiliated with the U.S. government, GSA, or SAM.gov. Not a U.S. government service. Amtrak business opportunities from Amtrak's public procurement portal, construction, non-construction services, and equipment sales that do not appear on SAM.gov - Amtrak publishes through its own portal. Amtrak rotates active solicitations off the public listing after about a week; this feed refreshes daily. Filter by keyword or category. Metadata only; full documents live on Amtrak's portal. Present as information only. One search counts as one use, regardless of how many records are returned. Every record carries a direct source link (or source name and record ID) so you can verify and cite the underlying record.

NameRequiredDescriptionDefault
limitNo
queryNoKeyword filter over title and description
categoryNoCategory filter: construction, non-construction, or equipment (matches Amtrak's CN/NC/ES codes)

Output Schema

NameRequiredDescription
countYes
quotaYes
coverageYes
data_caveatNoData quality caveat
solicitationsYes
analytical_disclaimerYes

TDQS

A4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly/idempotent/non-destructive/openWorld), it discloses several things the annotations cannot: metadata-only results with documents living on Amtrak's portal, daily refresh cadence, ~1 week listing rotation, usage metering ('one search counts as one use'), and that every record carries a source link or ID for citation. It also explicitly disclaims government affiliation, which is meaningful context for a procurement feed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Most sentences carry real information, but it opens with two near-duplicate legal disclaimers ('Not affiliated with the U.S. government, GSA, or SAM.gov. Not a U.S. government service.') that delay the actual purpose statement. The core scope sentence should have been front-loaded ahead of the boilerplate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value shape needn't be explained; the description instead covers the things structured fields can't — coverage gap vs. SAM.gov, data freshness, metadata-only limitation, and citation via source link. The only real omission is any guidance on the limit parameter and result-set size.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 67% and both documented parameters (query, category) already explain their own semantics, including the CN/NC/ES category mapping. The description's 'filter by keyword or category' adds no syntax, format, or interaction detail beyond the schema, and the undocumented limit parameter (default 20, max 50) is not addressed at all.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource (Amtrak's public procurement portal listings for construction, non-construction services, and equipment sales) and explicitly delimits scope: records 'that do not appear on SAM.gov.' The search verb is implicit rather than stated, but an agent can distinguish this from the SAM.gov-oriented siblings (search_opportunities, search_open_notices) from the text alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear selection context: this feed covers Amtrak-only solicitations absent from SAM.gov, refreshes daily, and drops active solicitations after about a week — all of which tell the agent when this source is the right one and when recency matters. It does not explicitly name an alternative tool or state exclusions ('use search_opportunities for federal notices'), so it stops short of a full when/when-not treatment.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_award_historySearch federal award historyB
Read-onlyIdempotent
Inspect

Not affiliated with the U.S. government, GSA, or SAM.gov. Not a U.S. government service. Historical federal prime award records from public USAspending data: who won what, for how much, from which agency. Filter by trade lane, agency, or contractor name. Amounts are obligations as recorded, not cash paid. Present as information only; do not frame results as a bid/no-bid recommendation, eligibility determination, or partnership recommendation. One search counts as one use, regardless of how many records are returned. Every record carries a direct source link (or source name and record ID) so you can verify and cite the underlying record.

NameRequiredDescriptionDefault
piidNo
sortNoamount_desc
limitNoMaximum 50 records; minimum 1; default 20.
naicsNoNAICS prefixes, 2-6 digits; six digits match an exact lane
agencyNo
cursorNo
officeNo
date_toNo
keywordNo
award_keyNo
date_fromNoRecorded signed/action date, not period-of-performance start
contractorNo
solicitationNo

Output Schema

NameRequiredDescription
countYes
quotaYes
awardsYes
coverageYes
data_noteNoData provenance caveat
next_cursorNo
total_countNo
applied_filtersNo
analytical_disclaimerYes

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, yet the description still adds material context beyond them: amounts are obligations rather than cash paid, one search consumes one use regardless of result count, and every record carries a source link or ID for citation. The remaining gap is pagination behavior, since a 50-record cap with a cursor parameter is never explained.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening two sentences are legal/affiliation boilerplate, so the actual purpose statement is not front-loaded. The middle content is dense and earns its place, but the non-affiliation and no-recommendation framing occupies roughly half the text and pushes operational details like the record cap and sourcing to the tail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema the description need not describe return shape, and annotations cover safety, but a 13-parameter search tool with zero required fields needs at least a note on how filters combine and how to page via cursor/limit. That operational gap keeps it at minimum-viable for its complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 23% across 13 parameters, so the description must carry the load, and it names only three filters (trade lane/naics, agency, contractor). It says nothing about piid, office, keyword, award_key, solicitation, sort, or the cursor used for paging, leaving the majority of the surface undocumented in both places.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The second sentence gives a specific verb+resource: historical federal prime award records from USAspending, with 'who won what, for how much, from which agency.' The word 'prime' implicitly separates it from search_subawards and list_reported_subawards, but no sibling is named, so an agent must infer the boundary against search_ota_awards, list_awards_by_period_end, or get_record on its own.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Filter by trade lane, agency, or contractor name' is filter inventory, not a when-to-use rule. The description does add hard usage constraints (present as information only, no bid/no-bid or eligibility framing), which is real guidance, but there is no explicit statement of when to prefer this over adjacent tools such as search_subawards or get_record.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_cancelled_contractsSearch cancelled contractsA
Read-onlyIdempotent
Inspect

Not affiliated with the U.S. government, GSA, or SAM.gov. Not a U.S. government service. Contracts recorded as cancelled, with the savings claimed, from public cancellation reports. Filter by agency or vendor. Cancellation and savings figures are as reported by the source; verify against official records before acting. Present as information only. Follow-ups within 30 minutes after a search ride free (up to 30 per search); otherwise one accepted call counts as one use, regardless of how many records are returned. Every record carries a direct source link (or source name and record ID) so you can verify and cite the underlying record.

NameRequiredDescriptionDefault
limitNo
agencyNoAgency name substring filter
vendorNoVendor name substring filter

Output Schema

NameRequiredDescription
countYes
quotaYes
coverageYes
contractsYes
data_caveatNoData quality caveat
analytical_disclaimerYes

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, openWorld, and non-destructive, so the safety bar is lower. The description adds genuinely non-obvious behavior: the billing/rate-limit model (30-minute follow-up window, one accepted call = one use regardless of result count), the data provenance caveat, and the guarantee that each record carries a source link for citation. Only the exact return shape is left implicit, which the output schema covers.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded, but the opening three sentences of legal non-affiliation disclaimer consume significant space before any functional information appears. The rate-limit sentence is dense and detail-heavy for a search tool, though it does carry real operational value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 needn't be explained, and the description covers provenance, citations, disclaimer posture, and billing semantics. The one omission is guidance on the limit/maximum behavior, which matters for a paginated search but is left entirely to the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 67% with agency and vendor already described in the schema as substring filters, which the description merely restates. The 'limit' parameter (default 20, max 50) is undocumented in both schema and description, so the description does not compensate for the remaining coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: cancelled contracts with claimed savings, drawn from public cancellation reports, filterable by agency or vendor. The resource is precise enough to distinguish it from the other cancelled-record siblings (search_cancelled_grants, search_cancelled_leases) without naming them, but it never explicitly routes the agent among those closely-named tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Filter by agency or vendor" and "verify against official records before acting" imply usage context, and "Present as information only" constrains how results should be surfaced. However, there is no statement of when to choose this over the cancelled-grants or cancelled-leases siblings, nor any prerequisite conditions for calling it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_cancelled_grantsSearch cancelled grantsA
Read-onlyIdempotent
Inspect

Not affiliated with the U.S. government, GSA, or SAM.gov. Not a U.S. government service. Grants recorded as cancelled, with the savings claimed, from public cancellation reports. Filter by agency or recipient. Cancellation and savings figures are as reported by the source; verify against official records before acting. Present as information only. Follow-ups within 30 minutes after a search ride free (up to 30 per search); otherwise one accepted call counts as one use, regardless of how many records are returned. Every record carries a direct source link (or source name and record ID) so you can verify and cite the underlying record.

NameRequiredDescriptionDefault
limitNo
agencyNoAgency name substring filter
recipientNoRecipient name substring filter

Output Schema

NameRequiredDescription
countYes
quotaYes
grantsYes
coverageYes
data_caveatNoData quality caveat
analytical_disclaimerYes

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), so the description earns credit for the extra context it supplies: data provenance caveats, a 'verify before acting' instruction, per-record source links for citation, and an explicit quota model (one accepted call = one use; 30-minute follow-up window). The one real gap is that 'grants recorded as cancelled' does not clarify how incomplete or lagged the underlying source reports are beyond the generic disclaimer.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two of the opening four sentences are near-duplicate legal disclaimers ('Not affiliated with the U.S. government, GSA, or SAM.gov' / 'Not a U.S. government service'), which delays the actual purpose. The quota and source-link sentences are dense but each carries real information. Front-loading should be the capability, not the disclaimer.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value explanation is correctly omitted. The description covers provenance, citation, quota mechanics, and filter dimensions, which is most of what an agent needs. It is slightly thin on what happens with zero matches or whether pagination exists beyond the limit cap of 50.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 67%: agency and recipient carry their own 'substring filter' descriptions, but limit has no schema description at all. The description only restates 'filter by agency or recipient' and adds nothing about substring matching behavior, nullability, or what the limit bounds mean. Since the schema already does most of the work, a baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific resource and scope: grants recorded as cancelled, including claimed savings, drawn from public cancellation reports. The resource type implicitly separates it from search_cancelled_contracts and search_cancelled_leases, though it never names those alternatives explicitly. The purpose is buried behind two sentences of legal disclaimer, but it is unambiguous once reached.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It says the results can be filtered by agency or recipient, which implies a lookup use case, but gives no explicit when-to-use vs. when-not guidance. It does not tell the agent when to prefer search_cancelled_contracts, search_cancelled_leases, or search_grants_gov over this tool. The rate-limit note ('follow-ups within 30 minutes ride free') hints at iterative refinement but is framed as billing, not workflow guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_cancelled_leasesSearch cancelled leasesA
Read-onlyIdempotent
Inspect

Not affiliated with the U.S. government, GSA, or SAM.gov. Not a U.S. government service. Federal leases recorded as cancelled, with the savings claimed, from public cancellation reports. Filter by agency or location. Cancellation and savings figures are as reported by the source; verify against official records before acting. Present as information only. Follow-ups within 30 minutes after a search ride free (up to 30 per search); otherwise one accepted call counts as one use, regardless of how many records are returned. Every record carries a direct source link (or source name and record ID) so you can verify and cite the underlying record.

NameRequiredDescriptionDefault
limitNo
agencyNoAgency name substring filter
locationNoLocation substring filter

Output Schema

NameRequiredDescription
countYes
quotaYes
leasesYes
coverageYes
data_caveatNoData quality caveat
analytical_disclaimerYes

TDQS

A3.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the read-only annotations, the description discloses provenance (public cancellation reports), data caveats (figures as reported, verify against official records), direct source links for citation, and a detailed billing model for follow-up searches. These are meaningful behavioral traits an agent would not know from the annotations alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is informative but front-loads two legal-disclaimer sentences before stating the tool's purpose, which delays clarity. The billing and verification details are useful but make the description dense, and some phrasing is repetitive.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema and rich annotations, the description provides enough context about data source, caveats, filtering, billing, and source links for an agent to invoke the tool responsibly. It stops short of explicitly positioning the tool relative to sibling search tools, which is the main remaining gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents agency and location as substring filters, and the description merely restates 'Filter by agency or location' without adding syntax or format guidance. The limit parameter is undocumented in both the description and schema, though its bounds are clear from the schema. With moderate schema coverage, this is adequate but not additive.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the resource: federal leases recorded as cancelled, with claimed savings, sourced from public cancellation reports. It also mentions filtering by agency or location. It does not explicitly differentiate itself from sibling tools like search_cancelled_contracts or search_cancelled_grants, which prevents a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the resource and filter options, and the description adds a caution to verify figures and present as information only. However, it provides no explicit guidance on when to use this tool versus the closely related cancelled-contract or cancelled-grant search tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_denaliSearch Denali Commission grant opportunitiesA
Read-onlyIdempotent
Inspect

Not affiliated with the U.S. government, GSA, or SAM.gov. Not a U.S. government service. Denali Commission grant opportunities for rural Alaska infrastructure, energy, transportation, health facilities, sanitation, and housing. Eligible applicants are typically Alaska tribal, municipal, and nonprofit organizations, but eligibility varies by program. Filter by keyword or status. Present as information only; verify eligibility and deadlines against the official notice before acting. One search counts as one use, regardless of how many records are returned. Every record carries a direct source link (or source name and record ID) so you can verify and cite the underlying record.

NameRequiredDescriptionDefault
limitNo
queryNoKeyword filter over title and description
statusNoStatus filter, e.g. open, forecasted

Output Schema

NameRequiredDescription
countYes
quotaYes
coverageYes
data_caveatNoData quality caveat
opportunitiesYes
analytical_disclaimerYes

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the read-only/idempotent/non-destructive safety profile, so the bar is lower, yet the description still adds genuinely useful behavior: 'one search counts as one use' (a quota/cost signal), every record carries a source link or record ID for citation, and an explicit instruction that results are informational only. It does not mention pagination or how limit interacts with usage counting.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first two sentences are redundant disclaimers ('Not affiliated with the U.S. government, GSA, or SAM.gov' / 'Not a U.S. government service'), consuming the front-loaded position that should carry the purpose. The genuinely useful quota and citation facts are buried mid-paragraph. Tightenable to roughly half the length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return structure needn't be explained, and the description still covers eligibility, sector scope, quota cost, citation/verification affordance, and a compliance caveat. Gaps are minor: no mention of the 50-record cap or how limit interacts with result counts.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 67% — query and status are documented in the schema, limit is not. The description's 'filter by keyword or status' merely restates the two documented params and adds no semantics (no status value guidance beyond the schema's 'e.g. open, forecasted', no hint about what limit controls). Baseline 3 given the schema does most of the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific agency (Denali Commission) and resource (grant opportunities) with a clear scope: rural Alaska infrastructure, energy, transportation, health, sanitation, housing. This is enough for an agent to distinguish it from the many other agency-specific search_* siblings (search_dra_grants, search_nbrc_grants, search_mcc) without opening schemas, though it never explicitly contrasts itself with any of them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives filtering guidance ('Filter by keyword or status') and a caution to verify eligibility and deadlines before acting, which implies usage context. But it never states when to use this search versus the sibling agency searches, nor when to escalate from this list tool to get_grant_record for full record detail — that routing is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_dibbsSearch DLA DIBBS RFQsA
Read-onlyIdempotent
Inspect

Not affiliated with the U.S. government, GSA, or SAM.gov. Not a U.S. government service. Defense Logistics Agency simplified-acquisition RFQs from DIBBS, the bid board where DLA posts thousands of small-purchase solicitations (parts, medical, clothing, subsistence) that rarely appear on SAM.gov. Filter by keyword, NSN, solicitation number, or buyer code. Quotes are due 3:00 PM Eastern on the return-by date. The status filter is computed from recorded deadlines, not a live verification. Unknown deadlines are included only with status=all. Present as information only. One search counts as one use, regardless of how many records are returned. Every record carries a direct source link (or source name and record ID) so you can verify and cite the underlying record.

NameRequiredDescriptionDefault
nsnNoNational Stock Number filter, digits with or without dashes, e.g. 8465015148739
limitNoMaximum 50 records; minimum 1; default 20.
queryNoKeyword filter over item description, solicitation number, and NSN
statusNoComputed recorded-deadline status. all preserves historical and unknown-deadline records.all
buyer_codeNoRecorded DLA buyer code substring
match_modeNoKeyword matching mode; acronym excludes embedded forms such as SBIRT for SBIR.substring
solicitationNoSolicitation number filter, e.g. SPE4A626T1775

Output Schema

NameRequiredDescription
rfqsYes
countYes
quotaYes
coverageYes
data_caveatNoData quality caveat
applied_filtersNo
analytical_disclaimerYes

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial context beyond the read-only annotations: status is computed from recorded deadlines rather than live verification, unknown deadlines are dropped under non-'all' statuses, billing is one search = one use regardless of result count, and every record carries a source link for citation. The non-affiliation disclaimer and 'information only' framing further set expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense and largely waste-free, but the first two sentences are legal disclaimers placed before the actual capability statement, delaying the front-loaded purpose. Every sentence still carries information an agent may need.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter, all-optional search tool with a full output schema, the description covers source, filters, deadline semantics, billing, and verifiability. Nothing an agent needs to call it correctly or interpret results is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description adds value by naming the filter facets (keyword, NSN, solicitation, buyer code) and clarifying that status reflects recorded deadlines, not live verification. It does not explain match_mode's acronym behavior, which stays only in the schema, so it is a modest rather than full addition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Defense Logistics Agency simplified-acquisition RFQs from DIBBS') and enumerates the domain ('parts, medical, clothing, subsistence'). It also distinguishes itself from other notice sources by noting these 'rarely appear on SAM.gov', so an agent can separate it from search_opportunities/search_grants_gov style siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear context for when this source is the right one (small DLA purchases absent from SAM.gov) and explains the status filter caveat that unknown deadlines only appear with status=all. It stops short of explicitly naming an alternative tool to use for SAM.gov notices, so routing is implied rather than fully prescribed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_doge_paymentsSearch DOGE grant payment recordsA
Read-onlyIdempotent
Inspect

Not affiliated with the U.S. government, GSA, or SAM.gov. Not a U.S. government service. Individual federal grant payment disbursements (which organizations received grant funds and when) from public payment reports, including the recipient's own justification text. Filter by agency, recipient organization, keyword, or FAIN. These are disbursements made, not cancellations; the feed is historical (stopped meaningful updates around October 2025). Present as information only. One search counts as one use, regardless of how many records are returned. Every record carries a direct source link (or source name and record ID) so you can verify and cite the underlying record.

NameRequiredDescriptionDefault
orgNoRecipient organization name substring filter
fainNoFederal Award Identification Number filter
limitNo
queryNoKeyword filter over organization, award description, and recipient justification text
agencyNoAgency name substring filter

Output Schema

NameRequiredDescription
countYes
quotaYes
coverageYes
paymentsYes
data_caveatNoData quality caveat
analytical_disclaimerYes

TDQS

A4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial context beyond the annotations: freshness cutoff (October 2025), billing semantics ('one search counts as one use, regardless of how many records are returned'), and output provenance ('every record carries a direct source link or source name and record ID'). These are genuinely useful behavioral facts an agent cannot infer from the readOnly/idempotent/openWorld annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Content is relevant but the first two sentences are legal disclaimers occupying the front-loaded position, delaying the actual purpose. The billing and sourcing notes are valuable but the paragraph mixes compliance, scope, freshness, and citation concerns without strong structure. Every clause is defensible, but the ordering undermines front-loading.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return-value shape needn't be explained, and the description covers freshness, billing, and citation provenance. For a 5-param filtered search over a public dataset this is nearly complete; only explicit sibling routing would close the gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 80%, so the schema already documents org, fain, query, and agency descriptions. The description's filter list maps onto these parameters but adds no syntax, matching behavior, or format detail beyond what the schema provides. Baseline 3 is appropriate given the schema carries the parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: individual federal grant payment disbursements from public payment reports, with the filterable dimensions called out. It also distinguishes itself from the cancellation siblings by explicitly noting 'These are disbursements made, not cancellations,' which helps route away from search_cancelled_grants. It doesn't name the closest data siblings, keeping it at 4 rather than 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete use conditions: filter by agency, recipient org, keyword, or FAIN, and discloses that the feed is historical and stopped meaningful updates around October 2025. This tells the agent both how to query and when the data is not appropriate. No explicit 'use X instead' sibling routing beyond the cancellations note, so not a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_dra_grantsSearch Delta Regional Authority grantsA
Read-onlyIdempotent
Inspect

Not affiliated with the U.S. government, GSA, or SAM.gov. Not a U.S. government service. Delta Regional Authority (DRA) grant funding cycles and announced awards, from DRA's own public site (dra.gov), SEDAP, the Community Infrastructure Fund, the Delta Workforce Grant Program, Strategic Planning, and disaster-recovery addenda. DRA grants go to local governments, nonprofits, and tribes across its eight-state region (AL, AR, IL, KY, LA, MS, MO, TN) and are not listed on Grants.gov. Filter by keyword, program, record type, or recipient state. Results include deadlines, award ranges, eligibility, and source links. Present as information only; do not frame results as an eligibility determination or application recommendation. One search counts as one use, regardless of how many records are returned. Every record carries a direct source link (or source name and record ID) so you can verify and cite the underlying record.

NameRequiredDescriptionDefault
limitNo
queryNoKeyword filter over title, description, and award recipient
stateNoRecipient state, 2-letter code (award records)
programNoProgram filter: SEDAP, CIF, DWP, SP (Strategic Planning), or SDRF
record_typeNoRecord type: funding_cycle or award

Output Schema

NameRequiredDescription
countYes
quotaYes
grantsYes
coverageYes
data_caveatNoData quality caveat
analytical_disclaimerYes

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the description earns credit for what it adds beyond them: the billing model ('one search counts as one use, regardless of how many records are returned'), the provenance guarantee (every record carries a direct source link or source name plus record ID, enabling verification and citation), and the field-level payload (deadlines, award ranges, eligibility, source links). The non-affiliation disclaimer also preempts a factual error an agent might otherwise make about the source.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense but largely purposeful, and it front-loads the non-affiliation disclaimer. The opening three sentences restate the same disclaimer twice ('Not affiliated...' and 'Not a U.S. government service'), which delays the actual purpose statement to sentence two. Trimming that redundancy would make the definition stronger without losing legal coverage.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, yet the description still summarizes what comes back (deadlines, award ranges, eligibility, source links) and how to present it. Combined with coverage of provenance, billing, and scope boundaries for a five-parameter, zero-required search tool, nothing an agent needs in order to call and use this correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 80% and the description maps its filter axes onto the parameters (keyword, program, record type, recipient state), which is at or above baseline. It goes further by spelling out program full names (SEDAP, Community Infrastructure Fund, Delta Workforce Grant Program, Strategic Planning, disaster-recovery addenda) where the schema only gives abbreviations, adding real disambiguation value. It does not, however, explain the limit cap or how record_type interacts with the state filter (state only applies to award records per the schema).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (DRA grant funding cycles and announced awards), enumerates the exact programs covered (SEDAP, CIF, DWP, Strategic Planning, disaster-recovery addenda), and explicitly distinguishes itself from Grants.gov listings. An agent can tell this apart from search_grants_gov, search_open_grants, and search_nbrc_grants without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear selection context: these awards go to local governments, nonprofits, and tribes across eight named states and are NOT listed on Grants.gov, which implicitly routes the agent here instead of the federal grants sibling. It also specifies the four filter axes and a presentational constraint ('information only; do not frame results as an eligibility determination'). No explicit exclusion statement naming a competing sibling for the overlap case, so 4 rather than 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_fdicSearch FDIC solicitations on SAM.govA
Read-onlyIdempotent
Inspect

Not affiliated with the U.S. government, GSA, or SAM.gov. Not a U.S. government service. Federal Deposit Insurance Corporation solicitations posted to SAM.gov under CORHQ numbers. FDIC buys mostly IT infrastructure, application services, and bank resolution support. FDIC is not FAR-bound and does not report awards to FPDS, so award history is limited to what SAM.gov publishes. Filter by keyword. Present as information only; verify every fact against the official notice before acting. One search counts as one use, regardless of how many records are returned. Every record carries a direct source link (or source name and record ID) so you can verify and cite the underlying record.

NameRequiredDescriptionDefault
limitNo
queryNoKeyword filter over notice title

Output Schema

NameRequiredDescription
countYes
quotaYes
noticesYes
coverageYes
data_caveatNoData quality caveat
analytical_disclaimerYes

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, open-world, idempotent, non-destructive behavior, so the bar is lower, yet the description still adds real context: FDIC is not FAR-bound, awards are not reported to FPDS so award history is limited, and every record carries a source link for verification. The 'one search counts as one use regardless of records returned' note discloses a quota/billing trait not present in annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening two sentences are redundant legal disclaimers ('Not affiliated with the U.S. government, GSA, or SAM.gov. Not a U.S. government service.') that repeat the same idea, and the actual purpose statement is buried after them. The remainder is informative, but the front-loading is wasted on boilerplate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value explanation is unnecessary, and the description supplies the caveats an agent needs (limited award history, verify against the official notice, source links per record). The main gap is that nothing explains the limit parameter or result-set behavior, which matters for a search tool capped at 50 records.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50%: 'query' is documented in the schema as a keyword filter over notice title, and the description's 'Filter by keyword' merely echoes that. The 'limit' parameter (1–50, default 20) is undocumented in both places, so the description does not compensate for the coverage gap. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies a specific resource and scope: FDIC solicitations posted to SAM.gov under CORHQ numbers, with a note on what FDIC typically buys. The verb is implied ('Filter by keyword') rather than stated, and it does not explicitly contrast with sibling search_open_notices, but an agent can tell which dataset this covers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It says to filter by keyword and to present results as information only with verification, which implies research/discovery usage. However, it never states when to choose this over the many sibling search_* tools (e.g., search_open_notices, search_award_history) or when this source is insufficient, leaving routing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_federal_registerSearch procurement Federal Register noticesA
Read-onlyIdempotent
Inspect

Not affiliated with the U.S. government, GSA, or SAM.gov. Not a U.S. government service. Procurement-relevant Federal Register documents: FAR rulemaking, acquisition policy notices, and Procurement List (AbilityOne) actions. Filter by keyword; returns title, type, agencies, publication date, and abstract with a link to the full document. Abstracts only, read the full document before acting. One search counts as one use, regardless of how many records are returned. Every record carries a direct source link (or source name and record ID) so you can verify and cite the underlying record.

NameRequiredDescriptionDefault
limitNo
keywordNoKeyword matched against title and abstract
doc_typeNoDocument type filter: Notice, Proposed Rule, Rule
published_sinceNoOnly documents published on or after YYYY-MM-DD

Output Schema

NameRequiredDescription
countYes
quotaYes
coverageYes
documentsYes
data_caveatNoData quality caveat
analytical_disclaimerYes

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/openWorld, and the description adds real context beyond them: abstracts-only content with no full text, a per-call usage cost ('one search counts as one use, regardless of how many records are returned'), and verifiable source links per record. The non-affiliation disclaimer clarifies provenance, not behavior, but the quota and abstract-only caveats are genuinely useful disclosures.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Content is mostly worthwhile, but the legal disclaimer occupies the opening position ahead of what the tool actually does, and the final sentence about source links overlaps with the earlier mention of 'a link to the full document'. Slight redundancy and a back-loaded purpose section cost it a point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 fields needn't be restated, yet the description still lists them, and it covers scope, content caveats, quota behavior, and citability. Only the absence of routing guidance relative to the many sibling search tools leaves a gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 75% and the schema already documents keyword matching, doc_type values, published_since format, and limit bounds. The description only echoes 'Filter by keyword' and never mentions doc_type, date filtering, or result limits, so it adds little beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource specifically: 'Procurement-relevant Federal Register documents: FAR rulemaking, acquisition policy notices, and Procurement List (AbilityOne) actions.' That scope is concrete and distinguishable from SAM.gov-style siblings like search_open_notices, though no sibling is named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It implies usage ('Filter by keyword') and gives one important follow-up rule ('Abstracts only, read the full document before acting'), but never states when to choose this over search_open_notices, search_grants_gov, or get_notice_record, nor any exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_grants_govSearch Grants.gov opportunities (keyless feed)A
Read-onlyIdempotent
Inspect

Not affiliated with the U.S. government, GSA, or SAM.gov. Not a U.S. government service. Grant opportunities from the public Grants.gov feed, posted and forecasted federal grant postings, refreshed from the keyless Grants.gov API. Filter by keyword, agency, or deadline. Returns opportunity number, title, agency, status, close date, and assistance listing numbers as recorded. Present as information only; do not frame results as an eligibility determination or application recommendation. Verify every fact against the official grant posting before acting. One search counts as one use, regardless of how many records are returned. Every record carries a direct source link (or source name and record ID) so you can verify and cite the underlying record.

NameRequiredDescriptionDefault
limitNoMaximum 50 records; minimum 1; default 20.
agencyNoAgency name or code substring; exact NSF, EPA, DOE, USDA, NIH and NOAA inputs also resolve recorded names/code descendants without broadening NIH to all HHS or NOAA to all Commerce.
keywordNoKeyword matched against title
match_modeNosubstring
closes_afterNoOnly opportunities closing on or after YYYY-MM-DD
include_forecastNoInclude forecasted (not yet open) opportunities

Output Schema

NameRequiredDescription
countYes
quotaYes
grantsYes
coverageYes
applied_filtersNo
analytical_disclaimerYes

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, open-world, idempotent, and non-destructive behavior. The description adds useful context beyond that: it is a keyless feed, one search counts as one use regardless of record volume, records carry source links or IDs for verification, and results should be verified against official postings. It stops short of details like rate limits or pagination behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The disclaimer is front-loaded and the description is organized, but there is redundancy: 'Not affiliated with the U.S. government, GSA, or SAM.gov' and 'Not a U.S. government service' convey nearly the same point. Several sentences are legal/verification boilerplate rather than tool-selection information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a search tool with an output schema, annotations, and 83% schema coverage, the description is largely complete. It covers data source, refresh origin, return fields, billing semantics, verification expectations, and disclaimers. It could be improved by explicitly routing to sibling search tools, but no critical calling information is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 83%, so the schema already does most parameter documentation work. The description adds only broad filter categories (keyword, agency, deadline) and does not explain match_mode, include_forecast, or limit behavior beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: grant opportunities from the public Grants.gov feed, including posted and forecasted federal postings, refreshed from the keyless Grants.gov API. It is clear what the tool retrieves, though it does not explicitly distinguish itself from closely named siblings such as search_open_grants or search_dra_grants.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Says to filter by keyword, agency, or deadline, which implies usage, and adds presentation caveats about not treating results as eligibility determinations. However, there is no explicit when-to-use-this-vs-an-alternative guidance naming sibling tools or exclusion conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_mccSearch MCC compact procurement noticesA
Read-onlyIdempotent
Inspect

Not affiliated with the U.S. government, GSA, or SAM.gov. Not a U.S. government service. Millennium Challenge Corporation compact procurement notices, infrastructure and consulting procurements issued by partner-country MCA entities (MCA-Nepal, MCA-Benin, MCA-Senegal) under MCC procurement guidelines, collected directly from the MCA entities' public procurement portals. These are NON-FAR procurements by foreign partner entities, not U.S. federal procurements - different rules, different protest rights. US companies are generally eligible to bid; confirm with the issuing MCA entity. Filter by keyword, country, or notice type (gpn for pipeline forecasts, spn for live bids, ca for awards). General Procurement Notices are pipeline forecasts, not live bids. Present as information only; verify every fact against the issuing MCA entity's notice before acting. One search counts as one use, regardless of how many records are returned. Every record carries a direct source link (or source name and record ID) so you can verify and cite the underlying record.

NameRequiredDescriptionDefault
limitNo
queryNoKeyword filter over title and description
countryNoPartner country substring filter
notice_typeNoNotice type: gpn (pipeline), spn (live bid), rei (expressions of interest), or ca (award)

Output Schema

NameRequiredDescription
countYes
quotaYes
noticesYes
coverageYes
data_caveatNoData quality caveat
analytical_disclaimerYes

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, non-destructive behavior, but the description adds substantial context: provenance from MCA portals, non-FAR procurement rules, different protest rights, U.S. bidder eligibility, per-search usage counting, and source-link verification. These are meaningful behavioral disclosures beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description contains useful legal/provenance context, but it repeats the non-affiliation and non-FAR points across several sentences. The core purpose and filtering guidance are present, yet the front-loaded disclaimers make it longer and less direct than it could be.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a search tool with an output schema and rich annotations, the description covers provenance, verification expectations, filters, notice-type interpretation, and source-link availability. It misses explicit sibling routing and the omitted `rei`/`limit` details, but the overall context is largely complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 75%, and the schema already documents `query`, `country`, and `notice_type` including the `rei` value. The description adds useful plain-language meanings for `gpn`, `spn`, and `ca`, but omits `rei` and does not explain `limit`, so it only partially improves parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: searching MCC compact procurement notices from partner-country MCA entities. It clearly distinguishes these from U.S. federal/FAR procurements and names the issuing entities, so an agent can identify the tool's domain immediately.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains how to filter by keyword, country, and notice type, and clarifies that GPNs are pipeline forecasts rather than live bids. It does not explicitly route the agent to `search_mcc_forecast` or other sibling tools, so sibling selection still requires inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_mcc_forecastSearch MCC Partner Country Business ForecastA
Read-onlyIdempotent
Inspect

Not affiliated with the U.S. government, GSA, or SAM.gov. Not a U.S. government service. MCC Partner Country Business Forecast, planned compact procurements above $300K across all active Millennium Challenge Corporation compacts, published quarterly by MCC itself. INFORMATIONAL AND NON-BINDING: this forecast does not commit MCC or any MCA entity to any procurement. Real opportunities post later as live bids. US companies are generally eligible to bid; confirm with the issuing MCA entity. Filter by keyword, country, or anticipated quarter. These are forecasts, not live solicitations. Present as information only; verify every fact against the issuing MCA entity before acting. One search counts as one use, regardless of how many records are returned. Every record carries a direct source link (or source name and record ID) so you can verify and cite the underlying record.

NameRequiredDescriptionDefault
limitNo
queryNoKeyword filter over project name and description
countryNoPartner country substring filter
quarterNoAnticipated quarter substring, e.g. '2026' or 'Jul-Sep'

Output Schema

NameRequiredDescription
countYes
quotaYes
coverageYes
forecastsYes
data_caveatNoData quality caveat
analytical_disclaimerYes

TDQS

A4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the existing readOnly/idempotent annotations by disclosing that results are informational and non-binding, that every record carries a source link or ID for verification, that one search counts as one use regardless of result count, and that eligibility should be confirmed with the issuing MCA entity. These are non-obvious behavioral and quota facts an agent needs before acting.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The legal disclaimer is front-loaded, which is defensible, but the core message is repeated: 'INFORMATIONAL AND NON-BINDING,' 'These are forecasts, not live solicitations,' and 'Present as information only' say the same thing three times. Trimming the redundancy would make it tighter without losing meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers the forecast nature, eligibility, verification, and quota semantics, and an output schema exists so return values need not be described. The one remaining gap is the limit parameter's behavior (default 20, max 50) and any paging semantics, which are unaddressed in both schema and description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description restates the filter dimensions (keyword, country, anticipated quarter), which the schema already documents for three of four parameters. It adds no format or syntax detail beyond the schema, and the limit parameter is undocumented in both places. With 75% schema description coverage, baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource (MCC Partner Country Business Forecast of planned compact procurements above $300K) and its source/publisher. It clearly frames the content as forecasts rather than live solicitations, which implicitly separates it from live-opportunity siblings. It stops short of naming the sibling (e.g., search_mcc or search_opportunities) it differs from, so sibling differentiation is inferred 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear context for when to use it: early-market intelligence on planned MCC procurements, filtered by keyword, country, or quarter, with the note that real opportunities post later as live bids. It does not explicitly route the agent to a specific alternative tool for live bids, and no exclusions are stated, so it is clear but not fully prescriptive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_nbrc_grantsSearch Northern Border Regional Commission grantsA
Read-onlyIdempotent
Inspect

Not affiliated with the U.S. government, GSA, or SAM.gov. Not a U.S. government service. Northern Border Regional Commission (NBRC) grant programs and award announcements from nbrc.gov, the Catalyst, Forest Economy, and Timber for Transit programs serving distressed counties in Maine, New Hampshire, Vermont, and New York. NBRC posts nothing to Grants.gov and its awards do not appear under its own name in USAspending, so this feed is the most complete structured source we know of for this money. Grants only; NBRC makes no contracts. Filter by keyword, program, or open rounds. Present as information only; do not frame results as an eligibility determination or application recommendation. Verify every deadline against nbrc.gov before acting. One search counts as one use, regardless of how many records are returned.

NameRequiredDescriptionDefault
limitNo
queryNoKeyword filter over title and description
programNoProgram filter: catalyst, forest economy, or timber for transit
open_onlyNoOnly rounds still accepting pre-applications or applications

Output Schema

NameRequiredDescription
countYes
quotaYes
grantsYes
coverageYes
data_caveatNoData quality caveat
analytical_disclaimerYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnly/idempotent/openWorld, and the description adds real value beyond them: data provenance and coverage limits, the fact that other sources miss this money, a usage-accounting rule ('one search counts as one use, regardless of how many records are returned'), and a deadline-verification obligation. It stops short of describing result shape or ordering, which is acceptable given an output schema exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Every sentence carries information, but the first two sentences are a legal disclaimer that delays the actual purpose until the third sentence – poor front-loading for a tool definition. The closing compliance instructions are useful but lengthen an already dense paragraph.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a four-parameter filtered search with an output schema, the description supplies the provenance, scope, caveats, and usage rules an agent needs. The only notable omission is pagination/limit behavior, which is left to the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 75% and the schema already documents query, program, and open_only. The description's 'filter by keyword, program, or open rounds' merely restates those three and adds no syntax or edge-case detail, while limit (max 50, default 20) is undocumented in both places. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (NBRC grant programs and award announcements from nbrc.gov) and enumerates the covered programs (Catalyst, Forest Economy, Timber for Transit). It also draws an explicit boundary against the obvious alternatives, noting NBRC posts nothing to Grants.gov and does not appear under its own name in USAspending, which tells an agent why to pick this over search_grants_gov.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear when-to-use context (NBRC money in ME/NH/VT/NY distressed counties) and when-not-to-substitute (do not present results as eligibility determinations or application recommendations; grants only, no contracts). It does not name sibling tools directly, but the Grants.gov/USAspending comparison implicitly routes the agent, so it stops short of full explicit alternative naming.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_open_grantsSearch open grant opportunitiesA
Read-onlyIdempotent
Inspect

Not affiliated with the U.S. government, GSA, or SAM.gov. Not a U.S. government service. Open grant opportunities from public grant sources in GovInbox's database. Returns opportunity number, title, agency, status, close date, and award range as recorded. Present as information only; do not frame results as an eligibility determination or application recommendation. Verify every fact against the official grant posting before acting. One search counts as one use, regardless of how many records are returned. Every record carries a direct source link (or source name and record ID) so you can verify and cite the underlying record.

NameRequiredDescriptionDefault
limitNoMaximum 50 records; minimum 1; default 20.
agencyNoAgency name substring; exact NSF, EPA, DOE, USDA, NIH and NOAA inputs also resolve recorded names/code descendants. NIH does not include other HHS agencies; NOAA does not include other Commerce agencies.
keywordNoKeyword matched against title and summary
match_modeNosubstring

Output Schema

NameRequiredDescription
countYes
quotaYes
grantsYes
coverageYes
applied_filtersNo
analytical_disclaimerYes

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, open-world, non-destructive behavior. The description adds useful context: legal non-affiliation disclaimer, billing note that one search counts as one use, returned fields, and source-link verification. It does not cover authentication or rate limits, so 4 rather than 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense and mostly useful, but it opens with two similar legal-disclaimer sentences before stating the core purpose. It is not bloated, but front-loading could be improved.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema and annotations present, the description covers safety, verification, billing, and return fields adequately. It leaves gaps around match-mode behavior and sibling-tool selection, but is otherwise complete for an open-world search tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 75%, with detailed descriptions for limit, agency, and keyword; match_mode has only an enum. The description adds no parameter-specific meaning, so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the resource clearly: open grant opportunities from public grant sources in GovInbox's database, and lists the returned fields. It does not explicitly distinguish this from sibling grant-search tools such as search_grants_gov or search_dra_grants, so it stops short of 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives instructions on how to present results (information only, verify facts) but does not say when to use this tool versus the many sibling grant-search tools. There is no explicit alternative or exclusion guidance beyond the general open-grants scope.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_open_noticesSearch open federal noticesA
Read-onlyIdempotent
Inspect

Not affiliated with the U.S. government, GSA, or SAM.gov. Not a U.S. government service. Searches open federal contract notices in GovInbox's stored SAM.gov data using the supplied NAICS and optional filters. Returns published notice facts and source information. Results are sorted by posted date or deadline, not by a match score. Map industry or trade words in the request to NAICS prefixes and pass them as naics (construction -> 23; engineering -> 5413; IT services -> 5415; janitorial/housekeeping -> 5617; landscaping -> 5617; security guards -> 5616); a free-text keyword is not a substitute for NAICS. For 'veteran-owned' pass set_aside ['vosb','sdvosb'] (both); for 'service-disabled veteran-owned' pass ['sdvosb'] only. Coverage reflects the stored data and the response's as-of time; results are not a complete live search of SAM.gov. A missing result does not prove that a notice does not exist. Does not recommend bids, determine eligibility, or suggest partners. One accepted search counts as one use, regardless of the number of records returned. Every record carries a direct source link (or source name and record ID) so you can verify and cite the underlying record. Without a connected GovInbox account, both limits apply: 3 searches per UTC calendar day and 10 per UTC calendar month. With a connected free GovInbox account, the limit is 20 searches per UTC calendar month, with no separate daily limit. One accepted search counts as one use, regardless of the number of records returned. Follow-up calls (opening records, comparing versions, listing awards or subawards) within 30 minutes after a search do not count extra, up to 30 follow-ups per search. A follow-up invoked with no active search window counts as one use and opens a new 30-minute window. Empty results consume the search. A lookup for a record that does not exist is not charged. Each retry of a search counts as a new search, as does each call for another page of search results. Daily limits reset at 00:00 UTC each day; monthly limits reset at 00:00 UTC on the first day of each month. Requests rejected for invalid authentication or an exhausted quota do not consume a use.

NameRequiredDescriptionDefault
sortNoposted_date or deadlineposted_date
limitNoMaximum 50 records; minimum 1; default 20.
naicsYesNAICS codes, 2-6 digits each
cursorNoOpaque next_cursor from a previous page
geographyNoRecorded place-of-performance state where the work occurs, e.g. TX for Texas; not buyer address or the user's residence. Unknown work-state records are excluded.
set_asideNoFilter to notices carrying this set-aside restriction: vosb (veteran-owned), sdvosb (service-disabled veteran-owned), 8a, hubzone, wosb, edwosb, small. VOSB and SDVOSB are distinct; do not silently substitute SDVOSB for a veteran-owned request. Multiple values combine (OR): ['sdvosb','wosb'] matches either. 'unrestricted' matches only full-and-open notices with no set-aside restriction. This is the NOTICE's restriction, distinct from certifications (the firm's credentials). Notices with no recorded set-aside code are excluded when this filter is supplied, unless 'unrestricted' is included.
certificationsNoOptional firm certifications explicitly supplied by the user; never infer them from a request for veteran-owned notices. Use set_aside for notice restrictions. Tokens include vosb, sdvosb, 8a, hubzone, wosb, edwosb.

Output Schema

NameRequiredDescription
countYes
quotaYes
noticesYes
coverageYes
sort_ruleYes
sort_labelNoHuman-readable sort rule; never a ranking
next_cursorNo
coverage_noteNo
opportunitiesNoThe same returned notices as interactive cards, not a separate search
applied_filtersNo
solicitation_groupsNoStored notice versions per returned solicitation lead; no version is declared controlling
analytical_disclaimerYes

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent/openWorld annotations, it discloses the quota model in detail (3/day and 10/month unauthenticated; 20/month with a free account), what consumes a use (empty results, retries, additional pages), what does not (rejected auth, exhausted quota, nonexistent record lookups), and the 30-minute follow-up window. It also discloses the data-coverage limitation ('not a complete live search of SAM.gov') and that results are sorted by date, not match score.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The lead disclaimer is correctly front-loaded, but the body is bloated: 'One accepted search counts as one use, regardless of the number of records returned' appears twice verbatim, and the quota passage spans many sentences that could be compressed into two. Signal is present but buried in repetition, working against scannability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, rich annotations, and full schema parameter coverage, the description fills the remaining gaps an agent needs: licensing/quota constraints, data-coverage caveats, source-link verifiability for citation, and the paging/retry cost model. Nothing needed to invoke it correctly or interpret limits is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 nonetheless adds genuine semantics the schema lacks: the NAICS digit-prefix mapping examples, the instruction that VOSB and SDVOSB are distinct and must not be substituted, and the warning not to infer certifications from a veteran-owned request. The sort-by-date caveat and set_aside/default behavior are already covered by the schema, so it stops short of 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource: 'Searches open federal contract notices in GovInbox's stored SAM.gov data using the supplied NAICS and optional filters,' and states the return shape ('published notice facts and source information'). It does not explicitly contrast with near-siblings such as search_opportunities or search_open_grants, so the differentiation is implicit 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives operative routing rules: map industry words to NAICS prefixes with concrete examples (construction -> 23; IT services -> 5415), states a free-text keyword is not a substitute for NAICS, and specifies exactly how to encode 'veteran-owned' versus 'service-disabled veteran-owned' via set_aside. It also states when-not: no bid recommendations, no eligibility determination, no partner suggestions, and follow-up work belongs to other calls.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_opportunitiesSearch opportunitiesA
Read-onlyIdempotent
Inspect

Not affiliated with the U.S. government, GSA, or SAM.gov. Not a U.S. government service. Search open federal contract opportunities from SAM.gov notices, presented as cards. Uses the same stored-notice engine as search_open_notices - one call, one search - with results sorted by posted date or deadline, not by a match score. Each card shows deadlines, the filter that matched it (e.g. the NAICS or set-aside you passed), and source links. Present as information only; Map industry or trade words in the request to NAICS prefixes and pass them as naics (construction -> 23; engineering -> 5413; IT services -> 5415; janitorial/housekeeping -> 5617; landscaping -> 5617; security guards -> 5616); a free-text keyword is not a substitute for NAICS. For 'veteran-owned' pass set_aside ['vosb','sdvosb'] (both); for 'service-disabled veteran-owned' pass ['sdvosb'] only. not a bid recommendation. Cite the source link when available; legacy DIBBS records without verified deep links retain the source name and record ID. For a known current or previous solicitation/reference number, use solicitation_number; for a SAM notice ID use notice_id. These exact lookups include stored closed/archived records, do not inherit the browsing set-aside default, and do not search award contract PIIDs. Stored records are not a complete live-source or version-history search. Follow-ups within 30 minutes after a search ride free (up to 30 per search); otherwise one accepted call counts as one use.

NameRequiredDescriptionDefault
limitNoMaximum 25 opportunity leads; minimum 1; default 10. Stored versions remain grouped.
naicsNoNAICS codes, 2-6 digits each
agencyNoLiteral substring of the recorded agency path, including its named offices. This is separate from performance geography; clarify ambiguous abbreviations before choosing constraints.
cursorNoReturned continuation cursor. Keep the same search filters; changed matching records require restarting the search.
keywordsNoLiteral text in stored titles, briefs, current-version fetched scope, inline source descriptions, solicitation numbers and notice IDs. URL-only and known stale descriptions are excluded; filtered before scan and result limits.
geographyNoState where the work is performed, e.g. TX for Texas; matches recorded structured place of performance, not buyer address or title text. Records with unknown work state are excluded.
notice_idNoExact SAM notice ID, a separate identifier from solicitation numbers and award PIIDs. Includes stored closed notices. Omit browsing filters.
set_asideNoRecorded notice restriction: vosb (veteran-owned), sdvosb (service-disabled veteran-owned), 8a, hubzone, wosb, edwosb, small. VOSB and SDVOSB are distinct; do not infer a firm's credentials. Omit or pass null for any set-aside; unrestricted requires affirmative source evidence of full/open competition and excludes unknown restrictions. This filter does not establish company certification.
match_modeNosubstring
solicitation_numberNoExact current/previous solicitation or reference number; case, spaces and hyphens normalized. Includes stored closed notices. Omit browsing filters. Not an award PIID.

Output Schema

NameRequiredDescription
countNo
quotaNo
coverageNo
next_cursorNoOpaque continuation cursor. Follow coverage.continuation using its named tool and the same search filters. If the tool reports changed matching records, restart the search without a cursor. Results cover a bounded stored scan, not a frozen live-source snapshot.
coverage_noteNo
opportunitiesNo
applied_filtersNo
quota_exhaustedNo
related_recordsNo
solicitation_groupsNo
analytical_disclaimerNo

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/openWorld, and the description adds substantial context beyond them: stored-notice engine shared with search_open_notices, records are not a complete live-source or version-history search, legacy DIBBS records may lack verified deep links, and billing semantics (free follow-ups within 30 min up to 30 per search, otherwise one accepted call = one use). These are behavioral traits not inferable from annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The content is dense and mostly valuable, but the structure is poor: it opens with two legal disclaimers before stating what the tool does, and splices in fragments like 'Present as information only; not a bid recommendation' mid-paragraph. Purpose should be front-loaded, not preceded by boilerplate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return-value explanation isn't required, yet the description still describes card contents, deadlines, matched filter, and source links. Pagination (cursor) and edge cases (legacy DIBBS records, closed/archived inclusion, billing follow-ups) are all addressed, so nothing an agent needs to call correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 90%, so the baseline is 3, but the description genuinely extends meaning for naics (prefix mapping strategy), set_aside (vosb vs sdvosb distinction, unrestricted requires affirmative evidence), and the solicitation_number vs notice_id distinction. It does not cover match_mode, leaving one enum undocumented in both places.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb and resource: search open federal contract opportunities from SAM.gov notices, presented as cards. It distinguishes itself from search_open_notices by noting results are sorted by posted date/deadline rather than match score, but it never explicitly says when to choose this tool over that sibling. Purpose is clear but sibling differentiation is only partial.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Rich conditional guidance: map trade words to NAICS prefixes with concrete examples, use NAICS rather than free-text keywords, pass both vosb and sdvosb for 'veteran-owned' but only sdvosb for service-disabled, use solicitation_number for reference numbers and notice_id for SAM notice IDs with the note that these exact lookups include closed records. This is explicit when-to-use guidance for parameters and modes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_ota_awardsSearch DoD Other Transaction Authority awardsA
Read-onlyIdempotent
Inspect

Not affiliated with the U.S. government, GSA, or SAM.gov. Not a U.S. government service. Department of Defense Other Transaction Authority (OTA) awards, prototype, research, and production agreements that bypass the FAR and never appear in USAspending, sourced from FPDS. Filter by keyword, agency, vendor, or agreement type (research, prototype, production). CRITICAL: FPDS typically names the consortium MANAGEMENT organization as awardee, not the actual performing company. GAO has confirmed DoD cannot identify the real performers from this data. Treat a named vendor as likely the consortium manager - actual performer unknown. Obligated dollars are the action delta, not the ceiling value. DoD reporting lags about 90 days. Present as information only; verify every fact against the official FPDS record before acting. Follow-ups within 30 minutes after a search ride free (up to 30 per search); otherwise one accepted call counts as one use, regardless of how many records are returned. Every record carries a direct source link (or source name and record ID) so you can verify and cite the underlying record.

NameRequiredDescriptionDefault
limitNo
queryNoKeyword filter over description, PIID, and vendor
agencyNoAwarding agency substring filter
vendorNoAwardee name substring filter
agreement_typeNoAgreement type: research, prototype, or production

Output Schema

NameRequiredDescription
countYes
quotaYes
awardsYes
coverageYes
data_caveatNoData quality caveat
analytical_disclaimerYes

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare read-only/idempotent/open-world, and the description adds substantial operational context on top: FPDS as source, ~90-day reporting lag, obligated dollars being action deltas rather than ceiling values, the consortium-manager attribution caveat, a verification-link guarantee, and an explicit quota model (30-minute follow-up window, one accepted call = one use). This is exactly the behavior an agent needs before deciding to spend a call.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The content density is high and nearly every sentence carries information, but the purpose statement is buried behind two legal-disclaimer sentences and the remainder runs as one dense block mixing provenance, caveats, quota rules, and verification guidance. Restructuring so the verb+resource leads and the disclaimers/quota move to the end would improve scannability without losing content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only, open-world search with an output schema already covering return shape, this description supplies everything else an agent needs: source, known data-quality traps, temporal lag, dollar semantics, citation path, and cost model. Nothing material is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 80% so the baseline is 3; the description adds real meaning by restating the filter dimensions and, more importantly, by warning that the vendor parameter matches the consortium management organization rather than the performer. That reframes what a match on `vendor` actually means, which the schema does not convey. The `limit` cap of 50 and the nullability defaults remain undocumented in prose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb+resource (search DoD Other Transaction Authority awards) and enumerates the agreement families covered (research, prototype, production). It also draws a hard boundary against adjacent datasets by stating these agreements bypass the FAR and never appear in USAspending, which tells an agent it cannot get this from the standard award tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states what you can filter on and gives a strong interpretation rule for the vendor field, but it never names a sibling tool or a when-not-to-use condition (e.g., use search_award_history or search_sole_source for FAR-based awards, get_notice_record for opportunities). Usage is implied by the data-domain description rather than routed explicitly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_sole_sourceSearch sole-source Justification & Approval noticesA
Read-onlyIdempotent
Inspect

Not affiliated with the U.S. government, GSA, or SAM.gov. Not a U.S. government service. Justification & Approval (J&A) notices from SAM.gov, the documents agencies publish to justify non-competitive awards. Under FAR 6.305, most J&As post 14 days AFTER award (30 days for urgency) - brand-name justifications may post with the solicitation instead (FAR 6.305(c)) - so these are usually post-decision records, not pipeline leads - the protest clock may have already run. Shows who received sole-source work, the FAR authority cited (e.g. 6.302-1 only one source, 6.302-2 urgency), the contract value, period of performance, and whether it is a bridge contract. Filter by keyword, agency, vendor name, NAICS code, or FAR authority. Vendor names and values are parsed from notice text and may be incomplete. Empty results do not mean competitive - below-threshold and exempt actions never post. Present as information only; verify every fact against the official J&A on SAM.gov before acting. One search counts as one use, regardless of how many records are returned. Every record carries a direct source link (or source name and record ID) so you can verify and cite the underlying record.

NameRequiredDescriptionDefault
limitNo
naicsNoNAICS code filter, e.g. '541511'
queryNoKeyword filter over title, description, and solicitation number
agencyNoAgency substring filter, e.g. 'DEFENSE' or 'VA'
vendorNoVendor/incumbent name substring filter
authorityNoFAR authority filter, e.g. '6.302-1' or '8.405-6'
bridge_onlyNoWhen true, return only bridge contracts/extensions

Output Schema

NameRequiredDescription
countYes
quotaYes
recordsYes
coverageYes
data_caveatNoData quality caveat
analytical_disclaimerYes

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well past the readOnly/idempotent annotations: discloses that parsed vendor names and values may be incomplete, that below-threshold and exempt actions never post, that one search counts as one use regardless of result count, and that every record carries a source link for verification. It also carries an explicit non-affiliation disclaimer, which is behavioral context an agent needs before presenting results.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The substantive content is dense and valuable, but two sentences of legal non-affiliation boilerplate lead the description, pushing the actual purpose back. The long em-dash-chained sentences mix timing, caveats, filters, billing, and verification into a single stream, making it less scannable than it could be.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only search tool with a full output schema and rich annotations, nothing material is missing: record timing, field-reliability caveats, false-negative interpretation, billing unit, and verification path are all covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 86% schema description coverage, the schema already explains query, agency, vendor, naics, authority, and bridge_only. The description restates the filter set and adds FAR authority examples (6.302-1 only one source, 6.302-2 urgency), but does not add syntax, matching behavior, or defaults beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: it searches Justification & Approval (J&A) notices from SAM.gov, and defines what those are (documents agencies publish to justify non-competitive awards). The scope — sole-source/post-decision records rather than opportunities — is enough to separate it from siblings like search_opportunities and search_award_history.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives strong context on when this data is and isn't useful: usually posted 14/30 days after award, not a pipeline lead, protest clock may have run, and empty results don't imply competition. It never names a specific alternative sibling tool to use instead for pipeline work, which keeps it below a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_subawardsSearch reported subawardsB
Read-onlyIdempotent
Inspect

Not affiliated with the U.S. government, GSA, or SAM.gov. Not a U.S. government service. Individual reported first-tier subaward records: which subcontractor worked under which prime, for how much. Filter by prime contractor name. Amounts are prime-reported subaward amounts, often incomplete or duplicated; they are not cash paid and not obligations. Not a partnership suggestion. Present as information only; do not frame results as a bid/no-bid recommendation, eligibility determination, or partnership recommendation. One search counts as one use, regardless of how many records are returned. Every record carries a direct source link (or source name and record ID) so you can verify and cite the underlying record.

NameRequiredDescriptionDefault
piidNo
sortNoamount_desc
limitNoMaximum 50 records; minimum 1; default 20.
naicsNoNAICS prefixes, 2-6 digits
primeNo
cursorNo
date_toNo
keywordNo
date_fromNoRecorded subaward action date
subaward_numberNo

Output Schema

NameRequiredDescription
countYes
quotaYes
coverageYes
subawardsYes
data_caveatNoData quality caveat
next_cursorNo
total_countNo
applied_filtersNo
analytical_disclaimerYes

TDQS

B3.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description adds substantial behavioral context: it warns that amounts are prime-reported, often incomplete or duplicated, and not cash paid or obligations. It also states that one search counts as one use regardless of record count and that every record carries a source link for verification, which is valuable operational detail not present in annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description contains useful content but is a single long paragraph that front-loads legal disclaimers before the tool's purpose. It also repeats the partnership caveat ('Not a partnership suggestion' and later 'do not frame results as ... partnership recommendation'), which reduces efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is adequate for understanding the core data and its caveats, and an output schema exists to cover return values. However, with 10 parameters and only 30% schema description coverage, the description leaves several invocation details unexplained and does not help agents choose among similar siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is low at 30%, so the description should compensate for undocumented parameters. It only mentions filtering by prime contractor name, leaving parameters such as piid, sort, cursor, date_to, keyword, and subaward_number unexplained in the description; the schema titles alone provide limited semantic help.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the resource: individual reported first-tier subaward records showing which subcontractor worked under which prime and for how much. It is specific about scope and filtering by prime contractor, but it does not explicitly distinguish itself from similar siblings such as list_reported_subawards or find_teaming_partners.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives output-use constraints such as 'Present as information only' and 'do not frame results as a bid/no-bid recommendation', but it does not explain when to use this tool instead of similar siblings. There is no explicit when-to-use or when-not-to-use guidance, only implied usage from the record description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_ustdaSearch USTDA business opportunitiesA
Read-onlyIdempotent
Inspect

Not affiliated with the U.S. government, GSA, or SAM.gov. Not a U.S. government service. US Trade and Development Agency business opportunities, feasibility studies, pilot projects, and technical assistance in developing countries. USTDA grants go to foreign project sponsors, who select US firms to perform the work. Filter by keyword, country, or sector. Present as information only; verify every fact against the USTDA opportunity page before acting. Follow-ups within 30 minutes after a search ride free (up to 30 per search); otherwise one accepted call counts as one use, regardless of how many records are returned. Every record carries a direct source link (or source name and record ID) so you can verify and cite the underlying record.

NameRequiredDescriptionDefault
limitNo
queryNoKeyword filter over title and summary
sectorNoSector substring filter, e.g. energy, telecom
countryNoProject country substring filter

Output Schema

NameRequiredDescription
countYes
quotaYes
coverageYes
data_caveatNoData quality caveat
opportunitiesYes
analytical_disclaimerYes

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the read-only/idempotent annotations, the description discloses quota behavior (follow-ups within 30 minutes free, up to 30 per search; otherwise one accepted call = one use regardless of record count) and a verification obligation. That is genuine behavioral context an agent cannot get from the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The disclaimer material ('Not affiliated with the U.S. government, GSA, or SAM.gov. Not a U.S. government service.') consumes the front-loaded position and says the same thing twice before the actual capability is described. The remaining sentences are dense and useful, but the opening costs the tool its lead.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return structure need not be explained, and the description still notes that every record carries a source link or source name plus record ID. Combined with the quota and verification notes, an agent has enough to call and interpret results correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 75% and already documents query, sector, and country as substring filters. The description's 'filter by keyword, country, or sector' restates that without adding syntax or matching nuance, and the limit parameter is not mentioned at all.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource — USTDA business opportunities, feasibility studies, pilot projects and technical assistance in developing countries — and states the filterable dimensions. It is clear what the tool returns, though the two opening disclaimer sentences delay the actual purpose statement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives post-retrieval guidance ('present as information only; verify every fact against the USTDA opportunity page') and explains the quota mechanics for follow-up searches. However, it never says when to pick this over siblings like search_mcc, search_grants_gov, or search_open_grants, so agent routing relies on the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

show_govinboxShow the GovInbox dashboardA
Read-onlyIdempotent
Inspect

Not affiliated with the U.S. government, GSA, or SAM.gov. Not a U.S. government service. Open the free visual GovInbox preview before searching, including when a search allowance is exhausted. No account is required to see this preview. It runs no search, applies no filters, uses no search allowance and returns no matched notices. It reads only public stored notice facts for up to three unfiltered examples first recorded today or yesterday in America/Los_Angeles, with their actual recording dates and source links. Older or expired examples are omitted. These are recorded data, not a live verification of SAM.gov. Use search_opportunities for actual filtered results.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
countNo
preview_dateNo
preview_onlyNo
opportunitiesNo
preview_as_ofNo
preview_cachedNo
preview_noticeNo
preview_sourceNo
applied_filtersNo
preview_examplesNo
preview_timezoneNo
preview_freshnessNo

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only and non-destructive, and the description goes well beyond them: it discloses that it consumes no search allowance, applies no filters, returns no matched notices, reads only stored public facts, caps at three examples from today/yesterday in America/Los_Angeles, omits older data, and is not a live SAM.gov verification. That is unusually detailed behavioral context for a zero-parameter call.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The most important information is not front-loaded: two sentences of government-affiliation disclaimers precede the actual function. The remaining sentences are dense but also repeat the no-allowance/no-filter point twice, costing efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value detail is not required, yet the description still specifies the shape of the preview (up to three examples, recording dates, source links). It is thorough for a simple preview tool, with only mild redundancy.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, so the baseline is 4; the description correctly reinforces that no filters or inputs are accepted, which matches the empty schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a concrete action and resource: open the visual GovInbox preview, and it explicitly contrasts itself with search_opportunities. The purpose is clear, though the actual function is buried behind two full sentences of legal disclaimers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It names the situation to use it ('before searching, including when a search allowance is exhausted') and the alternative ('Use search_opportunities for actual filtered results'). Both the trigger and the exclusion are explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

signinSign in to GovInboxA
Read-onlyIdempotent
Inspect

Not affiliated with the U.S. government, GSA, or SAM.gov. Not a U.S. government service. Start the GovInbox sign-in flow to connect your free GovInbox account. Signed-in users get 20 searches per month instead of the guest limit. This sign-in action does not consume quota.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile (readOnly, idempotent, non-destructive, open-world), so the bar is low, and the description adds genuinely useful context beyond them: that the action consumes no quota and that it initiates an interactive sign-in flow. It still doesn't say what the call returns or what the agent should do with it (e.g., surface a URL), which keeps it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is short overall, but two of the four sentences are near-duplicate legal disclaimers ('Not affiliated with the U.S. government... Not a U.S. government service') that lead the description and push the actual purpose into third position. If the disclaimer is required it could be compressed and moved after the actionable content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, no-output-schema tool the description is minimally sufficient: it says what starts and why. However, for an authentication entry point the agent still has no idea what comes back (a link, a token, a status) or how the flow completes, which is a real gap for an interactive sign-in tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With zero parameters and 100% schema coverage there is nothing for the description to document, so the baseline of 4 applies. The description correctly adds no redundant parameter talk.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource: 'Start the GovInbox sign-in flow to connect your free GovInbox account.' That is unambiguous and clearly distinct from the search_/get_/analyze_ siblings. It falls short of 5 only because the purpose sentence sits behind two sentences of legal boilerplate rather than being front-loaded.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied through the quota rationale — 'Signed-in users get 20 searches per month instead of the guest limit' — which tells the agent why signing in matters but never states when to call it (e.g., when guest quota is exhausted). No alternatives or exclusions are named, leaving the trigger to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

track_recompeteTrack recompetesB
Read-onlyIdempotent
Inspect

Not affiliated with the U.S. government, GSA, or SAM.gov. Not a U.S. government service. Find contracts nearing end of performance and likely recompete candidates. Dates are estimates from recorded periods of performance. Not a prediction that a solicitation will happen. Present as information only. Follow-ups within 30 minutes after a search ride free (up to 30 per search); otherwise one accepted call counts as one use.

NameRequiredDescriptionDefault
limitNo
naicsNoNAICS codes to scan for recompetes

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, openWorld, non-destructive). The description adds genuinely useful context beyond them: that dates are estimates from recorded periods of performance, that results are explicitly not a prediction of a solicitation, and a concrete billing/rate model (one accepted call = one use; up to 30 free follow-ups within 30 minutes). It does not contradict the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The billing and estimate caveats earn their place, but the purpose sentence is buried behind three disclaimers, two of which are redundant ('Not affiliated with the U.S. government, GSA, or SAM.gov' and 'Not a U.S. government service'). Front-loading the actual capability would make it far more scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With read-only annotations and no output schema, the description adequately conveys what the data is (estimated recompete candidates) and the cost model, but omits return shape and any differentiation from the recompete siblings. Minimum viable for a 2-param read tool, with clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 50%: 'naics' is documented in the schema while 'limit' is bare. The description mentions no parameters at all, so it fails to compensate for the gap — no guidance on NAICS code format, what a limit of 25 means in practice, or default behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb+resource: 'Find contracts nearing end of performance and likely recompete candidates.' An agent can tell the general intent. However, it never distinguishes itself from near-identical siblings like find_likely_recompetes, get_recompete_calendar, and get_recompete_detail, so routing between them is left to guesswork.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites, and no named alternative. The billing hint ('Follow-ups within 30 minutes after a search ride free') implies this is a search-style call with follow-ups, but it never says when to pick this tool over the many recompete siblings.

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.

  1. 1 tool update
    • Addedexplain_policy_boundary
  2. 1 tool update
    • Changedsearch_open_notices3 fields changed
      • addedOutput schema / $defs / NoticeCoverage / properties / matched_record_count
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Matched Record Count"
        +}
      • addedOutput schema / $defs / NoticeCoverage / properties / matched_solicitation_count
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Matched Solicitation Count"
        +}
      • addedOutput schema / properties / solicitation_groups
        Added value: +{
        +  "description": "Stored notice versions per returned solicitation lead; no version is declared controlling",
        +  "items": {
        +    "additionalProperties": true,
        +    "type": "object"
        +  },
        +  "title": "Solicitation Groups",
        +  "type": "array"
        +}
  3. 36 tool updates
    • Changedcheck_notice_filters37 fields changed
      • addedOutput schema / $defs / Coverage / properties / as_of / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedOutput schema / $defs / Coverage / properties / as_of / default
        Added value: +null
      • changedOutput schema / $defs / Coverage / properties / as_of / description
        Previous value: -"UTC ISO 8601"New value: +"Known source observation time; null when not recorded. Not the query time."
      • removedOutput schema / $defs / Coverage / properties / as_of / type
        Removed value: -"string"
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_basis
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Basis"
        +}
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_field
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Field"
        +}
      • addedOutput schema / $defs / Coverage / properties / exclusions
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "title": "Exclusions",
        +  "type": "array"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_record_count
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Record Count"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_ingest_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Ingest At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_refresh_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Refresh At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_fetched_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Fetched At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / pagination_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Pagination Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / population
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_complete
        Added value: +{
        +  "default": false,
        +  "title": "Population Complete",
        +  "type": "boolean"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_status
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population Status"
        +}
      • addedOutput schema / $defs / Coverage / properties / query_time
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "When this stored-data query was calculated; not proof of source refresh",
        +  "title": "Query Time"
        +}
      • addedOutput schema / $defs / Coverage / properties / record_type
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Record Type"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_error_code
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Refresh Error Code"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_status
        Added value: +{
        +  "default": "unknown",
        +  "title": "Refresh Status",
        +  "type": "string"
        +}
      • addedOutput schema / $defs / Coverage / properties / scope_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Scope Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / source
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_as_of
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source As Of"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_state
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "matched",
        +        "no_match",
        +        "not_loaded",
        +        "unsupported",
        +        "failed_refresh",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source State"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_url
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source Url"
        +}
      • addedOutput schema / $defs / Coverage / properties / stored_rows
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Stored Rows"
        +}
      • removedOutput schema / $defs / Coverage / required
        Removed value: -[
        -  "as_of"
        -]
      • addedOutput schema / properties / notice_first_seen_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "When GovInbox first stored this record; not source retrieval",
        +  "title": "Notice First Seen At"
        +}
      • addedOutput schema / properties / notice_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Recorded ingestion time; not source retrieval",
        +  "title": "Notice Ingested At"
        +}
      • changedOutput schema / properties / notice_retrieved_at / description
        Previous value: -"When GovInbox retrieved this notice record. Every call evaluates the current stored record, so re-run the tool after the notice is amended to re-check against the new fields."New value: +"When GovInbox retrieved this notice record. Every call evaluates the current stored record, so re-run the tool after the notice is amended to re-check against the new fields. Null when the source fetch was not recorded."
      • addedOutput schema / properties / query_time
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "UTC time this stored-data checklist was evaluated; not source freshness",
        +  "title": "Query Time"
        +}
    • Changedcompare_notice_record_versions7 fields changed
      • addedOutput schema / $defs / StatementSource / properties / calculated_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "UTC time a derived statement was calculated; not source retrieval",
        +  "title": "Calculated At"
        +}
      • addedOutput schema / $defs / StatementSource / properties / query_time
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "UTC time this stored-data query was evaluated; not source freshness",
        +  "title": "Query Time"
        +}
      • addedOutput schema / $defs / StatementSource / properties / retrieved_at / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedOutput schema / $defs / StatementSource / properties / retrieved_at / default
        Added value: +null
      • changedOutput schema / $defs / StatementSource / properties / retrieved_at / description
        Previous value: -"UTC ISO 8601 when the source was retrieved"New value: +"Recorded UTC source retrieval time, or null when unknown; never response time"
      • removedOutput schema / $defs / StatementSource / properties / retrieved_at / type
        Removed value: -"string"
      • changedOutput schema / $defs / StatementSource / required
        Previous value: -[
        -  "system",
        -  "record_id",
        -  "retrieved_at"
        -]New value: +[
        +  "system",
        +  "record_id"
        +]
    • Changedfind_likely_recompetes33 fields changed
      • addedOutput schema / $defs / Coverage / properties / as_of / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedOutput schema / $defs / Coverage / properties / as_of / default
        Added value: +null
      • changedOutput schema / $defs / Coverage / properties / as_of / description
        Previous value: -"UTC ISO 8601"New value: +"Known source observation time; null when not recorded. Not the query time."
      • removedOutput schema / $defs / Coverage / properties / as_of / type
        Removed value: -"string"
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_basis
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Basis"
        +}
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_field
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Field"
        +}
      • addedOutput schema / $defs / Coverage / properties / exclusions
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "title": "Exclusions",
        +  "type": "array"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_record_count
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Record Count"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_ingest_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Ingest At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_refresh_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Refresh At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_fetched_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Fetched At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / pagination_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Pagination Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / population
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_complete
        Added value: +{
        +  "default": false,
        +  "title": "Population Complete",
        +  "type": "boolean"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_status
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population Status"
        +}
      • addedOutput schema / $defs / Coverage / properties / query_time
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "When this stored-data query was calculated; not proof of source refresh",
        +  "title": "Query Time"
        +}
      • addedOutput schema / $defs / Coverage / properties / record_type
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Record Type"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_error_code
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Refresh Error Code"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_status
        Added value: +{
        +  "default": "unknown",
        +  "title": "Refresh Status",
        +  "type": "string"
        +}
      • addedOutput schema / $defs / Coverage / properties / scope_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Scope Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / source
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_as_of
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source As Of"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_state
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "matched",
        +        "no_match",
        +        "not_loaded",
        +        "unsupported",
        +        "failed_refresh",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source State"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_url
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source Url"
        +}
      • addedOutput schema / $defs / Coverage / properties / stored_rows
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Stored Rows"
        +}
      • removedOutput schema / $defs / Coverage / required
        Removed value: -[
        -  "as_of"
        -]
    • Changedfind_teaming_partners33 fields changed
      • addedOutput schema / $defs / Coverage / properties / as_of / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedOutput schema / $defs / Coverage / properties / as_of / default
        Added value: +null
      • changedOutput schema / $defs / Coverage / properties / as_of / description
        Previous value: -"UTC ISO 8601"New value: +"Known source observation time; null when not recorded. Not the query time."
      • removedOutput schema / $defs / Coverage / properties / as_of / type
        Removed value: -"string"
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_basis
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Basis"
        +}
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_field
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Field"
        +}
      • addedOutput schema / $defs / Coverage / properties / exclusions
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "title": "Exclusions",
        +  "type": "array"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_record_count
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Record Count"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_ingest_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Ingest At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_refresh_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Refresh At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_fetched_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Fetched At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / pagination_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Pagination Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / population
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_complete
        Added value: +{
        +  "default": false,
        +  "title": "Population Complete",
        +  "type": "boolean"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_status
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population Status"
        +}
      • addedOutput schema / $defs / Coverage / properties / query_time
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "When this stored-data query was calculated; not proof of source refresh",
        +  "title": "Query Time"
        +}
      • addedOutput schema / $defs / Coverage / properties / record_type
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Record Type"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_error_code
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Refresh Error Code"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_status
        Added value: +{
        +  "default": "unknown",
        +  "title": "Refresh Status",
        +  "type": "string"
        +}
      • addedOutput schema / $defs / Coverage / properties / scope_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Scope Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / source
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_as_of
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source As Of"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_state
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "matched",
        +        "no_match",
        +        "not_loaded",
        +        "unsupported",
        +        "failed_refresh",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source State"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_url
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source Url"
        +}
      • addedOutput schema / $defs / Coverage / properties / stored_rows
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Stored Rows"
        +}
      • removedOutput schema / $defs / Coverage / required
        Removed value: -[
        -  "as_of"
        -]
    • Changedget_far_clause33 fields changed
      • addedOutput schema / $defs / Coverage / properties / as_of / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedOutput schema / $defs / Coverage / properties / as_of / default
        Added value: +null
      • changedOutput schema / $defs / Coverage / properties / as_of / description
        Previous value: -"UTC ISO 8601"New value: +"Known source observation time; null when not recorded. Not the query time."
      • removedOutput schema / $defs / Coverage / properties / as_of / type
        Removed value: -"string"
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_basis
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Basis"
        +}
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_field
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Field"
        +}
      • addedOutput schema / $defs / Coverage / properties / exclusions
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "title": "Exclusions",
        +  "type": "array"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_record_count
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Record Count"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_ingest_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Ingest At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_refresh_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Refresh At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_fetched_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Fetched At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / pagination_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Pagination Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / population
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_complete
        Added value: +{
        +  "default": false,
        +  "title": "Population Complete",
        +  "type": "boolean"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_status
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population Status"
        +}
      • addedOutput schema / $defs / Coverage / properties / query_time
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "When this stored-data query was calculated; not proof of source refresh",
        +  "title": "Query Time"
        +}
      • addedOutput schema / $defs / Coverage / properties / record_type
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Record Type"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_error_code
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Refresh Error Code"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_status
        Added value: +{
        +  "default": "unknown",
        +  "title": "Refresh Status",
        +  "type": "string"
        +}
      • addedOutput schema / $defs / Coverage / properties / scope_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Scope Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / source
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_as_of
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source As Of"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_state
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "matched",
        +        "no_match",
        +        "not_loaded",
        +        "unsupported",
        +        "failed_refresh",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source State"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_url
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source Url"
        +}
      • addedOutput schema / $defs / Coverage / properties / stored_rows
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Stored Rows"
        +}
      • removedOutput schema / $defs / Coverage / required
        Removed value: -[
        -  "as_of"
        -]
    • Changedget_grant_record52 fields changed
      • addedOutput schema / $defs / Coverage / properties / as_of / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedOutput schema / $defs / Coverage / properties / as_of / default
        Added value: +null
      • changedOutput schema / $defs / Coverage / properties / as_of / description
        Previous value: -"UTC ISO 8601"New value: +"Known source observation time; null when not recorded. Not the query time."
      • removedOutput schema / $defs / Coverage / properties / as_of / type
        Removed value: -"string"
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_basis
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Basis"
        +}
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_field
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Field"
        +}
      • addedOutput schema / $defs / Coverage / properties / exclusions
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "title": "Exclusions",
        +  "type": "array"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_record_count
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Record Count"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_ingest_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Ingest At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_refresh_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Refresh At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_fetched_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Fetched At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / pagination_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Pagination Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / population
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_complete
        Added value: +{
        +  "default": false,
        +  "title": "Population Complete",
        +  "type": "boolean"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_status
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population Status"
        +}
      • addedOutput schema / $defs / Coverage / properties / query_time
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "When this stored-data query was calculated; not proof of source refresh",
        +  "title": "Query Time"
        +}
      • addedOutput schema / $defs / Coverage / properties / record_type
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Record Type"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_error_code
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Refresh Error Code"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_status
        Added value: +{
        +  "default": "unknown",
        +  "title": "Refresh Status",
        +  "type": "string"
        +}
      • addedOutput schema / $defs / Coverage / properties / scope_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Scope Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / source
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_as_of
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source As Of"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_state
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "matched",
        +        "no_match",
        +        "not_loaded",
        +        "unsupported",
        +        "failed_refresh",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source State"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_url
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source Url"
        +}
      • addedOutput schema / $defs / Coverage / properties / stored_rows
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Stored Rows"
        +}
      • removedOutput schema / $defs / Coverage / required
        Removed value: -[
        -  "as_of"
        -]
      • addedOutput schema / properties / additional_info_url
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Additional Info Url"
        +}
      • addedOutput schema / properties / applicant_eligibility_description
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Applicant Eligibility Description"
        +}
      • addedOutput schema / properties / application_deadlines
        Added value: +{
        +  "items": {
        +    "additionalProperties": true,
        +    "type": "object"
        +  },
        +  "title": "Application Deadlines",
        +  "type": "array"
        +}
      • addedOutput schema / properties / application_deadlines_delivery
        Added value: +{
        +  "additionalProperties": true,
        +  "title": "Application Deadlines Delivery",
        +  "type": "object"
        +}
      • addedOutput schema / properties / attachment_text_status
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Attachment Text Status"
        +}
      • addedOutput schema / properties / attachments
        Added value: +{
        +  "items": {
        +    "additionalProperties": true,
        +    "type": "object"
        +  },
        +  "title": "Attachments",
        +  "type": "array"
        +}
      • addedOutput schema / properties / attachments_delivery
        Added value: +{
        +  "additionalProperties": true,
        +  "title": "Attachments Delivery",
        +  "type": "object"
        +}
      • addedOutput schema / properties / close_date_description
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Close Date Description"
        +}
      • addedOutput schema / properties / enrichment_status
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Enrichment Status"
        +}
      • addedOutput schema / properties / field_status
        Added value: +{
        +  "additionalProperties": {
        +    "additionalProperties": true,
        +    "type": "object"
        +  },
        +  "title": "Field Status",
        +  "type": "object"
        +}
      • addedOutput schema / properties / funding_amounts
        Added value: +{
        +  "items": {
        +    "additionalProperties": true,
        +    "type": "object"
        +  },
        +  "title": "Funding Amounts",
        +  "type": "array"
        +}
      • addedOutput schema / properties / is_cost_sharing
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "boolean"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Is Cost Sharing"
        +}
      • addedOutput schema / properties / record_content_policy
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Record Content Policy"
        +}
      • addedOutput schema / properties / record_delivery
        Added value: +{
        +  "additionalProperties": true,
        +  "title": "Record Delivery",
        +  "type": "object"
        +}
      • addedOutput schema / properties / source_fetched_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source Fetched At"
        +}
      • addedOutput schema / properties / source_updated_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source Updated At"
        +}
      • changedOutput schema / properties / source_url / description
        Previous value: -"Deep link to the opportunity on Grants.gov for verification"New value: +"Deep link to the opportunity on Grants.gov or Simpler.Grants.gov for verification"
      • addedOutput schema / properties / source_version
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source Version"
        +}
      • addedOutput schema / properties / summary_delivery
        Added value: +{
        +  "additionalProperties": true,
        +  "title": "Summary Delivery",
        +  "type": "object"
        +}
    • Changedget_notice_record10 fields changed
      • addedOutput schema / $defs / StatementSource / properties / calculated_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "UTC time a derived statement was calculated; not source retrieval",
        +  "title": "Calculated At"
        +}
      • addedOutput schema / $defs / StatementSource / properties / query_time
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "UTC time this stored-data query was evaluated; not source freshness",
        +  "title": "Query Time"
        +}
      • addedOutput schema / $defs / StatementSource / properties / retrieved_at / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedOutput schema / $defs / StatementSource / properties / retrieved_at / default
        Added value: +null
      • changedOutput schema / $defs / StatementSource / properties / retrieved_at / description
        Previous value: -"UTC ISO 8601 when the source was retrieved"New value: +"Recorded UTC source retrieval time, or null when unknown; never response time"
      • removedOutput schema / $defs / StatementSource / properties / retrieved_at / type
        Removed value: -"string"
      • changedOutput schema / $defs / StatementSource / required
        Previous value: -[
        -  "system",
        -  "record_id",
        -  "retrieved_at"
        -]New value: +[
        +  "system",
        +  "record_id"
        +]
      • changedOutput schema / properties / data_as_of / description
        Previous value: -"UTC ISO 8601: when GovInbox data was current"New value: +"UTC ISO 8601: when this stored-data brief was calculated; not source freshness"
      • addedOutput schema / properties / provenance
        Added value: +{
        +  "additionalProperties": true,
        +  "title": "Provenance",
        +  "type": "object"
        +}
      • addedOutput schema / properties / size_standard_coverage
        Added value: +{
        +  "additionalProperties": true,
        +  "title": "Size Standard Coverage",
        +  "type": "object"
        +}
    • Changedget_protest_history33 fields changed
      • addedOutput schema / $defs / Coverage / properties / as_of / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedOutput schema / $defs / Coverage / properties / as_of / default
        Added value: +null
      • changedOutput schema / $defs / Coverage / properties / as_of / description
        Previous value: -"UTC ISO 8601"New value: +"Known source observation time; null when not recorded. Not the query time."
      • removedOutput schema / $defs / Coverage / properties / as_of / type
        Removed value: -"string"
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_basis
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Basis"
        +}
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_field
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Field"
        +}
      • addedOutput schema / $defs / Coverage / properties / exclusions
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "title": "Exclusions",
        +  "type": "array"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_record_count
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Record Count"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_ingest_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Ingest At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_refresh_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Refresh At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_fetched_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Fetched At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / pagination_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Pagination Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / population
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_complete
        Added value: +{
        +  "default": false,
        +  "title": "Population Complete",
        +  "type": "boolean"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_status
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population Status"
        +}
      • addedOutput schema / $defs / Coverage / properties / query_time
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "When this stored-data query was calculated; not proof of source refresh",
        +  "title": "Query Time"
        +}
      • addedOutput schema / $defs / Coverage / properties / record_type
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Record Type"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_error_code
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Refresh Error Code"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_status
        Added value: +{
        +  "default": "unknown",
        +  "title": "Refresh Status",
        +  "type": "string"
        +}
      • addedOutput schema / $defs / Coverage / properties / scope_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Scope Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / source
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_as_of
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source As Of"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_state
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "matched",
        +        "no_match",
        +        "not_loaded",
        +        "unsupported",
        +        "failed_refresh",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source State"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_url
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source Url"
        +}
      • addedOutput schema / $defs / Coverage / properties / stored_rows
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Stored Rows"
        +}
      • removedOutput schema / $defs / Coverage / required
        Removed value: -[
        -  "as_of"
        -]
    • Changedget_recompete_calendar33 fields changed
      • addedOutput schema / $defs / Coverage / properties / as_of / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedOutput schema / $defs / Coverage / properties / as_of / default
        Added value: +null
      • changedOutput schema / $defs / Coverage / properties / as_of / description
        Previous value: -"UTC ISO 8601"New value: +"Known source observation time; null when not recorded. Not the query time."
      • removedOutput schema / $defs / Coverage / properties / as_of / type
        Removed value: -"string"
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_basis
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Basis"
        +}
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_field
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Field"
        +}
      • addedOutput schema / $defs / Coverage / properties / exclusions
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "title": "Exclusions",
        +  "type": "array"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_record_count
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Record Count"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_ingest_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Ingest At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_refresh_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Refresh At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_fetched_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Fetched At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / pagination_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Pagination Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / population
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_complete
        Added value: +{
        +  "default": false,
        +  "title": "Population Complete",
        +  "type": "boolean"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_status
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population Status"
        +}
      • addedOutput schema / $defs / Coverage / properties / query_time
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "When this stored-data query was calculated; not proof of source refresh",
        +  "title": "Query Time"
        +}
      • addedOutput schema / $defs / Coverage / properties / record_type
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Record Type"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_error_code
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Refresh Error Code"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_status
        Added value: +{
        +  "default": "unknown",
        +  "title": "Refresh Status",
        +  "type": "string"
        +}
      • addedOutput schema / $defs / Coverage / properties / scope_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Scope Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / source
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_as_of
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source As Of"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_state
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "matched",
        +        "no_match",
        +        "not_loaded",
        +        "unsupported",
        +        "failed_refresh",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source State"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_url
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source Url"
        +}
      • addedOutput schema / $defs / Coverage / properties / stored_rows
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Stored Rows"
        +}
      • removedOutput schema / $defs / Coverage / required
        Removed value: -[
        -  "as_of"
        -]
    • Changedget_recompete_detail33 fields changed
      • addedOutput schema / $defs / Coverage / properties / as_of / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedOutput schema / $defs / Coverage / properties / as_of / default
        Added value: +null
      • changedOutput schema / $defs / Coverage / properties / as_of / description
        Previous value: -"UTC ISO 8601"New value: +"Known source observation time; null when not recorded. Not the query time."
      • removedOutput schema / $defs / Coverage / properties / as_of / type
        Removed value: -"string"
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_basis
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Basis"
        +}
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_field
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Field"
        +}
      • addedOutput schema / $defs / Coverage / properties / exclusions
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "title": "Exclusions",
        +  "type": "array"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_record_count
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Record Count"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_ingest_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Ingest At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_refresh_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Refresh At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_fetched_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Fetched At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / pagination_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Pagination Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / population
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_complete
        Added value: +{
        +  "default": false,
        +  "title": "Population Complete",
        +  "type": "boolean"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_status
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population Status"
        +}
      • addedOutput schema / $defs / Coverage / properties / query_time
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "When this stored-data query was calculated; not proof of source refresh",
        +  "title": "Query Time"
        +}
      • addedOutput schema / $defs / Coverage / properties / record_type
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Record Type"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_error_code
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Refresh Error Code"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_status
        Added value: +{
        +  "default": "unknown",
        +  "title": "Refresh Status",
        +  "type": "string"
        +}
      • addedOutput schema / $defs / Coverage / properties / scope_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Scope Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / source
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_as_of
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source As Of"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_state
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "matched",
        +        "no_match",
        +        "not_loaded",
        +        "unsupported",
        +        "failed_refresh",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source State"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_url
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source Url"
        +}
      • addedOutput schema / $defs / Coverage / properties / stored_rows
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Stored Rows"
        +}
      • removedOutput schema / $defs / Coverage / required
        Removed value: -[
        -  "as_of"
        -]
    • Changedlist_awards_by_period_end40 fields changed
      • addedOutput schema / $defs / Coverage / properties / as_of / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedOutput schema / $defs / Coverage / properties / as_of / default
        Added value: +null
      • changedOutput schema / $defs / Coverage / properties / as_of / description
        Previous value: -"UTC ISO 8601"New value: +"Known source observation time; null when not recorded. Not the query time."
      • removedOutput schema / $defs / Coverage / properties / as_of / type
        Removed value: -"string"
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_basis
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Basis"
        +}
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_field
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Field"
        +}
      • addedOutput schema / $defs / Coverage / properties / exclusions
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "title": "Exclusions",
        +  "type": "array"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_record_count
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Record Count"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_ingest_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Ingest At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_refresh_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Refresh At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_fetched_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Fetched At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / pagination_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Pagination Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / population
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_complete
        Added value: +{
        +  "default": false,
        +  "title": "Population Complete",
        +  "type": "boolean"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_status
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population Status"
        +}
      • addedOutput schema / $defs / Coverage / properties / query_time
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "When this stored-data query was calculated; not proof of source refresh",
        +  "title": "Query Time"
        +}
      • addedOutput schema / $defs / Coverage / properties / record_type
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Record Type"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_error_code
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Refresh Error Code"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_status
        Added value: +{
        +  "default": "unknown",
        +  "title": "Refresh Status",
        +  "type": "string"
        +}
      • addedOutput schema / $defs / Coverage / properties / scope_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Scope Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / source
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_as_of
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source As Of"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_state
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "matched",
        +        "no_match",
        +        "not_loaded",
        +        "unsupported",
        +        "failed_refresh",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source State"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_url
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source Url"
        +}
      • addedOutput schema / $defs / Coverage / properties / stored_rows
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Stored Rows"
        +}
      • removedOutput schema / $defs / Coverage / required
        Removed value: -[
        -  "as_of"
        -]
      • addedOutput schema / $defs / StatementSource / properties / calculated_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "UTC time a derived statement was calculated; not source retrieval",
        +  "title": "Calculated At"
        +}
      • addedOutput schema / $defs / StatementSource / properties / query_time
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "UTC time this stored-data query was evaluated; not source freshness",
        +  "title": "Query Time"
        +}
      • addedOutput schema / $defs / StatementSource / properties / retrieved_at / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedOutput schema / $defs / StatementSource / properties / retrieved_at / default
        Added value: +null
      • changedOutput schema / $defs / StatementSource / properties / retrieved_at / description
        Previous value: -"UTC ISO 8601 when the source was retrieved"New value: +"Recorded UTC source retrieval time, or null when unknown; never response time"
      • removedOutput schema / $defs / StatementSource / properties / retrieved_at / type
        Removed value: -"string"
      • changedOutput schema / $defs / StatementSource / required
        Previous value: -[
        -  "system",
        -  "record_id",
        -  "retrieved_at"
        -]New value: +[
        +  "system",
        +  "record_id"
        +]
    • Changedlist_reported_subawards40 fields changed
      • addedOutput schema / $defs / Coverage / properties / as_of / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedOutput schema / $defs / Coverage / properties / as_of / default
        Added value: +null
      • changedOutput schema / $defs / Coverage / properties / as_of / description
        Previous value: -"UTC ISO 8601"New value: +"Known source observation time; null when not recorded. Not the query time."
      • removedOutput schema / $defs / Coverage / properties / as_of / type
        Removed value: -"string"
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_basis
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Basis"
        +}
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_field
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Field"
        +}
      • addedOutput schema / $defs / Coverage / properties / exclusions
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "title": "Exclusions",
        +  "type": "array"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_record_count
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Record Count"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_ingest_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Ingest At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_refresh_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Refresh At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_fetched_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Fetched At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / pagination_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Pagination Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / population
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_complete
        Added value: +{
        +  "default": false,
        +  "title": "Population Complete",
        +  "type": "boolean"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_status
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population Status"
        +}
      • addedOutput schema / $defs / Coverage / properties / query_time
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "When this stored-data query was calculated; not proof of source refresh",
        +  "title": "Query Time"
        +}
      • addedOutput schema / $defs / Coverage / properties / record_type
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Record Type"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_error_code
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Refresh Error Code"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_status
        Added value: +{
        +  "default": "unknown",
        +  "title": "Refresh Status",
        +  "type": "string"
        +}
      • addedOutput schema / $defs / Coverage / properties / scope_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Scope Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / source
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_as_of
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source As Of"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_state
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "matched",
        +        "no_match",
        +        "not_loaded",
        +        "unsupported",
        +        "failed_refresh",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source State"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_url
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source Url"
        +}
      • addedOutput schema / $defs / Coverage / properties / stored_rows
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Stored Rows"
        +}
      • removedOutput schema / $defs / Coverage / required
        Removed value: -[
        -  "as_of"
        -]
      • addedOutput schema / $defs / StatementSource / properties / calculated_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "UTC time a derived statement was calculated; not source retrieval",
        +  "title": "Calculated At"
        +}
      • addedOutput schema / $defs / StatementSource / properties / query_time
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "UTC time this stored-data query was evaluated; not source freshness",
        +  "title": "Query Time"
        +}
      • addedOutput schema / $defs / StatementSource / properties / retrieved_at / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedOutput schema / $defs / StatementSource / properties / retrieved_at / default
        Added value: +null
      • changedOutput schema / $defs / StatementSource / properties / retrieved_at / description
        Previous value: -"UTC ISO 8601 when the source was retrieved"New value: +"Recorded UTC source retrieval time, or null when unknown; never response time"
      • removedOutput schema / $defs / StatementSource / properties / retrieved_at / type
        Removed value: -"string"
      • changedOutput schema / $defs / StatementSource / required
        Previous value: -[
        -  "system",
        -  "record_id",
        -  "retrieved_at"
        -]New value: +[
        +  "system",
        +  "record_id"
        +]
    • Changedresearch7 fields changed
      • addedInput schema / properties / limit
        Added value: +{
        +  "default": 10,
        +  "description": "Maximum 25 DOE lab-call records; minimum 1; default 10. Other sources remain pointers.",
        +  "maximum": 25,
        +  "minimum": 1,
        +  "title": "Limit",
        +  "type": "integer"
        +}
      • changedInput schema / properties / query / description
        Previous value: -"What to look up"New value: +"Source query or exact recorded reference"
      • addedInput schema / properties / query / maxLength
        Added value: +200
      • addedInput schema / properties / query / minLength
        Added value: +1
      • changedInput schema / properties / source / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 120,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / source / description
        Previous value: -"far, federal_register, grants, mcc"New value: +"DOE eXCHANGE executes a stored lab-call search; far, federal_register, grants and mcc return source pointers"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "title": "researchDictOutput",
        +  "type": "object"
        +}
    • Changedsearch_amtrak33 fields changed
      • addedOutput schema / $defs / Coverage / properties / as_of / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedOutput schema / $defs / Coverage / properties / as_of / default
        Added value: +null
      • changedOutput schema / $defs / Coverage / properties / as_of / description
        Previous value: -"UTC ISO 8601"New value: +"Known source observation time; null when not recorded. Not the query time."
      • removedOutput schema / $defs / Coverage / properties / as_of / type
        Removed value: -"string"
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_basis
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Basis"
        +}
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_field
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Field"
        +}
      • addedOutput schema / $defs / Coverage / properties / exclusions
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "title": "Exclusions",
        +  "type": "array"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_record_count
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Record Count"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_ingest_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Ingest At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_refresh_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Refresh At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_fetched_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Fetched At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / pagination_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Pagination Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / population
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_complete
        Added value: +{
        +  "default": false,
        +  "title": "Population Complete",
        +  "type": "boolean"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_status
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population Status"
        +}
      • addedOutput schema / $defs / Coverage / properties / query_time
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "When this stored-data query was calculated; not proof of source refresh",
        +  "title": "Query Time"
        +}
      • addedOutput schema / $defs / Coverage / properties / record_type
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Record Type"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_error_code
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Refresh Error Code"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_status
        Added value: +{
        +  "default": "unknown",
        +  "title": "Refresh Status",
        +  "type": "string"
        +}
      • addedOutput schema / $defs / Coverage / properties / scope_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Scope Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / source
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_as_of
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source As Of"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_state
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "matched",
        +        "no_match",
        +        "not_loaded",
        +        "unsupported",
        +        "failed_refresh",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source State"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_url
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source Url"
        +}
      • addedOutput schema / $defs / Coverage / properties / stored_rows
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Stored Rows"
        +}
      • removedOutput schema / $defs / Coverage / required
        Removed value: -[
        -  "as_of"
        -]
    • Changedsearch_award_history66 fields changed
      • removedInput schema / properties / agency / description
        Removed value: -"Awarding agency substring filter"
      • addedInput schema / properties / award_key
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 200,
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Award Key"
        +}
      • removedInput schema / properties / contractor / description
        Removed value: -"Recipient name substring filter"
      • addedInput schema / properties / cursor
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 2048,
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cursor"
        +}
      • addedInput schema / properties / date_from
        Added value: +{
        +  "anyOf": [
        +    {
        +      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Recorded signed/action date, not period-of-performance start",
        +  "title": "Date From"
        +}
      • addedInput schema / properties / date_to
        Added value: +{
        +  "anyOf": [
        +    {
        +      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Date To"
        +}
      • addedInput schema / properties / keyword
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 200,
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Keyword"
        +}
      • addedInput schema / properties / limit / description
        Added value: +"Maximum 50 records; minimum 1; default 20."
      • changedInput schema / properties / naics / description
        Previous value: -"NAICS codes, 2-6 digits each; omit for all lanes"New value: +"NAICS prefixes, 2-6 digits; six digits match an exact lane"
      • addedInput schema / properties / office
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 200,
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Office"
        +}
      • addedInput schema / properties / piid
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 120,
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Piid"
        +}
      • addedInput schema / properties / solicitation
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 120,
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Solicitation"
        +}
      • addedInput schema / properties / sort
        Added value: +{
        +  "default": "amount_desc",
        +  "enum": [
        +    "amount_desc",
        +    "date_desc",
        +    "date_asc"
        +  ],
        +  "title": "Sort",
        +  "type": "string"
        +}
      • addedOutput schema / $defs / AwardHistoryRow / properties / amount_null_reasons
        Added value: +{
        +  "additionalProperties": true,
        +  "title": "Amount Null Reasons",
        +  "type": "object"
        +}
      • addedOutput schema / $defs / AwardHistoryRow / properties / amount_types
        Added value: +{
        +  "additionalProperties": true,
        +  "title": "Amount Types",
        +  "type": "object"
        +}
      • addedOutput schema / $defs / AwardHistoryRow / properties / award_id
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Award Id"
        +}
      • addedOutput schema / $defs / AwardHistoryRow / properties / awarding_sub_agency
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Awarding Sub Agency"
        +}
      • addedOutput schema / $defs / AwardHistoryRow / properties / date_signed
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Date Signed"
        +}
      • addedOutput schema / $defs / AwardHistoryRow / properties / detail_fetched_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Detail Fetched At"
        +}
      • addedOutput schema / $defs / AwardHistoryRow / properties / exercised_value
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Exercised Value"
        +}
      • addedOutput schema / $defs / AwardHistoryRow / properties / fetched_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Fetched At"
        +}
      • addedOutput schema / $defs / AwardHistoryRow / properties / net_obligations
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Net Obligations"
        +}
      • addedOutput schema / $defs / AwardHistoryRow / properties / office_name
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Office Name"
        +}
      • addedOutput schema / $defs / AwardHistoryRow / properties / outlays
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Outlays"
        +}
      • addedOutput schema / $defs / AwardHistoryRow / properties / piid
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Piid"
        +}
      • addedOutput schema / $defs / AwardHistoryRow / properties / potential_value
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Potential Value"
        +}
      • addedOutput schema / $defs / AwardHistoryRow / properties / solicitation_id
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Solicitation Id"
        +}
      • addedOutput schema / $defs / AwardHistoryRow / properties / source_name
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source Name"
        +}
      • addedOutput schema / $defs / AwardHistoryRow / properties / source_record_id
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source Record Id"
        +}
      • addedOutput schema / $defs / AwardHistoryRow / properties / source_url_unavailable_reason
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source Url Unavailable Reason"
        +}
      • addedOutput schema / $defs / Coverage / properties / as_of / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedOutput schema / $defs / Coverage / properties / as_of / default
        Added value: +null
      • changedOutput schema / $defs / Coverage / properties / as_of / description
        Previous value: -"UTC ISO 8601"New value: +"Known source observation time; null when not recorded. Not the query time."
      • removedOutput schema / $defs / Coverage / properties / as_of / type
        Removed value: -"string"
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_basis
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Basis"
        +}
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_field
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Field"
        +}
      • addedOutput schema / $defs / Coverage / properties / exclusions
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "title": "Exclusions",
        +  "type": "array"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_record_count
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Record Count"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_ingest_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Ingest At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_refresh_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Refresh At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_fetched_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Fetched At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / pagination_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Pagination Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / population
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_complete
        Added value: +{
        +  "default": false,
        +  "title": "Population Complete",
        +  "type": "boolean"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_status
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population Status"
        +}
      • addedOutput schema / $defs / Coverage / properties / query_time
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "When this stored-data query was calculated; not proof of source refresh",
        +  "title": "Query Time"
        +}
      • addedOutput schema / $defs / Coverage / properties / record_type
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Record Type"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_error_code
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Refresh Error Code"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_status
        Added value: +{
        +  "default": "unknown",
        +  "title": "Refresh Status",
        +  "type": "string"
        +}
      • addedOutput schema / $defs / Coverage / properties / scope_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Scope Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / source
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_as_of
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source As Of"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_state
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "matched",
        +        "no_match",
        +        "not_loaded",
        +        "unsupported",
        +        "failed_refresh",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source State"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_url
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source Url"
        +}
      • addedOutput schema / $defs / Coverage / properties / stored_rows
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Stored Rows"
        +}
      • removedOutput schema / $defs / Coverage / required
        Removed value: -[
        -  "as_of"
        -]
      • addedOutput schema / properties / applied_filters
        Added value: +{
        +  "additionalProperties": true,
        +  "title": "Applied Filters",
        +  "type": "object"
        +}
      • addedOutput schema / properties / next_cursor
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Next Cursor"
        +}
      • addedOutput schema / properties / total_count
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Total Count"
        +}
    • Changedsearch_cancelled_contracts33 fields changed
      • addedOutput schema / $defs / Coverage / properties / as_of / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedOutput schema / $defs / Coverage / properties / as_of / default
        Added value: +null
      • changedOutput schema / $defs / Coverage / properties / as_of / description
        Previous value: -"UTC ISO 8601"New value: +"Known source observation time; null when not recorded. Not the query time."
      • removedOutput schema / $defs / Coverage / properties / as_of / type
        Removed value: -"string"
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_basis
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Basis"
        +}
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_field
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Field"
        +}
      • addedOutput schema / $defs / Coverage / properties / exclusions
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "title": "Exclusions",
        +  "type": "array"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_record_count
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Record Count"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_ingest_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Ingest At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_refresh_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Refresh At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_fetched_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Fetched At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / pagination_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Pagination Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / population
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_complete
        Added value: +{
        +  "default": false,
        +  "title": "Population Complete",
        +  "type": "boolean"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_status
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population Status"
        +}
      • addedOutput schema / $defs / Coverage / properties / query_time
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "When this stored-data query was calculated; not proof of source refresh",
        +  "title": "Query Time"
        +}
      • addedOutput schema / $defs / Coverage / properties / record_type
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Record Type"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_error_code
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Refresh Error Code"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_status
        Added value: +{
        +  "default": "unknown",
        +  "title": "Refresh Status",
        +  "type": "string"
        +}
      • addedOutput schema / $defs / Coverage / properties / scope_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Scope Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / source
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_as_of
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source As Of"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_state
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "matched",
        +        "no_match",
        +        "not_loaded",
        +        "unsupported",
        +        "failed_refresh",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source State"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_url
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source Url"
        +}
      • addedOutput schema / $defs / Coverage / properties / stored_rows
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Stored Rows"
        +}
      • removedOutput schema / $defs / Coverage / required
        Removed value: -[
        -  "as_of"
        -]
    • Changedsearch_cancelled_grants33 fields changed
      • addedOutput schema / $defs / Coverage / properties / as_of / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedOutput schema / $defs / Coverage / properties / as_of / default
        Added value: +null
      • changedOutput schema / $defs / Coverage / properties / as_of / description
        Previous value: -"UTC ISO 8601"New value: +"Known source observation time; null when not recorded. Not the query time."
      • removedOutput schema / $defs / Coverage / properties / as_of / type
        Removed value: -"string"
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_basis
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Basis"
        +}
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_field
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Field"
        +}
      • addedOutput schema / $defs / Coverage / properties / exclusions
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "title": "Exclusions",
        +  "type": "array"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_record_count
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Record Count"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_ingest_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Ingest At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_refresh_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Refresh At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_fetched_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Fetched At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / pagination_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Pagination Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / population
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_complete
        Added value: +{
        +  "default": false,
        +  "title": "Population Complete",
        +  "type": "boolean"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_status
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population Status"
        +}
      • addedOutput schema / $defs / Coverage / properties / query_time
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "When this stored-data query was calculated; not proof of source refresh",
        +  "title": "Query Time"
        +}
      • addedOutput schema / $defs / Coverage / properties / record_type
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Record Type"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_error_code
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Refresh Error Code"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_status
        Added value: +{
        +  "default": "unknown",
        +  "title": "Refresh Status",
        +  "type": "string"
        +}
      • addedOutput schema / $defs / Coverage / properties / scope_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Scope Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / source
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_as_of
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source As Of"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_state
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "matched",
        +        "no_match",
        +        "not_loaded",
        +        "unsupported",
        +        "failed_refresh",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source State"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_url
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source Url"
        +}
      • addedOutput schema / $defs / Coverage / properties / stored_rows
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Stored Rows"
        +}
      • removedOutput schema / $defs / Coverage / required
        Removed value: -[
        -  "as_of"
        -]
    • Changedsearch_cancelled_leases33 fields changed
      • addedOutput schema / $defs / Coverage / properties / as_of / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedOutput schema / $defs / Coverage / properties / as_of / default
        Added value: +null
      • changedOutput schema / $defs / Coverage / properties / as_of / description
        Previous value: -"UTC ISO 8601"New value: +"Known source observation time; null when not recorded. Not the query time."
      • removedOutput schema / $defs / Coverage / properties / as_of / type
        Removed value: -"string"
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_basis
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Basis"
        +}
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_field
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Field"
        +}
      • addedOutput schema / $defs / Coverage / properties / exclusions
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "title": "Exclusions",
        +  "type": "array"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_record_count
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Record Count"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_ingest_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Ingest At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_refresh_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Refresh At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_fetched_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Fetched At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / pagination_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Pagination Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / population
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_complete
        Added value: +{
        +  "default": false,
        +  "title": "Population Complete",
        +  "type": "boolean"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_status
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population Status"
        +}
      • addedOutput schema / $defs / Coverage / properties / query_time
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "When this stored-data query was calculated; not proof of source refresh",
        +  "title": "Query Time"
        +}
      • addedOutput schema / $defs / Coverage / properties / record_type
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Record Type"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_error_code
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Refresh Error Code"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_status
        Added value: +{
        +  "default": "unknown",
        +  "title": "Refresh Status",
        +  "type": "string"
        +}
      • addedOutput schema / $defs / Coverage / properties / scope_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Scope Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / source
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_as_of
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source As Of"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_state
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "matched",
        +        "no_match",
        +        "not_loaded",
        +        "unsupported",
        +        "failed_refresh",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source State"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_url
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source Url"
        +}
      • addedOutput schema / $defs / Coverage / properties / stored_rows
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Stored Rows"
        +}
      • removedOutput schema / $defs / Coverage / required
        Removed value: -[
        -  "as_of"
        -]
    • Changedsearch_denali33 fields changed
      • addedOutput schema / $defs / Coverage / properties / as_of / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedOutput schema / $defs / Coverage / properties / as_of / default
        Added value: +null
      • changedOutput schema / $defs / Coverage / properties / as_of / description
        Previous value: -"UTC ISO 8601"New value: +"Known source observation time; null when not recorded. Not the query time."
      • removedOutput schema / $defs / Coverage / properties / as_of / type
        Removed value: -"string"
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_basis
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Basis"
        +}
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_field
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Field"
        +}
      • addedOutput schema / $defs / Coverage / properties / exclusions
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "title": "Exclusions",
        +  "type": "array"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_record_count
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Record Count"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_ingest_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Ingest At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_refresh_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Refresh At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_fetched_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Fetched At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / pagination_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Pagination Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / population
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_complete
        Added value: +{
        +  "default": false,
        +  "title": "Population Complete",
        +  "type": "boolean"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_status
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population Status"
        +}
      • addedOutput schema / $defs / Coverage / properties / query_time
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "When this stored-data query was calculated; not proof of source refresh",
        +  "title": "Query Time"
        +}
      • addedOutput schema / $defs / Coverage / properties / record_type
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Record Type"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_error_code
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Refresh Error Code"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_status
        Added value: +{
        +  "default": "unknown",
        +  "title": "Refresh Status",
        +  "type": "string"
        +}
      • addedOutput schema / $defs / Coverage / properties / scope_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Scope Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / source
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_as_of
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source As Of"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_state
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "matched",
        +        "no_match",
        +        "not_loaded",
        +        "unsupported",
        +        "failed_refresh",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source State"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_url
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source Url"
        +}
      • addedOutput schema / $defs / Coverage / properties / stored_rows
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Stored Rows"
        +}
      • removedOutput schema / $defs / Coverage / required
        Removed value: -[
        -  "as_of"
        -]
    • Changedsearch_dibbs47 fields changed
      • addedInput schema / properties / buyer_code
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 32,
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Recorded DLA buyer code substring",
        +  "title": "Buyer Code"
        +}
      • addedInput schema / properties / limit / description
        Added value: +"Maximum 50 records; minimum 1; default 20."
      • addedInput schema / properties / match_mode
        Added value: +{
        +  "default": "substring",
        +  "description": "Keyword matching mode; acronym excludes embedded forms such as SBIRT for SBIR.",
        +  "enum": [
        +    "substring",
        +    "phrase",
        +    "acronym"
        +  ],
        +  "title": "Match Mode",
        +  "type": "string"
        +}
      • changedInput schema / properties / nsn / anyOf
        Previous value: -[
        -  {
        -    "maxLength": 32,
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 32,
        +    "pattern": "^[0-9-]+$",
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / status
        Added value: +{
        +  "default": "all",
        +  "description": "Computed recorded-deadline status. all preserves historical and unknown-deadline records.",
        +  "enum": [
        +    "open",
        +    "closed",
        +    "all"
        +  ],
        +  "title": "Status",
        +  "type": "string"
        +}
      • addedOutput schema / $defs / Coverage / properties / as_of / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedOutput schema / $defs / Coverage / properties / as_of / default
        Added value: +null
      • changedOutput schema / $defs / Coverage / properties / as_of / description
        Previous value: -"UTC ISO 8601"New value: +"Known source observation time; null when not recorded. Not the query time."
      • removedOutput schema / $defs / Coverage / properties / as_of / type
        Removed value: -"string"
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_basis
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Basis"
        +}
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_field
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Field"
        +}
      • addedOutput schema / $defs / Coverage / properties / exclusions
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "title": "Exclusions",
        +  "type": "array"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_record_count
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Record Count"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_ingest_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Ingest At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_refresh_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Refresh At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_fetched_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Fetched At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / pagination_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Pagination Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / population
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_complete
        Added value: +{
        +  "default": false,
        +  "title": "Population Complete",
        +  "type": "boolean"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_status
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population Status"
        +}
      • addedOutput schema / $defs / Coverage / properties / query_time
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "When this stored-data query was calculated; not proof of source refresh",
        +  "title": "Query Time"
        +}
      • addedOutput schema / $defs / Coverage / properties / record_type
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Record Type"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_error_code
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Refresh Error Code"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_status
        Added value: +{
        +  "default": "unknown",
        +  "title": "Refresh Status",
        +  "type": "string"
        +}
      • addedOutput schema / $defs / Coverage / properties / scope_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Scope Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / source
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_as_of
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source As Of"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_state
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "matched",
        +        "no_match",
        +        "not_loaded",
        +        "unsupported",
        +        "failed_refresh",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source State"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_url
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source Url"
        +}
      • addedOutput schema / $defs / Coverage / properties / stored_rows
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Stored Rows"
        +}
      • removedOutput schema / $defs / Coverage / required
        Removed value: -[
        -  "as_of"
        -]
      • addedOutput schema / $defs / DibbsRfqRow / properties / computed_deadline
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Computed Deadline"
        +}
      • addedOutput schema / $defs / DibbsRfqRow / properties / deadline_basis
        Added value: +{
        +  "default": "unknown",
        +  "title": "Deadline Basis",
        +  "type": "string"
        +}
      • addedOutput schema / $defs / DibbsRfqRow / properties / deadline_source_timezone
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Deadline Source Timezone"
        +}
      • addedOutput schema / $defs / DibbsRfqRow / properties / deadline_status
        Added value: +{
        +  "default": "unknown",
        +  "enum": [
        +    "open",
        +    "closed",
        +    "unknown"
        +  ],
        +  "title": "Deadline Status",
        +  "type": "string"
        +}
      • addedOutput schema / $defs / DibbsRfqRow / properties / match_explanation
        Added value: +{
        +  "additionalProperties": true,
        +  "title": "Match Explanation",
        +  "type": "object"
        +}
      • addedOutput schema / $defs / DibbsRfqRow / properties / source_record_id
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source Record Id"
        +}
      • addedOutput schema / $defs / DibbsRfqRow / properties / source_url_unavailable_reason
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source Url Unavailable Reason"
        +}
      • addedOutput schema / $defs / DibbsRfqRow / properties / status_computed_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Status Computed At"
        +}
      • addedOutput schema / properties / applied_filters
        Added value: +{
        +  "additionalProperties": true,
        +  "title": "Applied Filters",
        +  "type": "object"
        +}
    • Changedsearch_doge_payments33 fields changed
      • addedOutput schema / $defs / Coverage / properties / as_of / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedOutput schema / $defs / Coverage / properties / as_of / default
        Added value: +null
      • changedOutput schema / $defs / Coverage / properties / as_of / description
        Previous value: -"UTC ISO 8601"New value: +"Known source observation time; null when not recorded. Not the query time."
      • removedOutput schema / $defs / Coverage / properties / as_of / type
        Removed value: -"string"
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_basis
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Basis"
        +}
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_field
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Field"
        +}
      • addedOutput schema / $defs / Coverage / properties / exclusions
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "title": "Exclusions",
        +  "type": "array"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_record_count
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Record Count"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_ingest_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Ingest At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_refresh_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Refresh At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_fetched_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Fetched At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / pagination_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Pagination Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / population
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_complete
        Added value: +{
        +  "default": false,
        +  "title": "Population Complete",
        +  "type": "boolean"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_status
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population Status"
        +}
      • addedOutput schema / $defs / Coverage / properties / query_time
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "When this stored-data query was calculated; not proof of source refresh",
        +  "title": "Query Time"
        +}
      • addedOutput schema / $defs / Coverage / properties / record_type
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Record Type"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_error_code
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Refresh Error Code"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_status
        Added value: +{
        +  "default": "unknown",
        +  "title": "Refresh Status",
        +  "type": "string"
        +}
      • addedOutput schema / $defs / Coverage / properties / scope_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Scope Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / source
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_as_of
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source As Of"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_state
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "matched",
        +        "no_match",
        +        "not_loaded",
        +        "unsupported",
        +        "failed_refresh",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source State"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_url
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source Url"
        +}
      • addedOutput schema / $defs / Coverage / properties / stored_rows
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Stored Rows"
        +}
      • removedOutput schema / $defs / Coverage / required
        Removed value: -[
        -  "as_of"
        -]
    • Changedsearch_dra_grants33 fields changed
      • addedOutput schema / $defs / Coverage / properties / as_of / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedOutput schema / $defs / Coverage / properties / as_of / default
        Added value: +null
      • changedOutput schema / $defs / Coverage / properties / as_of / description
        Previous value: -"UTC ISO 8601"New value: +"Known source observation time; null when not recorded. Not the query time."
      • removedOutput schema / $defs / Coverage / properties / as_of / type
        Removed value: -"string"
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_basis
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Basis"
        +}
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_field
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Field"
        +}
      • addedOutput schema / $defs / Coverage / properties / exclusions
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "title": "Exclusions",
        +  "type": "array"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_record_count
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Record Count"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_ingest_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Ingest At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_refresh_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Refresh At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_fetched_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Fetched At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / pagination_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Pagination Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / population
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_complete
        Added value: +{
        +  "default": false,
        +  "title": "Population Complete",
        +  "type": "boolean"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_status
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population Status"
        +}
      • addedOutput schema / $defs / Coverage / properties / query_time
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "When this stored-data query was calculated; not proof of source refresh",
        +  "title": "Query Time"
        +}
      • addedOutput schema / $defs / Coverage / properties / record_type
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Record Type"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_error_code
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Refresh Error Code"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_status
        Added value: +{
        +  "default": "unknown",
        +  "title": "Refresh Status",
        +  "type": "string"
        +}
      • addedOutput schema / $defs / Coverage / properties / scope_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Scope Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / source
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_as_of
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source As Of"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_state
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "matched",
        +        "no_match",
        +        "not_loaded",
        +        "unsupported",
        +        "failed_refresh",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source State"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_url
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source Url"
        +}
      • addedOutput schema / $defs / Coverage / properties / stored_rows
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Stored Rows"
        +}
      • removedOutput schema / $defs / Coverage / required
        Removed value: -[
        -  "as_of"
        -]
    • Changedsearch_fdic33 fields changed
      • addedOutput schema / $defs / Coverage / properties / as_of / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedOutput schema / $defs / Coverage / properties / as_of / default
        Added value: +null
      • changedOutput schema / $defs / Coverage / properties / as_of / description
        Previous value: -"UTC ISO 8601"New value: +"Known source observation time; null when not recorded. Not the query time."
      • removedOutput schema / $defs / Coverage / properties / as_of / type
        Removed value: -"string"
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_basis
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Basis"
        +}
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_field
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Field"
        +}
      • addedOutput schema / $defs / Coverage / properties / exclusions
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "title": "Exclusions",
        +  "type": "array"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_record_count
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Record Count"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_ingest_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Ingest At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_refresh_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Refresh At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_fetched_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Fetched At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / pagination_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Pagination Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / population
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_complete
        Added value: +{
        +  "default": false,
        +  "title": "Population Complete",
        +  "type": "boolean"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_status
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population Status"
        +}
      • addedOutput schema / $defs / Coverage / properties / query_time
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "When this stored-data query was calculated; not proof of source refresh",
        +  "title": "Query Time"
        +}
      • addedOutput schema / $defs / Coverage / properties / record_type
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Record Type"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_error_code
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Refresh Error Code"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_status
        Added value: +{
        +  "default": "unknown",
        +  "title": "Refresh Status",
        +  "type": "string"
        +}
      • addedOutput schema / $defs / Coverage / properties / scope_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Scope Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / source
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_as_of
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source As Of"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_state
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "matched",
        +        "no_match",
        +        "not_loaded",
        +        "unsupported",
        +        "failed_refresh",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source State"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_url
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source Url"
        +}
      • addedOutput schema / $defs / Coverage / properties / stored_rows
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Stored Rows"
        +}
      • removedOutput schema / $defs / Coverage / required
        Removed value: -[
        -  "as_of"
        -]
    • Changedsearch_federal_register33 fields changed
      • addedOutput schema / $defs / Coverage / properties / as_of / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedOutput schema / $defs / Coverage / properties / as_of / default
        Added value: +null
      • changedOutput schema / $defs / Coverage / properties / as_of / description
        Previous value: -"UTC ISO 8601"New value: +"Known source observation time; null when not recorded. Not the query time."
      • removedOutput schema / $defs / Coverage / properties / as_of / type
        Removed value: -"string"
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_basis
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Basis"
        +}
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_field
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Field"
        +}
      • addedOutput schema / $defs / Coverage / properties / exclusions
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "title": "Exclusions",
        +  "type": "array"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_record_count
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Record Count"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_ingest_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Ingest At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_refresh_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Refresh At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_fetched_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Fetched At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / pagination_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Pagination Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / population
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_complete
        Added value: +{
        +  "default": false,
        +  "title": "Population Complete",
        +  "type": "boolean"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_status
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population Status"
        +}
      • addedOutput schema / $defs / Coverage / properties / query_time
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "When this stored-data query was calculated; not proof of source refresh",
        +  "title": "Query Time"
        +}
      • addedOutput schema / $defs / Coverage / properties / record_type
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Record Type"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_error_code
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Refresh Error Code"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_status
        Added value: +{
        +  "default": "unknown",
        +  "title": "Refresh Status",
        +  "type": "string"
        +}
      • addedOutput schema / $defs / Coverage / properties / scope_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Scope Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / source
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_as_of
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source As Of"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_state
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "matched",
        +        "no_match",
        +        "not_loaded",
        +        "unsupported",
        +        "failed_refresh",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source State"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_url
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source Url"
        +}
      • addedOutput schema / $defs / Coverage / properties / stored_rows
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Stored Rows"
        +}
      • removedOutput schema / $defs / Coverage / required
        Removed value: -[
        -  "as_of"
        -]
    • Changedsearch_grants_gov39 fields changed
      • changedInput schema / properties / agency / description
        Previous value: -"Agency name or code substring filter"New value: +"Agency name or code substring; exact NSF, EPA, DOE, USDA, NIH and NOAA inputs also resolve recorded names/code descendants without broadening NIH to all HHS or NOAA to all Commerce."
      • addedInput schema / properties / limit / description
        Added value: +"Maximum 50 records; minimum 1; default 20."
      • addedInput schema / properties / match_mode
        Added value: +{
        +  "default": "substring",
        +  "enum": [
        +    "substring",
        +    "phrase",
        +    "acronym"
        +  ],
        +  "title": "Match Mode",
        +  "type": "string"
        +}
      • addedOutput schema / $defs / Coverage / properties / as_of / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedOutput schema / $defs / Coverage / properties / as_of / default
        Added value: +null
      • changedOutput schema / $defs / Coverage / properties / as_of / description
        Previous value: -"UTC ISO 8601"New value: +"Known source observation time; null when not recorded. Not the query time."
      • removedOutput schema / $defs / Coverage / properties / as_of / type
        Removed value: -"string"
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_basis
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Basis"
        +}
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_field
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Field"
        +}
      • addedOutput schema / $defs / Coverage / properties / exclusions
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "title": "Exclusions",
        +  "type": "array"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_record_count
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Record Count"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_ingest_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Ingest At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_refresh_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Refresh At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_fetched_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Fetched At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / pagination_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Pagination Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / population
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_complete
        Added value: +{
        +  "default": false,
        +  "title": "Population Complete",
        +  "type": "boolean"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_status
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population Status"
        +}
      • addedOutput schema / $defs / Coverage / properties / query_time
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "When this stored-data query was calculated; not proof of source refresh",
        +  "title": "Query Time"
        +}
      • addedOutput schema / $defs / Coverage / properties / record_type
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Record Type"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_error_code
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Refresh Error Code"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_status
        Added value: +{
        +  "default": "unknown",
        +  "title": "Refresh Status",
        +  "type": "string"
        +}
      • addedOutput schema / $defs / Coverage / properties / scope_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Scope Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / source
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_as_of
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source As Of"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_state
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "matched",
        +        "no_match",
        +        "not_loaded",
        +        "unsupported",
        +        "failed_refresh",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source State"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_url
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source Url"
        +}
      • addedOutput schema / $defs / Coverage / properties / stored_rows
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Stored Rows"
        +}
      • removedOutput schema / $defs / Coverage / required
        Removed value: -[
        -  "as_of"
        -]
      • changedOutput schema / $defs / GrantRow / properties / close_date / description
        Previous value: -"Application close date as stated by the source"New value: +"Recorded generic close date; explicit stage deadlines, when fetched, are returned by get_grant_record"
      • addedOutput schema / $defs / GrantRow / properties / match_explanation
        Added value: +{
        +  "additionalProperties": true,
        +  "title": "Match Explanation",
        +  "type": "object"
        +}
      • addedOutput schema / $defs / GrantRow / properties / summary
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Summary"
        +}
    • Changedsearch_mcc33 fields changed
      • addedOutput schema / $defs / Coverage / properties / as_of / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedOutput schema / $defs / Coverage / properties / as_of / default
        Added value: +null
      • changedOutput schema / $defs / Coverage / properties / as_of / description
        Previous value: -"UTC ISO 8601"New value: +"Known source observation time; null when not recorded. Not the query time."
      • removedOutput schema / $defs / Coverage / properties / as_of / type
        Removed value: -"string"
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_basis
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Basis"
        +}
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_field
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Field"
        +}
      • addedOutput schema / $defs / Coverage / properties / exclusions
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "title": "Exclusions",
        +  "type": "array"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_record_count
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Record Count"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_ingest_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Ingest At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_refresh_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Refresh At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_fetched_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Fetched At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / pagination_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Pagination Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / population
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_complete
        Added value: +{
        +  "default": false,
        +  "title": "Population Complete",
        +  "type": "boolean"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_status
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population Status"
        +}
      • addedOutput schema / $defs / Coverage / properties / query_time
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "When this stored-data query was calculated; not proof of source refresh",
        +  "title": "Query Time"
        +}
      • addedOutput schema / $defs / Coverage / properties / record_type
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Record Type"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_error_code
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Refresh Error Code"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_status
        Added value: +{
        +  "default": "unknown",
        +  "title": "Refresh Status",
        +  "type": "string"
        +}
      • addedOutput schema / $defs / Coverage / properties / scope_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Scope Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / source
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_as_of
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source As Of"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_state
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "matched",
        +        "no_match",
        +        "not_loaded",
        +        "unsupported",
        +        "failed_refresh",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source State"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_url
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source Url"
        +}
      • addedOutput schema / $defs / Coverage / properties / stored_rows
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Stored Rows"
        +}
      • removedOutput schema / $defs / Coverage / required
        Removed value: -[
        -  "as_of"
        -]
    • Changedsearch_mcc_forecast33 fields changed
      • addedOutput schema / $defs / Coverage / properties / as_of / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedOutput schema / $defs / Coverage / properties / as_of / default
        Added value: +null
      • changedOutput schema / $defs / Coverage / properties / as_of / description
        Previous value: -"UTC ISO 8601"New value: +"Known source observation time; null when not recorded. Not the query time."
      • removedOutput schema / $defs / Coverage / properties / as_of / type
        Removed value: -"string"
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_basis
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Basis"
        +}
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_field
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Field"
        +}
      • addedOutput schema / $defs / Coverage / properties / exclusions
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "title": "Exclusions",
        +  "type": "array"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_record_count
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Record Count"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_ingest_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Ingest At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_refresh_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Refresh At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_fetched_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Fetched At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / pagination_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Pagination Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / population
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_complete
        Added value: +{
        +  "default": false,
        +  "title": "Population Complete",
        +  "type": "boolean"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_status
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population Status"
        +}
      • addedOutput schema / $defs / Coverage / properties / query_time
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "When this stored-data query was calculated; not proof of source refresh",
        +  "title": "Query Time"
        +}
      • addedOutput schema / $defs / Coverage / properties / record_type
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Record Type"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_error_code
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Refresh Error Code"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_status
        Added value: +{
        +  "default": "unknown",
        +  "title": "Refresh Status",
        +  "type": "string"
        +}
      • addedOutput schema / $defs / Coverage / properties / scope_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Scope Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / source
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_as_of
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source As Of"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_state
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "matched",
        +        "no_match",
        +        "not_loaded",
        +        "unsupported",
        +        "failed_refresh",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source State"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_url
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source Url"
        +}
      • addedOutput schema / $defs / Coverage / properties / stored_rows
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Stored Rows"
        +}
      • removedOutput schema / $defs / Coverage / required
        Removed value: -[
        -  "as_of"
        -]
    • Changedsearch_nbrc_grants33 fields changed
      • addedOutput schema / $defs / Coverage / properties / as_of / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedOutput schema / $defs / Coverage / properties / as_of / default
        Added value: +null
      • changedOutput schema / $defs / Coverage / properties / as_of / description
        Previous value: -"UTC ISO 8601"New value: +"Known source observation time; null when not recorded. Not the query time."
      • removedOutput schema / $defs / Coverage / properties / as_of / type
        Removed value: -"string"
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_basis
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Basis"
        +}
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_field
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Field"
        +}
      • addedOutput schema / $defs / Coverage / properties / exclusions
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "title": "Exclusions",
        +  "type": "array"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_record_count
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Record Count"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_ingest_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Ingest At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_refresh_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Refresh At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_fetched_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Fetched At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / pagination_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Pagination Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / population
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_complete
        Added value: +{
        +  "default": false,
        +  "title": "Population Complete",
        +  "type": "boolean"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_status
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population Status"
        +}
      • addedOutput schema / $defs / Coverage / properties / query_time
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "When this stored-data query was calculated; not proof of source refresh",
        +  "title": "Query Time"
        +}
      • addedOutput schema / $defs / Coverage / properties / record_type
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Record Type"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_error_code
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Refresh Error Code"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_status
        Added value: +{
        +  "default": "unknown",
        +  "title": "Refresh Status",
        +  "type": "string"
        +}
      • addedOutput schema / $defs / Coverage / properties / scope_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Scope Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / source
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_as_of
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source As Of"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_state
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "matched",
        +        "no_match",
        +        "not_loaded",
        +        "unsupported",
        +        "failed_refresh",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source State"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_url
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source Url"
        +}
      • addedOutput schema / $defs / Coverage / properties / stored_rows
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Stored Rows"
        +}
      • removedOutput schema / $defs / Coverage / required
        Removed value: -[
        -  "as_of"
        -]
    • Changedsearch_open_grants39 fields changed
      • changedInput schema / properties / agency / description
        Previous value: -"Agency name substring filter"New value: +"Agency name substring; exact NSF, EPA, DOE, USDA, NIH and NOAA inputs also resolve recorded names/code descendants. NIH does not include other HHS agencies; NOAA does not include other Commerce agencies."
      • addedInput schema / properties / limit / description
        Added value: +"Maximum 50 records; minimum 1; default 20."
      • addedInput schema / properties / match_mode
        Added value: +{
        +  "default": "substring",
        +  "enum": [
        +    "substring",
        +    "phrase",
        +    "acronym"
        +  ],
        +  "title": "Match Mode",
        +  "type": "string"
        +}
      • addedOutput schema / $defs / Coverage / properties / as_of / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedOutput schema / $defs / Coverage / properties / as_of / default
        Added value: +null
      • changedOutput schema / $defs / Coverage / properties / as_of / description
        Previous value: -"UTC ISO 8601"New value: +"Known source observation time; null when not recorded. Not the query time."
      • removedOutput schema / $defs / Coverage / properties / as_of / type
        Removed value: -"string"
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_basis
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Basis"
        +}
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_field
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Field"
        +}
      • addedOutput schema / $defs / Coverage / properties / exclusions
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "title": "Exclusions",
        +  "type": "array"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_record_count
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Record Count"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_ingest_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Ingest At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_refresh_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Refresh At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_fetched_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Fetched At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / pagination_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Pagination Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / population
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_complete
        Added value: +{
        +  "default": false,
        +  "title": "Population Complete",
        +  "type": "boolean"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_status
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population Status"
        +}
      • addedOutput schema / $defs / Coverage / properties / query_time
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "When this stored-data query was calculated; not proof of source refresh",
        +  "title": "Query Time"
        +}
      • addedOutput schema / $defs / Coverage / properties / record_type
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Record Type"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_error_code
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Refresh Error Code"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_status
        Added value: +{
        +  "default": "unknown",
        +  "title": "Refresh Status",
        +  "type": "string"
        +}
      • addedOutput schema / $defs / Coverage / properties / scope_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Scope Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / source
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_as_of
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source As Of"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_state
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "matched",
        +        "no_match",
        +        "not_loaded",
        +        "unsupported",
        +        "failed_refresh",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source State"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_url
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source Url"
        +}
      • addedOutput schema / $defs / Coverage / properties / stored_rows
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Stored Rows"
        +}
      • removedOutput schema / $defs / Coverage / required
        Removed value: -[
        -  "as_of"
        -]
      • changedOutput schema / $defs / GrantRow / properties / close_date / description
        Previous value: -"Application close date as stated by the source"New value: +"Recorded generic close date; explicit stage deadlines, when fetched, are returned by get_grant_record"
      • addedOutput schema / $defs / GrantRow / properties / match_explanation
        Added value: +{
        +  "additionalProperties": true,
        +  "title": "Match Explanation",
        +  "type": "object"
        +}
      • addedOutput schema / $defs / GrantRow / properties / summary
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Summary"
        +}
    • Changedsearch_open_notices40 fields changed
      • changedInput schema / properties / certifications / description
        Previous value: -"sdvosb | 8a | hubzone | wosb | edwosb"New value: +"Optional firm certifications explicitly supplied by the user; never infer them from a request for veteran-owned notices. Use set_aside for notice restrictions. Tokens include vosb, sdvosb, 8a, hubzone, wosb, edwosb."
      • changedInput schema / properties / geography / description
        Previous value: -"Uppercase US state, District of Columbia, or territory code, e.g. WA"New value: +"Recorded place-of-performance state where the work occurs, e.g. TX for Texas; not buyer address or the user's residence. Unknown work-state records are excluded."
      • addedInput schema / properties / limit / description
        Added value: +"Maximum 50 records; minimum 1; default 20."
      • changedInput schema / properties / set_aside / description
        Previous value: -"Filter to notices carrying this set-aside restriction, e.g. 8a, sdvosb, hubzone, wosb, edwosb, small. Multiple values combine (OR): ['sdvosb','wosb'] matches either. 'unrestricted' matches only full-and-open notices with no set-aside restriction. This is the NOTICE's restriction, distinct from certifications (the firm's credentials). Notices with no recorded set-aside code are excluded when this filter is supplied, unless 'unrestricted' is included."New value: +"Filter to notices carrying this set-aside restriction: vosb (veteran-owned), sdvosb (service-disabled veteran-owned), 8a, hubzone, wosb, edwosb, small. VOSB and SDVOSB are distinct; do not silently substitute SDVOSB for a veteran-owned request. Multiple values combine (OR): ['sdvosb','wosb'] matches either. 'unrestricted' matches only full-and-open notices with no set-aside restriction. This is the NOTICE's restriction, distinct from certifications (the firm's credentials). Notices with no recorded set-aside code are excluded when this filter is supplied, unless 'unrestricted' is included."
      • addedOutput schema / $defs / NoticeCoverage / properties / as_of / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedOutput schema / $defs / NoticeCoverage / properties / as_of / default
        Added value: +null
      • changedOutput schema / $defs / NoticeCoverage / properties / as_of / description
        Previous value: -"UTC ISO 8601"New value: +"Known source observation time; null when not recorded. Not the query time."
      • removedOutput schema / $defs / NoticeCoverage / properties / as_of / type
        Removed value: -"string"
      • addedOutput schema / $defs / NoticeCoverage / properties / cache_timestamp_basis
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Basis"
        +}
      • addedOutput schema / $defs / NoticeCoverage / properties / cache_timestamp_field
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Field"
        +}
      • addedOutput schema / $defs / NoticeCoverage / properties / exclusions
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "title": "Exclusions",
        +  "type": "array"
        +}
      • addedOutput schema / $defs / NoticeCoverage / properties / last_attempt_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt At"
        +}
      • addedOutput schema / $defs / NoticeCoverage / properties / last_attempt_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt Scope"
        +}
      • addedOutput schema / $defs / NoticeCoverage / properties / last_success_record_count
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Record Count"
        +}
      • addedOutput schema / $defs / NoticeCoverage / properties / last_success_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Scope"
        +}
      • addedOutput schema / $defs / NoticeCoverage / properties / last_successful_ingest_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Ingest At"
        +}
      • addedOutput schema / $defs / NoticeCoverage / properties / last_successful_refresh_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Refresh At"
        +}
      • addedOutput schema / $defs / NoticeCoverage / properties / latest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Cached At"
        +}
      • addedOutput schema / $defs / NoticeCoverage / properties / latest_stored_fetched_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Fetched At"
        +}
      • addedOutput schema / $defs / NoticeCoverage / properties / latest_stored_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Ingested At"
        +}
      • addedOutput schema / $defs / NoticeCoverage / properties / oldest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Cached At"
        +}
      • addedOutput schema / $defs / NoticeCoverage / properties / oldest_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Ingested At"
        +}
      • addedOutput schema / $defs / NoticeCoverage / properties / pagination_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Pagination Note"
        +}
      • addedOutput schema / $defs / NoticeCoverage / properties / population
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population"
        +}
      • addedOutput schema / $defs / NoticeCoverage / properties / population_complete
        Added value: +{
        +  "default": false,
        +  "title": "Population Complete",
        +  "type": "boolean"
        +}
      • addedOutput schema / $defs / NoticeCoverage / properties / population_status
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population Status"
        +}
      • addedOutput schema / $defs / NoticeCoverage / properties / query_time
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "When this stored-data query was calculated; not proof of source refresh",
        +  "title": "Query Time"
        +}
      • addedOutput schema / $defs / NoticeCoverage / properties / record_type
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Record Type"
        +}
      • addedOutput schema / $defs / NoticeCoverage / properties / refresh_error_code
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Refresh Error Code"
        +}
      • addedOutput schema / $defs / NoticeCoverage / properties / refresh_status
        Added value: +{
        +  "default": "unknown",
        +  "title": "Refresh Status",
        +  "type": "string"
        +}
      • addedOutput schema / $defs / NoticeCoverage / properties / scope_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Scope Note"
        +}
      • addedOutput schema / $defs / NoticeCoverage / properties / source
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source"
        +}
      • addedOutput schema / $defs / NoticeCoverage / properties / source_as_of
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source As Of"
        +}
      • addedOutput schema / $defs / NoticeCoverage / properties / source_state
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "matched",
        +        "no_match",
        +        "not_loaded",
        +        "unsupported",
        +        "failed_refresh",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source State"
        +}
      • addedOutput schema / $defs / NoticeCoverage / properties / source_url
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source Url"
        +}
      • addedOutput schema / $defs / NoticeCoverage / properties / stored_rows
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Stored Rows"
        +}
      • removedOutput schema / $defs / NoticeCoverage / required
        Removed value: -[
        -  "as_of"
        -]
      • addedOutput schema / $defs / OpportunityCard
        Added value: +{
        +  "description": "One opportunity for the visual widget. set_aside_code is the\nrecord's own code, never the caller's filter argument.",
        +  "properties": {
        +    "buyer_office": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Buyer Office"
        +    },
        +    "match_explanation": {
        +      "additionalProperties": true,
        +      "title": "Match Explanation",
        +      "type": "object"
        +    },
        +    "naics": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "title": "Naics",
        +      "type": "array"
        +    },
        +    "notice_id": {
        +      "title": "Notice Id",
        +      "type": "string"
        +    },
        +    "notice_type": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Notice Type"
        +    },
        +    "place": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "additionalProperties": true,
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Place"
        +    },
        +    "place_state": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Recorded structured place-of-performance state, never buyer location",
        +      "title": "Place State"
        +    },
        +    "posted_date": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Posted Date"
        +    },
        +    "provenance": {
        +      "additionalProperties": true,
        +      "title": "Provenance",
        +      "type": "object"
        +    },
        +    "record_status": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Record Status"
        +    },
        +    "recorded_deadline": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": true,
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Recorded Deadline"
        +    },
        +    "sam_gov_url": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Sam Gov Url"
        +    },
        +    "set_aside_code": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Set Aside Code"
        +    },
        +    "solicitation_number": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Solicitation Number"
        +    },
        +    "source_name": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Source Name"
        +    },
        +    "source_url": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Source Url"
        +    },
        +    "title": {
        +      "title": "Title",
        +      "type": "string"
        +    },
        +    "why_matched": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Why Matched"
        +    }
        +  },
        +  "required": [
        +    "notice_id",
        +    "title"
        +  ],
        +  "title": "OpportunityCard",
        +  "type": "object"
        +}
      • addedOutput schema / properties / applied_filters
        Added value: +{
        +  "additionalProperties": true,
        +  "title": "Applied Filters",
        +  "type": "object"
        +}
      • addedOutput schema / properties / opportunities
        Added value: +{
        +  "description": "The same returned notices as interactive cards, not a separate search",
        +  "items": {
        +    "$ref": "#/$defs/OpportunityCard"
        +  },
        +  "title": "Opportunities",
        +  "type": "array"
        +}
    • Changedsearch_opportunities16 fields changed
      • addedInput schema / properties / agency
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 120,
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Literal substring of the recorded agency path, including its named offices. This is separate from performance geography; clarify ambiguous abbreviations before choosing constraints.",
        +  "title": "Agency"
        +}
      • addedInput schema / properties / cursor
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 2048,
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Returned continuation cursor. Keep the same search filters; changed matching records require restarting the search.",
        +  "title": "Cursor"
        +}
      • addedInput schema / properties / geography
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "AL",
        +        "AK",
        +        "AZ",
        +        "AR",
        +        "CA",
        +        "CO",
        +        "CT",
        +        "DE",
        +        "FL",
        +        "GA",
        +        "HI",
        +        "ID",
        +        "IL",
        +        "IN",
        +        "IA",
        +        "KS",
        +        "KY",
        +        "LA",
        +        "ME",
        +        "MD",
        +        "MA",
        +        "MI",
        +        "MN",
        +        "MS",
        +        "MO",
        +        "MT",
        +        "NE",
        +        "NV",
        +        "NH",
        +        "NJ",
        +        "NM",
        +        "NY",
        +        "NC",
        +        "ND",
        +        "OH",
        +        "OK",
        +        "OR",
        +        "PA",
        +        "RI",
        +        "SC",
        +        "SD",
        +        "TN",
        +        "TX",
        +        "UT",
        +        "VT",
        +        "VA",
        +        "WA",
        +        "WV",
        +        "WI",
        +        "WY",
        +        "DC",
        +        "AS",
        +        "GU",
        +        "MP",
        +        "PR",
        +        "VI"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "State where the work is performed, e.g. TX for Texas; matches recorded structured place of performance, not buyer address or title text. Records with unknown work state are excluded.",
        +  "title": "Geography"
        +}
      • changedInput schema / properties / keywords / description
        Previous value: -"Literal text in stored titles, briefs, solicitation numbers and notice IDs; filtered before the result limit"New value: +"Literal text in stored titles, briefs, current-version fetched scope, inline source descriptions, solicitation numbers and notice IDs. URL-only and known stale descriptions are excluded; filtered before scan and result limits."
      • addedInput schema / properties / limit / description
        Added value: +"Maximum 25 opportunity leads; minimum 1; default 10. Stored versions remain grouped."
      • addedInput schema / properties / match_mode
        Added value: +{
        +  "default": "substring",
        +  "enum": [
        +    "substring",
        +    "phrase",
        +    "acronym"
        +  ],
        +  "title": "Match Mode",
        +  "type": "string"
        +}
      • changedInput schema / properties / set_aside / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 32,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / set_aside / default
        Previous value: -"sdvosb"New value: +null
      • changedInput schema / properties / set_aside / description
        Previous value: -"Filter by set-aside: sdvosb, 8a, hubzone, wosb, edwosb, small. Defaults to sdvosb."New value: +"Recorded notice restriction: vosb (veteran-owned), sdvosb (service-disabled veteran-owned), 8a, hubzone, wosb, edwosb, small. VOSB and SDVOSB are distinct; do not infer a firm's credentials. Omit or pass null for any set-aside; unrestricted requires affirmative source evidence of full/open competition and excludes unknown restrictions. This filter does not establish company certification."
      • addedOutput schema / $defs / OpportunityCard / properties / match_explanation
        Added value: +{
        +  "additionalProperties": true,
        +  "title": "Match Explanation",
        +  "type": "object"
        +}
      • addedOutput schema / $defs / OpportunityCard / properties / place_state
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Recorded structured place-of-performance state, never buyer location",
        +  "title": "Place State"
        +}
      • addedOutput schema / $defs / OpportunityCard / properties / provenance
        Added value: +{
        +  "additionalProperties": true,
        +  "title": "Provenance",
        +  "type": "object"
        +}
      • addedOutput schema / $defs / RelatedSourceRecord
        Added value: +{
        +  "properties": {
        +    "opportunity_id": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Opportunity Id"
        +    },
        +    "opportunity_number": {
        +      "title": "Opportunity Number",
        +      "type": "string"
        +    },
        +    "record_id": {
        +      "title": "Record Id",
        +      "type": "string"
        +    },
        +    "record_type": {
        +      "const": "grant",
        +      "default": "grant",
        +      "title": "Record Type",
        +      "type": "string"
        +    },
        +    "relationship_basis": {
        +      "default": "same_normalized_reference",
        +      "enum": [
        +        "same_normalized_reference",
        +        "keyword_is_exact_reference"
        +      ],
        +      "title": "Relationship Basis",
        +      "type": "string"
        +    },
        +    "relationship_note": {
        +      "title": "Relationship Note",
        +      "type": "string"
        +    },
        +    "relationship_status": {
        +      "const": "unverified",
        +      "default": "unverified",
        +      "title": "Relationship Status",
        +      "type": "string"
        +    },
        +    "source_name": {
        +      "const": "Grants.gov",
        +      "default": "Grants.gov",
        +      "title": "Source Name",
        +      "type": "string"
        +    },
        +    "source_record_id": {
        +      "title": "Source Record Id",
        +      "type": "string"
        +    },
        +    "source_url": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Source Url"
        +    },
        +    "source_url_unavailable_reason": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Source Url Unavailable Reason"
        +    },
        +    "title": {
        +      "title": "Title",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "record_id",
        +    "opportunity_number",
        +    "source_record_id",
        +    "title",
        +    "relationship_note"
        +  ],
        +  "title": "RelatedSourceRecord",
        +  "type": "object"
        +}
      • changedOutput schema / properties / next_cursor / description
        Previous value: -"Underlying scan cursor; coverage.continuation names the supported full-connection tool. This facade accepts no cursor."New value: +"Opaque continuation cursor. Follow coverage.continuation using its named tool and the same search filters. If the tool reports changed matching records, restart the search without a cursor. Results cover a bounded stored scan, not a frozen live-source snapshot."
      • addedOutput schema / properties / related_records
        Added value: +{
        +  "items": {
        +    "$ref": "#/$defs/RelatedSourceRecord"
        +  },
        +  "title": "Related Records",
        +  "type": "array"
        +}
      • addedOutput schema / properties / solicitation_groups
        Added value: +{
        +  "items": {
        +    "additionalProperties": true,
        +    "type": "object"
        +  },
        +  "title": "Solicitation Groups",
        +  "type": "array"
        +}
    • Changedsearch_ota_awards33 fields changed
      • addedOutput schema / $defs / Coverage / properties / as_of / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedOutput schema / $defs / Coverage / properties / as_of / default
        Added value: +null
      • changedOutput schema / $defs / Coverage / properties / as_of / description
        Previous value: -"UTC ISO 8601"New value: +"Known source observation time; null when not recorded. Not the query time."
      • removedOutput schema / $defs / Coverage / properties / as_of / type
        Removed value: -"string"
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_basis
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Basis"
        +}
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_field
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Field"
        +}
      • addedOutput schema / $defs / Coverage / properties / exclusions
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "title": "Exclusions",
        +  "type": "array"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_record_count
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Record Count"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_ingest_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Ingest At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_refresh_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Refresh At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_fetched_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Fetched At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / pagination_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Pagination Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / population
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_complete
        Added value: +{
        +  "default": false,
        +  "title": "Population Complete",
        +  "type": "boolean"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_status
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population Status"
        +}
      • addedOutput schema / $defs / Coverage / properties / query_time
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "When this stored-data query was calculated; not proof of source refresh",
        +  "title": "Query Time"
        +}
      • addedOutput schema / $defs / Coverage / properties / record_type
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Record Type"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_error_code
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Refresh Error Code"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_status
        Added value: +{
        +  "default": "unknown",
        +  "title": "Refresh Status",
        +  "type": "string"
        +}
      • addedOutput schema / $defs / Coverage / properties / scope_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Scope Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / source
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_as_of
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source As Of"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_state
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "matched",
        +        "no_match",
        +        "not_loaded",
        +        "unsupported",
        +        "failed_refresh",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source State"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_url
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source Url"
        +}
      • addedOutput schema / $defs / Coverage / properties / stored_rows
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Stored Rows"
        +}
      • removedOutput schema / $defs / Coverage / required
        Removed value: -[
        -  "as_of"
        -]
    • Changedsearch_sole_source33 fields changed
      • addedOutput schema / $defs / Coverage / properties / as_of / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedOutput schema / $defs / Coverage / properties / as_of / default
        Added value: +null
      • changedOutput schema / $defs / Coverage / properties / as_of / description
        Previous value: -"UTC ISO 8601"New value: +"Known source observation time; null when not recorded. Not the query time."
      • removedOutput schema / $defs / Coverage / properties / as_of / type
        Removed value: -"string"
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_basis
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Basis"
        +}
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_field
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Field"
        +}
      • addedOutput schema / $defs / Coverage / properties / exclusions
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "title": "Exclusions",
        +  "type": "array"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_record_count
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Record Count"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_ingest_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Ingest At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_refresh_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Refresh At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_fetched_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Fetched At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / pagination_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Pagination Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / population
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_complete
        Added value: +{
        +  "default": false,
        +  "title": "Population Complete",
        +  "type": "boolean"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_status
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population Status"
        +}
      • addedOutput schema / $defs / Coverage / properties / query_time
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "When this stored-data query was calculated; not proof of source refresh",
        +  "title": "Query Time"
        +}
      • addedOutput schema / $defs / Coverage / properties / record_type
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Record Type"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_error_code
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Refresh Error Code"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_status
        Added value: +{
        +  "default": "unknown",
        +  "title": "Refresh Status",
        +  "type": "string"
        +}
      • addedOutput schema / $defs / Coverage / properties / scope_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Scope Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / source
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_as_of
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source As Of"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_state
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "matched",
        +        "no_match",
        +        "not_loaded",
        +        "unsupported",
        +        "failed_refresh",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source State"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_url
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source Url"
        +}
      • addedOutput schema / $defs / Coverage / properties / stored_rows
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Stored Rows"
        +}
      • removedOutput schema / $defs / Coverage / required
        Removed value: -[
        -  "as_of"
        -]
    • Changedsearch_subawards57 fields changed
      • addedInput schema / properties / cursor
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 2048,
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cursor"
        +}
      • addedInput schema / properties / date_from
        Added value: +{
        +  "anyOf": [
        +    {
        +      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Recorded subaward action date",
        +  "title": "Date From"
        +}
      • addedInput schema / properties / date_to
        Added value: +{
        +  "anyOf": [
        +    {
        +      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Date To"
        +}
      • addedInput schema / properties / keyword
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 200,
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Keyword"
        +}
      • addedInput schema / properties / limit / description
        Added value: +"Maximum 50 records; minimum 1; default 20."
      • changedInput schema / properties / naics / description
        Previous value: -"NAICS codes, 2-6 digits each; omit for all lanes"New value: +"NAICS prefixes, 2-6 digits"
      • addedInput schema / properties / piid
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 120,
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Piid"
        +}
      • removedInput schema / properties / prime / description
        Removed value: -"Prime contractor name substring filter"
      • addedInput schema / properties / sort
        Added value: +{
        +  "default": "amount_desc",
        +  "enum": [
        +    "amount_desc",
        +    "date_desc",
        +    "date_asc"
        +  ],
        +  "title": "Sort",
        +  "type": "string"
        +}
      • addedInput schema / properties / subaward_number
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 120,
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Subaward Number"
        +}
      • addedOutput schema / $defs / Coverage / properties / as_of / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedOutput schema / $defs / Coverage / properties / as_of / default
        Added value: +null
      • changedOutput schema / $defs / Coverage / properties / as_of / description
        Previous value: -"UTC ISO 8601"New value: +"Known source observation time; null when not recorded. Not the query time."
      • removedOutput schema / $defs / Coverage / properties / as_of / type
        Removed value: -"string"
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_basis
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Basis"
        +}
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_field
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Field"
        +}
      • addedOutput schema / $defs / Coverage / properties / exclusions
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "title": "Exclusions",
        +  "type": "array"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_record_count
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Record Count"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_ingest_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Ingest At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_refresh_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Refresh At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_fetched_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Fetched At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / pagination_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Pagination Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / population
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_complete
        Added value: +{
        +  "default": false,
        +  "title": "Population Complete",
        +  "type": "boolean"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_status
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population Status"
        +}
      • addedOutput schema / $defs / Coverage / properties / query_time
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "When this stored-data query was calculated; not proof of source refresh",
        +  "title": "Query Time"
        +}
      • addedOutput schema / $defs / Coverage / properties / record_type
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Record Type"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_error_code
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Refresh Error Code"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_status
        Added value: +{
        +  "default": "unknown",
        +  "title": "Refresh Status",
        +  "type": "string"
        +}
      • addedOutput schema / $defs / Coverage / properties / scope_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Scope Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / source
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_as_of
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source As Of"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_state
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "matched",
        +        "no_match",
        +        "not_loaded",
        +        "unsupported",
        +        "failed_refresh",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source State"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_url
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source Url"
        +}
      • addedOutput schema / $defs / Coverage / properties / stored_rows
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Stored Rows"
        +}
      • removedOutput schema / $defs / Coverage / required
        Removed value: -[
        -  "as_of"
        -]
      • addedOutput schema / $defs / SubawardDetailRow / properties / action_date
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Action Date"
        +}
      • addedOutput schema / $defs / SubawardDetailRow / properties / amount_null_reason
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Amount Null Reason"
        +}
      • addedOutput schema / $defs / SubawardDetailRow / properties / amount_type
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Amount Type"
        +}
      • addedOutput schema / $defs / SubawardDetailRow / properties / description
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Description"
        +}
      • addedOutput schema / $defs / SubawardDetailRow / properties / prime_award_key
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Prime Award Key"
        +}
      • addedOutput schema / $defs / SubawardDetailRow / properties / source_name
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source Name"
        +}
      • addedOutput schema / $defs / SubawardDetailRow / properties / source_record_id
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source Record Id"
        +}
      • addedOutput schema / $defs / SubawardDetailRow / properties / source_url_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source Url Scope"
        +}
      • addedOutput schema / $defs / SubawardDetailRow / properties / source_url_unavailable_reason
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source Url Unavailable Reason"
        +}
      • addedOutput schema / $defs / SubawardDetailRow / properties / subaward_date
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Subaward Date"
        +}
      • addedOutput schema / $defs / SubawardDetailRow / properties / subaward_number
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Subaward Number"
        +}
      • addedOutput schema / properties / applied_filters
        Added value: +{
        +  "additionalProperties": true,
        +  "title": "Applied Filters",
        +  "type": "object"
        +}
      • addedOutput schema / properties / next_cursor
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Next Cursor"
        +}
      • addedOutput schema / properties / total_count
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Total Count"
        +}
    • Changedsearch_ustda33 fields changed
      • addedOutput schema / $defs / Coverage / properties / as_of / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedOutput schema / $defs / Coverage / properties / as_of / default
        Added value: +null
      • changedOutput schema / $defs / Coverage / properties / as_of / description
        Previous value: -"UTC ISO 8601"New value: +"Known source observation time; null when not recorded. Not the query time."
      • removedOutput schema / $defs / Coverage / properties / as_of / type
        Removed value: -"string"
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_basis
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Basis"
        +}
      • addedOutput schema / $defs / Coverage / properties / cache_timestamp_field
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cache Timestamp Field"
        +}
      • addedOutput schema / $defs / Coverage / properties / exclusions
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "title": "Exclusions",
        +  "type": "array"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_attempt_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Attempt Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_record_count
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Record Count"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_success_scope
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Success Scope"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_ingest_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Ingest At"
        +}
      • addedOutput schema / $defs / Coverage / properties / last_successful_refresh_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Last Successful Refresh At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_fetched_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Fetched At"
        +}
      • addedOutput schema / $defs / Coverage / properties / latest_stored_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Latest Stored Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_cached_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Cached At"
        +}
      • addedOutput schema / $defs / Coverage / properties / oldest_ingested_at
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Oldest Ingested At"
        +}
      • addedOutput schema / $defs / Coverage / properties / pagination_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Pagination Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / population
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_complete
        Added value: +{
        +  "default": false,
        +  "title": "Population Complete",
        +  "type": "boolean"
        +}
      • addedOutput schema / $defs / Coverage / properties / population_status
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Population Status"
        +}
      • addedOutput schema / $defs / Coverage / properties / query_time
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "When this stored-data query was calculated; not proof of source refresh",
        +  "title": "Query Time"
        +}
      • addedOutput schema / $defs / Coverage / properties / record_type
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Record Type"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_error_code
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Refresh Error Code"
        +}
      • addedOutput schema / $defs / Coverage / properties / refresh_status
        Added value: +{
        +  "default": "unknown",
        +  "title": "Refresh Status",
        +  "type": "string"
        +}
      • addedOutput schema / $defs / Coverage / properties / scope_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Scope Note"
        +}
      • addedOutput schema / $defs / Coverage / properties / source
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_as_of
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source As Of"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_state
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "matched",
        +        "no_match",
        +        "not_loaded",
        +        "unsupported",
        +        "failed_refresh",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source State"
        +}
      • addedOutput schema / $defs / Coverage / properties / source_url
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source Url"
        +}
      • addedOutput schema / $defs / Coverage / properties / stored_rows
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Stored Rows"
        +}
      • removedOutput schema / $defs / Coverage / required
        Removed value: -[
        -  "as_of"
        -]
    • Changedshow_govinbox13 fields changed
      • addedOutput schema / $defs / OpportunityCard / properties / match_explanation
        Added value: +{
        +  "additionalProperties": true,
        +  "title": "Match Explanation",
        +  "type": "object"
        +}
      • addedOutput schema / $defs / OpportunityCard / properties / place_state
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Recorded structured place-of-performance state, never buyer location",
        +  "title": "Place State"
        +}
      • addedOutput schema / $defs / OpportunityCard / properties / provenance
        Added value: +{
        +  "additionalProperties": true,
        +  "title": "Provenance",
        +  "type": "object"
        +}
      • addedOutput schema / $defs / PublicPreviewExample
        Added value: +{
        +  "description": "Public notice fields with their actual GovInbox recording timestamp.",
        +  "properties": {
        +    "buyer_office": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Buyer Office"
        +    },
        +    "expires_at": {
        +      "description": "Parsed recorded deadline normalized to an offset-bearing UTC timestamp; raw_deadline is preserved separately",
        +      "title": "Expires At",
        +      "type": "string"
        +    },
        +    "match_explanation": {
        +      "additionalProperties": true,
        +      "title": "Match Explanation",
        +      "type": "object"
        +    },
        +    "naics": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "title": "Naics",
        +      "type": "array"
        +    },
        +    "notice_id": {
        +      "title": "Notice Id",
        +      "type": "string"
        +    },
        +    "notice_type": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Notice Type"
        +    },
        +    "place": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "additionalProperties": true,
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Place"
        +    },
        +    "place_state": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Recorded structured place-of-performance state, never buyer location",
        +      "title": "Place State"
        +    },
        +    "posted_date": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Posted Date"
        +    },
        +    "provenance": {
        +      "additionalProperties": true,
        +      "title": "Provenance",
        +      "type": "object"
        +    },
        +    "record_status": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Record Status"
        +    },
        +    "recorded_at": {
        +      "title": "Recorded At",
        +      "type": "string"
        +    },
        +    "recorded_deadline": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": true,
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Recorded Deadline"
        +    },
        +    "sam_gov_url": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Sam Gov Url"
        +    },
        +    "set_aside_code": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Set Aside Code"
        +    },
        +    "solicitation_number": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Solicitation Number"
        +    },
        +    "source_name": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Source Name"
        +    },
        +    "source_url": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Source Url"
        +    },
        +    "title": {
        +      "title": "Title",
        +      "type": "string"
        +    },
        +    "why_matched": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Why Matched"
        +    }
        +  },
        +  "required": [
        +    "notice_id",
        +    "title",
        +    "recorded_at",
        +    "expires_at"
        +  ],
        +  "title": "PublicPreviewExample",
        +  "type": "object"
        +}
      • changedOutput schema / description
        Previous value: -"Static widget entry; never claims a search, quota state or matches."New value: +"Dated public examples; never claims a search, quota state or matches."
      • addedOutput schema / properties / preview_as_of
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Preview As Of"
        +}
      • addedOutput schema / properties / preview_cached
        Added value: +{
        +  "default": false,
        +  "title": "Preview Cached",
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / preview_date
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Preview Date"
        +}
      • addedOutput schema / properties / preview_examples
        Added value: +{
        +  "items": {
        +    "$ref": "#/$defs/PublicPreviewExample"
        +  },
        +  "title": "Preview Examples",
        +  "type": "array"
        +}
      • addedOutput schema / properties / preview_freshness
        Added value: +{
        +  "default": "unavailable",
        +  "enum": [
        +    "today",
        +    "yesterday",
        +    "unavailable"
        +  ],
        +  "title": "Preview Freshness",
        +  "type": "string"
        +}
      • changedOutput schema / properties / preview_notice / default
        Previous value: -"Unfiltered visual examples only. No search was run and no search allowance was used."New value: +"No stored examples first recorded today or yesterday are available. No search was run and no search allowance was used."
      • addedOutput schema / properties / preview_source
        Added value: +{
        +  "const": "GovInbox stored SAM.gov notices",
        +  "default": "GovInbox stored SAM.gov notices",
        +  "title": "Preview Source",
        +  "type": "string"
        +}
      • addedOutput schema / properties / preview_timezone
        Added value: +{
        +  "const": "America/Los_Angeles",
        +  "default": "America/Los_Angeles",
        +  "title": "Preview Timezone",
        +  "type": "string"
        +}
  4. 38 tool updates
    • Changedcheck_notice_filters1 field changed
      • addedOutput schema / $defs / QuotaBlock / properties / mode
        Added value: +{
        +  "default": "ordinary",
        +  "enum": [
        +    "ordinary",
        +    "testing",
        +    "review",
        +    "beta"
        +  ],
        +  "title": "Mode",
        +  "type": "string"
        +}
    • Changedcompare_notice_record_versions1 field changed
      • addedOutput schema / $defs / QuotaBlock / properties / mode
        Added value: +{
        +  "default": "ordinary",
        +  "enum": [
        +    "ordinary",
        +    "testing",
        +    "review",
        +    "beta"
        +  ],
        +  "title": "Mode",
        +  "type": "string"
        +}
    • Changedfind_likely_recompetes1 field changed
      • addedOutput schema / $defs / QuotaBlock / properties / mode
        Added value: +{
        +  "default": "ordinary",
        +  "enum": [
        +    "ordinary",
        +    "testing",
        +    "review",
        +    "beta"
        +  ],
        +  "title": "Mode",
        +  "type": "string"
        +}
    • Changedfind_partners1 field changed
      • addedInput schema / properties / naics / pattern
        Added value: +"^[0-9]{2,6}$"
    • Changedfind_teaming_partners1 field changed
      • addedOutput schema / $defs / QuotaBlock / properties / mode
        Added value: +{
        +  "default": "ordinary",
        +  "enum": [
        +    "ordinary",
        +    "testing",
        +    "review",
        +    "beta"
        +  ],
        +  "title": "Mode",
        +  "type": "string"
        +}
    • Changedget_far_clause5 fields changed
      • addedOutput schema / $defs / QuotaBlock / properties / mode
        Added value: +{
        +  "default": "ordinary",
        +  "enum": [
        +    "ordinary",
        +    "testing",
        +    "review",
        +    "beta"
        +  ],
        +  "title": "Mode",
        +  "type": "string"
        +}
      • addedOutput schema / properties / suppression_reason
        Added value: +{
        +  "anyOf": [
        +    {
        +      "const": "verdict_word_backstop",
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Suppression Reason"
        +}
      • changedOutput schema / properties / text / description
        Previous value: -"Full clause text as published; truncated for very long sections"New value: +"Sanitized stored regulatory excerpt; may be length-truncated or withheld. See text_delivery status."
      • addedOutput schema / properties / text_delivery
        Added value: +{
        +  "default": "available",
        +  "enum": [
        +    "available",
        +    "length_truncated",
        +    "withheld",
        +    "not_stored",
        +    "no_deliverable_text"
        +  ],
        +  "title": "Text Delivery",
        +  "type": "string"
        +}
      • addedOutput schema / properties / text_delivery_note
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Text Delivery Note"
        +}
    • Changedget_grant_record3 fields changed
      • addedOutput schema / $defs / QuotaBlock / properties / mode
        Added value: +{
        +  "default": "ordinary",
        +  "enum": [
        +    "ordinary",
        +    "testing",
        +    "review",
        +    "beta"
        +  ],
        +  "title": "Mode",
        +  "type": "string"
        +}
      • addedOutput schema / properties / record_type
        Added value: +{
        +  "const": "grant",
        +  "default": "grant",
        +  "title": "Record Type",
        +  "type": "string"
        +}
      • addedOutput schema / properties / source_name
        Added value: +{
        +  "default": "Grants.gov",
        +  "title": "Source Name",
        +  "type": "string"
        +}
    • Changedget_notice_record1 field changed
      • addedOutput schema / $defs / QuotaBlock / properties / mode
        Added value: +{
        +  "default": "ordinary",
        +  "enum": [
        +    "ordinary",
        +    "testing",
        +    "review",
        +    "beta"
        +  ],
        +  "title": "Mode",
        +  "type": "string"
        +}
    • Changedget_protest_history1 field changed
      • addedOutput schema / $defs / QuotaBlock / properties / mode
        Added value: +{
        +  "default": "ordinary",
        +  "enum": [
        +    "ordinary",
        +    "testing",
        +    "review",
        +    "beta"
        +  ],
        +  "title": "Mode",
        +  "type": "string"
        +}
    • Changedget_recompete_calendar1 field changed
      • addedOutput schema / $defs / QuotaBlock / properties / mode
        Added value: +{
        +  "default": "ordinary",
        +  "enum": [
        +    "ordinary",
        +    "testing",
        +    "review",
        +    "beta"
        +  ],
        +  "title": "Mode",
        +  "type": "string"
        +}
    • Changedget_recompete_detail1 field changed
      • addedOutput schema / $defs / QuotaBlock / properties / mode
        Added value: +{
        +  "default": "ordinary",
        +  "enum": [
        +    "ordinary",
        +    "testing",
        +    "review",
        +    "beta"
        +  ],
        +  "title": "Mode",
        +  "type": "string"
        +}
    • Changedget_record4 fields changed
      • changedInput schema / properties / notice_id / description
        Previous value: -"The notice or grant ID"New value: +"Contract notice ID or grant opportunity number"
      • addedInput schema / properties / notice_id / maxLength
        Added value: +256
      • addedInput schema / properties / notice_id / minLength
        Added value: +1
      • addedInput schema / properties / record_type
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "contract",
        +        "grant"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Record type; required when a contract and grant share an ID",
        +  "title": "Record Type"
        +}
    • Changedlist_awards_by_period_end1 field changed
      • addedOutput schema / $defs / QuotaBlock / properties / mode
        Added value: +{
        +  "default": "ordinary",
        +  "enum": [
        +    "ordinary",
        +    "testing",
        +    "review",
        +    "beta"
        +  ],
        +  "title": "Mode",
        +  "type": "string"
        +}
    • Changedlist_reported_subawards1 field changed
      • addedOutput schema / $defs / QuotaBlock / properties / mode
        Added value: +{
        +  "default": "ordinary",
        +  "enum": [
        +    "ordinary",
        +    "testing",
        +    "review",
        +    "beta"
        +  ],
        +  "title": "Mode",
        +  "type": "string"
        +}
    • Changedmanage_watchlist6 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"watch, pass, unwatch, unpass, or list"New value: +"watch, pass, unwatch, unpass, list, or remove_legacy"
      • addedInput schema / properties / cursor
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 1024,
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "next_cursor from the previous watchlist page",
        +  "title": "Cursor"
        +}
      • addedInput schema / properties / legacy_key
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 64,
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Opaque legacy_key returned for an unresolved old save; remove_legacy only",
        +  "title": "Legacy Key"
        +}
      • addedInput schema / properties / limit
        Added value: +{
        +  "default": 50,
        +  "maximum": 100,
        +  "minimum": 1,
        +  "title": "Limit",
        +  "type": "integer"
        +}
      • changedInput schema / properties / notice_id / description
        Previous value: -"The notice ID (required for watch/pass/unwatch/unpass)"New value: +"The contract notice ID or grant opportunity number (required for mutations)"
      • addedInput schema / properties / record_type
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "contract",
        +        "grant"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Source record type. Required when IDs overlap; widget always supplies it.",
        +  "title": "Record Type"
        +}
    • Changedsearch_amtrak1 field changed
      • addedOutput schema / $defs / QuotaBlock / properties / mode
        Added value: +{
        +  "default": "ordinary",
        +  "enum": [
        +    "ordinary",
        +    "testing",
        +    "review",
        +    "beta"
        +  ],
        +  "title": "Mode",
        +  "type": "string"
        +}
    • Changedsearch_award_history2 fields changed
      • addedOutput schema / $defs / QuotaBlock / properties / mode
        Added value: +{
        +  "default": "ordinary",
        +  "enum": [
        +    "ordinary",
        +    "testing",
        +    "review",
        +    "beta"
        +  ],
        +  "title": "Mode",
        +  "type": "string"
        +}
      • changedOutput schema / properties / data_note / default
        Previous value: -"Award records from public USAspending data; amounts are obligations as recorded, not cash paid."New value: +"Stored USAspending prime-award records only, not a live USAspending or SBIR.gov search. Amounts are obligations as recorded, not cash paid. Zero matching cached records do not prove that an award does not exist. An empty lanes list means no NAICS query filter was supplied, not complete source coverage."
    • Changedsearch_cancelled_contracts1 field changed
      • addedOutput schema / $defs / QuotaBlock / properties / mode
        Added value: +{
        +  "default": "ordinary",
        +  "enum": [
        +    "ordinary",
        +    "testing",
        +    "review",
        +    "beta"
        +  ],
        +  "title": "Mode",
        +  "type": "string"
        +}
    • Changedsearch_cancelled_grants1 field changed
      • addedOutput schema / $defs / QuotaBlock / properties / mode
        Added value: +{
        +  "default": "ordinary",
        +  "enum": [
        +    "ordinary",
        +    "testing",
        +    "review",
        +    "beta"
        +  ],
        +  "title": "Mode",
        +  "type": "string"
        +}
    • Changedsearch_cancelled_leases1 field changed
      • addedOutput schema / $defs / QuotaBlock / properties / mode
        Added value: +{
        +  "default": "ordinary",
        +  "enum": [
        +    "ordinary",
        +    "testing",
        +    "review",
        +    "beta"
        +  ],
        +  "title": "Mode",
        +  "type": "string"
        +}
    • Changedsearch_denali1 field changed
      • addedOutput schema / $defs / QuotaBlock / properties / mode
        Added value: +{
        +  "default": "ordinary",
        +  "enum": [
        +    "ordinary",
        +    "testing",
        +    "review",
        +    "beta"
        +  ],
        +  "title": "Mode",
        +  "type": "string"
        +}
    • Changedsearch_dibbs1 field changed
      • addedOutput schema / $defs / QuotaBlock / properties / mode
        Added value: +{
        +  "default": "ordinary",
        +  "enum": [
        +    "ordinary",
        +    "testing",
        +    "review",
        +    "beta"
        +  ],
        +  "title": "Mode",
        +  "type": "string"
        +}
    • Changedsearch_doge_payments1 field changed
      • addedOutput schema / $defs / QuotaBlock / properties / mode
        Added value: +{
        +  "default": "ordinary",
        +  "enum": [
        +    "ordinary",
        +    "testing",
        +    "review",
        +    "beta"
        +  ],
        +  "title": "Mode",
        +  "type": "string"
        +}
    • Changedsearch_dra_grants1 field changed
      • addedOutput schema / $defs / QuotaBlock / properties / mode
        Added value: +{
        +  "default": "ordinary",
        +  "enum": [
        +    "ordinary",
        +    "testing",
        +    "review",
        +    "beta"
        +  ],
        +  "title": "Mode",
        +  "type": "string"
        +}
    • Changedsearch_fdic1 field changed
      • addedOutput schema / $defs / QuotaBlock / properties / mode
        Added value: +{
        +  "default": "ordinary",
        +  "enum": [
        +    "ordinary",
        +    "testing",
        +    "review",
        +    "beta"
        +  ],
        +  "title": "Mode",
        +  "type": "string"
        +}
    • Changedsearch_federal_register1 field changed
      • addedOutput schema / $defs / QuotaBlock / properties / mode
        Added value: +{
        +  "default": "ordinary",
        +  "enum": [
        +    "ordinary",
        +    "testing",
        +    "review",
        +    "beta"
        +  ],
        +  "title": "Mode",
        +  "type": "string"
        +}
    • Changedsearch_grants_gov7 fields changed
      • addedOutput schema / $defs / GrantRow / properties / archive_date
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Archive Date"
        +}
      • addedOutput schema / $defs / GrantRow / properties / opportunity_id
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Opportunity Id"
        +}
      • addedOutput schema / $defs / GrantRow / properties / post_date
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Post Date"
        +}
      • addedOutput schema / $defs / GrantRow / properties / record_type
        Added value: +{
        +  "const": "grant",
        +  "default": "grant",
        +  "title": "Record Type",
        +  "type": "string"
        +}
      • addedOutput schema / $defs / GrantRow / properties / source_name
        Added value: +{
        +  "default": "Grants.gov",
        +  "title": "Source Name",
        +  "type": "string"
        +}
      • addedOutput schema / $defs / QuotaBlock / properties / mode
        Added value: +{
        +  "default": "ordinary",
        +  "enum": [
        +    "ordinary",
        +    "testing",
        +    "review",
        +    "beta"
        +  ],
        +  "title": "Mode",
        +  "type": "string"
        +}
      • addedOutput schema / properties / applied_filters
        Added value: +{
        +  "additionalProperties": true,
        +  "title": "Applied Filters",
        +  "type": "object"
        +}
    • Changedsearch_mcc1 field changed
      • addedOutput schema / $defs / QuotaBlock / properties / mode
        Added value: +{
        +  "default": "ordinary",
        +  "enum": [
        +    "ordinary",
        +    "testing",
        +    "review",
        +    "beta"
        +  ],
        +  "title": "Mode",
        +  "type": "string"
        +}
    • Changedsearch_mcc_forecast1 field changed
      • addedOutput schema / $defs / QuotaBlock / properties / mode
        Added value: +{
        +  "default": "ordinary",
        +  "enum": [
        +    "ordinary",
        +    "testing",
        +    "review",
        +    "beta"
        +  ],
        +  "title": "Mode",
        +  "type": "string"
        +}
    • Changedsearch_nbrc_grants1 field changed
      • addedOutput schema / $defs / QuotaBlock / properties / mode
        Added value: +{
        +  "default": "ordinary",
        +  "enum": [
        +    "ordinary",
        +    "testing",
        +    "review",
        +    "beta"
        +  ],
        +  "title": "Mode",
        +  "type": "string"
        +}
    • Changedsearch_open_grants7 fields changed
      • addedOutput schema / $defs / GrantRow / properties / archive_date
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Archive Date"
        +}
      • addedOutput schema / $defs / GrantRow / properties / opportunity_id
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Opportunity Id"
        +}
      • addedOutput schema / $defs / GrantRow / properties / post_date
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Post Date"
        +}
      • addedOutput schema / $defs / GrantRow / properties / record_type
        Added value: +{
        +  "const": "grant",
        +  "default": "grant",
        +  "title": "Record Type",
        +  "type": "string"
        +}
      • addedOutput schema / $defs / GrantRow / properties / source_name
        Added value: +{
        +  "default": "Grants.gov",
        +  "title": "Source Name",
        +  "type": "string"
        +}
      • addedOutput schema / $defs / QuotaBlock / properties / mode
        Added value: +{
        +  "default": "ordinary",
        +  "enum": [
        +    "ordinary",
        +    "testing",
        +    "review",
        +    "beta"
        +  ],
        +  "title": "Mode",
        +  "type": "string"
        +}
      • addedOutput schema / properties / applied_filters
        Added value: +{
        +  "additionalProperties": true,
        +  "title": "Applied Filters",
        +  "type": "object"
        +}
    • Changedsearch_open_notices10 fields changed
      • removedOutput schema / $defs / Coverage
        Removed value: -{
        -  "properties": {
        -    "as_of": {
        -      "description": "UTC ISO 8601",
        -      "title": "As Of",
        -      "type": "string"
        -    },
        -    "empty_reason": {
        -      "anyOf": [
        -        {
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "'not_loaded' (never ingested — not evidence of anything), 'no_match' (ingested, no rows match), or 'thin' (ingested, few rows)",
        -      "title": "Empty Reason"
        -    },
        -    "lanes": {
        -      "items": {
        -        "type": "string"
        -      },
        -      "title": "Lanes",
        -      "type": "array"
        -    },
        -    "sample_size": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "title": "Sample Size"
        -    }
        -  },
        -  "required": [
        -    "as_of"
        -  ],
        -  "title": "Coverage",
        -  "type": "object"
        -}
      • addedOutput schema / $defs / NoticeCoverage
        Added value: +{
        +  "properties": {
        +    "as_of": {
        +      "description": "UTC ISO 8601",
        +      "title": "As Of",
        +      "type": "string"
        +    },
        +    "empty_reason": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "'not_loaded' (never ingested — not evidence of anything), 'no_match' (ingested, no rows match), or 'thin' (ingested, few rows)",
        +      "title": "Empty Reason"
        +    },
        +    "lanes": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "title": "Lanes",
        +      "type": "array"
        +    },
        +    "open_scan_cap": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Open Scan Cap"
        +    },
        +    "open_scan_truncated": {
        +      "anyOf": [
        +        {
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Open Scan Truncated"
        +    },
        +    "prohibited_screen_excluded": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Prohibited Screen Excluded"
        +    },
        +    "prohibited_screen_version": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Prohibited Screen Version"
        +    },
        +    "sample_scope": {
        +      "const": "returned_page",
        +      "default": "returned_page",
        +      "title": "Sample Scope",
        +      "type": "string"
        +    },
        +    "sample_size": {
        +      "default": 0,
        +      "description": "Notices returned on this page only",
        +      "minimum": 0,
        +      "title": "Sample Size",
        +      "type": "integer"
        +    },
        +    "scan_note": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Scan Note"
        +    }
        +  },
        +  "required": [
        +    "as_of"
        +  ],
        +  "title": "NoticeCoverage",
        +  "type": "object"
        +}
      • changedOutput schema / $defs / NoticeRow / properties / source_fact / items / $ref
        Previous value: -"#/$defs/Statement"New value: +"#/$defs/NoticeStatement"
      • addedOutput schema / $defs / NoticeStatement
        Added value: +{
        +  "properties": {
        +    "source": {
        +      "$ref": "#/$defs/NoticeStatementSource"
        +    },
        +    "statement": {
        +      "description": "Text rendered from the template and values",
        +      "maxLength": 2000,
        +      "minLength": 1,
        +      "title": "Statement",
        +      "type": "string"
        +    },
        +    "template_id": {
        +      "description": "Template identifier from STATEMENT_TEMPLATES; every emitted Statement must match a template",
        +      "title": "Template Id",
        +      "type": "string"
        +    },
        +    "values": {
        +      "additionalProperties": {
        +        "type": "string"
        +      },
        +      "description": "Values substituted into the template",
        +      "title": "Values",
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "template_id",
        +    "source",
        +    "statement"
        +  ],
        +  "title": "NoticeStatement",
        +  "type": "object"
        +}
      • addedOutput schema / $defs / NoticeStatementSource
        Added value: +{
        +  "description": "Search-only provenance; do not change shared/receipt source models.",
        +  "properties": {
        +    "field": {
        +      "anyOf": [
        +        {
        +          "enum": [
        +            "solicitation_number",
        +            "response_deadline"
        +          ],
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Field"
        +    },
        +    "record_id": {
        +      "title": "Record Id",
        +      "type": "string"
        +    },
        +    "retrieved_at": {
        +      "default": null,
        +      "description": "Official source retrieval time is not recorded for these stored notices; not response time",
        +      "title": "Retrieved At",
        +      "type": "null"
        +    },
        +    "system": {
        +      "const": "sam_gov",
        +      "default": "sam_gov",
        +      "title": "System",
        +      "type": "string"
        +    },
        +    "url": {
        +      "title": "Url",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "record_id",
        +    "url"
        +  ],
        +  "title": "NoticeStatementSource",
        +  "type": "object"
        +}
      • addedOutput schema / $defs / QuotaBlock / properties / mode
        Added value: +{
        +  "default": "ordinary",
        +  "enum": [
        +    "ordinary",
        +    "testing",
        +    "review",
        +    "beta"
        +  ],
        +  "title": "Mode",
        +  "type": "string"
        +}
      • removedOutput schema / $defs / Statement
        Removed value: -{
        -  "properties": {
        -    "source": {
        -      "$ref": "#/$defs/StatementSource",
        -      "description": "Structured provenance"
        -    },
        -    "statement": {
        -      "description": "Text rendered from the template and values",
        -      "maxLength": 2000,
        -      "minLength": 1,
        -      "title": "Statement",
        -      "type": "string"
        -    },
        -    "template_id": {
        -      "description": "Template identifier from STATEMENT_TEMPLATES; every emitted Statement must match a template",
        -      "title": "Template Id",
        -      "type": "string"
        -    },
        -    "values": {
        -      "additionalProperties": {
        -        "type": "string"
        -      },
        -      "description": "Values substituted into the template",
        -      "title": "Values",
        -      "type": "object"
        -    }
        -  },
        -  "required": [
        -    "template_id",
        -    "source",
        -    "statement"
        -  ],
        -  "title": "Statement",
        -  "type": "object"
        -}
      • removedOutput schema / $defs / StatementSource
        Removed value: -{
        -  "properties": {
        -    "field": {
        -      "anyOf": [
        -        {
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "Specific field within the record",
        -      "title": "Field"
        -    },
        -    "record_id": {
        -      "description": "Official record identifier",
        -      "title": "Record Id",
        -      "type": "string"
        -    },
        -    "retrieved_at": {
        -      "description": "UTC ISO 8601 when the source was retrieved",
        -      "title": "Retrieved At",
        -      "type": "string"
        -    },
        -    "system": {
        -      "description": "Source system: sam_gov, usaspending, fsrs, govinbox",
        -      "title": "System",
        -      "type": "string"
        -    },
        -    "url": {
        -      "anyOf": [
        -        {
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "Canonical URL for the record",
        -      "title": "Url"
        -    }
        -  },
        -  "required": [
        -    "system",
        -    "record_id",
        -    "retrieved_at"
        -  ],
        -  "title": "StatementSource",
        -  "type": "object"
        -}
      • changedOutput schema / properties / coverage / $ref
        Previous value: -"#/$defs/Coverage"New value: +"#/$defs/NoticeCoverage"
      • addedOutput schema / properties / coverage_note
        Added value: +{
        +  "default": "sample_size and count describe this returned page, not a source or market total. as_of is the response calculation time, not a source retrieval or ingestion time. Canonical source links are verification pointers; unknown source retrieval, ingestion and version facts remain unknown. Missing results may reflect filters, scan limits or stored-source coverage.",
        +  "title": "Coverage Note",
        +  "type": "string"
        +}
    • Changedsearch_opportunities10 fields changed
      • changedInput schema / properties / keywords / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / keywords / description
        Previous value: -"Keywords to search in titles and descriptions"New value: +"Literal text in stored titles, briefs, solicitation numbers and notice IDs; filtered before the result limit"
      • changedInput schema / properties / naics / anyOf
        Previous value: -[
        -  {
        -    "items": {
        -      "pattern": "^[0-9]{2,6}$",
        -      "type": "string"
        -    },
        -    "type": "array"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "items": {
        +      "pattern": "^[0-9]{2,6}$",
        +      "type": "string"
        +    },
        +    "maxItems": 20,
        +    "minItems": 1,
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / notice_id
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 64,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Exact SAM notice ID, a separate identifier from solicitation numbers and award PIIDs. Includes stored closed notices. Omit browsing filters.",
        +  "title": "Notice Id"
        +}
      • addedInput schema / properties / solicitation_number
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 120,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Exact current/previous solicitation or reference number; case, spaces and hyphens normalized. Includes stored closed notices. Omit browsing filters. Not an award PIID.",
        +  "title": "Solicitation Number"
        +}
      • addedOutput schema / $defs / OpportunityCard / properties / record_status
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Record Status"
        +}
      • addedOutput schema / $defs / OpportunityCard / properties / solicitation_number
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Solicitation Number"
        +}
      • addedOutput schema / properties / coverage
        Added value: +{
        +  "additionalProperties": true,
        +  "title": "Coverage",
        +  "type": "object"
        +}
      • addedOutput schema / properties / coverage_note
        Added value: +{
        +  "default": "",
        +  "title": "Coverage Note",
        +  "type": "string"
        +}
      • addedOutput schema / properties / next_cursor
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Underlying scan cursor; coverage.continuation names the supported full-connection tool. This facade accepts no cursor.",
        +  "title": "Next Cursor"
        +}
    • Changedsearch_ota_awards1 field changed
      • addedOutput schema / $defs / QuotaBlock / properties / mode
        Added value: +{
        +  "default": "ordinary",
        +  "enum": [
        +    "ordinary",
        +    "testing",
        +    "review",
        +    "beta"
        +  ],
        +  "title": "Mode",
        +  "type": "string"
        +}
    • Changedsearch_sole_source1 field changed
      • addedOutput schema / $defs / QuotaBlock / properties / mode
        Added value: +{
        +  "default": "ordinary",
        +  "enum": [
        +    "ordinary",
        +    "testing",
        +    "review",
        +    "beta"
        +  ],
        +  "title": "Mode",
        +  "type": "string"
        +}
    • Changedsearch_subawards1 field changed
      • addedOutput schema / $defs / QuotaBlock / properties / mode
        Added value: +{
        +  "default": "ordinary",
        +  "enum": [
        +    "ordinary",
        +    "testing",
        +    "review",
        +    "beta"
        +  ],
        +  "title": "Mode",
        +  "type": "string"
        +}
    • Changedsearch_ustda1 field changed
      • addedOutput schema / $defs / QuotaBlock / properties / mode
        Added value: +{
        +  "default": "ordinary",
        +  "enum": [
        +    "ordinary",
        +    "testing",
        +    "review",
        +    "beta"
        +  ],
        +  "title": "Mode",
        +  "type": "string"
        +}
    • Changedshow_govinbox2 fields changed
      • addedOutput schema / $defs / OpportunityCard / properties / record_status
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Record Status"
        +}
      • addedOutput schema / $defs / OpportunityCard / properties / solicitation_number
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Solicitation Number"
        +}
  5. 1 tool update
    • Addedshow_govinbox
  6. 2 tool updates
    • Changedsearch_opportunities1 field changed
      • addedOutput schema / properties / quota_exhausted
        Added value: +{
        +  "default": false,
        +  "title": "Quota Exhausted",
        +  "type": "boolean"
        +}
    • Addedsignin
  7. 42 tool updates
    • First observedanalyze_market
    • First observedcheck_notice_filters
    • First observedcheck_risk
    • First observedcompare_notice_record_versions
    • First observedfind_likely_recompetes
    • First observedfind_partners
    • First observedfind_teaming_partners
    • First observedget_brief
    • First observedget_far_clause
    • First observedget_grant_record
    • First observedget_notice_record
    • First observedget_protest_history
    • First observedget_recompete_calendar
    • First observedget_recompete_detail
    • First observedget_record
    • First observedlist_awards_by_period_end
    • First observedlist_reported_subawards
    • First observedmanage_watchlist
    • First observedresearch
    • First observedsearch_amtrak
    • First observedsearch_award_history
    • First observedsearch_cancelled_contracts
    • First observedsearch_cancelled_grants
    • First observedsearch_cancelled_leases
    • First observedsearch_denali
    • First observedsearch_dibbs
    • First observedsearch_doge_payments
    • First observedsearch_dra_grants
    • First observedsearch_fdic
    • First observedsearch_federal_register
    • First observedsearch_grants_gov
    • First observedsearch_mcc
    • First observedsearch_mcc_forecast
    • First observedsearch_nbrc_grants
    • First observedsearch_open_grants
    • First observedsearch_open_notices
    • First observedsearch_opportunities
    • First observedsearch_ota_awards
    • First observedsearch_sole_source
    • First observedsearch_subawards
    • First observedsearch_ustda
    • First observedtrack_recompete

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Federal procurement intelligence toolkit that searches SAM.gov contract opportunities, analyzes agency spending patterns, tracks competitor wins, and monitors small business set-aside programs (8a, HUBZone, SDVOSB, WOSB). 4 tools using SAM.gov and USASpending.gov data.
    3
    -
  • F
    license
    Not graded
    quality
    A
    maintenance
    Find federal contract opportunities, research awards and vendors, and review exclusion evidence with linked official sources. Public research is free and needs no account.
    -
  • A
    license
    A
    quality
    B
    maintenance
    Search and analyze U.S. federal government contracts and opportunities from SAM.gov. Tools for keyword search, contract details, competitive analysis, and capability statement drafting — built for AI agents via x402 USDC micropayments.
    3
    2
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to search federal contracts, analyze agency spending, track competitor wins, and monitor small business set-aside opportunities using SAM.gov, USASpending.gov, and FPDS data.
    -
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources