Skip to main content
Glama

Server Details

The prediction lab for traders and AI agents: research on real-world markets; trade with play money.

Ownership verified
Status
Healthy
Uptime
100.0% over the last 24 hours
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
pprotocol-us/problee-mcp
GitHub Stars
0
Server Listing
Problee MCP
ChatGPT
–
Claude
–

TDQS

B3.1/5.0

Scored across 126 tools

Disambiguation2/5

Several clusters of near-duplicate tools create real misselection risk: resolution surfaces (problee_get_market_resolution_state, problee_get_resolution_status, problee_get_proposal, problee_get_claim_status), pricing helpers (problee_get_quote, problee_estimate_market_order, problee_simulate_trade, problee_plan_pm_order, problee_quote_to_price), and reputation reads (problee_get_counterparty_reputation, problee_get_agent_reputation, problee_get_subject_reputation, problee_get_trader_profile) overlap heavily. The descriptions are detailed enough to reward careful reading, but with 126 tools an agent will frequently pick the wrong sibling.

Naming Consistency4/5

Almost all names follow a predictable problee_ + snake_case verb_noun pattern (get_market, list_markets, publish_forecast, batch_place_orders). A few outliers like problee_contest, problee_my_contest, and problee_get_me deviate from the verb-first convention, but overall the scheme is readable and consistent.

Tool Count1/5

126 tools is far beyond a well-scoped surface; even a broad protocol with trading, identity, webhooks, research, and contests does not justify this many distinct entries. Many are thin variants (batch_ vs single, confirm_ vs get_ vs cancel_) that inflate the count without adding distinct capability.

Completeness4/5

Coverage is broad: markets, orderbook/trading, quotes, claims, identity linking, reputation, research, webhooks/websockets discovery, forecasts, contest, and balance/position reads. The main gap is explicit market creation/deletion lifecycle tools, which are implied elsewhere but not exposed directly.

Available Tools

126 tools
problee_analyze_selected_makersAnalyze static ask movement for a selected maker roster, with exact costs and explicit one-IOC limitsB
Read-onlyIdempotent
Inspect

Read-only static selected-book ask movement on a public binary orderbook. Supply up to 64 maker addresses; no ownership or complete-operator roster is inferred. Includes selected caller orders under a hypothetical external taker assumption, unlike ordinary self-excluding sweep quotes. Six independent BUY side × 100/500/1000-BPS targets consume prices strictly below initial selected ask + offset. Exact principal, fee and shares obey one-IOC fill/spread limits and shared maker capacity. Exhaustion has no residual price. Partial or unavailable results must remain incomplete. No reservation, signing authority, dynamic maker repricing or whole-venue midpoint prediction. Current committed-ledger capacity is corroborated; unsupported capacity remains unavailable.

NameRequiredDescriptionDefault
scopeYes
chainIdNoCompiled protocol release chain ID (Base 8453).
marketAddressYes
makerAddressesYesExplicit client-selected roster, including any selected caller. At most 64 submitted addresses; normalized, deduplicated and sorted. The protocol does not infer ownership or roster completeness.

Output Schema

NameRequiredDescription
resultYes

TDQS

B3.4/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 and non-destructive behavior. The description adds substantial context beyond that: hypothetical external taker assumption, six BUY-side targets, strict one-IOC fill/spread limits, shared maker capacity, no residual price on exhaustion, partial results remaining incomplete, and no reservation or signing authority.

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 description then becomes dense and jargon-heavy, with phrases like 'Six independent BUY side × 100/500/1000-BPS targets consume prices strictly below initial selected ask + offset' that are difficult to parse. Most sentences carry relevant constraints, but readability suffers.

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, specialized analysis tool with annotations and an output schema, the description covers many behavioral constraints: static selected-book scope, no dynamic repricing, incomplete partial results, and committed-ledger capacity corroboration. Some core terms remain opaque, but the overall behavioral contract is substantially documented.

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 50%, so the description must compensate for undocumented parameters. It largely repeats the schema's makerAddresses constraints (up to 64, no ownership inference) and does not explain scope, chainId, or marketAddress semantics beyond what the schema already 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?

The description states a specific verb and resource: read-only static selected-book ask movement for a selected maker roster, with exact costs and one-IOC limits. It distinguishes the result from ordinary self-excluding sweep quotes, though it does not name a specific sibling tool such as get_orderbook or estimate_market_order.

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 instruction to supply up to 64 maker addresses and by the contrast with ordinary self-excluding sweep quotes. However, there is no explicit 'use this when' or 'use X instead' guidance against the many orderbook and estimation siblings.

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

problee_batch_counterparty_reputationResolve black-box reputation for up to 100 wallets in one requestA
Read-onlyIdempotent
Inspect

Resolve black-box public reputation (tiers, gates, track record) for up to 100 wallets in one call. Returns one entry per input wallet, order preserved.

NameRequiredDescriptionDefault
walletAddressesYes1–100 counterparty wallet addresses.

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds the useful output contract of one entry per input wallet with order preserved, but says nothing about partial failures, invalid addresses, or what "black-box" scoring means in practice. A 3 is appropriate given the lower bar set by rich annotations.

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

Conciseness5/5

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

Two short sentences with no filler; the capability and the cardinality limit are front-loaded and the return shape follows. Nothing is redundant.

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 four annotations, the description only needs to frame the batch contract, which it does. The remaining gap is error/partial-failure behavior for a batch of up to 100 addresses, which is a plausible thing an agent would want to know before calling.

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% on the single walletAddresses parameter, including the EVM address pattern and the 1–100 bounds, so the schema already does this work. The description's "up to 100 wallets" only restates maxItems without adding format or semantic detail.

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 pairs a specific verb ("Resolve") with a specific resource ("black-box public reputation (tiers, gates, track record)") and states the batch scope of up to 100 wallets in one call. That batch framing is what distinguishes it from the singular problee_get_counterparty_reputation, though the sibling is never 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?

Usage is only implied: an agent can infer this is the bulk path when it has many addresses, but the description never says when to prefer this over problee_get_counterparty_reputation or other reputation siblings, nor states any exclusion. No prerequisites or rate considerations are mentioned.

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

problee_batch_get_orderbooksGet caller-executable depth for multiple destination booksA
Read-onlyIdempotent
Inspect

Get one to 100 ordered caller-executable destination books. The authenticated MCP wallet is excluded server-side; any item failure fails the whole call.

NameRequiredDescriptionDefault
requestsYesUnique exact chain, market, side, view, and depth requests.

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent and non-destructive, so the safety profile is covered. The description still earns credit for two non-obvious traits: the authenticated wallet is excluded server-side and cannot be supplied, and the call is all-or-nothing ('any item failure fails the whole call'). Those additions are genuinely useful but the disclosure stops there.

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?

Two compact sentences with the resource and cardinality front-loaded and the failure semantics second. Nothing is padding, though 'ordered' is mildly ambiguous wording that could be tightened.

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 no explanation, and the description covers scope, cardinality and failure mode. What remains missing is the routing guidance against the single-book siblings, which matters given how many orderbook-related tools exist.

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%, including descriptions of side, view, depth, chainId and marketAddress, so the schema carries parameter meaning. The description adds only the item-count bound and 'ordered', and it is unclear whether 'ordered' means preserved result ordering or a sequence of requests.

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 ('Get ... destination books') with batch scope and a distinguishing qualifier ('caller-executable'). It does not name the likely alternatives (problee_get_orderbook, problee_get_market_depth), so an agent must infer the batch-vs-single split rather than being told it.

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?

The 1-to-100 range and plural 'books' imply this is the multi-market read path, but the description never says when to prefer it over the single-book siblings or lists any prerequisite or exclusion beyond the batch size.

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

problee_batch_get_trading_rulesGet static orderbook trading rules for many markets in one callA
Read-onlyIdempotent
Inspect

Get static per-market orderbook trading rules (price grid, size floors, fees, TIF, STP) for up to 200 markets in one call. Use this instead of polling problee_get_market per market to renew rules — it does only the rules work, not volume, reputation, resolution surfaces, or prices.

NameRequiredDescriptionDefault
chainIdYesCompiled protocol release chain ID (Base 8453).
marketAddressesYes

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

The annotations already declare readOnly, idempotent, and non-destructive behavior, and the description adds real value on top by establishing that the rules are static and that the tool performs only rules work. It does not disclose what happens when some of the requested addresses are unknown or have no rules — the main behavioral unknown for a batch read — so it falls short of 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.

Conciseness5/5

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

Two sentences, zero filler: capability and contents first, then the sibling comparison and exclusions. The front-loading is exactly right for a decision an agent must make before calling.

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 annotations cover the safety profile, so the description does not need to explain returns. What is left out is batch failure semantics (partial results vs. error on unknown markets), which would matter for an agent assembling a 200-address call. Otherwise the definition is sufficient to invoke 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?

With schema description coverage at 50%, both parameters carry terse schema docs (chain ID with a Base 8453 hint, and address format). The description reinforces the 200-market cap but adds no meaning about chainId selection or address list semantics beyond what the schema already states. Baseline 3 is appropriate; the description neither compensates for nor worsens the coverage gap.

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 names a specific verb and resource ("Get static per-market orderbook trading rules") and enumerates the payload contents (price grid, size floors, fees, TIF, STP) along with the batch scope of up to 200 markets. It also explicitly contrasts itself with problee_get_market, so an agent can distinguish it from siblings without opening the schema.

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 explicit routing guidance: "Use this instead of polling problee_get_market per market." It also states the negative space — no volume, reputation, resolution surfaces, or prices — which tells the agent when this call is not sufficient and that other tools are needed for those surfaces.

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

problee_batch_place_ordersPlace up to 50 pre-signed limit orders in one call (partial success). Counts as ONE write against the rate limiter regardless of batch size.AInspect

Place up to 50 pre-signed limit orders in one call (ONE write credit). Each order must already carry its EIP-712 signature and nonce (no signing-payload return path in batch mode). Partial success: one bad order does not fail the batch — check each result's error field. A live clOrdId with divergent economics returns CLORDID_CONFLICT on that result. Requires wallet proof.

NameRequiredDescriptionDefault
ordersYesOrders to place, in order. Response results are index-aligned.
proofNonceYesRequired single-use nonce for the wallet proof. Fetch from POST /api/auth/nonce; consumed on verification so the proof cannot be replayed.
walletAddressYesWallet address placing the orders
idempotencyKeyYesRequired write-safety key for this batch
walletSignatureYesAction-bound wallet proof. Sign the canonical 'problee-mcp-auth:…' challenge (binds agent, apiKey, tool, scope, chain, resource, payloadHash, nonce, timestamp).
signatureTimestampYesUnix timestamp (seconds) used in the signed challenge message

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the annotations (which only say it is a non-destructive write in an open world), the description discloses rate-limiter accounting (one write credit regardless of batch size), partial-success semantics, the per-result `error` field, CLORDID_CONFLICT on divergent economics, and the wallet-proof requirement. These are exactly the operational facts an agent needs before firing a 50-order batch.

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

Conciseness5/5

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

Four tight sentences, front-loaded with the batch cap and rate-credit fact, then prerequisite, then failure model. Nothing is padding; every clause carries operative 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 it correctly omits return-value descriptions while flagging the `error` field that matters, and the proof/key prerequisites are covered by the schema. The only shortfall is that it does not point to the sibling tool that produces pre-signed orders, which is the natural upstream step.

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 nonetheless adds meaning by tying orderSignature/nonce presence to batch mode and mapping clOrdId behavior to the CLORDID_CONFLICT result. It does not go further into per-order field semantics, which the schema already handles in depth.

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 opens with a specific verb, resource and batch scope ('Place up to 50 pre-signed limit orders in one call'), and the 'pre-signed / no signing-payload return path in batch mode' clause implicitly separates it from the singular place_limit_order and from prepare-order siblings. An agent can identify the tool's role without opening the 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?

It states the key precondition (orders must already be signed with nonce) and implies that preparation happens elsewhere, since batch mode returns no signing payload. It does not explicitly name the alternative tools (batch_prepare_orders, place_limit_order) or state when a single order or the prepare path should be chosen instead.

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

problee_batch_prepare_ordersPrepare 1–50 unsigned EIP-712 limit-order payloads without placing themAInspect

Prepare 1–50 unsigned EIP-712 orders in one request; this creates signing payloads only and accepts nothing into matching.

NameRequiredDescriptionDefault
ordersYes
proofNonceYesRequired single-use nonce for the wallet proof. Fetch from POST /api/auth/nonce; consumed on verification so the proof cannot be replayed.
walletAddressYesChecksummed or lowercase 20-byte EVM address (0x + 40 hex).
idempotencyKeyYes
walletSignatureYesAction-bound wallet proof. Sign the canonical 'problee-mcp-auth:…' challenge (binds agent, apiKey, tool, scope, chain, resource, payloadHash, nonce, timestamp).
signatureTimestampYesUnix timestamp (seconds) used in the signed challenge message

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior4/5

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

Annotations mark this non-destructive and non-read-only, and the description adds the crucial behavioral fact that nothing enters matching — a real disclosure beyond structured fields. Gaps remain: it doesn't note that the wallet proof nonce is single-use/consumed or that idempotentHint is false despite a required idempotencyKey, both of which affect retry behavior.

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?

A single tight sentence with the cardinality and the non-mutating guarantee front-loaded, and nothing wasted. It is, however, terse to the point of leaving the follow-up action unstated, which costs a point.

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 rich schema and an output schema relieve the description of documenting fields and return values, and annotations cover safety. But for an auth-gated preparation step feeding a separate placement tool, the description omits the end-to-end flow and the interaction with problee_batch_place_orders, leaving a meaningful 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 67% and the per-parameter descriptions are unusually rich (price grid, minRestingShares, basis-point conversion, orderSignature semantics). The description contributes only the 1–50 cardinality, which the schema already enforces via minItems/maxItems, so it adds little meaning 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?

States a specific verb and resource ('Prepare ... unsigned EIP-712 orders') with an explicit batch bound (1–50) and a clear scope limit ('creates signing payloads only and accepts nothing into matching'). That scope clause implicitly distinguishes it from problee_batch_place_orders, but the sibling is never named, so the agent must infer the pairing.

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 phrase 'creates signing payloads only' suggests a sign-then-submit workflow, but the description never says what to do with the returned payloads, nor points to problee_batch_place_orders as the follow-up step. No prerequisites (wallet proof, nonce, idempotency key) or when-not-to-use guidance appear.

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

problee_batch_replace_quote_setsAtomically replace hosted quote sets across up to 10 markets in one writeA
Destructive
Inspect

Replace hosted quote sets across up to 10 markets in one request (one write credit). Each market is its own atomic replace — terminal hosted cancellation of the named predecessors plus post-only successors — and a failed market never voids its neighbours. Total orders across all items must stay within 50.

NameRequiredDescriptionDefault
itemsYes
proofNonceYesRequired single-use nonce for the wallet proof. Fetch from POST /api/auth/nonce; consumed on verification so the proof cannot be replayed.
walletAddressYes
idempotencyKeyYes
walletSignatureYesAction-bound wallet proof. Sign the canonical 'problee-mcp-auth:…' challenge (binds agent, apiKey, tool, scope, chain, resource, payloadHash, nonce, timestamp).
signatureTimestampYesUnix timestamp (seconds) used in the signed challenge message

Output Schema

NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

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

Beyond the annotations (destructiveHint=true, readOnlyHint=false), the description discloses what actually gets destroyed (terminal hosted cancellation of named predecessors, post-only successors) and the partial-failure contract (a failed market never voids its neighbours). It stops short of describing the signing/proof flow or what 'one write credit' means for retries.

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

Conciseness5/5

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

Three dense sentences, front-loaded with the scope and atomicity guarantee; every clause carries operational meaning and nothing is repeated from the schema or annotations.

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 destructive batch write with an output schema, the description covers scope, atomicity, failure isolation, and the size limit. The remaining gap is the authorization path — walletAddress/walletSignature/proofNonce/signatureTimestamp are required but the description gives no hint about obtaining the nonce or signing sequence, which would matter before a first invocation.

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 only 50% schema description coverage, the description contributes one genuinely new constraint — the aggregate 50-order cap across all items, which is not expressible in the schema's per-item maxItems of 50. It does not explain idempotencyKey semantics (which the schema leaves undocumented) or the suspendOrderHashes field that supplies the 'named predecessors'.

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 ('Replace hosted quote sets'), the batch scope ('across up to 10 markets in one request'), and the cost model ('one write credit'), which cleanly separates it from the single-market sibling problee_replace_quote_set.

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?

The batch scope implies when to reach for this tool (multiple markets in one call), but there is no explicit when-to-use/when-not guidance and no named alternative such as problee_replace_quote_set for a single market or problee_batch_place_orders for additive placement.

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

problee_buy_play_moneyBuy play money with USDC on Base (x402)AInspect

Buy PM (Kellian play money) with USDC on Base. Two steps, and nothing is charged by the first: call it with no payment to get status: 'payment-required' and the x402 requirements (nothing is charged), then sign them and call again with the base64 payload as payment. The PM delivered is the economy registry's own quote for that dollar amount — the identical rate the card rail uses — and it lands on the wallet bound to this key, never on the paying address. PM has no cash value and cannot be redeemed or withdrawn.

NameRequiredDescriptionDefault
usdYesUS dollars to spend. Must equal one of the listed purchase bundles.
paymentNoBase64 x402 payment payload — the value an HTTP caller sends as the X-PAYMENT header. Omit it on the first call to receive the requirements to sign.
idempotencyKeyYesStable retry key. Reuse only with byte-equivalent tool arguments.

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior5/5

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

Beyond the annotations (which only say it is a non-read-only, open-world, non-destructive write), the description discloses the crucial behavioral facts: the first call is free, charging only occurs on the second call with `payment`, and idempotency context matters for retries. It also discloses the non-obvious delivery semantics — PM lands on the wallet bound to this key, not the paying address — and the value constraint that PM is non-redeemable and has no cash value.

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 two-step flow is front-loaded and the value caveats come at the end, which is the right order. It wastes some space repeating "nothing is charged" twice in one sentence and packs several independent facts into a single em-dash chain, but no sentence is expendable.

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-shape explanation is rightly omitted, and the description covers the charge model, delivery destination, and redemption limits that an agent needs before spending. The one gap is that `usd` must match a "listed purchase bundle" without saying where those bundles are listed or what the allowed values are, which matters because there are no enums on the parameter.

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 all three parameters are already documented in the schema, including the `payment`-omitted first call. The description reinforces the token/quote semantics of `usd` (registry quote, same rate as the card rail) but adds no syntax, format, or bundle-list detail beyond what the schema states. 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?

"Buy PM (Kellian play money) with USDC on Base" states a specific verb, resource, and settlement rail, which no sibling tool covers (the nearest, problee_plan_pm_order, is planning rather than purchase). An agent can distinguish this from balance, plan, and trade tools 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?

The description gives explicit procedural guidance: call once with no `payment` to receive the x402 requirements, then sign and call again with the base64 payload. That removes the main sequencing ambiguity for a two-phase tool. It stops short of naming alternatives (e.g., problee_plan_pm_order, or the card rail it references) as when-to-use-this-vs-that routing.

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

problee_cancel_all_ordersAuthoritatively cancel all open orders at the hosted layer, optionally scoped to a marketA
Destructive
Inspect

Authoritatively cancel every open order on the page at the hosted layer — terminal, nothing to broadcast, no gas owed. Orders with committed taker reservations are suspended and terminalize when their fill settles or releases. Paged; requires wallet proof.

NameRequiredDescriptionDefault
limitNo
chainIdNoOptional chain filter. Required when the same market address exists on multiple chains.
proofNonceYesRequired single-use nonce for the wallet proof. Fetch from POST /api/auth/nonce; consumed on verification so the proof cannot be replayed.
marketAddressNoOptional market filter. Omit to cancel across all of the wallet's markets.
walletAddressYesWallet address whose orders should be cancelled
afterOrderHashNo
idempotencyKeyYesStable retry key. Reuse only with byte-equivalent tool arguments.
walletSignatureYesAction-bound wallet proof. Sign the canonical 'problee-mcp-auth:…' challenge (binds agent, apiKey, tool, scope, chain, resource, payloadHash, nonce, timestamp).
signatureTimestampYesUnix timestamp (seconds) used in the signed challenge message

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior5/5

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

Goes well past the annotations: it declares the effect terminal, states there is nothing to broadcast and no gas owed, and explains the non-obvious exception that orders with committed taker reservations are suspended and settle later. It also flags pagination and the wallet-proof requirement, which the destructiveHint alone would not convey.

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?

Three tight sentences, front-loaded with the terminal/no-gas guarantee that matters most. Every sentence carries information, though "on the page" is a small source of ambiguity that could be trimmed.

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 scope, side effects, the taker-reservation edge case, pagination, and the auth proof requirement for a 9-parameter destructive tool, and an output schema exists so return values need no explanation. It could still say whether a separate confirm step is ever required.

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 78%, so the schema already documents most parameters including the market filter and proof nonce. The description adds only the mapping of "optionally scoped to a market" and "paged" to the filter and cursor arguments, without new format or constraint detail.

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 ("cancel every open order") plus a concrete layer ("at the hosted layer"), which separates it from on-chain cancellation siblings. The phrase "on the page" muddies scope by suggesting page-local cancellation, and no sibling such as problee_cancel_order or problee_confirm_order_cancel is named.

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 "optional market scoping" and the terminal/hosted nature, which hints no confirmation round-trip is needed. It never says when to pick this over problee_cancel_order, problee_cancel_orders, or problee_confirm_order_cancel, so an agent must infer the choice.

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

problee_cancel_orderCancel an order authoritatively at the hosted layer, by hash or client order idA
Destructive
Inspect

Cancel an order authoritatively by order hash or client order id. Cancellation is hosted and terminal — settlement is operator-sequenced, so a cancelled order has no other executor; nothing to broadcast, no gas owed. An order with a committed taker reservation is suspended and terminalizes when that fill settles or releases.

NameRequiredDescriptionDefault
clOrdIdNoClient order id to cancel (resolves to the live open/partially-filled order for this wallet with this clOrdId). Provide this OR orderHash.
orderHashNoOrder hash to cancel
proofNonceYesRequired single-use nonce for the wallet proof. Fetch from POST /api/auth/nonce; consumed on verification so the proof cannot be replayed.
walletAddressYesWallet address that owns the order
idempotencyKeyYesStable retry key. Reuse only with byte-equivalent tool arguments.
walletSignatureYesAction-bound wallet proof. Sign the canonical 'problee-mcp-auth:…' challenge (binds agent, apiKey, tool, scope, chain, resource, payloadHash, nonce, timestamp).
signatureTimestampYesUnix timestamp (seconds) used in the signed challenge message

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

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

Beyond the annotations (destructiveHint=true, idempotentHint=false, openWorldHint=true), the description adds genuinely non-obvious behavior: cancellation is hosted and terminal, requires no on-chain broadcast or gas, and a committed taker reservation suspends termination until the fill settles or releases. It does not cover auth/proof prerequisites or idempotent-retry semantics, but the preconditions and the suspension state are real value the annotations cannot convey.

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

Conciseness5/5

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

Three sentences, front-loaded with the action and identifier choice, then the terminal/hosted semantics, then the one edge case (taker reservation suspension). No sentence repeats the title or the schema, and nothing is 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?

With an output schema present, return values need not be described, and the 100%-covered 7-parameter schema carries the auth and idempotency detail. The description covers the mutation's consequence and the suspended-order state, which is the main thing an agent could get wrong; only explicit sibling routing and error/retry behavior are absent.

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%, so every parameter including clOrdId, orderHash, and the wallet-proof fields is already documented in the schema. The description only restates that the target may be given as a hash or client order id and adds no format, precedence, or conflict guidance beyond that baseline.

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 first sentence gives a specific verb and resource ('Cancel an order') and names the two identifier modes (order hash or client order id), so the agent knows exactly what the tool acts on. It does not, however, distinguish itself from the confusable siblings problee_cancel_orders, problee_cancel_all_orders, or problee_confirm_order_cancel, so the agent must infer whether this is the singular, authoritative path.

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: 'authoritatively' plus 'Provide this OR orderHash' signals a targeted single-order cancel as opposed to a bulk one, and 'terminal' implies no follow-up confirmation step is needed (relevant against problee_confirm_order_cancel). No sentence explicitly states when to choose this over those siblings or when not to use it.

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

problee_cancel_ordersCancel a named set of orders in one call, reporting each hash independentlyA
Destructive
Inspect

Cancel up to 50 named orders in one call. Sits between cancelling one hash and cancelling everything: a maker re-quoting part of a ladder wants neither six round trips nor a teardown of the book it is about to rebuild. Every hash is reported on its own — unknown, already terminal, or not yours does not stop the rest — because cancellation reduces risk, and a batch that refused wholesale would leave exposure the caller explicitly asked to drop. Hosted and terminal: nothing to broadcast, no gas owed.

NameRequiredDescriptionDefault
proofNonceYesRequired single-use nonce for the wallet proof. Fetch from POST /api/auth/nonce; consumed on verification so the proof cannot be replayed.
orderHashesYesOrder hashes to cancel, up to 50. Duplicates are collapsed.
walletAddressYesWallet address that owns the orders
idempotencyKeyYesStable retry key. Reuse only with byte-equivalent tool arguments.
walletSignatureYesAction-bound wallet proof. Sign the canonical 'problee-mcp-auth:…' challenge (binds agent, apiKey, tool, scope, chain, resource, payloadHash, nonce, timestamp).
signatureTimestampYesUnix timestamp (seconds) used in the signed challenge message

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

Adds real behavior beyond the annotations: per-hash independent reporting, the rule that unknown/already-terminal/not-yours does not abort the rest, and that the operation is hosted and terminal with no broadcast or gas. It does not address how the confirm_order_cancel sibling relates to this call, or the tension between the idempotencyKey parameter and idempotentHint=false.

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?

Front-loaded with the operation and the cap, then the positioning, then the failure semantics, then the no-gas note – a sensible order with no sentence that carries no information. The re-quoting-ladder illustration is slightly florid, but it is the sentence that justifies the tool's existence.

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 destructive batch mutation with an output schema and full annotation coverage, the description supplies everything needed to call it correctly: scope, sibling routing, partial-failure contract, and the absence of on-chain steps. The only gap is the relationship to problee_confirm_order_cancel, which the description never mentions.

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%, so the schema already documents every parameter including the 50 cap, duplicate collapsing, nonce, signature challenge and idempotency key. The description's only parameter claim ('up to 50') repeats what maxItems already states, 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 with a hard scope bound ('Cancel up to 50 named orders in one call') and immediately positions itself between 'cancelling one hash' and 'cancelling everything'. An agent can distinguish it from problee_cancel_order and problee_cancel_all_orders without opening either schema.

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?

The alternatives are named explicitly and the selecting condition is given: when you need more than one hash but not a full book teardown (the re-quoting-a-ladder scenario). The only thing left implicit is that a single hash should go to the single-order tool, which the positioning makes obvious.

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

problee_check_market_existsIdempotency check — has this agent already deployed a market with the given externalId?A
Read-onlyIdempotent
Inspect

Check whether this agent already deployed a market with the given externalId. Per-agent namespace.

NameRequiredDescriptionDefault
externalIdYes

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds the meaningful scoping detail that markets live in a per-agent namespace, which explains why a negative result is not global; however, that nuance largely restates the title's 'this agent' phrasing and adds nothing about freshness, caching, or query cost.

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

Conciseness5/5

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

Two short sentences, front-loaded with the operation and followed by the namespace qualifier. No filler, no restated boilerplate, and the most important constraint arrives before any caveat.

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 one parameter, an exhaustive annotation set, and an output schema covering the return value, the description only needs to establish intent and scope — both of which it does. The remaining gap is workflow guidance (what to do on true vs false), which is arguably adjacent to this tool's scope.

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 0% — the input parameter is an untyped string with only length bounds — so the description carries the semantic load. It explains that externalId is the identifier the agent itself supplied when deploying, which is real meaning beyond the schema, though it does not state the format, whether case sensitivity applies, or how a missing/mismatched id is treated.

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 check (does a market already exist) keyed on a named identifier (externalId), which is a distinct verb+resource combination an agent can recognize. It does not name a sibling tool to contrast with, but none of the siblings overlap this exact idempotency check, so differentiation is implicit rather than spelled out.

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?

The description implies the use case — verifying prior deployment before re-deploying with a given externalId — but never states it explicitly, nor does it say when not to use it or what to do with the result (deploy vs skip). The agent must infer the workflow from the title's 'Idempotency check' framing.

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

problee_confirm_order_cancelVerify a mined cancellation and report exact canonical finalityA
Destructive
Inspect

Verify a mined OrderCancelledEvent. Returns OPEN|PARTIALLY_FILLED with MINED/PENDING_FINALITY until exact canonical tx/log evidence exists, or CANCELLED with MINED/FINALIZED when that exact cancellation is already canonical. Requires the same maker wallet proof used to prepare cancellation.

NameRequiredDescriptionDefault
txHashYesMined cancellation transaction hash
orderHashYesOrder hash whose cancellation was broadcast
proofNonceYesRequired single-use nonce for the wallet proof. Fetch from POST /api/auth/nonce; consumed on verification so the proof cannot be replayed.
walletAddressYesWallet address that owns the order
idempotencyKeyYesStable retry key. Reuse only with byte-equivalent tool arguments.
walletSignatureYesAction-bound wallet proof. Sign the canonical 'problee-mcp-auth:…' challenge (binds agent, apiKey, tool, scope, chain, resource, payloadHash, nonce, timestamp).
signatureTimestampYesUnix timestamp (seconds) used in the signed challenge message

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior4/5

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

The description adds real behavior beyond the annotations: a precise state machine (OPEN|PARTIALLY_FILLED stays MINED/PENDING_FINALITY until exact canonical evidence exists; CANCELLED|FINALIZED only when the cancellation is already canonical). The proof requirement plus the schema's single-use proofNonce explains the non-obvious destructiveHint=true / idempotentHint=false pair, so there is no contradiction, though the description itself never says the nonce is consumed.

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?

Three sentences, front-loaded with the core action and the return states, with no filler. The phrase 'exact canonical tx/log evidence' is repeated in near-duplicate form across the second and third sentences, which is the only mild redundancy.

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, yet the description still summarizes the meaningful outcome states, and it covers the proof prerequisite and the mined-tx constraint. For a seven-parameter mutation-adjacent tool this is close to complete, missing only an explicit note on what happens if the tx is not yet mined.

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%, so the schema already documents all seven parameters, which sets the baseline at 3. The description contributes one extra fact only: that walletSignature/walletAddress must be the same maker proof used at preparation time, a cross-call linkage the schema does not state.

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: 'Verify a mined OrderCancelledEvent', and outlines the exact outcome states it reports. It implicitly separates itself from the broadcast-cancel siblings (problee_cancel_order, problee_cancel_orders) by requiring an already-mined tx, but never names those siblings to make the boundary explicit.

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 'mined' qualifier and 'used to prepare cancellation' tell an agent this is a follow-up step to a prepared/broadcast cancellation. There is no explicit when-not-to-use guidance and no pointer to alternatives such as problee_get_transaction_status for general tx finality or problee_cancel_order for initiating a cancellation.

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

problee_contestRead the forecasting contest: featured questions, the boards and your standingB
Read-onlyIdempotent
Inspect

The Kellian forecasting contest: any covered question whose Polymarket end falls by the contest’s end counts (forecast it with problee_publish_forecast). Each forecast is scored once against Polymarket’s price in the minute it was made (Brier minus the price’s Brier); up to 3 a question a day, all counted; none counts while the price is under 5% or over 95%. Score: the average over counted forecasts on resolved questions, lower is better. In each of five categories the best three closer than the price with 95% confidence win US$500 / US$300 / US$200. Returns the featured questions (others’ numbers hidden until the lock), the category boards and, with a key, your entry.

NameRequiredDescriptionDefault
allNo
weekNo

Output Schema

NameRequiredDescription
resultYes

TDQS

B3.3/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), yet the description adds real behavioral context beyond them: forecasts are scored once at the minute of submission, up to 3 per question per day, none counted outside 5%-95% price, lower score is better, and others' numbers stay hidden until the lock. It stops short of disclosing pagination or how the 'week' window affects the boards.

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 one dense paragraph that opens with tournament rules instead of the tool's action, so the useful part (what is returned, key requirement) arrives last. The scoring and prize detail is relevant but could be trimmed or moved behind the front-loaded purpose sentence.

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 spelled out here, and the prize/scoring rules are a genuine plus. But for a two-parameter tool with zero schema coverage, the total absence of parameter meaning leaves the definition incomplete for correct invocation.

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 0% and the description never mentions either parameter. 'all' and 'week' (1-20) go entirely unexplained, so the agent must guess whether 'all' means all questions or all boards, and what a week number selects. This is a clear gap where the description should have compensated.

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 final sentence states the specific output: featured questions, category boards, and the caller's entry. The bulk of the description explains the contest rather than the tool, but an agent can still tell this is a read of contest state. It does not explicitly distinguish itself from the close siblings problee_my_contest and problee_get_scoring_record, which keeps it from 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?

It points to problee_publish_forecast as the way to submit forecasts, which is a useful routing cue, and it implies a key is needed to see 'your entry'. However, it never says when to use this tool versus problee_my_contest, problee_join_contest, or the scoring-record tools, leaving the main selection question unanswered.

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

problee_create_watchWatch a question, an option, a trader or a category (Plus)AInspect

Watch a covered Polymarket question, an option, a listed smart money trader, a forecaster or a category: Kellian alerts the account that owns this key when it moves. "A Tier 1 trader buys" is triggers [{kind:"smart_money", maxTier:1, minUsd:1000, side:"buy"}]. Watching the same target again extends that watch. Alerts go to the site and the channels named. Part of Plus.

NameRequiredDescriptionDefault
targetYes
channelsNoWhere else alerts go, beside the site: telegram or discord (once linked), webhook (your webhooks subscribed to alert.fired).
triggersNoWhat fires it. Default: a 5-point move in 24 h, a $10,000 trade, the result; daily: smart money, moves, news, the result; a trader: moves from $1,000. Named kinds replace those on a watch you have.
frequencyNoinstant (default), hourly, or daily (a brief at 08:00 UTC).
idempotencyKeyYesStable retry key. Reuse only with byte-equivalent tool arguments.

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds non-obvious behavior: alerts fan out to the site plus the named channels, re-watching extends rather than duplicates, and the feature is plan-gated ("Part of Plus"). It stops short of stating auth requirements or any limits on how many watches an account may hold.

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?

Front-loaded with the core action, then the worked trigger example, then the extension rule and delivery note — every sentence carries information. The embedded quoting of a nested JSON literal is slightly hard to parse, but nothing is 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 5-parameter tool with a deeply nested target union, an output schema, and full annotations, the description supplies what structured fields cannot: delivery targets, upsert semantics, plan gating, and a trigger example. The unmentioned portfolio target kind and the absent frequency discussion are the only real omissions.

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 already 80%, so the baseline is 3. The description earns above baseline by giving a concrete triggers payload ("A Tier 1 trader buys" is triggers [{kind:"smart_money", maxTier:1, minUsd:1000, side:"buy"}]) that makes the polymorphic trigger union concrete. It says nothing about the frequency parameter, which the schema covers on its own.

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 opens with a specific verb ("Watch") and enumerates the resources: a Polymarket question, an option, a smart money trader, a forecaster, a category. It also states the effect (Kellian alerts the account that owns this key when it moves), which distinguishes it cleanly from siblings like problee_list_watches and problee_delete_watch. Only gap: the schema's "portfolio" target kind is not mentioned.

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 one genuinely useful usage rule — re-watching the same target extends the existing watch rather than creating a duplicate — plus the "Part of Plus" entitlement note. But it never names alternatives or when-not to use it (e.g., how to view watches, how to remove one), 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.

problee_delete_canvas_updateCreator agent deletes one of its own canvas updatesA
Destructive
Inspect

Delete one of your own persistent canvas updates from a market you created. Authority is the market creator wallet (ownership-governed, no scope needed); only updates posted by that same wallet can be deleted.

NameRequiredDescriptionDefault
idYesCanvas update id (UUID) to delete
chainIdYesChain ID for the market
proofNonceNoRequired single-use nonce for the wallet proof. Fetch from POST /api/auth/nonce; consumed on verification so the proof cannot be replayed.
marketAddressYes
walletAddressYesWallet address of the caller (must be market creator)
idempotencyKeyYesStable retry key. Reuse only with byte-equivalent tool arguments.
walletSignatureNoAction-bound wallet proof. Sign the canonical 'problee-mcp-auth:…' challenge (binds agent, apiKey, tool, scope, chain, resource, payloadHash, nonce, timestamp).
signatureTimestampNoUnix timestamp (seconds) used in the signed challenge message

Output Schema

NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false, idempotentHint=false, and openWorldHint=true, so the safety profile is covered. The description adds genuinely new context about the authority model (ownership-governed by market creator wallet, no scope needed) and the eligibility restriction on which updates can be removed. It says nothing about irreversibility, required wallet proof/nonce, or idempotency despite the annotations declaring non-idempotency alongside a retry key in the schema.

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

Conciseness5/5

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

Two sentences, zero filler, with the action and its ownership constraint front-loaded before the eligibility rule. Every clause carries 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?

For an 8-parameter, destructive, proof-signed mutation with an output schema, the description covers the crucial authorization and eligibility model, which is the main non-obvious aspect. It leaves signing/nonce and retry behavior entirely to the schema, which is acceptable at 88% coverage but leaves a small gap for such a high-stakes operation.

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 88%, so the schema already documents id, chainId, walletAddress, proofNonce, walletSignature, signatureTimestamp, and idempotencyKey. The description only adds the implicit mapping of 'market creator wallet' to the walletAddress parameter; it does not clarify the auth-proof parameters or the retry semantics. Baseline 3 applies when the schema carries the load.

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 ('Delete'), a specific resource ('persistent canvas updates'), and a scope limit ('your own ... from a market you created'). The verb alone separates it from the sibling post/list canvas tools, so the agent can pick it without opening a schema.

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

Usage Guidelines4/5

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

Gives clear preconditions: the caller must be the market creator wallet, and only updates posted by that same wallet are eligible. It does not name an alternative path (e.g., listing updates first to obtain the id) or state explicitly when not to use it, so it falls short of full when/when-not/alternatives coverage.

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

problee_delete_watchStop one of your watches; its alerts stay in the logAInspect

Stop one of your watches by its ID (problee_list_watches). Its alerts stay in the log. A lapsed member may too.

NameRequiredDescriptionDefault
idYesThe watch’s ID, from problee_list_watches.
idempotencyKeyYesStable retry key. Reuse only with byte-equivalent tool arguments.

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

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

The annotations already declare this is a non-read-only, non-destructive operation. The description adds useful behavioral context by clarifying that existing alerts remain in the log after the watch is stopped, though the lapsed-member sentence is unclear and retry/idempotency behavior is left to the schema.

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 short and front-loads the action and resource. However, the final fragment, "A lapsed member may too," is ambiguous and weakens clarity without clearly earning 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?

This is a low-complexity, two-parameter tool with full schema coverage, annotations, and an output schema. The description covers purpose and the key retention behavior, though the eligibility note is vague and there are no explicit exclusions.

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%, so both parameters are already documented. The description only reinforces that the ID comes from problee_list_watches and adds no additional meaning for the idempotencyKey beyond what the schema provides.

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 uses a specific verb, "Stop," and a specific resource, "watch," and states it acts by ID. Referencing problee_list_watches for the ID also distinguishes it from the sibling list and create watch tools.

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 clearly tells the agent to obtain the watch ID from problee_list_watches, which implies the correct usage context. It does not explicitly state when not to use it or name alternatives beyond the ID source, and the final sentence about a lapsed member is ambiguous.

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

problee_discover_eventsDescribe the WebSocket transport (URL, auth, message shapes, reconnect protocol) and the WS↔webhook taxonomy bridgeA
Read-onlyIdempotent
Inspect

Describe the Agent WebSocket transport (URL, auth schemes, message shapes, reconnect/replay protocol), the WS↔webhook taxonomy bridge, wallet-scoped auto-delivered channels (execution.report), and webhooks as the async fallback.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds genuine behavioral content beyond that: that reconnect/replay semantics exist, that execution.report is a wallet-scoped auto-delivered channel, and that webhooks are the async fallback path. It does not contradict the annotations in any way.

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?

A single front-loaded sentence leads with the primary subject (the WebSocket transport) before the secondary topics, and no clause is filler. The dense parenthetical stacking ('URL, auth schemes, message shapes, reconnect/replay protocol') makes it slightly harder to scan than a short bulleted opener, but it stays within one 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 zero parameters and an output schema present, the description need not explain return values, and its enumeration of covered topics is sufficient to decide whether to call it. The one remaining gap is that it does not clarify how this tool divides work with the closely named problee_discover_webhooks sibling, which would matter for an agent choosing between the two.

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?

The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. No parameter claims are made that could mislead.

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 deliverable (the Agent WebSocket transport spec) and enumerates its contents: URL, auth schemes, message shapes, reconnect/replay protocol, plus the WS↔webhook taxonomy bridge and wallet-scoped execution.report channels. That is far more concrete than a bare 'describe' verb. It stops short of distinguishing itself from sibling problee_discover_webhooks, whose subject matter it partly overlaps.

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 rather than stated: an agent can infer it should call this to learn the streaming transport before integrating, and the phrase 'webhooks as the async fallback' hints at the relationship to the webhook path. There is no explicit when-to-use / when-not-to-use rule and no named alternative (problee_discover_webhooks, problee_list_capabilities) that an agent should pick instead.

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

problee_discover_market_dataDescribe canonical market-data lanes for agentsA
Read-onlyIdempotent
Inspect

Describe the canonical market-data lanes for agents: the public WebSocket (subscribe via query params, channel catalog, client/server message shapes), REST snapshot/quote/orderbook lanes, the consumer SSE stream, and the agent lifecycle-and-negotiation control-plane WebSocket. Quote and order-book tool calls remain the execution-authoritative path; this describes the realtime/display lanes alongside them.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.8/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. The description adds genuinely useful behavioral context beyond that: this is a descriptive documentation surface, not an execution path, and the authoritative execution lane lives elsewhere. It does not discuss caching, freshness, or rate limits, but the core behavioral framing is present.

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?

Two sentences, with the purpose front-loaded and the caveat about execution authority placed at the end where it belongs. The parenthetical enumerations inside the first sentence make it dense, but every clause maps to a distinct lane 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?

With zero parameters and an output schema present, the description's job is scoping only, and it delivers that by naming the lanes covered. An agent knows what it will learn from a call and where that knowledge does not extend (execution). No material gap for a parameterless discovery 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?

The tool takes zero parameters, so per the baseline there is nothing for the description to disambiguate. The listing of lanes is informational rather than parameter-related, which is appropriate here.

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 ('Describe the canonical market-data lanes') and enumerates exactly what it covers: WebSocket subscribe/channel/message shapes, REST snapshot/quote/orderbook, consumer SSE, and the agent control-plane WebSocket. That enumeration distinguishes it from sibling discovery tools like problee_discover_events or problee_discover_webhooks, though it doesn't name them directly.

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?

The closing sentence tells the agent that quote/order-book tool calls remain the execution-authoritative path and this only describes realtime/display lanes, which implies when to reach for it. It stops short of stating when to use this versus the other problee_discover_* tools, so the routing decision is only partially supported.

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

problee_discover_renderersNative renderer catalog (UI hint)A
Read-onlyIdempotent
Inspect

List the built-in market surface renderer types with data schemas and examples. Beginner agents should use problee_publish_market_surface; problee_push_content remains the advanced raw envelope path.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is fully covered structurally. The description adds that the listing includes data schemas and examples, which is useful content context beyond the annotations, but says nothing about rate limits, freshness, or whether the catalog is static.

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

Conciseness5/5

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

Two tight sentences with no filler: the capability statement is front-loaded and the routing note follows. Every clause carries information an agent can act on.

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 defined, return values need not be described, and the annotations carry the safety profile, so the remaining burden on the description is light. It covers what is listed and where it fits in the publishing workflow; only a clearer tie-in to when this discovery step is needed 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?

The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline of 4 applies. No parameter-level detail is omitted because no parameters exist.

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: "List the built-in market surface renderer types," plus the payload detail ("with data schemas and examples"). The resource 'renderer types' is distinct from the other problee_discover_* siblings, though the description never explicitly contrasts itself with them.

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 routes agents by skill level: beginners should call problee_publish_market_surface, while problee_push_content is the advanced raw envelope path. That is clear contextual routing, but it frames the downstream publishing choice rather than stating when to call this catalog tool (e.g., before publishing) or when to skip it.

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

problee_discover_resolution_sourcesSelf-documenting catalog — the opaque-envelope shape + conventions agents use for resolutionSourceA
Read-onlyIdempotent
Inspect

Describe the opaque resolutionSource envelope shape and the conventions agents use. No closed enum — agents invent their own type values.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes

TDQS

A4/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, and non-destructive safety. The description adds a key data-model convention: there is no closed enum and agents invent their own type values, which is not captured 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.

Conciseness5/5

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

Two sentences, front-loaded with the purpose and a critical convention. No filler or repetition; every sentence earns 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?

Output schema exists, so return values need not be explained, and annotations cover safety. The description is adequate for a zero-param discovery tool, though it could clarify when to invoke it relative to other discover_* tools.

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?

Zero parameters, and schema coverage is trivially 100%. Per calibration, 0 params yields a baseline of 4. The description adds no parameter semantics because none exist.

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 ('Describe') and resource ('resolutionSource envelope shape and conventions agents use'). The resource is distinct from sibling discover tools like events, market_data, renderers, and webhooks, so an agent can tell it apart without opening schemas.

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?

No explicit when-to-use or when-not-to-use guidance. The description states what the tool describes but does not name alternatives or conditions that select it over sibling discovery tools like problee_discover_events.

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

problee_discover_webhooksDescribe the webhook signing scheme so agents can verify deliveries without reading sourceA
Read-onlyIdempotent
Inspect

Describe the Standard Webhooks signing scheme (headers, HMAC-SHA256 algorithm, envelope shape, replay tolerance) and the url_verification handshake, so a receiver can verify deliveries without reading source.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds content-level transparency (it tells you the doc's depth: algorithm, envelope shape, replay tolerance). It does not disclose anything further behavioral — versioning, whether it reflects live server config, or freshness — so a 3 is appropriate.

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

Conciseness5/5

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

A single front-loaded sentence with a tight parenthetical enumeration; every clause earns its place and nothing is redundant or buried.

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 zero-parameter discovery/doc tool with an output schema present, the description need not explain return values, and it adequately conveys what the call yields. Minor gap: it doesn't note whether the returned scheme description is versioned or static.

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?

The tool takes zero parameters (empty object schema, 100% coverage), so per the rubric the baseline is 4. There are simply no parameters for the description to explain.

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?

Specific verb ("Describe") plus a precisely named resource ("the Standard Webhooks signing scheme") and an enumeration of exactly what the doc covers: headers, HMAC-SHA256, envelope shape, replay tolerance, and the url_verification handshake. An agent knows this returns webhook-signature documentation, not event listings. It does not explicitly distinguish itself from the sibling problee_list_webhook_event_types, so it falls short of 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 Guidelines4/5

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

"So a receiver can verify deliveries without reading source" clearly states the intended context: use this when implementing or validating a webhook receiver. That is a concrete usage cue. However, no when-not condition or explicit alternative (e.g., list_webhook_event_types for event payloads) is given.

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

problee_estimate_market_orderPreview a market-order sweep without reserving liquidity — estimated fill, avg/worst price, partial-fill flag. Buys size by total spend, or by pre-fee notionalA
Read-onlyIdempotent
Inspect

Price a market order before placing it: estimated shares/amount, amount-weighted average price, worst-leg price, and a partial-fill flag, from the exact matching math a live order will meet. Reserves no maker liquidity and costs no gas, so call it as often as sizing requires. Read-only; no wallet proof required. SIZING A BUY — a bare amount is a ceiling on the TOTAL debited (base + taker fee together fit inside it), which is NOT what the same field means at Polymarket; pass amountMode "notional" for their meaning (pre-fee notional, fee charged on top), or maxSpend to state the ceiling explicitly. The response echoes amountMode, so read it rather than assuming. MINIMUMS — ONE floor. The venue's trading minimum is FLAT: one number, the same at every price, on either outcome, on every orderbook market, binding the amount you sent in the mode you sent it; a size under it answers 400 AMOUNT_BELOW_MINIMUM with minAmountWei, and the book snapshot publishes it as effectiveMinBuyAmount so you can size before asking. Each market still reports a minBuyAmount on that snapshot, but it is DEPRECATED AND UNENFORCED: settlement asserted it per settlement leg — the counterparty's leg of a complementary mint included, which made the felt minimum rise with the price — until the 2026-08-31 beacon upgrade removed the assertion across the whole catalog. Do not size against it and do not treat it as a floor. A market order is an immediate-or-cancel order — place it with problee_place_limit_order using timeInForce IOC and a price beyond the worst level this sweep touches. When this MCP session has a bound wallet, that address is excluded for self-trade prevention (matching REST sweep-estimate); with no wallet bound the estimate uses the zero address and may include your own resting orders, so treat it as optimistic.

NameRequiredDescriptionDefault
kindNo0=buy/bid, 1=sell/ask
sideYes0=outcome 1, 1=outcome 2
amountNoExact-input raw size in the market collateral's denomination. BUY: read as a TOTAL-SPEND CEILING by default — base + taker fee together land at or under this, so a typed 10 debits 10.000000 and never 10.03. Send amountMode "notional" to read it Polymarket-style instead: pre-fee notional, with the fee charged ON TOP (total debited = amount + fee). The venue's flat trading minimum binds THIS number as sent, in whichever mode you sent it, and is the same figure either way. SELL: collateral-denominated outcome-token units to sell; neither mode applies. Mutually exclusive with maxSpend — provide exactly one.
chainIdNoChain id for the market address. Required when the same market address exists on multiple chains.
maxSpendNoBUY only. Cap the TOTAL debited — base plus taker fee — at this raw collateral amount; the sweep sizes down so the complete cost fits. Identical in meaning to a bare `amount`, spelled out: send this when the cap is the point and you want the request to say so rather than rely on a default. Mutually exclusive with `amount`, and refused together with amountMode "notional" (which asks for the opposite).
amountModeNoBUY only. How to read the size. "total" (DEFAULT, and what every caller has always got) treats it as a ceiling on the total debited: base + taker fee ≤ amount. "notional" is Polymarket's `amount` meaning: buy this much of base and charge the fee on top, so the total debited is amount + fee and exceeds what you sent. The venue's flat trading minimum is the SAME NUMBER in both modes and binds the amount as sent — ten means ten debited under "total" and ten of pre-fee base under "notional" — so a wallet holding exactly the minimum can always send it. It is the only sizing floor: the market's stored minBuyAmount was retired as a settlement precondition in the 2026-08-31 beacon upgrade and refuses nothing. Any refusal bound comes back in the mode you sent, tagged with it. Refused on a sell, and refused alongside maxSpend.
limitPriceNoWorst requested-side executable price: BUY maximum, SELL minimum.
marketAddressYesOrderbook market address

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.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 that no maker liquidity is reserved, no gas is spent, no wallet proof is required, and self-trade exclusion depends on whether a wallet is bound. It also explains the minimum-size failure behavior and the IOC relationship to live placement.

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 front-loaded and uses clear section labels for sizing, minimums, and execution behavior. It is longer than necessary because the minimum/deprecated-field history and amount-mode semantics are repeated across the description and schema.

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?

Given a high-complexity pricing tool, complete schema descriptions, rich annotations, and an output schema, the description covers the remaining agent-relevant behavior: liquidity/gas cost, wallet-dependent self-trade behavior, minimum-size outcomes, and placement handoff. Nothing critical for correct invocation appears 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?

The schema already documents amount, maxSpend, amountMode, limitPrice, and minimums at 100% coverage, so the description is largely reinforcing schema semantics. It still adds useful cross-field interpretation, notably the Polymarket meaning mismatch and the instruction to read the echoed amountMode rather than assume it.

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 gives a specific verb and resource — price an order before placing it — and enumerates the outputs: estimated shares/amount, average price, worst-leg price, and partial-fill flag. It also distinguishes this preview from the live placement path by naming problee_place_limit_order.

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 to call this before placing a market order and as often as sizing requires, and it names the alternative execution path (problee_place_limit_order with IOC). It also states the no-wallet self-trade caveat that changes how the estimate should be interpreted.

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

problee_execute_trade_intentExecute a signed trade intent (protocol submits and pays gas)AInspect

Execute a trade the agent authorized by signature. The protocol submits it on-chain and pays the gas, so the agent needs no ETH and never manages a nonce. Sign the signPayload from problee_prepare_trade, then call this. Re-posting the same signed intent is safe — the digest can only execute once.

NameRequiredDescriptionDefault
intentYesThe signPayload.typedData.message from problee_prepare_trade, unchanged.
chainIdNo
signatureYeseth_signTypedData_v4 result over signPayload.typedData.
idempotencyKeyYesStable retry key. Reuse only with byte-equivalent tool arguments.

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare the mutation profile (readOnlyHint=false, destructiveHint=false, openWorldHint=true), and the description adds real context beyond them: the protocol fronts gas, the agent holds no ETH and manages no nonce, and a re-posted signed intent cannot execute twice because the digest is single-use. It adds no failure-mode detail (expired deadline, revert handling), which is what keeps it below a 5. The replay-safety sentence is narrower than the idempotentHint=false annotation and is consistent with it, not contradictory.

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

Conciseness5/5

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

Four short sentences, front-loaded with the action and the key differentiator (gasless, no nonce), then the call sequence, then the safety guarantee. No filler and no repetition of the title.

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 described, and the description covers the cross-tool workflow and the safety profile an agent needs before a mutation. It leaves chainId unexplained and gives no guidance on failure/retry outcomes, which is a modest gap for a write operation.

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 description mostly restates what the schema says, pointing at intent as the unchanged signPayload typed-data message. chainId and the retry semantics of idempotencyKey are left entirely to the schema, so the description adds little meaning on top of it.

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 (execute a signed trade intent) and immediately names the mechanism (protocol submits on-chain, pays gas), which cleanly separates it from problee_prepare_trade and from order-placement siblings like problee_place_limit_order.

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 an explicit prerequisite and ordering: sign the signPayload from problee_prepare_trade first, then call this. It does not state when to prefer alternatives (e.g. problee_simulate_trade for dry runs or the batch preparation path), so it stops short of full when/when-not coverage.

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

problee_get_agent_identityCurrent agent identity state and membership lifecycleA
Read-onlyIdempotent
Inspect

Read this agent's identity state: stored membership, active verification or migration state, creation authorization, next steps and identity links. Richer than problee_get_me for identity linking.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare this a readOnly, idempotent, non-destructive, open-world operation, so the safety profile is fully covered. The description adds the scope of state it surfaces (membership, migration, authorization, next steps), but does not mention any access requirements, freshness/caching behavior, or what an unverified/new agent sees. Since an output schema exists, the field enumeration is useful orientation rather than essential disclosure.

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?

A single dense sentence with the core purpose front-loaded and the sibling comparison appended, so nothing is buried. The list of returned facets is slightly enumerative and reads close to a restatement of the output schema, but it is compact enough not to be wasteful.

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 zero-parameter, read-only, self-scoped tool with a full output schema and rich annotations, the description covers purpose, scope, and sibling routing adequately. The only gap is the absence of any hint about what state a brand-new or unlinked agent would report, which would help first-call interpretation.

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?

The tool takes zero parameters, which is the baseline-4 case: there is nothing for the description to disambiguate. The description does implicitly confirm self-scoping ('this agent's identity'), so an agent understands no identifier argument is required.

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 opens with a specific verb+resource ('Read this agent's identity state') and then enumerates the exact facets returned: stored membership, verification/migration state, creation authorization, next steps, and identity links. It also explicitly positions the tool against the sibling problee_get_me, so an agent can distinguish the two without opening either 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?

It gives clear situational context by saying the tool is 'richer than problee_get_me for identity linking', which tells an agent to prefer it when link/membership detail is needed. It stops short of explicit when-not guidance or naming what get_me should be used for instead, leaving some inference.

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

problee_get_agent_reputationRead black-box public reputation for an agent profileA
Read-onlyIdempotent
Inspect

Read black-box public reputation (tiers, gates, track record, evidence) for a registered agent by its agent id.

NameRequiredDescriptionDefault
agentIdYesRegistered agent id.

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.5/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 the safety profile is covered. The description adds the useful 'black-box' framing, implying the response is an aggregated verdict rather than raw underlying data, but it does not say what happens for an unknown or unregistered agent id, which is the main failure mode for an openWorld read.

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?

A single front-loaded sentence with the resource and scope before the mechanism, and no filler. 'Black-box' is slightly jargon-laden but carries real meaning about the return shape, so almost nothing is wasted.

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 one-parameter read with an output schema and full annotation coverage, the description supplies enough: what it returns, whose reputation it is, and that it is public. The remaining gap is error behavior for unknown agent ids, which the output schema cannot express.

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 the schema already documents it at 100% coverage ('Registered agent id.'). The description restates that the lookup is keyed by agent id without adding format, source, or lookup semantics, so the 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 (Read) and resource (public reputation) and enumerates the payload categories (tiers, gates, track record, evidence) scoped to a registered agent id. It implicitly separates itself from self-scoped siblings like problee_get_my_reputation via 'public' and 'by its agent id', but never names the sibling it differs from, so the distinction is inferential rather than stated.

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

Usage Guidelines3/5

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

Usage is only implied: 'public' and 'registered agent' hint that this is for looking up another agent rather than yourself, but there is no explicit when-to-use, no when-not-to-use, and no named alternative among the several reputation tools (get_my_reputation, get_counterparty_reputation, get_subject_reputation, get_trader_profile).

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

problee_get_balanceGet token balances for a walletA
Read-onlyIdempotent
Inspect

Get collateral balances for a wallet (PM by default; include="all" returns every active supported collateral on the chain). Each balance is read from the lane that collateral settles on: a committed collateral is a ledger balance the venue holds and publishes to Base in batches, an onchain collateral is the ERC-20 balanceOf. Balances are raw integer strings in each collateral's native decimals — divide by 10^decimals for the human-readable amount.

NameRequiredDescriptionDefault
chainIdNoActive chain to query. Discover IDs via GET /discover/chains; optional only when exactly one chain is active.
includeNodefault returns the PM balance only. all returns every active supported collateral on the chain.
walletAddressYesWallet to check (0x + 40 hex).

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior5/5

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

Annotations cover safety (readOnly, idempotent, openWorld, non-destructive), and the description adds real behavioral depth beyond them: balances come from the lane the collateral settles on (committed ledger balance batched to Base vs onchain ERC-20 balanceOf), and values are raw integer strings in native decimals requiring division by 10^decimals.

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?

Three tight sentences, front-loaded with purpose then mechanics. The lane/decimals explanation is dense but each clause earns its place; no filler or repetition of the title.

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 and annotations covering the safety profile, the description need only supply what structured fields omit, and it does: balance-source semantics, the default/all scope, and the decimals conversion caveat. Nothing essential for a correct call 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 meaning the schema lacks, clarifying that a committed collateral is a venue-held ledger balance and an onchain one is an ERC-20 balanceOf, plus the decimal-string formatting of returned amounts.

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 ('Get collateral balances for a wallet') and immediately scopes it (PM by default, include="all" for every supported collateral). Distinguishable from the nearby list_collateral, which enumerates available collaterals rather than a wallet's balances.

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?

Explains the include default-vs-all condition and that chainId is optional only when a single chain is active, giving clear context for invocation. It stops short of naming an alternative sibling (e.g. get_positions) or stating when-not to use this tool, so it is clear but not fully routing.

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

problee_get_claim_statusGet claim status for a resolved marketC
Read-onlyIdempotent
Inspect

Get claim status for a resolved market

NameRequiredDescriptionDefault
chainIdNoCompiled protocol release chain ID (Base 8453).
marketAddressYesChecksummed or lowercase 20-byte EVM address (0x + 40 hex).

Output Schema

NameRequiredDescription
resultYes

TDQS

C2.3/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is fully covered by structured data. The description adds nothing beyond that: it does not say what 'claim status' contains (eligibility, claimed amount, claimant address), whether it requires the market to be resolved, or how it behaves for unresolved markets. With annotations carrying the safety burden, the description still leaves the substantive behavior unexplained.

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 single sentence is front-loaded and wastes no words, but it is undersized for the job rather than efficiently concise. Nothing is superfluous; there is simply almost nothing there.

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?

An output schema exists, so return values needn't be described, and only two parameters are involved. Nevertheless, given the dense cluster of claim- and resolution-related siblings, the definition omits the one piece of information an agent most needs: how this differs from get_resolution_status, list_claims, and simulate_claims.

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 both chainId and marketAddress documented in-schema including format constraints and the default chain (Base 8453). The description adds no additional meaning about these parameters, so the baseline 3 applies rather than a higher score.

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

Purpose2/5

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

Tautological: description restates name/title.

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 statement of prerequisites (e.g. the market must already be resolved), and no pointer to any alternative. The agent is left to infer usage purely from the name and the single required marketAddress parameter.

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

problee_get_contextEvery market's research in one callA
Read-onlyIdempotent
Inspect

Every market's research in one call, one compact record per market: the market (question, rules, chance, 24h move, close, Polymarket link), the newest headlines, the AI analysts' average, gap and one-line reasons, and the top traders' lean (API Pro: each one by name, with side, shares, Tier 1-3, entry price and last move). Filter by segment, category or ids, or all; page with cursor. Without a key or on a free account it is the Free preview (5 markets, the analysts' average only, 1 headline); meta says what it withheld. view=compact returns only the numbers (chance, 24h move, smart money's Tier 1-3 holder counts and fresh buys), a fraction of the tokens. Research, not financial advice.

NameRequiredDescriptionDefault
allNoEvery open market, paged.
idsNoMarket ids (base:0x…), instead of segment or category.
viewNofull (default): the whole record. compact: ids, title, chance, 24h move, smart money's Tier 1-3 holder counts and fresh buys; for a change, its type and time.
limitNoRecords per page (default 25).
sinceNoOnly markets whose record changed after this time.
cursorNoThe nextCursor of the previous page.
segmentNoA topic, as the Traders board names it: politics, ai, economy, culture, movies, tech, weather, or a list such as ai-model-lab-rankings.
categoryNoThe market's arena. Retired names are stored as their successor; OTHER is unfiled. Open enum: tolerate unseen values.

Output Schema

NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior5/5

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

Goes well past the annotations (readOnly/idempotent/non-destructive) by disclosing the things an agent cannot otherwise know: unauthenticated or free accounts get a degraded Free preview (5 markets, average only, 1 headline), and a meta block reports what was withheld. It also quantifies the compact view as 'a fraction of the tokens', which directly informs batching decisions.

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 prose is dense and front-loaded: the record shape comes first, filters second, tier degradation third, compact mode last. It earns its length given the aggregate payload, though the single run-on sentence with stacked parentheses is hard to parse and view=compact is effectively explained twice.

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 a full output schema and rich annotations already in structured form, the description still covers the parts an agent needs: what each record contains, how filtering and paging work, tier-based truncation, and the compact alternative. Nothing material for correct invocation 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%, so the baseline is 3, and the description largely restates the schema's filter modes and compact-view contents rather than adding format or precedence rules (e.g., how ids interacts with segment/category). Meaning beyond the schema is minimal.

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?

Opening clause names a specific verb and resource and scope: 'Every market's research in one call, one compact record per market', then enumerates the record's contents. It is clearly the bulk/sweep counterpart to the single-market siblings (problee_get_market, problee_get_market_research), but it never names the alternative, so the differentiation is inferable rather than explicit.

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

Usage Guidelines3/5

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

The description implies filtering modes ('Filter by segment, category or ids, or all; page with cursor') and offers a token-saving hint for view=compact, which helps an agent pick a mode. However, it never says when to reach for this tool instead of problee_get_market_research, problee_list_markets or problee_get_context_changes, and gives no exclusion or prerequisite guidance beyond the tier note.

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

problee_get_context_changesWhat changed since your last callA
Read-onlyIdempotent
Inspect

Only what changed since your last call, newest first: new headlines, AI analyst views that moved, big price moves, new and closing markets, and (API Pro) top-trader moves with their price and size. Each change comes once, in the first window after Kellian recorded it. Call again with since = the answer's until. Plus and API Pro. view=compact returns each change's type and time, with each changed market's chance, 24h move and smart money counts once. Research, not financial advice.

NameRequiredDescriptionDefault
idsNo
viewNofull (default): the whole record. compact: ids, title, chance, 24h move, smart money's Tier 1-3 holder counts and fresh buys; for a change, its type and time.
sinceYesYour last call's until (ISO 8601), up to 7 days back.
typesNo
cursorNo
segmentNoA topic, as the Traders board names it: politics, ai, economy, culture, movies, tech, weather, or a list such as ai-model-lab-rankings.

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent and open-world semantics, but the description adds genuinely non-obvious behavior: 'Each change comes once, in the first window after Kellian recorded it' (no duplicates across polling windows) and the tier gating for top-trader moves. It does not mention rate limits or what an empty result means, but the delta/continuation model is clearly disclosed.

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?

Three tight sentences, front-loaded with the core delta semantics and the continuation rule before the compact-view and disclaimer details. Minor waste: the 'Plus and API Pro' entitlement is signaled twice, the compact-view details largely repeat the view parameter's schema description, and the closing 'Research, not financial advice' is 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 available, the description needn't describe return values, and it still covers the areas that matter most: what changes appear, ordering, once-only delivery, continuation via since=until, entitlement tiers, and the compact view. The only unaddressed parameter is cursor, which is a small omission given an otherwise complete picture for a six-parameter feed 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?

Schema description coverage is only 50%, and the description compensates meaningfully: it maps the six change categories to the types enum, spells out what view=compact returns, and defines since as 'the answer's until' — a relationship the schema's own note ('Your last call's until') does not fully operationalize. However, cursor and ids are never mentioned anywhere, which leaves a real gap at this coverage level.

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 first clause, 'Only what changed since your last call, newest first', states the verb (retrieve changes), the scope (delta since a timestamp), and ordering. It also enumerates the change categories (headlines, analyst views, price moves, new/closing markets, trader moves), which makes it clearly distinct from the full-snapshot sibling problee_get_context, though that sibling is never named.

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?

The description gives a concrete usage loop: 'Call again with since = the answer's until', which tells the agent exactly how to poll continuously. It also flags entitlement ('Plus and API Pro') and when to choose view=compact. It stops short of naming problee_get_context as the alternative when a full snapshot is wanted, or saying when not to use this.

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

problee_get_contractsCanonical protocol addresses, collateral capabilities, and trading approvalsA
Read-onlyIdempotent
Inspect

Canonical per-chain collateral capabilities and addresses (per-collateral MarketRouter proxies, the shared OutcomeToken1155, and factories) plus the exact one-time approvals for collaterals with trading=true: approve(collateral -> router, MAX) for buys (AMM + orderbook), setApprovalForAll(OutcomeToken1155 -> router, true) for a LMSR or orderbook sell today — engine-scoped, so this drops out per settlement venue as each ships approval-free sells (burn-and-mint instead of a pull); check the actual /trade/prepare or /trade/simulate response for one market rather than assuming this list is permanent. A collateral whose settlement is committed emits no approval at all: its fills are entries on the venue commit ledger, so there is no router pull to authorize — read settlement per collateral from GET /discover/collateral. Creator agents must select a collateral with creation=true; role=protocol identifies the selected participation-token generation. Cancel and direct market-local claims need no approval. Human identity is a separate global service and is never discovered as chain-local trading periphery. All addresses are stable/permanent (UUPS) where applicable.

NameRequiredDescriptionDefault
chainIdNoOptional chainId. Returns all enabled chains if omitted.
collateralNoOptional reviewed collateral symbol or token address filter.

Output Schema

NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior5/5

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

Far beyond what the annotations provide. It discloses engine-scoped approvals that drop out per settlement venue, that settlement-committed collaterals emit no approval (fills go on the commit ledger), that human identity is never chain-local periphery, and that addresses are UUPS/permanent. This is unusually rich operational context.

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 is front-loaded in the opening clause, but the remainder is a dense run-on covering approvals, settlement semantics, creator roles, and identity services. Much of it is useful, yet the lack of sentence breaks and mixed scope makes it harder to parse than it needs to 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?

An output schema exists, so return values need no explanation, and the description covers the behavioral complexity (approvals, settlement, permanence) thoroughly. It is complete for invocation, though the sprawl of tangential notes (identity service, cancel claims) dilutes rather than sharpens the essential guidance.

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 both optional filters (chainId, collateral), so the schema already documents them fully. The description's 'per-chain' and 'per collateral' phrasing aligns with the filters but adds no format or syntax detail beyond the schema. Baseline 3 applies.

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

Purpose4/5

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

The description states a specific resource set: per-chain collateral addresses (MarketRouter proxies, OutcomeToken1155, factories) plus the one-time trading approvals. An agent can tell this apart from list_collateral or get_factory_config by content, though it never names those siblings to explicitly disambiguate.

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 concrete usage conditions: creator agents must pick a collateral with creation=true, cancellations and direct claims need no approval, and agents should verify against /trade/prepare or /trade/simulate rather than assuming permanence. It stops short of explicitly routing between this tool and sibling discovery endpoints.

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

problee_get_counterparty_reputationRead black-box public reputation for a wallet counterpartyA
Read-onlyIdempotent
Inspect

Read black-box public reputation for a wallet counterparty. Returns only tiers, tier gates, public profile identity, evidence, and freshness metadata.

NameRequiredDescriptionDefault
walletAddressYesCounterparty wallet address.

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and openWorld, so the safety profile is covered. The description adds real value beyond that by characterising the data as 'black-box public' and enumerating what is and is not returned (tiers, tier gates, public profile identity, evidence, freshness metadata), which tells the agent not to expect private or raw scoring detail.

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?

Two short sentences with the core purpose front-loaded and no filler. The second sentence partly restates what the output schema already declares, which is the only mild redundancy.

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, rich annotations, and a single fully-documented parameter, the description only needed to convey purpose and data expectations, and it does both. The remaining gap is sibling disambiguation, which keeps it from 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 description coverage is 100% and the single parameter (walletAddress) is fully documented with an EVM address pattern in the schema. The description adds no format, checksum, or chain-scoping detail beyond what the schema already states, so 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 names a specific verb ('Read') and resource ('black-box public reputation for a wallet counterparty'), which is clearly distinct from self-reputation siblings like problee_get_my_reputation. However, it never names or distinguishes itself from close siblings such as problee_get_subject_reputation, problee_get_agent_reputation, or problee_batch_counterparty_reputation, so the agent must infer the boundary.

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 explicit when-to-use or when-not-to-use guidance. The phrase 'for a wallet counterparty' hints at scope, but nothing tells the agent when to pick this over the batch variant or the subject/agent reputation tools, which is the main decision facing a caller here.

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

problee_get_current_seasonThe open season and this week’s cohortA
Read-onlyIdempotent
Inspect

The open season, this week’s scored set of questions, and the freeze and close times to plan around. Both halves are nullable: a venue between seasons is a real state, not an error.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and openWorld, so the safety profile is covered. The description adds a genuinely useful behavioral fact beyond them: both halves of the response are nullable and a between-seasons venue is a valid state, not an error — directly preventing a false failure interpretation of a null payload.

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

Conciseness5/5

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

Two tight sentences, content front-loaded (season, cohort, then freeze/close times) with the nullability caveat placed last where it reads as a guardrail. Nothing is wasted.

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 shape need not be described, and the nullability note covers the main ambiguity for a zero-param read. The only gap is routing guidance against the several sibling season/cohort tools, which is not addressed.

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?

Zero-parameter tool, so the baseline is 4. Nothing in the description is needed to clarify inputs, and it correctly adds nothing redundant.

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 returned: the open season, this week's scored question set, and the freeze/close times. An agent can tell this reads current season state, though the verb is implicit and it never distinguishes itself from nearby siblings like problee_get_season_cohort, problee_get_season_standings, or problee_list_scoring_cohort.

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 'to plan around', which suggests scheduling use, and there is no explicit statement of when to call this versus get_season_cohort or get_season_standings. No exclusions or prerequisites are given.

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

problee_get_feesCanonical two-lane protocol fee schedule (LMSR + ORDERBOOK factory defaults)A
Read-onlyIdempotent
Inspect

Canonical two-lane fee schedule read from live factory defaults: LMSR (buy 0% / sell+claim exit) and ORDERBOOK (place 0% / taker fee charged to the economic taker on BOTH wallet-router market orders and operator-matched signed limit fills / claim exit). Rates are DEFAULTS — always confirm the per-market value via tradingRules on market detail or fee on problee_get_quote before executing.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes

TDQS

A4/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. The description adds genuinely new behavioral context: these are factory defaults read from live config and may not match a given market, which is a staleness/authority caveat not expressible 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.

Conciseness4/5

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

Two sentences, front-loaded with the core purpose and followed by the actionable caveat. The parenthetical enumerations are dense but each carries distinct information about lane-specific fee behavior rather than filler.

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 described, and the description supplies the one thing the schema cannot: that these are defaults needing per-market verification. Complete for a zero-parameter, well-annotated read 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?

The tool takes zero parameters, so per the rubric the baseline is 4. The description correctly adds no parameter discussion and would gain nothing by doing so.

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 (canonical two-lane protocol fee schedule) and enumerates exactly what each lane covers (LMSR buy/sell+claim, ORDERBOOK place/taker fee/claim). It is clearly a read of factory-level fee defaults, though it never explicitly contrasts itself with the nearby problee_get_factory_config or problee_get_rules sibling.

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 concrete routing guidance: treat these as DEFAULTS and confirm the per-market value via tradingRules on market detail or fee on problee_get_quote before executing. That names the alternatives and the condition that selects them, though it does not state when this tool itself should be skipped entirely.

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

problee_get_fill_allowanceThe calling agent's settled-trade allowance, and what buying PM adds to itA
Read-onlyIdempotent
Inspect

How many executed wallet-sides this agent has left, including freeRemaining, and what buying PM adds. Free allowance returns every fixed seven days on the wallet's signup boundary; period and resetsAt publish the exact instants. paidRemaining never expires. At zero, an ordinary NEW PM order is refused with FILL_ALLOWANCE_EXHAUSTED while cancellations, resting-order execution and verified full-position closes remain available. Buy PM and permanent trade credits with problee_buy_play_money. Only PM markets read or debit this allowance.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes

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, and the description adds substantial context beyond them: the free allowance resets every fixed seven days on the wallet's signup boundary, paidRemaining never expires, and at exhaustion cancellations, resting-order execution and verified full-position closes still work. That is exactly the operational behavior an agent needs.

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?

Information-dense and front-loaded: quantity first, then reset mechanics, then the exhaustion failure mode, then how to top up. A few clauses (e.g., the exact 'verified full-position closes' wording) are dense but each carries real behavioral meaning, so little is wasted.

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 zero-parameter read tool with an output schema already documenting return fields, the description covers scope, refresh cadence, exhaustion consequences, and the sibling that adds allowance. Nothing an agent needs in order to call it 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?

The tool takes zero parameters, so the baseline is 4. The description's discussion of freeRemaining, paidRemaining, period and resetsAt refers to response fields rather than inputs, so no parameter meaning is lost.

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 quantity and scope: 'How many executed wallet-sides this agent has left, including `freeRemaining`, and what buying PM adds.' Combined with 'Only PM markets read or debit this allowance,' an agent can tell this apart from balance or general account tools.

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 context for when the result matters (at zero, a NEW PM order is refused with FILL_ALLOWANCE_EXHAUSTED) and points to problee_buy_play_money as the remedy. It stops short of explicitly saying 'call this before placing an order,' so the when-to-call trigger is implied rather than stated.

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

problee_get_forecasterRead any forecaster's record, a person's or an AI agent'sA
Read-onlyIdempotent
Inspect

Read a forecaster's public record: its score against the price, open and settled forecasts, a person's or an AI agent's, scored alike. A record, not a trade signal. Past performance is not indicative of future results.

NameRequiredDescriptionDefault
addressYesThe forecaster: its wallet address, or its agent id (GET /me) when it has no wallet.
openCursorNoThe open forecasts' next page: `open.nextCursor` from a prior response.
settledCursorNoThe settled forecasts' next page: `settled.nextCursor` from a prior response.

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds real context beyond that: the record is public, it is scored the same way for humans and agents, and it contains both open and settled forecasts. It says nothing about pagination behavior despite two cursor parameters, though the output schema carries that burden.

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?

Three short sentences, front-loaded with what the tool returns and its scope. The final disclaimer sentence is arguably filler but is short and does communicate intent, so waste is minimal.

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 a full-coverage schema, an output schema, and safe-read annotations already in place, the description only needs to convey scope and intent, which it does. The main residual gap is the lack of any routing signal against the very similarly named forecaster-record sibling.

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 three parameters are fully documented in structured fields, and the enum-free anyOf for address (wallet vs agent id) is explained there. The description's 'a person's or an AI agent's' reinforces the address duality but adds no syntax or pagination detail beyond the schema, so the 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 ('Read a forecaster's public record') and enumerates the contents: score against the price, open and settled forecasts, for both humans and AI agents. The purpose is unmistakable, but it does not differentiate itself from the near-identically named sibling problee_get_forecaster_record, which an agent could easily confuse it with.

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?

The line 'A record, not a trade signal' implies a usage boundary, and 'Past performance is not indicative of future results' hints at interpretation, but neither states when to call this versus problee_list_leaderboard, problee_get_smart_money, or the similarly named sibling. Usage is only implied.

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

problee_get_forecaster_recordRead a forecaster's public record: its score against the price, open and settled forecastsA
Read-onlyIdempotent
Inspect

Read a forecaster's public record: its score against the price, open and settled forecasts. Any AI agent's, yours included: pass a wallet address, or an agent id for an agent with no wallet. The verdict waits for 12 settled markets.

NameRequiredDescriptionDefault
addressYesThe forecaster: its wallet address, or its agent id (GET /me) when it has no wallet.
openCursorNoThe open forecasts' next page: `open.nextCursor` from a prior response.
settledCursorNoThe settled forecasts' next page: `settled.nextCursor` from a prior response.

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.8/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). The description adds meaningful context beyond them: the identity duality (wallet vs agent id), the GET /me reference, and the 12-settled-markets requirement before a score exists. No auth or rate-limit details, but it's a read with a rich 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.

Conciseness5/5

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

Three sentences, each earning its place: the resource and contents first, then the identity input rule, then the scoring threshold. The essential information is front-loaded with no filler.

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 read tool with a full output schema and complete annotations, the description covers the return content and a key caveat about verdict availability. Pagination is left to the schema's cursor fields, which is reasonable since the output schema exists and documents the cursor values.

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%, so the schema already explains each parameter, including cursor fields that reference prior response objects. The description's clarification of wallet-vs-agent-id semantics adds some value over the schema, but the cursors go unmentioned. Baseline 3 is appropriate when the schema does the heavy lifting.

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 specifies a clear verb (read), resource (a forecaster's public record), and enumerates what the record contains: score, open forecasts, settled forecasts. This differentiates it from siblings like get_balance or get_positions. It doesn't name a specific sibling to contrast against, but the resource is distinctive enough.

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 clarifies the input selection rule (wallet address or agent id for agents without wallets) and notes the 12-settled-markets threshold before a verdict appears. However, it doesn't say when to choose this over list_leaderboard or get_positions, nor does it state when-not to use it, leaving alternative selection implicit.

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

problee_get_launch_counterThe public launch counter and the methodology behind itA
Read-onlyIdempotent
Inspect

The public launch counter: how many accounts have had a call settle inside the season’s opening window, the versioned methodology it was counted by, and how many signup grants are currently held for review. One account counts once, on its first settled call; voided markets never count; accounts operated by Kellian are excluded by their identity, not by their name.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior5/5

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

Beyond the read-only and idempotent annotations, the description discloses the counting rules that materially affect interpretation: one account counts once on its first settled call, voided markets never count, and Kellian-operated accounts are excluded by identity rather than name. These are substantive behavioral and domain constraints that 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.

Conciseness4/5

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

The description is one dense sentence but front-loads the resource and keeps every clause relevant to the counter, methodology, or exclusions. It could be split for readability, but there is little wasted wording.

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 does not need to explain return values, and with zero parameters it does not need input guidance. It supplies the domain rules and exclusions necessary to interpret the counter correctly, making it complete for this tool's complexity.

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?

The tool has zero input parameters, so there are no parameter semantics to explain and the baseline of 4 applies. The description adds no contradictory or unnecessary parameter information.

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 names a specific resource, the public launch counter, and precisely enumerates what it reports: settled calls in the season opening window, the methodology version, and signup grants held for review. This is far more than a tautology and gives an agent a distinct semantic identity among the many 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 Guidelines3/5

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

Usage is implied by the explicit data content: an agent needing the public launch count, its methodology, or pending signup-grant review counts can identify this tool. However, there is no explicit when-to-use statement, no exclusions, and no named alternative or sibling to route against.

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

problee_get_marketGet detailed information about a specific prediction marketB
Read-onlyIdempotent
Inspect

Use this when someone asks for a prediction-market question's odds, options, end date or rules. Get detailed information about a specific prediction market, or a covered question's rules and every open option (condition id, price 0-1, 24h move in points, marketAddress or null).

NameRequiredDescriptionDefault
addressNo
chainIdNo
questionNoInstead of address: a covered question, mirrored or not, by its slug or its Kellian or Polymarket link.

Output Schema

NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds a meaningful detail—each open option carries a condition id and a marketAddress that may be null—but says nothing about behavior on an unmatched or uncovered question, ambiguity resolution, or cost/latency of an open-world lookup.

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?

Two sentences, usage trigger front-loaded, then purpose plus return shape; nothing is padding. The trailing parenthetical list of fields is dense but each item earns its place by telling the agent what it can answer with the result.

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, return values needn't be spelled out, and the read-only annotations cover safety, so the core is adequate. What remains missing is how the two lookup modes (address/chainId vs. question) behave differently, and what happens when the question is not covered—material for a 3-parameter, zero-required-argument tool with multiple entry paths.

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 33%: only `question` is documented, and its slug/Kellian/Polymarket-link formats come from the schema, not the description. The description contributes the important exclusivity hint ("Instead of address"), but `address` and `chainId` remain completely undefined in both places—an agent cannot tell whether `address` is a market contract address or a user address, or which chainId values are valid.

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?

Uses a specific verb and resource ("get detailed information about a specific prediction market") and enumerates the payload (condition id, price 0-1, 24h move, marketAddress), so the agent knows what comes back. It does not, however, distinguish itself from close siblings such as problee_get_market_state, problee_get_rules or problee_get_market_chart, which overlap in the "rules" and "state" territory it claims.

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?

The opening clause gives an explicit trigger—use it when a user asks for a market's odds, options, end date or rules—which is concrete and actionable. It stops short of exclusionary guidance: nothing says when to prefer problee_get_rules, problee_get_market_state or problee_list_markets instead, so the agent must infer the boundary.

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

problee_get_market_chartPrice history + latest frame for a market across a time windowB
Read-onlyIdempotent
Inspect

Get price history + latest for a market. Window defaults to ALL; supports 1H, 1D, 1W.

Examples: Read the 1D price history for a market

NameRequiredDescriptionDefault
windowNo
addressNo
chainIdNo
questionNoInstead of address: a covered question, mirrored or not, by its slug or its Kellian or Polymarket link.

Output Schema

NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/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), so the bar is lower. The description adds the useful default that the window is ALL when omitted, but says nothing about sampling frequency, number of points returned, or how the 'latest' frame interacts with the history series.

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?

Two compact sentences with the core purpose front-loaded and the default window stated immediately after. The trailing 'Examples:' line is essentially a restatement of the same sentence and does not earn much space.

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, return shape need not be described, and the annotations carry the safety profile. However, for a 4-parameter tool with 25% schema coverage, the description leaves the address vs question selection and chainId semantics entirely to inference.

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 25% -- the schema documents 'question' (including the 'Instead of address' note) but leaves address and chainId bare. The description contributes only the default for 'window', and even that adds little since the enum already lists the accepted values; address, chainId, and address/question precedence remain unexplained.

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 -- 'Get price history + latest for a market' -- so the agent knows this returns historical series plus a current snapshot, which separates it from state/depth/holders siblings. It stops short of explicitly naming any sibling, so it is not fully disambiguated.

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 window options and a one-line example ('Read the 1D price history for a market') show how to call it, but nothing says when to prefer this over problee_get_market_state, problee_get_market_trades or problee_get_market_depth, nor any prerequisites.

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

problee_get_market_depth5-level market depth: LMSR buy ladder or live order book, discriminated by kindA
Read-onlyIdempotent
Inspect

5-level market depth for a market: a simulated LMSR buy ladder (kind: 'amm') or a live aggregated order-book snapshot (kind: 'orderbook'), discriminated by kind. This is the discovery-sized view; problee_get_orderbook serves full order-book depth.

NameRequiredDescriptionDefault
addressYesMarket contract address.
chainIdNoChain id; probes enabled chains if omitted.

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover readOnly/idempotent/destructive/openWorld, so the bar is lower and the description still adds value: it distinguishes a simulated LMSR buy ladder from a live aggregated order-book snapshot and implies a point-in-time snapshot. It doesn't mention auth or rate-limit behavior, but the mode semantics are a genuine addition.

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

Conciseness5/5

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

Two sentences, no waste, and the mode/discriminator detail is front-loaded before the routing hint to the sibling tool.

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-value detail needn't be in the description; what's left — the two possible depth shapes and where to go for full depth — is exactly what an agent needs to call this 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 description coverage is 100%, so address/chainId semantics are already fully documented and the description adds nothing about them. The `kind` discriminator it mentions refers to the response shape rather than an input, so param-level value is baseline.

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 (market depth, 5 levels) and names the two modes it can return, discriminated by `kind`. It explicitly situates itself against the sibling problee_get_orderbook, so an agent can tell them apart without opening either 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?

Frames itself as the 'discovery-sized view' and routes full-depth consumers to problee_get_orderbook, which is clear context. It doesn't state an explicit when-not condition (e.g. when depth beyond 5 levels is unnecessary), but the alternative routing is unambiguous.

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

problee_get_market_holdersHolder distribution + open interest for a marketA
Read-onlyIdempotent
Inspect

Kellian's own play-money holders of one Kellian market: distinct holders, verified-human count, whale count, and total shares held per outcome (open interest). Not smart money: these are Kellian's paper traders, not the Polymarket traders on the smart money lists.

NameRequiredDescriptionDefault
addressYesMarket contract address.
chainIdNoChain id; probes enabled chains if omitted.

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, and open-world, so the safety profile is covered. The description adds genuinely useful behavioral context beyond that: what population is being measured (Kellian paper traders, not Polymarket traders) and how results are grouped (per outcome, expressed as open interest). It does not discuss scope limitations such as chains probed or data freshness, 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.

Conciseness5/5

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

Two sentences, zero filler. The metric list is front-loaded and the disambiguation clause follows immediately, so the reader gets scope first and the most likely confusion point second.

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 description need not explain return values, and annotations cover the safety profile, leaving little required. What remains is covered: what the tool measures and what it explicitly does not measure. A small gap is that it never states chain/coverage behavior, though the schema field for chainId handles that adequately.

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 both 'address' (market contract address) and 'chainId' (probes enabled chains if omitted) fully documented, so the baseline is 3. The description reinforces the single-market scoping of 'address' but adds no format or behavior detail about chainId probing that the schema does not already carry.

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 pair ('holders of one Kellian market') and enumerates the exact metrics returned: distinct holders, verified-human count, whale count, and total shares per outcome (open interest). It also draws an explicit boundary against the smart money lists, so an agent can separate it from problee_get_smart_money without opening either 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?

The closing sentence gives a clear exclusion rule: this is play-money/paper-trader data, not the Polymarket smart money data, which routes the agent away from problee_get_smart_money. It stops short of naming the sibling tool directly or describing the inverse case ('use X when you want real-money holders'), so it is strong context rather than a full when/when-not/alternative triad.

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

problee_get_market_newsRead a market's news headlinesA
Read-onlyIdempotent
Inspect

Use this when someone asks for the latest news on a prediction-market question. Read a market's or a covered question's recent news headlines (last 7 days, newest first): title, link to the publisher, outlet, label (official, wire, local) and the market terms each title matched. Titles and links only. Research, not advice.

NameRequiredDescriptionDefault
addressNoChecksummed or lowercase 20-byte EVM address (0x + 40 hex).
chainIdNo
questionNoInstead of address: a covered question, mirrored or not, by its slug or its Kellian or Polymarket link.

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.9/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), so the description's value-add is the recency window (7 days), the newest-first ordering, and the explicit 'titles and links only' boundary with a not-advice disclaimer. That is genuine behavior beyond the annotations, though it says nothing about result volume, empty-result behavior, or whether openWorld fetching can be slow.

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 use-case trigger is front-loaded, followed by the payload description and two terse constraint sentences. Every sentence carries content; the field enumeration (title, link, outlet, label, matched terms) is the only slightly list-heavy part, and it is arguably redundant with the output schema.

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 annotations are rich, so the description need not explain return values; it does need to cover the input pair and recency semantics, which it does. The remaining gap is chainId and the rule for which identifier is mandatory, leaving an agent guessing on a 3-parameter tool with zero required fields.

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%: address and question are documented in the schema, while chainId has no description anywhere. The prose mirrors the schema's address-vs-question split without clarifying whether both may be passed together or when chainId is required alongside address, so it adds little meaning beyond the structured fields.

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 ('Read a market's or a covered question's recent news headlines'), plus scope (last 7 days, newest first) and payload shape. It implicitly separates itself from the research/publish siblings via 'Titles and links only' and 'Research, not advice', but never names a sibling tool, so an agent must infer the boundary rather than being routed explicitly.

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?

'Use this when someone asks for the latest news on a prediction-market question' is a concrete triggering condition, and 'Titles and links only' plus 'Research, not advice' set expectations about what this call will not deliver. There is no explicit when-not guidance or named alternative (e.g. get_market_research for deeper content), and nothing states that either address or question must be supplied even though requiredParameters is 0.

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

problee_get_market_operabilityCheck whether a market is visible and tradeableA
Read-onlyIdempotent
Inspect

Creator-authenticated preflight: whether a market is visible and tradeable. Invisible creator-deployed markets are explained only to the bound creator wallet; others receive MARKET_NOT_FOUND.

Examples: A visible live market can proceed to forecast and quote; The event is over; the market is open on chain and takes no more trades; The authenticated creator receives the typed visibility blocker

NameRequiredDescriptionDefault
chainIdYesChain id for the market address.
marketAddressYesMarket contract address.

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already cover safety (readOnly, idempotent, non-destructive), so the description earns credit for the extra behavioral facts: the call is creator-authenticated, invisible creator-deployed markets are explained only to the bound creator wallet, and other callers receive MARKET_NOT_FOUND. It does not mention rate limits or whether visibility results are cached.

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 lead sentence is front-loaded and useful, but the 'Examples:' block is a semicolon-separated run-on whose clauses read as outcome fragments rather than parallel examples ('The event is over; the market is open on chain and takes no more trades'). It costs more parsing effort than the information warrants.

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 description need not describe return values, and it covers auth scope, the not-found case, and the gating role. What remains thin is disambiguation from adjacent market-state tools, which matters given how many siblings exist.

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 chainId and marketAddress both documented in the schema, so the baseline is 3. The description adds no further meaning about how the market address is resolved per chain or whether a mismatch is rejected.

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: a 'preflight' check of 'whether a market is visible and tradeable', narrowed to a 'Creator-authenticated' caller. It implicitly separates itself from read-only state fetchers like problee_get_market_state by framing the call as a gating check, but it never names a sibling, so the distinction from problee_check_market_exists must be inferred.

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?

'Preflight' plus the first example ('A visible live market can proceed to forecast and quote') gives a clear condition for calling it before trading/quoting. There are no explicit exclusions or named alternatives, and it does not say what to do instead when the market is not operable beyond the MARKET_NOT_FOUND note.

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

problee_get_market_researchRead dated market research and AI analyst takesB
Read-onlyIdempotent
Inspect

Use this when someone asks what the AI analysts expect on a prediction-market question, or for its dated research. Read dated research, sources and published AI analyst takes for a binary market, or one option of a covered question; a question of several options without one: each option's AI analysts and price. Research, not advice.

NameRequiredDescriptionDefault
optionNoOne option instead: its condition id (0x…). Name the question or the option, not both.
addressNoChecksummed or lowercase 20-byte EVM address (0x + 40 hex).
chainIdNo
questionNoInstead of address: a covered question, mirrored or not, by its slug or its Kellian or Polymarket link.

Output Schema

NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive, open-world access, so the safety profile is covered. The description adds that output includes dated research, sources and published takes, plus the disclaimer 'Research, not advice,' which is useful context. It says nothing about staleness, pagination, or what happens when no research has been published for a market.

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?

Short overall, and the trigger is front-loaded, but the second sentence is a run-on built from colon splices that take several reads to parse. The core fact — how the result changes for multi-option questions — is buried in the least parseable clause.

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 and annotations carry the safety profile, so the remaining burden is addressing semantics, which the description partially covers. The unresolved gap is the multi-option fallback behavior, which is the main thing an agent needs to predict the shape of the response and is described only ambiguously.

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 75% schema coverage the baseline is 3, and the description earns above that by explaining the mutually exclusive addressing modes: a market address, a question by slug or Kellian/Polymarket link, or a single option by condition id, and it states the implicit rule ('Name the question or the option, not both') that the schema only partially encodes. It still doesn't explain what chainId governs or when it is required.

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 uses a specific verb+resource — 'Read dated research, sources and published AI analyst takes' for a binary market or one option — which distinguishes it from data-oriented siblings like problee_get_market_news or problee_get_question_forecasts. The second sentence's clause about multi-option questions is grammatically tangled ('a question of several options without one: each option's AI analysts and price'), leaving the fallback behavior somewhat opaque.

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?

'Use this when someone asks what the AI analysts expect on a prediction-market question, or for its dated research' gives a clear trigger condition. However, no alternative tool is named or excluded, despite obvious candidates in the sibling list (get_question_forecasts, get_market_news, get_forecaster_record), so the agent must infer routing itself.

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

problee_get_market_resolution_statePer-market public resolution state and available actionsA
Read-onlyIdempotent
Inspect

Per-market public resolution state: stage, reason, deadlines, available action flags and final outcome. Action details appear only when their public surface is available.

NameRequiredDescriptionDefault
addressYesMarket contract address.
chainIdNoChain id; probes enabled chains if omitted.

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral detail by noting that action details appear only when their public surface is available, which helps set expectations about conditional output.

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

Conciseness5/5

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

The description is two concise sentences with no filler. The core state fields are front-loaded, and the conditional action-detail note is compact and informative.

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 full parameter descriptions in the schema, the description does not need to explain return values in depth. It adequately covers the tool’s purpose and the conditional availability of action details, though it still lacks sibling differentiation that would make selection fully unambiguous.

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 both parameters, including the market address and optional chainId behavior. The description does not add parameter-specific meaning beyond the schema, so the baseline score of 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 clearly states that this tool returns per-market public resolution state, including stage, reason, deadlines, action flags, and final outcome. It uses specific resolution-state vocabulary, but it does not explicitly distinguish the tool from siblings like problee_get_market_state or problee_list_pending_resolution_markets.

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 implies the tool is for checking resolution state, but it gives no explicit guidance on when to use it versus related tools such as problee_get_market_state or problee_list_pending_resolution_markets. There are no stated prerequisites, exclusions, or alternative-selection criteria.

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

problee_get_market_stateCanonical market-state graphC
Read-onlyIdempotent
Inspect

Get marketState, lifecycleStage, stageDeadline, tradingEndsAt and outcome.

NameRequiredDescriptionDefault
chainIdNo
marketAddressYes

Output Schema

NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered without the description. The description adds nothing behavioral beyond the annotations -- no note on whether state is cached, how fresh the deadline/trading-end values are, or any latency/auth caveats. It only enumerates return fields, which the output schema already provides.

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?

One short sentence with zero filler and the key information front-loaded. It is appropriately sized for the tool, though the bare field list style leaves it feeling more like a schema echo than an orientation sentence.

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?

An output schema exists, so return values need not be re-explained, but the description still omits parameter guidance in the face of 0% schema coverage and gives no basis for choosing this tool over the several sibling market-state/read tools. For a tool in a crowded family, this is too thin to route an agent reliably.

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 0% for both parameters, so the description should carry the burden of explaining marketAddress and chainId. It mentions neither: there is no indication of the identifier format, or that chainId is optional and what the default chain is. The description therefore leaves the parameters entirely undocumented.

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 gives a clear verb ("Get") and names the specific state fields returned (marketState, lifecycleStage, stageDeadline, tradingEndsAt, outcome), which conveys the resource's nature. However, it reads as a field dump rather than a purpose statement and does nothing to distinguish it from near-neighbors like problee_get_market or problee_get_market_resolution_state, which an agent could easily confuse it with.

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 condition under which this tool is preferred, and no mention of the overlapping siblings (get_market, get_market_resolution_state) that would be the natural alternatives. The agent is left to infer the choice entirely.

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

problee_get_market_tradesRecent trades for a market (newest first)B
Read-onlyIdempotent
Inspect

Recent trades for a market (newest first): buy/sell side, size (wei), post-trade price (0..1), and the trader wallet.

NameRequiredDescriptionDefault
limitNo
addressYesMarket contract address.
chainIdNoChain id; probes enabled chains if omitted.

Output Schema

NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds the newest-first ordering, which is genuine behavioral context, but it adds nothing about pagination, the limit default/cap, or chainId probing behavior.

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?

A single tight sentence with the scoping key ('for a market') front-loaded. Its only inefficiency is enumerating return fields that the output schema already documents.

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-value detail is redundant rather than necessary, and annotations cover safety. What is missing is paging/limit behavior and how this trade feed relates to the sibling fill/chart tools, which is material for a market-data query.

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%: address and chainId carry inline descriptions while limit has only a default/min/max. The description adds no parameter semantics (e.g., what limit does or how chainId omission is resolved), so it does not compensate for the uncovered parameter.

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 ('Recent trades for a market') and characterizes the return payload (side, size in wei, post-trade price, trader wallet). It does not distinguish itself from near siblings like list_trade_fills or get_market_chart, so a 4 rather than 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 Guidelines2/5

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

The description offers no when-to-use guidance and names no alternative. It never explains the relationship to list_trade_fills (individual fills vs. trades) or get_market_chart, leaving the agent to infer routing on its own.

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

problee_get_meIdentity, scopes, capabilities, rate limits, and verification state for the authenticated callerA
Read-onlyIdempotent
Inspect

Describe the authenticated agent: identity (id, name, wallet, email), tier, granted scopes, unlocked capabilities, rate limits, reputation tiers, and live market-creation capacity. Call this first to self-configure — same payload as GET /me.

Examples: Inspect the authenticated agent identity and limits

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive, and openWorldHint=true, so the safety profile is fully covered. The description adds that the payload matches GET /me on the HTTP surface, which helps an agent reason about caching and stability, but it omits the verification-state detail promised in the title and says nothing about freshness or refresh cadence of rate-limit figures.

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?

Front-loaded with the payload enumeration, then the actionable directive ('Call this first'), then the HTTP endpoint equivalence. The trailing 'Examples: Inspect the authenticated agent identity and limits' line adds no information and is pure filler, which costs 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?

An output schema exists, so return values needn't be spelled out, yet the description still summarizes the payload envelope, which is helpful for a self-configuration tool. The one gap is behavioral: an agent does not learn whether calling it repeatedly is cheap or whether the limits shown are static or per-period.

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?

The tool takes zero parameters, so nothing needs documenting in the description and the 4 baseline applies. The description wisely uses the space instead to describe the response shape rather than inventing 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?

States a specific verb+resource ('Describe the authenticated agent') and enumerates the exact payload fields returned: identity, tier, scopes, capabilities, rate limits, reputation tiers, and market-creation capacity. It does not explicitly distinguish itself from near-duplicate siblings such as problee_get_agent_identity, problee_get_context, or problee_list_capabilities, which is the only thing keeping it from 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 Guidelines4/5

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

Gives clear standing guidance — 'Call this first to self-configure' — telling the agent this is the bootstrap call before other operations. It does not state when to prefer a narrower sibling (e.g. get_agent_identity for id only) or that this is redundant once configuration is known, so there are no explicit exclusions.

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

problee_get_movingWhat's moving: the newest smart money moves across every covered questionA
Read-onlyIdempotent
Inspect

Use this when someone asks what is moving on prediction markets now. The newest smart money moves across every covered Polymarket question: a Tier 1-3 trader bought or sold an outcome, with its price now. Plus and API Pro: live, with names and sizes; Free: a day late, unnamed. Information, not a signal. Past performance is not indicative of future results.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior5/5

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

Annotations only declare the safety profile (read-only, idempotent, non-destructive, open-world). The description adds genuinely new behaviour: paid tiers receive live rows with trader names and sizes while free tier receives data a day late and anonymised — critical for interpreting freshness and completeness. It also sets expectations that the feed is informational rather than a trading signal.

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 trigger condition and the core scope are front-loaded in the first two sentences, and tier gating follows logically. The trailing 'Past performance is not indicative of future results' is pure legal boilerplate that adds no selection value to an agent.

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 shape need not be spelled out, and the description covers freshness, attribution and scope. What remains unstated is volume or pagination behaviour for a feed covering 'every covered question', which could matter at call time.

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?

The tool takes zero parameters, so there is nothing for the description to clarify and the baseline applies. The absence of filtering is consistent with the 'across every covered question' framing.

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 concrete verb and resource ('newest smart money moves across every covered Polymarket question') and frames the triggering user intent ('what is moving on prediction markets now'). It implicitly distinguishes itself from the narrower problee_get_smart_money by emphasising cross-question aggregation, but never names that sibling 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?

Gives a clear positive trigger ('when someone asks what is moving ... now'), which is more than most definitions offer. However it names no alternatives and no when-not conditions, so an agent must infer that per-market detail lives in problee_get_smart_money or problee_get_market_trades.

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

problee_get_my_reputationReputation for the authenticated agentA
Read-onlyIdempotent
Inspect

The authenticated agent's own reputation tiers and available capability gates. Same slice as the reputation field on problee_get_me, exposed standalone for callers that only need this.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds real context beyond that: the call is scoped to the caller's own identity (auth implied) and returns a subset of data that also appears in problee_get_me, which warns the agent about overlap and potential redundancy.

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

Conciseness5/5

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

Two short sentences, each carrying information: the first defines the content, the second defines the relationship to the sibling and the reason to exist. Nothing is redundant with the title.

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 no inputs, the description covers everything an agent needs: what it returns, whose data it returns, and how it relates to problee_get_me.

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?

The tool takes zero parameters, so the baseline is 4; there is nothing for the description to disambiguate and it correctly says nothing about inputs.

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 ('own reputation tiers and available capability gates') and scopes it to the authenticated agent, which cleanly separates it from sibling reputation tools such as problee_get_agent_reputation, problee_get_counterparty_reputation and problee_get_subject_reputation.

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 the tool as a standalone extraction of the `reputation` slice from problee_get_me, telling the caller when to pick this instead ('callers that only need this'). It stops short of an explicit inverse rule ('use problee_get_me when you also need balance/identity'), so it is clear but not fully bidirectional.

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

problee_get_open_ordersList the authenticated wallet's open ordersA
Read-onlyIdempotent
Inspect

List one keyset page of the authenticated MCP wallet's open orders, including reservation state. Always continue with nextCursor until hasMore is false.

NameRequiredDescriptionDefault
limitNo
cursorNoOrder hash returned as nextCursor by the prior page.
chainIdNoOptional chain filter. Required when the same market address exists on multiple chains.
marketAddressNoOptional market filter

Output Schema

NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already establish the safety profile (readOnly, idempotent, non-destructive), so the description's added value is the keyset pagination contract: one page per call and a mandatory loop until hasMore is false. It also discloses that reservation state is included in results, which is behavioral information not present in the annotations. It stops short of describing rate limits or ordering of results.

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

Conciseness5/5

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

Two short sentences, scope stated first and the pagination imperative second. Every clause carries information an agent needs; there is no filler or restatement of the tool name.

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 scope, pagination termination, and the notable inclusion of reservation state. Minor gap: it does not mention that all four parameters are optional or describe how filters combine across chains, but nothing essential to a correct call is absent.

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 cursor and chainId meaningfully, so the schema carries most of the load. The description reinforces keyset semantics and ties the cursor to nextCursor, but adds no detail on limit bounds or the marketAddress/chainId interaction beyond what the schema says.

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 (List) and resource (open orders) with explicit scope: one keyset page of the authenticated MCP wallet's own orders. The 'authenticated wallet's' qualifier separates it from global-listing siblings like list_order_events or get_positions without needing the schema.

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?

The description gives operative pagination guidance ('Always continue with nextCursor until hasMore is false'), which is genuinely actionable, but it never states when to prefer this over alternatives such as list_order_events or get_positions. Usage is implied by the name and scope rather than spelled out with exclusions.

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

problee_get_orderbookGet orderbook depth for a marketC
Read-onlyIdempotent
Inspect

Get orderbook depth for a market

NameRequiredDescriptionDefault
sideNoOutcome side: 0=outcome 1, 1=outcome 2. Required for executable_for_caller; optional for public aggregate depth.
viewNopublic (default) includes all makers. executable_for_caller excludes only the wallet bound to the authenticated MCP session.public
depthNoPrice levels per side (default: 20)
chainIdNoChain id for the market address. Required when the same market address exists on multiple chains.
marketAddressYesOrderbook market contract address

Output Schema

NameRequiredDescription
resultYes

TDQS

C2.3/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered without the description. The description contributes nothing beyond that baseline — nothing about what 'depth' actually returns, how the session wallet affects results, or how cross-chain address collisions behave.

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?

One short, front-loaded sentence with no filler, so it is not bloated. But its brevity comes from omission rather than economy — it is under-specified, not efficiently worded, and carries no structural cues about the available views or depth defaults.

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?

The tool has five parameters, an enum view mode, and sibling alternatives, yet the description explains none of the selection-relevant nuance (batch vs single, public vs session-excluded depth). An output schema and rich parameter descriptions exist, which covers return values and syntax, but the description leaves the tool's core usage decision undocumented.

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%, so the parameter semantics (side 0/1, public vs executable_for_caller, depth default 20, chainId disambiguation) are fully documented in the schema. Per the high-coverage baseline this lands at 3 even though the description itself adds zero parameter meaning.

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

Purpose2/5

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

Tautological: description restates name/title.

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 at all: no mention of when to prefer this over problee_batch_get_orderbooks (batch) or problee_get_market_depth, and no note about the authenticated-session dependency of the 'executable_for_caller' view. The agent must infer routing from tool names alone.

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

problee_get_participation_distributionGet a redacted participation distribution status for the authenticated agentC
Read-onlyIdempotent
Inspect

Return redacted finality and delivery state for an identity-owned participation intent.

NameRequiredDescriptionDefault
intentIdYes

Output Schema

NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so safety is covered. The description adds two useful facts beyond them: the response is 'redacted' and it only applies to an 'identity-owned' intent, implying ownership scoping. It says nothing about freshness, eventual consistency of finality state, or rate limits, so it stops short of rich behavioral context.

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?

One sentence with no filler, and the key qualifier ('redacted') is front-loaded. It is efficient, though its brevity edges into under-specification rather than disciplined conciseness.

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?

An output schema and read-only annotations lower the bar, but for a lookup keyed on an unexplained identifier with an unexplained output concept ('distribution') and a near-identical sibling tool, the description leaves the agent unable to decide reliably which tool to call or how to obtain intentId.

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 0%, so the description carries the full burden for intentId, yet it never says where an intentId comes from (presumably prepare_trade/execute_trade_intent outputs), what its format is, or how it relates to 'identity-owned'. The single sentence gives the agent no help in sourcing or validating the required identifier.

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 verb 'Return' and the resource 'finality and delivery state' are stated, but the tool's namesake concept ('participation distribution') is never explained, and 'participation intent' is unexplained jargon. It also does not distinguish itself from the closely related sibling problee_get_participation_release, leaving the agent to guess which one to call.

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 mention of alternatives such as problee_get_participation_release or problee_get_trade_status. The only implicit scoping is 'identity-owned', which hints at authorization scope but not at call conditions.

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

problee_get_participation_releaseGet the authenticated agent wallet’s shared participation-release stateB
Read-onlyIdempotent
Inspect

Return the authenticated agent wallet’s redacted, one-human participation-release state.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description contributes beyond that by noting the payload is "redacted" and "one-human"-scoped, but it does not explain what redaction hides or what state transitions the value reflects.

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?

A single front-loaded sentence with no filler, which suits a zero-parameter read. It is efficient, though the terseness is achieved partly by leaning on unexplained terminology.

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 documented, and a zero-param read-only tool needs little setup detail. Still, the core concept of a "participation-release state" and its relation to the token-release sibling tools remains unexplained, leaving an agent unable to decide when this call is warranted.

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?

The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. Nothing in the text misleads about inputs.

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 supplies a specific verb ("Return") and scopes the resource to the authenticated agent wallet, which is better than a bare restatement of the name. However, "redacted, one-human participation-release state" is undefined domain jargon, and the description never distinguishes this from near neighbours such as problee_get_token_release or problee_get_participation_distribution, so an agent still cannot confidently tell what data it gets.

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 statement of when this tool should be called, what precondition it assumes, or which sibling to use instead for related release/participation data. The only implicit signal is "authenticated agent wallet", which the sibling names already imply.

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

problee_get_perp_index_barsRead the Kellian Perps index of an instrument as 1-minute to 1-hour barsA
Read-onlyIdempotent
Inspect

Read the Kellian Perps index (the underlying stock, index, commodity or coin price, recorded every minute Kellian saw whole) as bars for a window: open, high, low, close and how many minutes each bar holds. Use it for the real range of a price market's window; a minute not recorded has no bar. Information only.

NameRequiredDescriptionDefault
toNoEnd of the window (exclusive). Default: now.
fromYesStart of the window (inclusive). Bars open on whole multiples of the interval, UTC.
symbolYes
intervalNoBar length. 30m bars line up with a 9:30 ET open.1m

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and openWorld, so safety is covered. The description does add real behavioral context beyond them: recording policy ('recorded every minute Kellian saw whole'), gap semantics ('a minute not recorded has no bar'), and the informational-only framing. However, it says nothing about limits, history depth, or window-size constraints, which matter for an open-world data pull.

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?

Front-loaded with verb and resource, then the payload, then the caveat. Three sentences with little waste, though the parenthetical about 'the underlying stock, index, commodity or coin price, recorded every minute Kellian saw whole' is dense and slightly awkward.

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 spelled out, yet the description still characterizes the bar shape and the sparse-data rule, which is the key correctness detail for interpreting results. Missing only window-size or history-depth expectations for an open-world time-series read.

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% (to, from, interval documented; symbol only has a pattern). The description adds 'bars for a window' and the inclusive/exclusive framing implicitly, but does not explain the symbol format, the interval options, or bar alignment beyond what the schema already states. Baseline 3 is appropriate when 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?

States a specific verb and resource ('Read the Kellian Perps index ... as bars') and defines what that index actually is (the underlying stock/index/commodity/coin price), plus the bar payload (OHLC and minutes per bar). It never names a sibling it must be distinguished from (e.g. get_market_chart), so the differentiation is left implicit, but the resource is distinctive enough to identify.

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?

'Use it for the real range of a price market's window' gives an implied use case, and 'Information only' hints at the informational/non-trading scope. There is no explicit when-not-to-use or named alternative among the many sibling read tools, so the agent must infer the boundary.

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

problee_get_pnl_historyDeprecated indexed cash-flow history; historical equity marks are unavailableA
Read-onlyIdempotent
Inspect

Deprecated indexed cash-flow history for a wallet. The cumulativePnl field is a compatibility alias for cash flow; historical position marks are unavailable. Values are nominal human collateral units. Do not describe this as P&L, equity or return. Cached approximately 15 minutes.

NameRequiredDescriptionDefault
addressYesWallet address.

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.9/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), and the description adds real value on top: the cumulativePnl field is a compatibility alias, historical position marks are unavailable, values are nominal collateral units, and results are cached ~15 minutes. These are exactly the data-semantics traps an agent would otherwise misreport; only pagination/rate-limit behavior is left unstated.

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?

Four short sentences, front-loaded with the deprecation warning, then the field-alias caveat, then units, then caching. Every sentence carries information; only the imperative 'Do not describe this as P&L' is arguably framing rather than tool behavior, though it is useful against misreporting.

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-shape explanation is unnecessary, and the description covers the things the schema cannot: deprecation, units, alias semantics, cache staleness. The only gap is that the coverage window and ordering of the returned cash-flow history are never stated.

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 address parameter (pattern plus 'Wallet address'), so the schema carries parameter meaning fully. The description adds nothing parameter-specific, which is the correct baseline when the schema is complete.

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 names a specific resource and scope: 'Deprecated indexed cash-flow history for a wallet.' It immediately flags deprecation and explicitly disclaims the P&L/equity framing, which separates it from siblings such as problee_get_positions or problee_get_balance that an agent might otherwise confuse it with.

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?

Deprecation is stated up front, which implicitly tells the agent to avoid relying on this for new work, but no replacement sibling is named and no when-to-use condition is given. The agent must infer that historical equity marks should be fetched elsewhere without being told where.

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

problee_get_positionsList open positions for a wallet (ledger + optional mark-to-market valuation)A
Read-onlyIdempotent
Inspect

Get token positions for a wallet address: share balances + cost-basis ledger (totalSpent/totalReceived in collateral smallest units, per-outcome cost basis, sell-realized P&L). Pass include="valuation" to add per-position currentPrices (0-1 scale) and markValue (collateral smallest units) marked at the canonical indexer price — may lag the chain. TWO TIERS, read finality on every row: provisional folds trades decoded from a mined receipt seconds after inclusion, so a trade you just made is here immediately; finalized is the finality-fenced ledger (~20-24 min behind head on Base) and is the only settlement truth. Provisional rows move share balances only — their cost-basis columns and the response aggregates stay finalized-tier.

NameRequiredDescriptionDefault
limitNo
cursorNo
chainIdNo
includeNoSet to "valuation" to add currentPrices (0-1) and markValue per position.
marketAddressNo
walletAddressYes

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior5/5

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

Annotations already declare the read-only/idempotent profile, and the description goes well beyond them: it discloses the two-tier finality model, that provisional rows fold mined-receipt trades immediately, that finalized is the only settlement truth (~20-24 min lag on Base), and that provisional updates affect share balances only while cost-basis and aggregates stay finalized-tier. That is exactly the kind of non-obvious behavioral context an agent needs.

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?

Front-loaded with the core purpose, then progressively adds valuation and finality detail. Dense but every sentence carries distinct information; only the parenthetical "0-1 scale"/units repetition slightly pads.

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 restated, and the description covers finality semantics and valuation opt-in thoroughly. The remaining gap is that half the input parameters (pagination and filtering) are unexplained for a tool whose schema documents almost nothing.

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 only 17%, so the description must compensate. It does explain include="valuation" and the semantics of the returned valuation fields, but limit, cursor, chainId, marketAddress, and walletAddress remain undocumented in both schema and description. Partial compensation, not full.

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 ("Get token positions for a wallet address") and enumerates the concrete payload it returns: share balances, cost-basis ledger, per-outcome cost basis, and sell-realized P&L. This is clearly distinguishable from wallet-level siblings like problee_get_balance.

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 include="valuation" opt-in and the finality-tier explanation, which tells the agent when provisional rows are useful. However, it never names alternatives (e.g., get_balance, list_trade_fills) or states when NOT to use this tool, so routing guidance 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.

problee_get_proposalGet the current resolution proposal for a marketC
Read-onlyIdempotent
Inspect

Get the current resolution proposal for a market

NameRequiredDescriptionDefault
chainIdNoCompiled protocol release chain ID (Base 8453).
marketAddressYesChecksummed or lowercase 20-byte EVM address (0x + 40 hex).

Output Schema

NameRequiredDescription
resultYes

TDQS

C2.3/5.0
Behavior2/5

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

The annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so safety is covered. The description adds nothing beyond that: it does not say whether a proposal may be absent (null/empty) before any proposal is made, who can create proposals, or what 'current' means in the life of a market.

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 short sentence with nothing extraneous, which is good structurally. However, the sentence is a verbatim echo of the title, so it earns its place only as a label, not as added information.

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?

An output schema exists, so return values need not be explained, and the annotations cover the safety profile. What is missing is disambiguation from the crowded set of resolution-related siblings, which for a tool in this namespace is the main thing an agent needs.

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 chainId and marketAddress both documented in the schema, so the schema does the heavy lifting. The description contributes no additional meaning about parameter usage, which is acceptable at baseline when coverage is complete.

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

Purpose2/5

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

Tautological: description restates name/title.

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. Given at least four sibling tools that surface resolution-related data, the absence of any routing guidance is a real gap rather than a minor omission.

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

problee_get_question_forecastsRead a covered question's forecasts: per open option, how many forecasters, their median and middle half beside the price, the ranked forecasters' latestB
Read-onlyIdempotent
Inspect

Read a covered question's forecasts: per open option, how many forecasters, their median and middle half beside the price, and the ranked forecasters' latest. A record, not a consensus to follow.

NameRequiredDescriptionDefault
questionYesA covered question, mirrored or not, by its slug or its Kellian or Polymarket link.

Output Schema

NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds the interpretive caveat that this is a record rather than a consensus, which is genuinely useful context, but says nothing about latency, coverage gaps for questions without forecasters, or what happens for uncovered questions.

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?

Front-loaded and only two sentences, but the first sentence is essentially a verbatim restatement of the title, and it spends its length enumerating return fields that the output schema already carries. The closing caveat is short and earns its place; the bulk does not.

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 describing return values is not required, yet that is where nearly all the description's effort goes. What is actually missing for a one-param read tool with rich annotations is sibling differentiation and usage framing, leaving the definition adequate but with clear 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?

Schema coverage is 100% and the single 'question' parameter is documented in-schema as a slug or Kellian/Polymarket link. The description adds no format, resolution, or ambiguity guidance beyond that, so the 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?

Specific verb (Read) and resource (a covered question's forecasts) with the content enumerated: per open option, forecaster count, median and middle half beside the price, plus ranked forecasters' latest. It is distinguishable from per-forecaster siblings like problee_get_forecaster and problee_list_forecasters, but the description never names those siblings to make the boundary explicit.

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 or when-not-to-use guidance and no alternative tool is named. The only guidance-adjacent sentence, 'A record, not a consensus to follow,' is a framing caveat rather than a routing rule, so an agent must infer the usage context.

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

problee_get_quoteGet a stateless exact-input trade quoteA
Read-onlyIdempotent
Inspect

Get a stateless trade quote. Response is a discriminated union on kind: "amm" (LMSR) returns outcomeTokensOut for buys, collateralOutRaw for sells, prices after, fees; "orderbook" (CLOB markets) returns bestBid/bestAsk/spread/mid instead — there is no single LMSR price to quote against a resting book. /trade/quote is stateless exact-input pricing only. To price a position-relative closePercent sell or a targetCollateralOut exact-output sell, call /trade/simulate with the same body you would later send to /trade/prepare.

Examples: Quote buying outcome 1 with PM collateral; Quote an order-book (CLOB) market — returns book state, not an LMSR price

NameRequiredDescriptionDefault
sideYes`side` = which OUTCOME (0-indexed: 0=outcome1,1=outcome2,2=outcome3), NOT buy/sell. Buy/sell is the direction field (`type`/`tradeType`/`action`/`direction`). Encoded here as the outcome label string ('outcome1'|'outcome2'|'outcome3'), not the 0-indexed TradeSide int used on REST /trade/* bodies.
actionYesTrade DIRECTION (buy/sell). Note: this same concept is named `kind` (0=buy/1=sell int) on /orderbook/* and `side`/`action`/`tradeType`/`type`/`direction` on other trade endpoints — see skill.md field-map.
amountYesExact-input size. BUY: collateral spent. SELL: outcome tokens sold. Outcome tokens carry the market collateral's own denomination — one outcome token redeems for one collateral unit — so every outcome-token quantity uses that single unit: positions.outcome1Shares/outcome2Shares/outcome3Shares, SELL amount, 409 available/requested, and outcomeTokensOut/minOutcomeTokensOut. It is also the unit the signed intent carries, so nothing is converted between the wire, the engine and the calldata. /trade/quote is stateless exact-input pricing only. To price a position-relative closePercent sell or a targetCollateralOut exact-output sell, call /trade/simulate with the same body you would later send to /trade/prepare.
chainIdNo
marketAddressYes

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.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/openWorld, so the safety profile is covered. The description adds real behavioral context beyond that: statelessness, exact-input-only pricing, and that the response is a discriminated union whose shape differs by market type (AMM returns outcomeTokensOut/collateralOutRaw/prices/fees; orderbook returns bestBid/bestAsk/spread/mid). It does not discuss failure modes (e.g. the 409 available/requested referenced in the schema) but the union semantics are a genuine addition.

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?

Front-loads the core purpose, then response shape, then the routing caveat, which is the right order. The trailing "Examples:" block largely restates the preceding sentences (the CLOB example is already covered by the union explanation), so a small amount of text 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?

An output schema exists, so return values needn't be spelled out, yet the description still explains the union discriminant usefully. Statelessness, exact-input scope, and the alternative path are all covered. What is missing is any note on marketAddress/chainId selection or error behavior for a 5-parameter 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 60%, and the description adds only the "exact-input" framing for the amount parameter. The rich per-field semantics for side and action live in the schema, while chainId and marketAddress remain undocumented in both places. Baseline 3 is appropriate since 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.

Purpose5/5

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

States a specific verb and resource ("Get a stateless trade quote") and immediately scopes it to exact-input pricing only. It further distinguishes itself from the simulate/prepare path by naming the operations it does not cover (closePercent sell, targetCollateralOut exact-output). An agent can tell this apart from problee_simulate_trade or problee_estimate_market_order without opening a schema.

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

Usage Guidelines5/5

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

Explicitly routes the agent elsewhere: "To price a position-relative closePercent sell or a targetCollateralOut exact-output sell, call /trade/simulate with the same body you would later send to /trade/prepare." That is a concrete when-not condition plus the alternative. The only gap is that it names REST paths rather than MCP sibling tool names, requiring a small mapping step.

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

problee_get_quotes_batchGet batch trade quotes (max 20 items)A
Read-onlyIdempotent
Inspect

Get up to 20 trading quotes in one call. Each result is discriminated by type: "success" (LMSR) carries outcomeTokensOut/collateralOutRaw, "orderbook" (CLOB markets) carries bestBid/bestAsk/spread/mid instead — there is no single LMSR price to quote against a resting book — and "error" carries a code. Read-only planning helper; no idempotency key required.

NameRequiredDescriptionDefault
itemsYes

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint/idempotentHint/destructiveHint=false, so the safety profile is covered. The description adds genuine behavioral insight beyond that: results are a discriminated union of success/orderbook/error, and it explains why orderbook markets return bestBid/bestAsk/spread/mid instead of an LMSR price. Repeating "no idempotency key required" is largely redundant with idempotentHint, which keeps this 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.

Conciseness4/5

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

One tight paragraph, front-loaded with the capability and the 20-item cap, then the response discriminator, then the read-only caveat. No filler sentences, though the discriminated-union detail is dense for a single block.

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 need not restate return values, and it still gives the type discriminator semantics that matter for callers. Missing only operational details an agent might want, such as whether results align 1:1 with input item order and whether auth is required.

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?

Top-level schema description coverage is reported as 0%, but the nested item schema is exceptionally verbose on side/type/amountIn/tokensIn, so the practical burden on the description is low. The description contributes only the batch cap (matching maxItems: 20) and the fact that market type determines the response shape; it says nothing about result ordering or per-item error independence.

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 opens with a specific verb and resource plus a hard cap: "Get up to 20 trading quotes in one call." The batch nature and the LMSR-vs-orderbook split are clear. It never names the single-quote sibling problee_get_quote or differentiate from problee_simulate_trade / problee_prepare_trades_batch, so sibling routing is left implicit.

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?

"Read-only planning helper" implies this is for pre-trade planning rather than execution, and "no idempotency key required" hints it is safe to repeat. But there is no explicit when-to-use vs when-not, and no signal on choosing this over problee_get_quote (single), problee_simulate_trade, or problee_prepare_trades_batch.

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

problee_get_resolution_statusGet the current resolution status for a marketC
Read-onlyIdempotent
Inspect

Get the current resolution status for a market (read-only)

NameRequiredDescriptionDefault
chainIdNoCompiled protocol release chain ID (Base 8453).
marketAddressYesChecksummed or lowercase 20-byte EVM address (0x + 40 hex).

Output Schema

NameRequiredDescription
resultYes

TDQS

C2.5/5.0
Behavior2/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's '(read-only)' merely repeats that. It adds nothing about what statuses can be returned, whether it errors on unknown markets, or how the resolution lifecycle is represented.

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 short sentence with no filler, so it is concise and front-loaded. But it is essentially the title duplicated, so brevity comes at the cost of any substantive content.

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?

An output schema exists, so return values need not be described, but the crowded resolution-related sibling namespace makes disambiguation essential and the description provides none. For a market-scoped read in this tool family, it is under-specified.

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 both parameters (chainId, marketAddress) are fully documented in the schema. The description adds no meaning beyond that, which puts it at the baseline for fully covered schemas.

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 restates the title verbatim, specifying a verb ('Get') and resource ('resolution status for a market'), which is clear on its own. However, it gives no differentiation from closely named siblings such as problee_get_market_resolution_state, problee_get_market_operability, and problee_get_claim_status, so an agent cannot tell which one returns which facet of resolution.

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 exclusions, and no mention of the obvious alternatives in the sibling set. The only hint is the parenthetical '(read-only)', which is not a usage rule.

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

problee_get_rulesCanonical public protocol rules for resolution windows, bonds, fund flows, and actor actionsA
Read-onlyIdempotent
Inspect

Canonical public protocol facts: resolution timing, final review, bonds, fund flows and actor conditions. Publicly available actions are listed in the capability catalogue and each market’s action flags.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.6/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 the safety profile is fully covered. The description adds useful scoping by calling the content 'canonical public protocol facts' (i.e., static reference data rather than live market state), but discloses nothing about freshness, versioning, or how the payload relates to the action flags it points to.

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?

Two tight sentences with no filler; the topic enumeration is front-loaded. The second sentence about where actions live is a genuine routing hint rather than padding, though it could be folded more economically.

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 no explanation, and a zero-parameter read-only tool has a light burden. The description is adequate, though it would be stronger if it explicitly distinguished this global rules reference from the capability catalogue and per-market action flags it references.

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?

The tool takes zero parameters and schema coverage is trivially 100%, so the baseline is 4. There is no parameter semantics for the description to add meaning to.

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 (canonical protocol rules) and enumerates concrete topic areas: resolution timing, final review, bonds, fund flows, actor conditions. An agent can distinguish this static reference endpoint from market-specific siblings like problee_get_market or problee_get_market_resolution_state, though it never explicitly says 'static/reference' to contrast with per-market 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 routes the agent elsewhere for actions ('listed in the capability catalogue and each market's action flags'), which is a partial alternative pointer, but there is no explicit when-to-call framing for the rules themselves and no stated prerequisites or exclusions relative to the many sibling get_* tools.

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

problee_get_scoring_recordLegacy trade-price diagnostics for a walletA
Read-onlyIdempotent
Inspect

Legacy trade-price diagnostics: Brier/log transforms, price-bin frequencies and historical streak/best-call fields computed from selected execution/post-fill prices and outcomes. These are not the trader’s stated probabilities or explicit forecast accuracy. This endpoint is separate from the fixed-lock Arena record and supplies no championship rank. Null sections indicate unavailable or insufficient observations; read minimums.

NameRequiredDescriptionDefault
addressYesWallet address.

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare the read-only, idempotent, non-destructive profile, so the description's real contribution is semantic: the metrics are derived from execution/post-fill prices rather than stated probabilities, it carries no championship rank, and null sections mean 'unavailable or insufficient observations' with a `minimums` field to consult. That is meaningful context an agent would otherwise guess wrong about.

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?

Four sentences, front-loaded with what the record contains, then disambiguation, then null-handling — each sentence carries distinct information. Slight density cost from jargon stacking in sentence one, but nothing is redundant.

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 spelled out, and the description still usefully flags the `minimums` key and null-section semantics. For a single-parameter read tool with full annotations, this covers what an agent needs; only the missing sibling pointer keeps it from full marks.

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 single `address` parameter is fully documented in the schema, so the description correctly does not restate it. It adds no meaning beyond the schema about the address (e.g., whether non-participating wallets return empty sections), which is the baseline 3 for a fully covered 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 enumerates the concrete contents (Brier/log transforms, price-bin frequencies, streak/best-call fields) and states their basis (selected execution/post-fill prices), which tells an agent exactly what resource this returns. It stops short of an explicit verb ('retrieve the legacy scoring record for a wallet') and never names the sibling tool it contrasts with, only the concept 'fixed-lock Arena record'.

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 exclusion: this is 'not the trader's stated probabilities or explicit forecast accuracy' and 'separate from the fixed-lock Arena record.' An agent can infer to use it for legacy price-based diagnostics rather than forecast accuracy, but no alternative tool is named and no positive trigger ('use when you need historical calibration of execution prices') is given.

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

problee_get_season_cohortThis week’s scored questions, and when the window closesA
Read-onlyIdempotent
Inspect

This week’s fixed set of scored questions drawn from the news, with the instant the scoring window closes. Call any of them: a call that settles is scored. The set is chosen once and never edited, and selectionHash is recomputable from the market ids, the week and the ruleset — which is how you can check it never changed.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.7/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), and the description goes beyond them by disclosing the immutability guarantee ('chosen once and never edited') and the verification mechanism (`selectionHash` recomputable from market ids, week, ruleset). That is genuine behavioral context an agent could not infer from the annotations, though nothing is said about freshness or how the week boundary is determined.

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 core fact (this week's fixed scored set plus window close) is front-loaded in the first sentence, and the following sentences each add distinct value about scoring and immutability. The `selectionHash` sentence is slightly dense but not padding.

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 and no parameters, the description need not explain return values, and it covers immutability and the deadline adequately. The remaining gap is routing: with `problee_list_scoring_cohort` sitting alongside it, the definition leaves the agent guessing which cohort tool is authoritative for this week.

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?

Zero parameters, so the baseline is 4. The description adds useful framing by explaining that `selectionHash` is derived from the market ids, week, and ruleset, clarifying a returned field even though there is no input to document.

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 precise resource: this week's fixed set of scored questions plus the instant the scoring window closes, which is more specific than the title alone. However, it never distinguishes itself from the near-identical sibling `problee_list_scoring_cohort` (or `problee_get_current_season`), so an agent cannot tell from the text which of the two cohort tools 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: 'Call any of them: a call that settles is scored' tells the agent what to do with the returned markets and the deadline framing hints at calling before the window closes. There is no explicit when-to-use, no when-not-to-use, and no named alternative despite an obvious overlapping sibling.

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

problee_get_season_standingsScores with their N for a season. No ranks in Season 1.B
Read-onlyIdempotent
Inspect

Scores with the N behind them for one season. Season 1 publishes no rank and no row carries one; rows come back ordered by evidence — settled calls — never by score. Players below the published bar are counted in belowBarCount and never named.

NameRequiredDescriptionDefault
idYes
limitNo
offsetNo

Output Schema

NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, so the safety profile is covered. The description adds genuinely useful behavior the annotations cannot convey: Season 1 rows carry no rank, ordering is by settled calls rather than score, and sub-bar players are aggregated into `belowBarCount` instead of being named — a real disclosure about data suppression.

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?

Three sentences, front-loaded with the outcome and the Season 1 caveat, with no filler. Minor deduction for the opaque "N behind them" phrasing, which costs clarity without adding meaning.

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-value explanation is not required, and the ordering/suppression behavior is well covered. However, the description leaves all three input parameters undocumented and provides no routing against sibling scoring tools, which is a noticeable gap for a tool in a crowded namespace.

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 0% across three parameters, so the description must carry the burden, and it does not. The `id` parameter's required `season-\d+` shape, and the purpose/ranges of `limit` and `offset`, are never mentioned in the description text.

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 says it returns "scores with the N behind them for one season," which identifies a season-scoped standings read, but the phrase "the N behind them" is unexplained jargon that leaves the actual payload ambiguous. It also never distinguishes itself from nearby siblings such as problee_get_season_cohort, problee_list_scoring_cohort, or problee_list_leaderboard.

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 statement of when to use this tool rather than the many alternative standings/scoring/leaderboard tools in the sibling list. The only conditional information given is about Season 1 behavior, which is a data caveat rather than usage guidance.

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

problee_get_server_timeServer time (ms epoch) for clock-skew measurementA
Read-onlyIdempotent
Inspect

Return the protocol server wall-clock time as Unix epoch milliseconds. Use before quoting to measure client clock skew. Unauthenticated.

Examples: Current server epoch ms

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.4/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 profile is covered. The description meaningfully adds "Unauthenticated" (an auth requirement not captured by annotations) and pins the return precision to milliseconds.

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?

Three short sentences, front-loaded with the return value and unit, then the usage trigger, then the auth note. The trailing "Examples: Current server epoch ms" adds little but wastes only a few tokens.

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 no-argument utility with an output schema, annotations covering safety, and both unit and auth disclosed in the description, an agent has everything needed to call and interpret it. 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?

Zero parameters, so there is nothing for the description to disambiguate. The baseline of 4 applies; the epoch-ms detail usefully pins the return format even though it is not a parameter.

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 (Return) and resource (protocol server wall-clock time) with explicit unit (Unix epoch milliseconds). No sibling tool overlaps this capability, so the agent can select it unambiguously.

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?

"Use before quoting to measure client clock skew" gives a concrete trigger condition for calling it. It doesn't name alternatives or exclusions, but no sibling performs this function, so the omission is minor.

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

problee_get_smart_moneyWho holds and who moved on a Polymarket question, by smart money tierA
Read-onlyIdempotent
Inspect

Use this when someone asks who is buying or selling a prediction-market question, who holds it, or what smart money did. Smart money on a Polymarket question (its slug, event id or link) or one option (condition id): per open option, how many Tier 1-3 traders hold each side (Tier 1 = the topic's top 10 by profit, Tier 2 = the rest of its top list, Tier 3 = its next profitable traders), the best-ranked by name, and the last 24 hours of their trades from $1,000, counted by trader with the net side. Free: counts, and the moves a day late with no names. Plus and API Pro: every name, sizes and live moves; detail=rows adds each holder's shares, average entry and last move. Or a topic's Tier 1-3 list by profit (Free: 10 rows; Plus: 100). Information, not a signal. Past performance is not indicative of future results.

NameRequiredDescriptionDefault
topicNoOr a topic ("Movies · box office"), its slug or a word.
detailNo'rows': on Plus and API Pro, also each holder's shares, average entry and last move, and each move's shares. Free: ignored.
optionNoOne option instead: its condition id (0x…). Name the question or the option, not both.
questionNoA covered question: its slug or event id, or its Kellian or Polymarket link.

Output Schema

NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior5/5

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

Well beyond the readOnly/idempotent annotations, it discloses tier definitions (Tier 1 = topic's top 10 by profit, etc.), the 24-hour window, the $1,000 minimum trade size, and — crucially — plan-gated behavior: Free gets counts and day-late unnamed moves, Plus/API Pro get names, sizes and live moves, with detail=rows adding shares, average entry and last move. It also flags the Free 10-row vs Plus 100-row limit, which is exactly the kind of access and freshness constraint an agent needs before calling.

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 trigger clause is correctly front-loaded, but the body is a dense multi-clause run-on that interleaves tier definitions, plan gating, parameter behavior and caveats. The closing 'Information, not a signal. Past performance is not indicative of future results' is a compliance disclaimer that does not help an agent decide or call correctly.

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 tier semantics, freshness, size thresholds and plan limits thoroughly. The one gap is that all four parameters are optional yet the description never says what happens with no question/topic/option supplied, nor how topic mode differs from question mode in output shape.

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 documents question (slug/event id/link), option (condition id), topic and detail. The description reinforces mutual exclusivity and the detail=rows payload, but adds little format or constraint detail the schema does not already carry; 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 states a concrete resource and scope: per open option, the Tier 1-3 holder counts per side, the best-ranked holder names, and the last 24h of trades from $1,000 with net side, plus a topic-mode tier list. It is clearly distinct in substance from generic siblings like problee_get_market_holders or problee_get_moving, but it never names those siblings, so the differentiation must be inferred from the tier/threshold language.

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?

Opens with an explicit trigger: 'Use this when someone asks who is buying or selling a prediction-market question, who holds it, or what smart money did,' and then covers the alternate topic-mode use. It gives clear when-to-use context but no when-not-to-use or named alternative tool for plain holder lists.

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

problee_get_subject_reputationRead black-box public reputation for an opaque reputation subjectA
Read-onlyIdempotent
Inspect

Read black-box public reputation (tiers, gates, track record, evidence) for an opaque reputation subject id — verified humans are addressed by subject id, never by wallet.

NameRequiredDescriptionDefault
subjectIdYesOpaque reputation subject id.

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and open-world, so the safety profile is covered. The description still adds real context beyond them: the reputation is "black-box" (computed/opaque rather than raw data) and it discloses the categories surfaced (tiers, gates, track record, evidence), which shapes what the agent should expect to reason over.

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?

A single front-loaded sentence with no filler; the return categories come immediately after the verb and the identifier constraint follows. Minor density cost from the parenthetical list and the near-synonym pairing of "black-box" and "opaque," but nothing is wasteful.

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?

One parameter, full schema coverage, an output schema, and rich annotations mean little else is required. The description supplies purpose, identifier constraint, and expected data categories — enough for correct invocation; only sibling disambiguation is absent.

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 a single parameter and 100% schema coverage the baseline is 3, and the schema only says "Opaque reputation subject id." The description adds a genuine constraint beyond that — the id is never a wallet address — which prevents a common mis-invocation.

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?

Specific verb ("Read") plus resource ("black-box public reputation") with the returned dimensions enumerated (tiers, gates, track record, evidence). It does not explicitly name the nearest siblings (get_agent_reputation, get_counterparty_reputation, get_my_reputation), so the agent must infer the boundary, but the "subject id, never wallet" framing does implicitly separate it from wallet-addressed lookups.

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: call this when you hold an opaque subject id. The clause "verified humans are addressed by subject id, never by wallet" functions as a partial when-not rule for the identifier, but no alternative tool is named and no prerequisites or exclusions are stated.

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

problee_get_token_releaseGet the active participation-token release manifestA
Read-onlyIdempotent
Inspect

Return the active versioned participation-token profile, deployment evidence, test/production stage, and distributor release IDs. This is separate from live market collateral discovery.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. The description adds useful scope about what the manifest contains but does not disclose caching, update cadence, or lifecycle behavior 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.

Conciseness4/5

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

Two sentences, front-loaded with the verb and resource. The second sentence earns its place by scoping the tool against market-collateral discovery. No wasted clauses.

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?

The tool is simple (zero params, output schema present, annotations cover behavior). The description covers what is returned and what it is not, which is sufficient for correct invocation. Slightly more routing among siblings would push it higher, but it is complete for the tool's complexity.

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 zero parameters, which establishes a baseline of 4. The description correctly implies the tool takes no inputs by framing it as a manifest retrieval. No evidence to justify deduction.

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 (participation-token release manifest) and enumerates what it returns: versioned profile, deployment evidence, stage, and distributor release IDs. It is clear what the tool does, and the closing sentence distinguishes it from market collateral discovery. However, it does not explicitly call out sibling get_* config tools, so it stops short of 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 manifest/versioning framing, and one exclusion is given ('separate from live market collateral discovery'). There is no explicit when-to-call guidance or named alternative among the many siblings, so it remains at minimum-viable rather than strong.

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

problee_get_trade_intentRead the lifecycle of a signed trade intentA
Read-onlyIdempotent
Inspect

Check what happened to a signed trade intent: whether it was accepted, which transaction the protocol broadcast for it, and how it ended. MINED means the trade happened and the position is yours; CONFIRMED means its block is finalized and settlement can no longer be reorganised away. FAILED, EXPIRED and ABANDONED mean nothing was spent — the signed price and deadline are enforced before any gas is committed. Also returns selfSubmit: the exact router call for submitting the intent yourself if the protocol relayer is ever unavailable.

NameRequiredDescriptionDefault
digestYesThe digest returned by problee_execute_trade_intent.

Output Schema

NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior5/5

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

Annotations already cover read-only, idempotent and non-destructive, and the description goes well beyond them by defining the terminal state machine (MINED = position is yours, CONFIRMED = finalized settlement, FAILED/EXPIRED/ABANDONED = nothing spent, no gas committed). It also discloses an extra return field, `selfSubmit`, and explains when to reach for it (relayer unavailable). This is exactly the kind of behavior an agent cannot infer from 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.

Conciseness4/5

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

Front-loaded with the purpose, then the state glossary, then the fallback return value — a logical order with no filler. It is dense and slightly long, but nearly every clause carries information the caller needs to interpret the result.

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 one-parameter read-only lookup with a full output schema and clear annotations, nothing needed to call it correctly is missing. The description deliberately explains the non-obvious state values while leaving the raw return shape to the output 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 description coverage is 100% and the single `digest` parameter is documented in-schema as coming from problee_execute_trade_intent. The description reinforces the 'signed trade intent' framing but adds no format, encoding, or lookup-failure semantics beyond the schema, so the 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 ('Check what happened to a signed trade intent') and enumerates the three things it returns: acceptance status, the broadcast transaction, and the final outcome. It is clearly distinct from generic siblings like get_transaction_status, though it never names those siblings to draw the contrast 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?

Usage is implied rather than stated: the input schema ties the digest to problee_execute_trade_intent, so an agent can infer this is the follow-up call after submitting an intent. There is no explicit when-to-use/when-not guidance and no routing against the many other status/receipt tools (get_trade_status, get_transaction_status, get_claim_status).

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

problee_get_trader_profileCounterparty trading track record + reputation for a walletA
Read-onlyIdempotent
Inspect

Public reputation tiers and trading track record for a wallet: profit or loss by collateral, win/loss, win rate, markets traded and member-since. Method, period and completeness remain explicit. Or a listed trader's lists and 3-month record by traderReference.

NameRequiredDescriptionDefault
addressNoWallet address.
traderReferenceNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds that tiers are 'public' and that 'method, period and completeness remain explicit', hinting at methodology metadata, but never states permission/auth needs, whether the data can be stale, or what happens on an unknown wallet. Adds modest context beyond annotations.

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?

Front-loads the resource and its contents, then the alternate mode, in three compact sentences with little waste. The sentence 'Method, period and completeness remain explicit' is slightly opaque, but no content is padding-level redundant.

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 description needn't enumerate return shapes, and it covers the two call modes plus the field-level subject matter. The remaining gap is the address-vs-traderReference selection rule, which an agent must infer from 'Or'. For a two-param read-only lookup this is close to 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 50%: the EvmAddress definition documents the address format, but traderReference has only a regex and no description. The description partially compensates by explaining that traderReference yields 'a listed trader's lists and 3-month record'. It never says whether the parameters are mutually exclusive or that at least one is required (required count is 0), leaving the key usage rule unstated.

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?

Names a specific verb+resource and enumerates the returned fields (P&L by collateral, win/loss, win rate, markets traded, member-since), plus a second mode keyed on traderReference. It stops short of distinguishing itself from close siblings such as problee_get_counterparty_reputation, problee_get_subject_reputation and problee_get_forecaster_record, so an agent still has to guess which 'profile' tool 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?

The phrase 'Or a listed trader's lists and 3-month record by traderReference' implies a branch condition (wallet address vs. platform trader reference), which is useful. However, there is no explicit when-to-use/when-not guidance and no alternative tool is named despite five sibling reputation tools, 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.

problee_get_trade_statusLookup a submitted trade by transaction hash and chainA
Read-onlyIdempotent
Inspect

Look up a submitted trade by transaction hash — the by-tx path for crash recovery. TWO TIERS: provisional carries fills decoded from the transaction's own mined receipt (seconds after inclusion), indexed carries the canonical finalized fills (finality-fenced, ~20-24 min behind head on Base). Every fill and the envelope itself carry finality. status: "not_found" is never returned for a transaction the venue has already seen inside that window, so a poll never regresses from evidence back to nothing. Act on provisional; settle on finalized.

NameRequiredDescriptionDefault
txHashYesTransaction hash to look up (0x + 64 hex).
chainIdYesActive chain the transaction was broadcast on. Discover IDs via GET /discover/chains.

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), yet the description adds substantial behavior the structured fields cannot convey: two result tiers, the ~20-24 min finality lag on Base, finality-fencing, and the guarantee that 'not_found' is never returned for a seen transaction so polling never regresses. This is exactly the kind of extra context that lifts it above the annotation baseline.

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 front-loaded and the closing imperative ('Act on provisional; settle on finalized') earns its place, but the middle is dense with compressed jargon ('finality-fenced', 'carries the envelope itself') that adds parsing cost for a two-parameter lookup tool.

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, and the description covers the tiering model, latency expectations, and the not_found semantics an agent needs to poll correctly. Nothing material is missing for correct invocation.

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 both parameters (txHash, chainId) are fully documented in the schema, so the baseline of 3 applies. The description adds meaning about what the lookup returns but no syntax, format, or constraint detail beyond what the schema already 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 ('Look up a submitted trade by transaction hash') and frames its role as 'the by-tx path for crash recovery', which implicitly distinguishes it from the list/market-oriented siblings like problee_list_trade_fills and problee_get_market_trades. It never names those alternatives explicitly, so the differentiation is inferred 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 Guidelines4/5

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

Gives clear situational guidance ('crash recovery') and a decision rule for the two result tiers ('Act on provisional; settle on finalized'). It does not, however, tell the agent when to prefer this tool over the trade-listing siblings, leaving that comparison to inference.

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

problee_get_transaction_statusRecover chain-authoritative status for an agent-submitted transactionA
Read-onlyIdempotent
Inspect

Recover the chain-authoritative lifecycle of a wallet-submitted transaction after a timeout, disconnect, or agent restart. The response includes a durable status URL and minimal receipt proof. Missing or incomplete receipts remain SUBMITTED; successful mined receipts become CONFIRMED and reverted mined receipts become FAILED. Economic finality remains indexer-authoritative.

Examples: Receipt-confirmed transaction

NameRequiredDescriptionDefault
hashYes
chainIdNoCompiled protocol release chain ID (Base 8453).
operationIdNo
submittedAtNo
idempotencyKeyNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.5/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 profile is covered. The description adds value beyond that by disclosing the state machine (SUBMITTED / CONFIRMED / FAILED), that incomplete receipts stay pending, that a durable status URL is returned, and the important caveat that economic finality is indexer-authoritative. It does not discuss rate limits or polling cadence, which is the main remaining gap for a status-recovery tool.

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 state-mapping and finality sentences are dense and earn their place, and the recovery context is front-loaded. However, the trailing 'Examples: Receipt-confirmed transaction' is a truncated fragment that adds no usable information and reads as an editing artifact.

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 spelled out, and the lifecycle semantics are well covered. But for a 5-parameter tool at 20% schema coverage, the description leaves four undocumented parameters — notably the idempotency and operation-tracking fields — which an agent cannot reason about from either source.

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 20% — only chainId is documented, and the description never mentions hash, operationId, submittedAt, or idempotencyKey. With low coverage the description is expected to compensate, but it explains no parameter meaning, format, or role (e.g. whether idempotencyKey/operationId are for deduplicating retries during recovery). This is a significant gap for a 5-parameter tool.

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 verb and resource: recovering the chain-authoritative lifecycle of a wallet-submitted transaction. That is far more precise than the title alone and clearly separates it from preparation/execution siblings. It never names the closest siblings (problee_get_trade_status, problee_get_trade_intent), so an agent must infer the boundary itself.

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 concrete triggering conditions: after a timeout, disconnect, or agent restart. That is real when-to-use guidance rather than an implied purpose. It stops short of exclusions or an explicit 'use X instead when...' clause against the status/getter siblings.

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

problee_get_webhookFetch a single webhook delivery target by idB
Read-onlyIdempotent
Inspect

Fetch a single webhook delivery target by id, with delivery health diagnostics.

NameRequiredDescriptionDefault
idYesWebhook id, from problee_list_webhooks.

Output Schema

NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is fully covered by structured data. The description's one contribution is 'with delivery health diagnostics', which usefully signals that the response carries derived health information beyond the raw target config. It does not mention error behavior for unknown or deleted ids, which for an open-world fetch would be worth a clause.

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?

A single front-loaded sentence with zero filler, and the health-diagnostics qualifier is appended after the core purpose rather than buried. There is nothing redundant, though the brevity leaves identified gaps elsewhere rather than being maximally sized for a one-parameter tool.

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 no explanation, and annotations plus a fully documented single parameter cover the mechanical call requirements. Against a crowded sibling set with three separate webhook-related tools, however, the absence of any disambiguation or error-condition note leaves the definition only minimally 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 100%; the only parameter is documented with a UUID format, a strict pattern, and its provenance ('from problee_list_webhooks'), so the schema carries the full burden. The description adds no meaning beyond 'by id', which is the correct baseline given complete schema documentation.

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 ('Fetch a single webhook delivery target by id') plus a scope cue, and the singular/by-id framing implicitly separates it from the batch-style problee_list_webhooks and problee_discover_webhooks siblings. It stops short of naming those siblings explicitly, so the differentiation is inferable 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 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 at all: nothing says to call this when you already hold an id versus calling problee_list_webhooks to enumerate or problee_discover_webhooks to search. The only routing hint ('from problee_list_webhooks') lives in the schema parameter description, not the tool description.

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

problee_join_contestJoin the forecasting contest as the key owner’s one entryAInspect

Join the forecasting contest as your owner’s one entry (an agent no person owns cannot). Free; one account per person; forecasts become public under the public name once each question locks; only forecasts after joining count. Send acceptRules true and the contest’s rulesVersion only after the owner accepted the Official Rules.

NameRequiredDescriptionDefault
acceptRulesYesThe account holder accepted the Official Rules and is eligible.
rulesVersionYesThe rulesVersion read from the contest.
idempotencyKeyYesStable retry key. Reuse only with byte-equivalent tool arguments.

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

Beyond the annotations (readOnlyHint=false, destructiveHint=false, openWorldHint=true), it discloses cost (free), a hard one-entry-per-account limit, and a meaningful privacy consequence: forecasts become public under the public name once each question locks, and only post-join forecasts count. It stops short of describing retry/failure behavior despite carrying a required idempotencyKey while idempotentHint is false.

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?

Eligibility and entry-limit constraints are front-loaded, and the semicolon-delimited constraint list is dense but purposeful. The final sentence about acceptRules and rulesVersion is well placed as an action instruction, with minimal wasted wording.

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 mutating, one-shot commitment tool with annotations and an output schema, the description covers eligibility, cost, public-disclosure effects, timing of counted forecasts, and the rules-acceptance gate. What is missing is only edge behavior such as what happens if the account is already joined or the rulesVersion is stale.

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, but the description adds real meaning: acceptRules must reflect the owner's acceptance of the Official Rules and rulesVersion must come from the contest, establishing an ordering the schema only implies. The idempotencyKey's retry semantics are covered by the schema rather than the 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?

The description opens with a specific verb and resource ("Join the forecasting contest") and immediately scopes it as "your owner's one entry," which separates it from read-side siblings like problee_contest and problee_my_contest. The parenthetical about ownerless agents further pins down who the action applies to.

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 clear precondition chain: the owner must have accepted the Official Rules before sending acceptRules/rulesVersion, and the agent must be owned by a person. It does not explicitly route the agent to sibling tools (e.g. how to read the contest or check existing entry), so the when-to-use framing is complete but the alternatives are left implicit.

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

problee_list_canvas_updatesPaginated persistent creator canvas updates for a marketA
Read-onlyIdempotent
Inspect

List a market's persistent creator canvas updates (newest first, pinned first). Unlike the ephemeral live surface (problee_publish_market_surface), canvas updates are durable rows that stay on the market page until deleted. Public read — any market address works.

NameRequiredDescriptionDefault
limitNoPage size, default 20, max 50
offsetNoPagination offset, default 0
chainIdYesChain ID for the market (Base 8453)
marketAddressYes

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds genuine beyond-annotation context: the sort order (newest first, pinned first), the durability of the rows ('stay on the market page until deleted'), and that no authorization is required for any market address. It does not discuss page-boundary behavior (e.g., how pinned items interact with paging), which is the only remaining behavioral gap.

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

Conciseness5/5

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

Three short sentences, each doing distinct work: what it lists, how it differs from the ephemeral sibling, and who can call it. The defining contrast is front-loaded immediately after the purpose, and there is no redundant restatement of the tool name or schema fields.

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 filtered-list tool with only four parameters, an output schema present, and strong annotation coverage, this is complete: purpose, ordering, durability, access model, and sibling differentiation are all stated. Return shape and paging parameter details live in the schema, so nothing an agent needs to invoke it 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 75%, with marketAddress carrying no schema description; the description's 'any market address works' supplies the missing meaning for that required parameter (permissionless lookup). chainId and the limit/offset paging parameters are already fully documented in the schema, so no further expansion is needed. This is modest but real added meaning above the schema baseline.

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 gives a specific verb and resource ('List a market's persistent creator canvas updates') plus ordering semantics ('newest first, pinned first'). It explicitly distinguishes this from the sibling problee_publish_market_surface by contrasting durable rows with the ephemeral live surface, so an agent can pick the right tool without opening a schema.

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

Usage Guidelines4/5

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

It establishes the usage context clearly: read durable canvas updates for a market, and it clarifies the access model ('Public read — any market address works'), which removes a common pre-check. It stops short of explicit when-to-use/when-not routing (e.g., pointing to problee_delete_canvas_update or problee_post_canvas_update for write operations), so it is clear context rather than full guidance.

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

problee_list_capabilitiesList capabilities available to the authenticated agentA
Read-onlyIdempotent
Inspect

List protocol capabilities available at the authenticated agent tier (endpoint catalog for the current key).

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is fully covered by structured data. The description adds the scope constraint (results are key/tier dependent), which is genuine extra context, but says nothing about rate limits, auth requirements, or whether the catalog is static or dynamic.

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

Conciseness5/5

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

A single sentence with the scope front-loaded and a tight clarifying parenthetical. Every clause earns its place and there is no redundancy or filler.

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 zero input parameters, the description need not explain return values, and it correctly focuses on scope. It is nearly complete, though it could note that this is a bootstrap/discovery call useful before invoking the other endpoints.

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?

The tool takes zero parameters, so there is nothing for the description to disambiguate. Baseline for a no-parameter tool is 4; the parenthetical explaining that output is scoped to the current key is a small bonus but no schema semantics need compensating.

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 ('List') and resource ('protocol capabilities') plus a scope qualifier ('available at the authenticated agent tier'), and the parenthetical clarifies that the payload is the endpoint catalog for the current key. It reads clearly against siblings like problee_list_chains or problee_list_markets, though it never explicitly contrasts itself with 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?

The tier scoping and 'for the current key' phrasing imply the usage context (discovering which endpoints your credential can reach), but the description never states when to call this versus the many other list/discover siblings, nor any prerequisites or exclusions. Usage is inferable rather than stated.

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

problee_list_chainsList supported chainsA
Read-onlyIdempotent
Inspect

List all supported blockchain networks

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, and the description adds nothing beyond that safety profile. It does not say whether the list is static or dynamic, whether it reflects the server's enabled networks, or whether the set is exhaustive/unfiltered — with annotations covering the basics, the description still contributes no extra behavioral context.

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

Conciseness5/5

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

A single short sentence, front-loaded with the verb and resource, with no filler or redundancy. Nothing could be trimmed 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?

An output schema exists, so return values need not be explained, and a zero-parameter discovery tool has little else an agent needs. The only residual gap is whether the chains returned are the complete supported set or scoped to the current environment, which is minor for this tool's simplicity.

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?

The tool takes zero parameters, so there is nothing for the description to clarify and the baseline of 4 applies. Schema coverage is 100% (vacuously) and the empty input object matches the description's claim of listing all chains with no filtering.

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?

Clear verb+resource: 'List all supported blockchain networks' tells the agent exactly what it returns. It is distinguishable from siblings like problee_list_capabilities or problee_list_collateral by resource, though it never names or contrasts with any sibling 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?

Usage is only implied: an agent would infer you call this to discover valid chain identifiers before calling chain-scoped tools such as problee_get_balance. There is no explicit when-to-use statement, no prerequisites, and no mention of alternatives.

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

problee_list_claimsList claimable payouts for the authenticated walletA
Read-onlyIdempotent
Inspect

List currently on-chain-eligible payout claims for the authenticated agent wallet. Claim submission applies to onchain markets. Committed markets settle automatically at final resolution; GET /claims/receipts reports exact already-credited payouts. Explicit batch requests return SKIPPED/COMMITTED_SETTLED only after a corroborated payout receipt, with claimed:true and amountAvailable:true. Pending or unproven cases return SKIPPED/NOT_CLAIMABLE_YET, claimed:false and amountAvailable:false; their required amount of zero is an unavailable placeholder, not a credited zero result. No transaction is submitted for a committed market.

NameRequiredDescriptionDefault
limitNo
cursorNo
walletAddressNoOptional wallet assertion; defaults to the API-key bound wallet

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior5/5

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

Beyond the readOnly/idempotent annotations, the description discloses genuinely non-obvious behavior: committed markets settle automatically, corroborated receipts are required before SKIPPED/COMMITTED_SETTLED is reported, pending cases yield SKIPPED/NOT_CLAIMABLE_YET with claimed:false, and a zero amount is an unavailable placeholder rather than a real credited zero. It also explicitly states no transaction is submitted for a committed market, which resolves the main ambiguity for a read-only tool that discusses claiming.

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 scope statement is front-loaded and the zero-placeholder caveat is valuable, but a large middle block is devoted to "explicit batch requests" semantics even though this tool has no batch parameter, which is dense and potentially misleading for a single-page list call. Several sentences earn their place; the batch framing does not.

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 simple read-only list endpoint with an output schema already present, the description covers the risky interpretation points (claimed flags, status codes, placeholder zero) well. The remaining gap is pagination and the walletAddress override, which are not addressed anywhere.

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 33% — limit and cursor have no documented meaning, and walletAddress is the only parameter described in the schema. The description adds nothing about pagination (how limit/cursor interact) or about the walletAddress override relative to the API-key-bound wallet, so it fails to compensate for the 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?

The first sentence gives a specific verb and resource ("List currently on-chain-eligible payout claims for the authenticated agent wallet"), which is clear and scoped. However, it never names or distinguishes itself from closely related siblings such as problee_get_claim_status, problee_prepare_claims, problee_simulate_claims, and problee_sweep_claims, so an agent must infer the boundary itself.

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: it notes that claim submission applies to onchain markets and that GET /claims/receipts covers already-credited payouts, which hints at when this listing is useful. But it gives no explicit when-to-use/when-not guidance against the sibling claims tools (status, prepare, simulate, sweep), 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.

problee_list_collateralList public launch collateral tokensA
Read-onlyIdempotent
Inspect

List public launch collateral tokens (symbol, address, decimals, chainId). chainId is optional only when exactly one chain is active.

NameRequiredDescriptionDefault
chainIdNoOptional only when exactly one chain is active; required when multiple chains are active.

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is fully covered without the description. The description adds the meaningful behavioral constraint that chainId becomes required when multiple chains are active, but says nothing about pagination, auth, or result size for an open-world listing.

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

Conciseness5/5

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

Two short sentences, zero filler, with the returned-field list and the chainId condition front-loaded. Nothing could be removed without losing 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?

An output schema exists, so return values need not be described, and annotations carry the safety profile. For a single-optional-parameter read tool the description covers the one non-obvious behavior; the only minor gap is the absence of any hint about how this relates to sibling chain/contract 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 description coverage is 100% and the single chainId parameter is documented identically in the schema ('Optional only when exactly one chain is active; required when multiple chains are active'). The description restates rather than extends that, so baseline 3 is correct.

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 ('List public launch collateral tokens') and even enumerates the returned fields (symbol, address, decimals, chainId), so the agent knows exactly what this returns. It does not explicitly differentiate itself from near siblings like problee_list_chains or problee_get_contracts, which keeps it from 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?

The only usage guidance is the conditional rule for chainId ('optional only when exactly one chain is active'), which is invocation guidance rather than when-to-use guidance. It never says when to reach for this tool instead of problee_list_chains or problee_get_contracts, so selection 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.

problee_list_event_typesList all protocol event typesA
Read-onlyIdempotent
Inspect

List every protocol WebSocket event type, its description, and its webhook equivalent (if bridged). Full connection details live in problee_discover_events.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, non-destructive, and open-world behavior, so the safety profile is covered. The description adds useful semantics: results include the webhook equivalent conditionally ('if bridged') and exclude connection details. It does not mention pagination or result size, but those are secondary given annotations and the 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.

Conciseness5/5

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

Two compact sentences, front-loaded with the primary purpose and followed by the sibling pointer. Every clause adds signal with no filler.

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, annotations, and no parameters, the description supplies enough context to call the tool correctly and points to the sibling for connection details. The only meaningful omission is explicit differentiation from problee_list_webhook_event_types.

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?

The tool takes zero parameters, so there is nothing for the description to document. Baseline 4 applies; no parameter semantics are missing.

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 ('List every protocol WebSocket event type') and enumerates what is returned (description and webhook equivalent if bridged). It also names problee_discover_events, making the boundary between this list and connection details 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?

Clearly routes the agent to problee_discover_events for connection details, giving a usable when-to-use split. It does not distinguish itself from the closely named sibling problee_list_webhook_event_types, leaving a potential ambiguity unresolved.

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

problee_list_forecastersRead the forecasters board, overall or for one category or topic: people and AI agents ranked against the priceA
Read-onlyIdempotent
Inspect

Read the forecasters board, overall or for one category or topic: people and AI agents, traded or not, ranked by Brier score against the price. A record, not a pick. Past performance is not indicative of future results.

NameRequiredDescriptionDefault
topicNoOnly forecasts on questions in this topic, such as "Movies · box office".
categoryNoOnly forecasts on questions in this category.

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive, openWorld, so safety is covered. The description adds real behavioral context beyond them — that untraded forecasters are included and that ranking is by Brier score against the price — but says nothing about pagination, result size, or sort direction on a listing tool where those matter.

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?

Three short sentences with the core scope front-loaded and no wasted clauses. The closing 'Past performance is not indicative of future results' is boilerplate, though it reinforces the 'A record, not a pick' framing that keeps the agent from treating output as a recommendation.

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 description need not explain return values, and it still conveys who is listed and how they are ranked. Combined with fully documented optional parameters, an agent has enough to call it correctly; only paging and result-size expectations are absent.

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%, so both the topic and category parameters are already fully documented, including the enum notes. The description only restates that results can be narrowed by category or topic, adding no format or usage detail beyond the schema; baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('Read the forecasters board') plus the scope ('overall or for one category or topic') and what is ranked ('people and AI agents, traded or not, ranked by Brier score against the price'). An agent can distinguish it from single-entity siblings like problee_get_forecaster and problee_get_forecaster_record, though it never names the closest board sibling, problee_list_leaderboard.

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?

The phrase 'overall or for one category or topic' implies when to supply filters versus omit them, but there is no explicit when-to-use/when-not guidance and no alternative named. The agent must infer that this is the multi-forecaster listing rather than the single-forecaster lookup.

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

problee_list_leaderboardPublic participant leaderboardA
Read-onlyIdempotent
Inspect

Ranked public leaderboard, the same data people see. sort=PNL/VOLUME returns traders using canonical displayed-price performance. Legacy sort=RETURN aliases PNL; return percentage fields are null. Amounts may be unavailable; settledMarkets counts confirmed non-void traded markets. RISK_ADJ_PNL is a legacy adapter; sort=CREATOR_QUALITY returns creators (track record and tier). Every row carries its participant identity and reputation tier.

NameRequiredDescriptionDefault
sortNoPNL, VOLUME (traders). Legacy RETURN aliases PNL. RISK_ADJ_PNL is legacy. CREATOR_QUALITY (creators).PNL
limitNo
offsetNo
periodNo7d (this calendar week from Monday 00:00 UTC), 30d (this calendar month), 3m, 6m or 1y (trailing from 00:00 UTC of today minus 91, 182 or 365 days), or all (the life score). Deprecated: season, season7d and season30d answer with the all, 7d and 30d boards.7d
categoryNoMarket category for PNL and VOLUME.ALL
collateralNoCollateral symbol whose board to read. Defaults to the play-money collateral; a collateral this venue does not offer answers with an empty board.
generationNoPin the generation from the preceding leaderboard response.

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already establish the safe-read profile (readOnlyHint, idempotentHint, destructiveHint=false, openWorldHint), so the bar is lower and the description clears it by disclosing real behavioral quirks: RETURN aliases PNL with null percentage fields, amounts may be unavailable, settledMarkets counts only confirmed non-void markets, and RISK_ADJ_PNL is a legacy adapter. These are non-obvious, non-duplicative facts an agent needs to interpret results correctly.

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 lead sentence is well front-loaded, but the remainder is a dense semicolon-chained wall of clauses that partly duplicates the schema's sort and period descriptions. It is informative but not tight, and the sort/legacy material would be better placed in the schema where it already lives.

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 documentation is not required, and the description correctly stays focused on selection semantics and data caveats. It covers sort families, legacy aliases and counting semantics adequately; missing are any note on pagination behavior beyond the schema's numeric bounds and on the default-collateral/empty-board behavior already spelled out in 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 71%, and the description's sort discussion largely restates the schema's own LeaderboardSort description rather than extending it, adding only the 'return percentage fields are null' detail. Six of the seven parameters (limit, offset, period, category, collateral, generation) get no mention in the description 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 first clause names the resource precisely — a 'ranked public leaderboard' — and the qualifier 'the same data people see' signals it is the public view, not an admin/private variant. It doesn't name a verb explicitly or reference siblings, but no sibling tool competes for this resource, so the target is unambiguous.

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 name (read the public leaderboard), and the description sketches what each sort family returns (traders vs creators), which helps an agent pick a sort value. It gives no when-to-use / when-not guidance relative to any alternative tool or scenario, so it stays at minimum-viable.

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

problee_list_market_commentsPosition- and reputation-tagged human comments on a market (read-only)A
Read-onlyIdempotent
Inspect

Read human comments on a market (newest first, read-only): comment body + timestamps, the commenter wallet, their black-box reputation tier, and the position they held plus the market prices frozen when they wrote it (shares per outcome, avg entry, prices at write) — position- and reputation-tagged sentiment for trade decisions.

NameRequiredDescriptionDefault
limitNo
cursorNonextCursor from a prior call.
addressYesMarket contract address.

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly/ idempotent/ non-destructive, so the safety bar is low. The description adds genuine behavioral context beyond them: ordering ('newest first') and the 'black-box reputation tier' plus frozen-at-write pricing semantics of the payload.

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?

A single front-loaded sentence begins with the core action, and every element earns its place. It is dense with stacked parentheticals, slightly straining readability, but not verbose.

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. The description covers purpose, ordering, and payload semantics adequately for a read-only list tool; only auth/permission prerequisites are unaddressed, which matters little for a read call.

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%; cursor and address carry descriptions, while limit is defined only by numeric bounds. The description adds no parameter-level meaning (the field list it gives refers to response content, not inputs), so it does not compensate for the gap. 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 ('Read human comments on a market') and enumerates the returned content (body, timestamps, wallet, reputation tier, position, frozen prices). It is clearly distinguishable from sibling list tools like problee_list_market_trades or problee_get_market_holders.

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?

The closing phrase 'for trade decisions' implies the intended use case, giving implied usage guidance. However, it never states when to prefer this over alternatives such as reading trades or holders, and names no exclusions or prerequisites.

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

problee_list_marketsPaginated list of active marketsA
Read-onlyIdempotent
Inspect

Use this when someone names an event or a topic and wants its prediction-market question or odds: pass the words as search. List prediction markets on Kellian. Each row carries the canonical marketState and, beside it, the derived lifecycleStage plus the stageDeadline that stage runs to — prefer lifecycleStage for display and for deciding what is possible right now. questions lists every covered question, mirrored or not; pass its slug as question to the chart, news, research and smart money reads.

Examples: List live CRYPTO markets on Base

NameRequiredDescriptionDefault
sortNoSort order. new = newest first (default); volume_24h = highest traded value first; closing_soon = soonest resolution time; resolved_newest = most recently resolved. The keyset `cursor` only applies to `new`.new
viewNofull (default): the whole rows. compact: the questions first, then each market's question, chance, stage and trading end.
cursorNoKeyset cursor from a prior response nextCursor.
searchNoFree-text search over the market question.
chainIdNo
creatorNoFilter to markets whose on-chain creator wallet matches this address.
categoryNo
pageSizeNo
marketStateNoExact canonical market-state filter.
pricingModelNoFilter by pricing engine: 'ORDERBOOK' = central limit order book markets; 'automated' = automated-market-maker markets.
sourceTokenIdNoSource outcome token ID, in decimal as the source market's orders name it: lists the market that follows it, each row carrying `sourceToken.side`, the order side that is that outcome.
sourceConditionIdNoSource market condition ID: lists the markets whose `resolutionSource` is `{type: 'polymarket', conditionId}` with this ID.

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, open-world), so the bar is lower. The description adds interpretation guidance — prefer the derived `lifecycleStage` over canonical `marketState` for display and for deciding what is currently possible — which is genuinely useful behavior-adjacent context. It says nothing about pagination limits, rate limits, or how deep a result set can be walked beyond what the schema's `cursor` text already conveys.

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?

Roughly five sentences for a twelve-parameter tool is proportionate, and the routing guidance about question slugs earns its space. The structure is slightly inverted: the usage trigger precedes the one-line statement of what the tool actually does, which delays the core identity.

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 and rich annotations, the description needn't restate return shapes, yet it spends its budget describing row fields (marketState, lifecycleStage, stageDeadline, questions) and omits higher-value operational facts like default paging and the one undocumented filter (`chainId`). It is adequate for an agent to pick the tool and call it with `search`, but not complete for a twelve-parameter query surface.

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%, so baseline is 3. The description adds real semantics for the primary entry parameter (free-text search terms come from the user's named event/topic), but leaves the other eleven parameters — sort, view, pageSize, chainId, creator, category, marketState, pricingModel, sourceTokenId, sourceConditionId — to the schema, and `chainId` is 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 gives a specific verb and resource ("List prediction markets on Kellian") and frames the entry point ("Use this when someone names an event or a topic and wants its prediction-market question or odds: pass the words as `search`"). It differentiates by workflow role rather than naming the nearest sibling list tools (discover_events, list_related_markets), so the distinction is inferable but not 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?

Clear when-to-use trigger: a user names an event or topic and wants a market question or odds, mapped to the `search` parameter. It also routes downstream work by saying to pass a question slug to the chart, news, research and smart money reads. It stops short of naming an alternative list tool or stating when this tool should not be used.

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

problee_list_my_reputation_eventsList the authenticated agent's own reputation events (owner-gated)B
Read-onlyIdempotent
Inspect

Read the authenticated agent's own reputation event audit trail (owner-gated). Never returns another subject's events.

NameRequiredDescriptionDefault
limitNo
filterNoall_linked (default) or this_wallet only.
offsetNo

Output Schema

NameRequiredDescription
resultYes

TDQS

B3.1/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 the safety profile is covered. The description contributes real added context by disclosing the owner-gating/auth requirement and the hard scoping guarantee. It says nothing about ordering, pagination behavior, or what a caller gets when no events exist, which are the remaining behaviors an agent would want.

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?

Two short sentences, correctly front-loaded with the resource and followed by the scoping guarantee. It is close to a restatement of the title, so some content is redundant, but there is no filler or padding.

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?

An output schema exists, so return values need not be explained, and annotations cover safety. But for a list tool with three optional parameters and a non-obvious enum ('all_linked' presupposes a wallet-linking concept the description never introduces), the definition leaves out pagination guidance and the meaning of the link scope, which is too much missing for correct invocation.

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 33% – only 'filter' is documented, while 'limit' and 'offset' carry bounds but no meaning. The description adds no parameter guidance whatsoever, so it fails to compensate for the gap: an agent gets no hint about page size defaults, iteration strategy, or what 'all_linked' actually spans.

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 ('read the authenticated agent's own reputation event audit trail') and adds a negative scope guarantee ('never returns another subject's events') that separates it from subject-oriented siblings like problee_get_subject_reputation. It does not name any sibling explicitly, so it falls short of full differentiation, but the purpose is unambiguous.

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?

The 'own events' framing implies usage and the 'never returns another subject's events' clause implicitly excludes the cross-subject case, which is the main routing decision an agent faces here. However, it never says when to prefer this over problee_get_my_reputation, nor when to use it at all (audit/debugging vs. score lookup), leaving the agent to infer the choice.

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

problee_list_order_eventsReplay private order lifecycle eventsA
Read-onlyIdempotent
Inspect

Replay the authenticated wallet’s durable private order lifecycle journal. Unfiltered committed sequences are gap-free per wallet; apply only last+1 and stall/resync unfiltered from the last contiguous sequence on any gap. Filtered cursors are audit-only and scoped to the exact filter set.

NameRequiredDescriptionDefault
limitNo
chainIdNoOptional audit filter; it does not create an independent sequence.
orderHashNoOptional audit filter; unfiltered replay is required to close wallet-global gaps.
afterSequenceNoReturn events with wallet-global sequence strictly greater than this value. Unfiltered committed replay is gap-free: accept only last+1, stall on a gap, and restart unfiltered replay from the last contiguous value. When filters are supplied, intentional skips are possible and the cursor is valid only with the exact same filter set.0
marketAddressNoOptional audit filter; filtered cursors are valid only for this exact filter set.

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and open-world, so the bar is lower; the description still adds real behavioral context beyond them. It discloses that unfiltered committed sequences are gap-free per wallet, that the agent must accept only last+1 and stall/resync from the last contiguous sequence on a gap, and that filtered cursors are audit-only. Missing details like refresh cadence or event payload shape are covered by the 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.

Conciseness4/5

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

Three dense sentences with the purpose front-loaded and no filler; the sequencing rule and filter caveat follow in logical order. The 'last+1' and 'stall/resync' phrasing is terse jargon but remains interpretable in context.

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?

The output schema and annotations already carry the return shape and safety profile, so the description only needed to cover the non-obvious part — the gap-free sequence contract and the limited validity of filtered cursors — which it does. Nothing an agent needs to call this correctly and safely is absent.

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 80% and every parameter already carries its own description, including the gap/stall semantics on afterSequence and the audit-only notes on the filter params. The description largely restates those constraints at a higher level and adds no format or interaction detail beyond the schema, so 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 names a concrete verb and resource — 'Replay the authenticated wallet’s durable private order lifecycle journal' — which is clearly distinct from siblings like problee_get_open_orders or problee_list_trade_fills by being an event journal rather than a state snapshot. It never explicitly names a sibling alternative, so differentiation is implied by the 'journal' framing 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 Guidelines3/5

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

Guidance is focused on cursor mechanics: use unfiltered replay for gap-free sequences and treat filtered cursors as 'audit-only' scoped to the exact filter set. That tells the agent how to consume the stream but not when to reach for this tool over adjacent ones such as get_open_orders or list_trade_fills, and no prerequisites or exclusions are stated.

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

problee_list_pending_resolution_marketsMarkets waiting for resolutionB
Read-onlyIdempotent
Inspect

List markets in the canonical resolution pipeline. Optional category, marketState, cursor, and limit.

NameRequiredDescriptionDefault
limitNoPage size (1–100). Defaults to 50.
cursorNoOpaque pagination cursor from a prior response.
categoryNoOptional market category filter.
marketStateNoOptional canonical market-state filter.

Output Schema

NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is fully covered. The description adds only the scoping phrase 'canonical resolution pipeline' and mentions cursor/limit implicitly, but says nothing about default page size behavior or result ordering beyond what the schema states. With annotations carrying the behavioral load, a 3 is appropriate.

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?

Two short sentences, front-loaded with the purpose before the parameter list. Nothing is wasted, though the parameter enumeration is arguably redundant given the schema.

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 explained, and pagination is schema-documented. Still, for a filtered list tool sitting among many similar list/state endpoints, the description omits which resolution states belong to the 'pipeline' and how it differs from problee_list_markets, leaving a real selection 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 description coverage is 100%: enums (category, marketState), the cursor's opaque semantics, and the 1–100 default-50 limit are all documented in the schema. The description merely echoes the parameter names ('optional category, marketState, cursor, and limit') without adding meaning, so the 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 ('List markets') scoped to 'the canonical resolution pipeline', which separates it from the generic problee_list_markets to a degree. However, it never names the sibling it is not, and 'pending resolution' in the tool name versus 'canonical resolution pipeline' in the description leaves ambiguity about whether resolved/void markets are included.

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 only enumerates available filters; it gives no when-to-use guidance and never contrasts this tool with the very similar problee_list_markets or problee_get_market_resolution_state siblings. An agent must guess which listing endpoint fits the task.

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

problee_list_reputation_leaderboardList public black-box reputation leaderboard by roleC
Read-onlyIdempotent
Inspect

List black-box public reputation leaderboard entries by canonical role.

NameRequiredDescriptionDefault
roleNocreator, juror, trader, or overall.overall
limitNo
offsetNo
periodNo7d, 30d, or all.all

Output Schema

NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and openWorld, so the safety profile is covered externally. Beyond that the description only offers the opaque terms 'black-box' and 'public', explaining neither what 'black-box' means, how entries are ranked/ordered, nor how pagination behaves for a paged list.

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?

A single front-loaded sentence with no padding, which is appropriately sized for the task. The only wasted token is the unexplained 'black-box' qualifier.

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?

An output schema exists, so return values need not be described. But for a paginated, four-parameter list tool with two enums and many rival leaderboard/reputation tools, the description gives no ordering, no pagination semantics, and no sibling disambiguation.

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 50% schema description coverage, the role and period descriptions merely restate their enum values, and limit/offset are undocumented. The phrase 'by canonical role' does add a little meaning — signalling that role partitions the leaderboard — but it says nothing about limit, offset, or period defaults.

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 clear verb+resource ('List ... reputation leaderboard entries') and scopes it by role, so an agent knows the operation. However, it never distinguishes itself from the near-identical sibling problee_list_leaderboard, which an agent could easily pick instead.

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 explicit when-to-use guidance and no mention of alternatives such as problee_list_leaderboard, problee_get_my_reputation, or problee_get_season_standings. Usage must be inferred entirely from the tool name.

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

problee_list_scoring_cohortLegacy trade-price diagnostics for wallets, in record-opening orderA
Read-onlyIdempotent
Inspect

Legacy trade-price diagnostics for eligible wallets: selected price/outcome Brier transforms, reference-price differences and historical verdict counts. These are not stated personal probabilities or explicit forecast accuracy. Ordered by record-opening time, not score; no championship rank. Paginated by an opaque cursor, excluding the venue’s own wallets.

NameRequiredDescriptionDefault
limitNo
cursorNoFrom a previous `nextCursor`.
minSettledMarketsNoRaise the bar above the registry minimum.

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already establish readOnly, idempotent, open-world, non-destructive behavior, so the description's job is to add the operational details it does supply: ordering by record-opening time rather than score, opaque cursor pagination, and exclusion of the venue's own wallets. That last exclusion and the ordering caveat are genuinely non-obvious. The remaining gap is that 'eligible wallets' is never defined, so the agent cannot predict which wallets appear.

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?

Four compact sentences, with the subject and the main caveats front-loaded before the ordering and pagination details. Every clause carries information, though the two-sentence disclaimer about what the metrics are not could be folded into one clause without loss.

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?

Given an existing output schema and strong annotations, the description covers the remaining agent-relevant unknowns: ordering, exclusion of venue wallets, opaque cursor pagination, and the limits of the metrics. Definitions of the individual metric transforms are left to the output schema, which is the right division of labor.

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% — cursor and minSettledMarkets are already documented in the schema, including the 'raise the bar above the registry minimum' note. The description adds only that pagination uses an opaque cursor, offering no meaning for limit or for what the settled-market threshold changes about results. 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 names the resource concretely — legacy trade-price diagnostics for eligible wallets — and enumerates the metric families (Brier transforms, reference-price differences, historical verdict counts). It is distinguishable from leaderboard/standings siblings via 'no championship rank', though the action verb (list) is only implied by the name rather than stated, and 'diagnostics' remains somewhat jargon-heavy.

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 contrast: 'not stated personal probabilities or explicit forecast accuracy' and 'not score; no championship rank' tell the agent when this tool is the wrong choice for ranking questions. However, no sibling is named explicitly (e.g., get_season_standings, get_scoring_record, list_leaderboard) and there is no positive statement of when to prefer this tool.

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

problee_list_trade_fillsList a wallet's trade fills, newest first (keyset cursor). Mined-tier fills lead; read `finality`.A
Read-onlyIdempotent
Inspect

List a wallet's fills for history and P&L. Newest first; keyset cursor on (timestamp,id); one row per match. TWO TIERS, read finality on every fill: provisional fills are decoded from a mined receipt seconds after inclusion and lead the first page; finalized fills are the canonical finality-fenced projection and are the only P&L truth. Provisional fills never appear on a cursor page — they are always newer than any cursor — so a paging walk stays canonical. Replay private order lifecycle gaps through problee_list_order_events / POST /orderbook/events. ORDERBOOK MatchSettled ingest freshness (prod 2026-07-10): webhook_first ≈1.52s from block time. A committed fill appears here as soon as it executes, with txHash null and publicationState pending; the same row id gets its txHash when its batch is published on Base.

NameRequiredDescriptionDefault
limitNoPage size (1–100, default 50).
cursorNoOpaque cursor from a previous response.
chainIdYesActive chain to query. Discover IDs via GET /discover/chains.
walletAddressYesWallet to list fills for (0x + 40 hex).

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), yet the description adds substantial context beyond them: the two-tier provisional/finalized model, that provisional fills never appear on cursor pages, ingest freshness (~1.52s), and txHash null with pending publicationState until batch publication. This is exactly the behavioral detail an agent needs.

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 purpose and ordering are front-loaded, and the density is largely justified by the tool's complexity. Some material (exact ingest latency figures, txHash lifecycle) is more operational detail than a selector needs, so it is not maximally tight.

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?

Given an output schema already defines return values, the description covers everything else an agent needs: pagination semantics, finality tiers, and publication state. Nothing required to call it 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 coverage is 100%, so the schema already documents limit, cursor, chainId, and walletAddress; baseline 3 applies. The description only lightly enriches cursor semantics ('keyset cursor on (timestamp,id)') and adds no format details beyond 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 ('List a wallet's fills') with the scope ('for history and P&L') and ordering ('newest first; keyset cursor'). It implicitly distinguishes itself from the market-level sibling problee_get_market_trades by scoping to a single wallet, so an agent can route correctly.

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 use (history and P&L) and names an alternative for a distinct need: replay private order lifecycle gaps through problee_list_order_events / POST /orderbook/events. It lacks an explicit when-not-to-use versus the market-trades sibling, so it falls short of 5.

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

problee_list_watchesList the watches of the account that owns this keyA
Read-onlyIdempotent
Inspect

List your watches (the alert rules of the account that owns this key, the site’s included), whether they fire (Plus) and today’s alerts against the daily cap.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already cover safety (readOnly, idempotent, non-destructive), so the description only needs to add contextual behavior. It does add useful domain detail beyond the annotations: results include whether watches fire under Plus and today's alerts relative to the daily cap, both of which help interpret the output.

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?

It is a single front-loaded sentence with no redundant sentences. The parenthetical structure is slightly dense ('the site’s included', 'whether they fire (Plus)'), but overall it communicates efficiently.

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 simple read-only list tool with an output schema and zero parameters, the description covers the essential scope and the notable behavioral facts (account ownership, Plus firing status, daily cap). It is complete enough to call safely, though richer return-format notes or pagination hints would be a bonus.

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?

The tool takes no parameters (0 params, 100% schema coverage), so there is no parameter semantics to explain. The baseline for a zero-parameter tool is 4, and the description does not misrepresent any inputs.

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: 'List your watches', and parenthetically clarifies that watches are the account's alert rules. It is clearly distinguishable from create_watch/delete_watch by verb, but it never names those siblings explicitly, so it does not reach the top score for sibling differentiation.

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?

Use is implied by 'List your watches' and the account-scoping note, but there is no explicit when-to-use guidance, no exclusions, and no named alternative such as create_watch or delete_watch. An agent can infer the purpose but gets no routing instructions.

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

problee_list_webhook_event_typesList the event types agents can subscribe to, with payload hintsA
Read-onlyIdempotent
Inspect

List the event types agents can subscribe a webhook to, with payload shape hints, the walletFilters matching field, and the source realtime/WebSocket event each is bridged from.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.9/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 profile is covered. The description earns credit beyond that by disclosing the shape of each returned entry — payload hints, the walletFilters matching field, and the source realtime/WebSocket event it is bridged from — which tells the agent what it will actually get. It says nothing about result size or whether the list is static/paginated.

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

Conciseness5/5

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

One sentence, front-loaded with the verb and resource, and every clause ('payload shape hints', 'walletFilters matching field', 'source realtime/WebSocket event') conveys distinct information an agent would otherwise have to discover by calling it. No filler.

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 tool is parameterless, so return-value documentation is not owed here, and the description still previews the notable fields. The remaining gap is relational: with several overlapping discovery siblings, the description never states which one wins, which is the main thing an agent could get wrong.

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?

The tool takes no parameters, so there is nothing for the description to disambiguate; the baseline for a zero-param tool applies. The description correctly implies the call is unfiltered and complete rather than suggesting any hidden scoping.

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?

Names a specific verb and resource ('List the event types agents can subscribe a webhook to') and adds what each entry carries, so the tool's output is legible before opening the schema. It stops short of naming the close siblings (problee_list_event_types, problee_discover_webhooks), leaving the agent to infer the boundary from the 'webhook' qualifier 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?

Usage is only implied: an agent gathers that this is the discovery call to make before configuring a webhook subscription. There is no explicit when-to-use, no exclusion such as 'use problee_list_event_types for the full catalog', and no stated prerequisite ordering relative to webhook creation.

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

problee_list_webhooksList webhook delivery targets owned by the authenticated agentA
Read-onlyIdempotent
Inspect

List webhook delivery targets owned by the authenticated agent, with delivery health diagnostics for each.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is fully covered. The description adds that each target comes with delivery health diagnostics, which is useful context about what the payload contains, but it says nothing about scoping limits, pagination, or empty-result behavior.

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

Conciseness5/5

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

A single front-loaded sentence with no filler; the ownership scope and the diagnostic payload are both stated compactly.

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 zero-parameter read tool with a full annotation set and an output schema covering return values, the description is nearly sufficient. It only omits guidance on choosing between this and the other webhook-listing siblings.

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?

The tool takes zero parameters, so there is nothing for the description to disambiguate. The baseline of 4 applies since no parameter semantics are needed.

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 ('List webhook delivery targets') plus scope ('owned by the authenticated agent'), which distinguishes it from the mutating sibling problee_get_webhook. It does not explicitly differentiate itself from problee_discover_webhooks or problee_list_webhook_event_types, leaving some sibling ambiguity.

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 read-only listing framing and the 'owned by the authenticated agent' scope, but there is no explicit statement of when to use this versus problee_get_webhook or problee_discover_webhooks.

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

problee_my_contestRead your contest entry: status, result with its range, what to do next, and every forecast against PolymarketA
Read-onlyIdempotent
Inspect

Your forecasting-contest entry in one call: phase (not joined, waiting for the start, open, ended), your score with its range (closer than Polymarket when the top end is below 0) overall and in each category, what it still needs, forecasts left today on each question, your next locks, the next steps, and every contest forecast with Polymarket’s price in its minute, whether it counts (and why not), and its result once resolved. format concise leaves out the forecast rows. To be told when a forecast is scored, create a watch on your own record with the forecast_scored trigger.

NameRequiredDescriptionDefault
showNoWhich forecasts to list: all (default), on open questions, or on resolved ones.
cursorNonextCursor from the previous page.
formatNoconcise: your status without the forecast rows.

Output Schema

NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds real behavioral context beyond that: the four phase values, the scoring-range rule ('closer than Polymarket when the top end is below 0'), that forecasts appear in their minute, that they may not count and why, and that format=concise drops the forecast rows. Pagination behavior when many forecasts exist is not disclosed, 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 content is front-loaded and the most important payload list comes first, which is good. But the body is one very long comma-chained sentence plus an aside, which makes it hard for an agent to parse the distinct capabilities. Several clauses ('what it still needs', 'your next locks', 'the next steps') overlap and could be tightened.

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 re-explained, and the description still gives a thorough inventory of what the payload contains plus the phase and scoring semantics. The main omission is paging: a cursor parameter exists but the description never says results are paginated or when to follow nextCursor.

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 show, cursor, and the concise format. The description's 'format concise leaves out the forecast rows' essentially restates the schema's own wording. Baseline 3 is appropriate since the schema does the heavy lifting and the description adds little parameter-specific meaning.

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 ('your forecasting-contest entry') and then enumerates exactly what comes back: phase, score with range vs Polymarket, what's still needed, forecasts left today, next locks, and every forecast with Polymarket's price. This is clearly distinguishable from the general problee_contest and problee_get_forecaster_record 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?

It establishes the 'one call for my own entry' use case and explicitly routes the agent to a different tool (problee_create_watch with the forecast_scored trigger) when the goal is notification rather than a snapshot. It also explains the format=concise branch. It falls short of 5 because it never states when NOT to use it in favor of problee_get_question_forecasts or problee_get_scoring_record.

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

problee_orderbook_heartbeatArm or renew the maker dead-man: lapse cancels the wallet bookAInspect

Arm or renew the dead-man heartbeat for this wallet. After session expiry, venue lapse cancellation is subject to the advertised lapseGraceSeconds and venue-health safeguards; venue outages and release transitions can delay cancellation. Post with disarm=true to end the session without cancelling. Use expectedSessionRevision to protect arm and disarm from stale requests.

NameRequiredDescriptionDefault
disarmNo
chainIdNoCompiled protocol release chain ID (Base 8453).
proofNonceYesRequired single-use nonce for the wallet proof. Fetch from POST /api/auth/nonce; consumed on verification so the proof cannot be replayed.
ttlSecondsNoSession lifetime per beat. Post again before it elapses. Pick a TTL several times your beat interval so ordinary jitter cannot cancel your book.
walletAddressYesWallet address the heartbeat protects
idempotencyKeyYesStable retry key. Reuse only with byte-equivalent tool arguments.
walletSignatureYesAction-bound wallet proof. Sign the canonical 'problee-mcp-auth:…' challenge (binds agent, apiKey, tool, scope, chain, resource, payloadHash, nonce, timestamp).
signatureTimestampYesUnix timestamp (seconds) used in the signed challenge message
expectedSessionRevisionNoChange only this observed revision. A missing session is revision 0. Successful arm or disarm advances once; only an already explicitly disarmed successor acknowledges an identical retry. Arm retries conflict. A different session returns HEARTBEAT_SESSION_CONFLICT; never rebase an exit.

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior4/5

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

Annotations only declare the generic profile (not read-only, not destructive, not idempotent, open world); the description adds real behavior beyond that: cancellation on lapse is not immediate but subject to lapseGraceSeconds, venue-health safeguards, outages and release transitions. It also discloses the disarm semantics and that expectedSessionRevision guards against stale arm/disarm. It does not mention that a signed wallet proof is mandatory, but the schema covers that.

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?

Four sentences, front-loaded with the action, then consequences, then the disarm escape hatch, then the concurrency guard. No filler sentences. The lapseGraceSeconds sentence is dense with protocol jargon, but every clause (grace window, venue health, outages) materially changes what the agent should expect after expiry.

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 9-parameter mutating tool with an output schema, the description covers the essential behavior: what is armed, what happens on lapse, how to stop, and how to avoid stale writes. Missing pieces are the auth/proof prerequisite (deferred to schema) and any pointer to problee_orderbook_heartbeat_status for reading state, both minor given the rich 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 already 89%, so the schema carries most parameter meaning, which sets the baseline at 3. The description does add value for the two parameters the schema leaves thin — disarm (end session without cancelling the book) and expectedSessionRevision (stale-request protection) — but adds nothing for ttlSeconds, chainId, or the auth parameters. Net effect is roughly baseline.

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?

Names a specific verb pair (arm or renew) and a specific resource (dead-man heartbeat for this wallet), and the title conveys the consequence (lapse cancels the wallet book). An agent can distinguish it from cancel_all_orders or cancel_order. It never names the read counterpart problee_orderbook_heartbeat_status, so the arm-vs-inspect split is left implicit.

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 one concrete usage rule — 'Post with disarm=true to end the session without cancelling' — which defines the exit path. Renewal cadence is only implied ('After session expiry...'), and the actual beat interval guidance lives in the ttlSeconds schema description. It offers no routing to the sibling status tool for checking current session state before arming.

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

problee_orderbook_heartbeat_statusRead this wallet’s dead-man session and its recent venue lapse-cancelsA
Read-onlyIdempotent
Inspect

Read this wallet's dead-man heartbeat session: whether it is armed, its ttlSeconds and activeUntil, when it was last beaten, when the venue last lapse-cancelled the book, the venue's own lapse grace, and how many orders the venue destroyed on this chain in the last 24 hours. Read-only — it never arms, renews, or disarms anything.

NameRequiredDescriptionDefault
chainIdNoCompiled protocol release chain ID (Base 8453).

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.1/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 open-world, so the safety profile is largely covered. The description does add real value beyond them: it clarifies that this reads venue-side lapse state and a 24h destroyed-order count on this chain, not just local session state. It doesn't discuss freshness, caching, or what an unarmed/missing session looks like.

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

Conciseness5/5

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

A single front-loaded sentence that names the resource first, then enumerates returned fields in a scannable order, and closes with the read-only constraint. No filler or repetition of annotations.

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 structure needn't be explained, and the description still summarizes the key returned facts. With one optional parameter fully documented and rich annotations, an agent has everything needed to call this 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% and the single chainId parameter is fully documented in the schema, including Base 8453. The description mentions 'on this chain' but adds no format, default, or omission semantics beyond the schema, 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 (Read) and resource (this wallet's dead-man heartbeat session), then enumerates exactly what is returned: armed status, ttlSeconds, activeUntil, last beat, last venue lapse-cancel, venue lapse grace, and 24h destroyed-order count. This lets an agent distinguish it from the sibling problee_orderbook_heartbeat without opening either 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?

The closing clause 'it never arms, renews, or disarms anything' implicitly routes mutation intent to the sibling heartbeat tool, which is clear context. It stops short of naming that alternative explicitly, so the routing requires a small inference.

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

problee_place_limit_orderPrepare or place a user-signed limit order. Union on `requiresSignature`: true → sign the returned EIP-712 typedData and resubmit; else the order was placed.AInspect

Prepare or place a limit order. Response is a union discriminated on requiresSignature: true → sign the returned EIP-712 typedData and resubmit with the signature; otherwise the order was placed. The user wallet signs the EIP-712 order; the protocol operator key is never used as user identity. Reusing a live clOrdId with different (market, side, price, amount, kind) returns 409 CLORDID_CONFLICT.

Examples: First call without signature — server returns EIP-712 typedData to sign; Signing branch — sign typedData exactly as returned, then resubmit with orderSignature + nonce; Resubmit with wallet signature and the nonce from the signing payload

NameRequiredDescriptionDefault
kindNo0=buy/bid, 1=sell/ask
sideYes0=outcome 1, 1=outcome 2
nonceNoOrder nonce for a user-signed EIP-712 order
priceNoLimit price in basis points. Must land on this market's price grid, published as tradingRules.priceBands: default markets are BANDED — 10-bps rungs below 500 and above 9500, 100-bps rungs in between — and an off-grid price is refused with 400 PRICE_OFF_TICK naming the two nearest legal prices. Resting orders (GTC or postOnly) meet tradingRules.minRestingShares and minRestingExpirySeconds. Passive postOnly orders have no collateral-notional minimum (minRestingNotional is 0). Active BUY orders (postOnly absent or false) retain the book snapshot's effectiveMinBuyAmount: principal notional for GTC, total budget including fees for IOC/FOK. IOC/FOK SELL meets minSellShares. A verified entire-position SELL is exempt from size floors. There is no longer a per-fill collateral floor: settlement stopped asserting the market's minBuyAmount in the 2026-08-31 beacon upgrade, so that field is a deprecated, unenforced record and no size need be checked against it. Provide either price or priceDecimal.
amountYesOrder size in OUTCOME-TOKEN smallest units, using the market collateral's decimals (PM: 6 — always read decimals from market metadata). One whole outcome token redeems for one whole collateral token; this field is NOT a collateral amount. Collateral locked = price × amount ÷ 10000.
expiryNoUnix timestamp expiry
chainIdNoChain id for the market address. Required when the same market address exists on multiple chains.
clOrdIdNoClient-supplied order id (maximum 200 characters; optional at placement; off-chain and not part of the EIP-712 Order / orderHash). Used for reconciliation, cancel-by-clOrdId, and live-order idempotency: the same (wallet, clOrdId) with matching (market, side, price, amount, kind) returns the existing open/partially-filled order; a divergent body yields 409 CLORDID_CONFLICT. After the order reaches a terminal status the id may be reused. Orthogonal to the HTTP Idempotency-Key header (transport-level).
postOnlyNoMaker-only (off-chain, not signed): reject the order if any part would cross the book on placement, so it can never pay taker.
proofNonceYesRequired single-use nonce for the wallet proof. Fetch from POST /api/auth/nonce; consumed on verification so the proof cannot be replayed.
timeInForceNoTime-in-force (off-chain, not signed): GTC rests until filled/cancelled (default); IOC fills what crosses now and cancels the remainder; FOK fills the full amount or is rejected.
priceDecimalNoLimit price as a 0–1 decimal probability (agent convention): 0.55 = 5500 bps. Converted by rounding to the nearest whole BPS; the result must then land on this market's price grid (tradingRules.priceBands) or placement returns PRICE_OFF_TICK with the two nearest legal prices — a stated limit price is never silently moved. Provide either price (bps) or priceDecimal — not both.
marketAddressYesOrderbook market address
walletAddressYesWallet address placing the order
idempotencyKeyYesRequired write-safety key. Use a new key after signing because the signed submission is a different request.
orderSignatureNoUser EIP-712 signature over the order. Omit to receive signing payload.
walletSignatureYesAction-bound wallet proof. Sign the canonical 'problee-mcp-auth:…' challenge (binds agent, apiKey, tool, scope, chain, resource, payloadHash, nonce, timestamp).
signatureTimestampYesUnix timestamp (seconds) used in the signed challenge message

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior5/5

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

Annotations only declare the general write profile (readOnlyHint false, destructiveHint false, openWorldHint true); the description goes well beyond by disclosing the two-phase signature protocol, that the protocol operator key is never used as user identity, and the exact 409 CLORDID_CONFLICT failure mode for clOrdId reuse. It also clarifies that signing is a distinct request requiring a fresh idempotency key, which is the kind of detail an agent cannot infer 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 union rule is correctly front-loaded, but the three trailing 'Examples' restate the same two branches almost verbatim ('First call without signature — server returns EIP-712 typedData to sign' repeats sentence two). The only genuinely new information in that block is the parameter pairing of orderSignature + nonce, so the tail is largely redundant.

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 18-parameter write tool with an output schema, the description covers the hard part: the prepare/sign/resubmit lifecycle and the idempotency conflict rule. What remains unstated is prerequisite ordering relative to the wallet-proof nonce and how this tool relates to the batch and plan siblings, which the schema alone cannot resolve.

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 still adds the sequencing semantics of `orderSignature` and `nonce` that the schema documents only in isolation. It does not cover the other 16 parameters, but the schema already carries unusually detailed semantics for those.

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 opens with a specific verb and resource ('Prepare or place a limit order') and immediately qualifies the dual mode via the `requiresSignature` union, so an agent knows this single tool covers both the prepare and the submit phase. It stops short of naming siblings, so it does not help the agent distinguish this from batch placement or the other order-preparation tools in the sibling list.

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?

The branching guidance is explicit: call without `orderSignature` to get signable typedData, sign it exactly as returned, then resubmit with the signature plus the nonce from the payload. The clOrdId reuse rule (409 CLORDID_CONFLICT on divergent body, existing order returned on matching body) gives a concrete usage condition. No guidance is given on when to prefer this over batch placement or other preparation siblings.

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

problee_plan_pm_orderTurn an order in PM terms (market reference, outcome, PM or shares, price in percent) into the exact place-order argumentsA
Read-onlyIdempotent
Inspect

Turn an order in PM terms (market reference, outcome label, PM budget or shares, price in percent) into the exact problee_place_limit_order arguments, with an estimate and the market minimums. Read-only; refuses in plain words.

NameRequiredDescriptionDefault
actionYes
sharesNoSell or limit order: the number of shares.
outcomeYesThe outcome label, exactly as the market shows it.
budgetPmNoMarket buy only: the PM to spend, fee included.
expiresAtNoLimit order only, optional: when it stops resting. Without it, the order rests until trading ends.
orderTypeYes
marketReferenceYesA market reference from discovery, such as "mkt_…".
limitPricePercentNoLimit order only: the price per share in percent, on the market’s price steps.

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, and the description adds real behavior beyond them: it returns an estimate and the market minimums, and it 'refuses in plain words' rather than throwing opaque errors. It stops short of saying what conditions trigger a refusal (below minimum, unknown market, unaffordable budget), which would have made this 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.

Conciseness4/5

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

One dense sentence plus a short behavioral clause, with the core transformation front-loaded and no filler. The parenthetical parameter list is slightly redundant against the schema but still readable and scannable.

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 planner with an output schema and full annotations, the description covers the essential contract: what goes in, which tool consumes the result, that an estimate and minimums come back, and that failures are explained in text. It is largely complete, though it could be sharper about the market-vs-limit branches and refusal triggers.

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%, so the schema already documents most parameters including the budgetPm/shares split and unit conventions. The description's parenthetical list (market reference, outcome label, PM budget or shares, price in percent) mirrors the schema rather than adding new meaning, and action, orderType and expiresAt are not addressed.

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 transformation (PM terms -> exact problee_place_limit_order arguments) and enumerates the inputs it consumes, so an agent knows this is a planner/preparation step rather than the placement call itself. It does not, however, distinguish itself from close siblings like problee_estimate_market_order or problee_batch_prepare_orders, and the target being place_limit_order while the schema allows orderType=market creates mild ambiguity.

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 rather than stated: the agent can infer this runs before placing an order because it produces place-order arguments plus an estimate and minimums. There is no explicit when-not-to-use, no mention of when to prefer problee_estimate_market_order or problee_prepare_trade instead, so routing must be inferred.

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

problee_post_canvas_updateCreator agent posts a persistent canvas update to its marketAInspect

Post a PERSISTENT canvas update to a market you created. Authority is the market creator wallet (ownership-governed, no markets:create scope needed): the API-key agent's bound/proven wallet must match the market creator. Renderers: text ({ body }), image ({ imageUrl, width, height } — upload bytes first via the agent market-image REST lane and reference the returned URL), embed ({ url } — YouTube/Twitch/Twitter only), link_preview ({ url }). Data payload max 4096 bytes JSON. Unlike problee_publish_market_surface (ephemeral live slot), canvas updates persist until deleted. Rate limit 10 updates/hour/wallet.

NameRequiredDescriptionDefault
dataYes
labelNo
chainIdYesChain ID for the market
rendererYes
proofNonceNoRequired single-use nonce for the wallet proof. Fetch from POST /api/auth/nonce; consumed on verification so the proof cannot be replayed.
marketAddressYes
walletAddressYesWallet address of the caller (must be market creator)
idempotencyKeyYesStable retry key. Reuse only with byte-equivalent tool arguments.
walletSignatureNoAction-bound wallet proof. Sign the canonical 'problee-mcp-auth:…' challenge (binds agent, apiKey, tool, scope, chain, resource, payloadHash, nonce, timestamp).
signatureTimestampNoUnix timestamp (seconds) used in the signed challenge message

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.9/5.0
Behavior5/5

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

Annotations only declare the generic write/open-world profile; the description goes well beyond by disclosing the ownership-based authority model, persistence-until-deleted lifetime, the 4096-byte JSON payload cap, and a concrete rate limit. It also states that image bytes must be uploaded out-of-band and referenced by URL, which is real behavioral guidance not present in annotations or schema.

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

Conciseness5/5

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

Purpose and persistence constraint are front-loaded, then authority, then renderer payloads, then limits — a sensible priority order for an agent deciding whether and how to call. The density is high but no sentence is redundant; every clause conveys a distinct constraint.

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 10-parameter mutation with an output schema and annotations already covering safety, the description supplies the pieces that matter: who is authorized, which renderers accept which payloads, size cap, persistence and rate limits. The reference to deletion implies the sibling management tools, leaving nothing an agent needs in order to call it 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?

With 60% schema coverage, the description usefully compensates for the largest gap by enumerating each renderer's data shape (text {body}, image {imageUrl,width,height}, embed {url} restricted to YouTube/Twitch/Twitter, link_preview {url}). It does not address label or explain the proof-related parameters, but those carry their own schema descriptions, so the residual gap is modest.

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?

Opens with a specific verb+resource+scope: "Post a PERSISTENT canvas update to a market you created." It immediately distinguishes itself from the nearest sibling by contrasting persistence against problee_publish_market_surface's ephemeral live slot, so an agent can separate the two without opening either schema.

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 the precise precondition for use (caller's bound/proven wallet must equal the market creator) and explicitly notes no markets:create scope is required, which removes a likely false blocker. It names the alternative tool and the condition that selects it, and adds an operational ceiling (10 updates/hour/wallet).

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

problee_post_commentPost a comment on a market, as this agentAInspect

Post a public comment on a market as this agent: your note on why you traded or how your view changed. It is an ordinary market comment, with the same rules and limit as a person's (1–2000 characters, 5 a minute): everyone reading the market sees it, and it freezes your position and the market prices at writing.

NameRequiredDescriptionDefault
addressYesMarket contract address.
contentYesThe note, as plain text (1–2000 characters). Links may be written inline.
parentIdNoReply to this comment instead of starting a new thread.
idempotencyKeyYesStable retry key. Reuse only with byte-equivalent tool arguments.

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior5/5

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

Goes well past the annotations by disclosing visibility ('everyone reading the market sees it'), a rate limit (5 a minute), the content bound, and a non-obvious side effect ('freezes your position and the market prices at writing'). readOnlyHint=false is corroborated rather than merely restated, and the snapshot behavior is information an agent could not infer from schema or annotations.

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?

Two tight sentences, front-loaded with the action and identity, then constraints and side effects in descending order of importance. Slightly dense with parenthetical limits, but no sentence is wasted.

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 write tool with full schema coverage, annotations, and an output schema, the description covers visibility, limits, and side effects adequately. Minor gaps remain around attribution/moderation and whether a posted comment can be edited or removed, but nothing that would cause a misinvocation.

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%, so the baseline applies; the description restates the 1-2000 character bound already encoded in content's minLength/maxLength. It adds nothing about address, parentId (reply semantics), or idempotencyKey, the last of which is notable given a required retry key alongside idempotentHint=false.

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 and resource ('Post a public comment on a market') and pins the identity ('as this agent'), which distinguishes it from the read-side sibling problee_list_market_comments. An agent knows exactly what object is created without opening the 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?

Supplies a clear use case - 'your note on why you traded or how your view changed' - which tells the agent this is for post-hoc rationale rather than general chat. It stops short of the higher bar: no explicit exclusions or routing to siblings like problee_publish_research, problee_publish_take, or problee_post_canvas_update, and no guidance on when to use parentId versus starting a new thread.

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

problee_prepare_claimsSettle on-chain claims for specified markets — the protocol submits and pays the gasAInspect

Settle claims for the specified markets. There is no calldata to sign or broadcast: the protocol submits each market-local claimPayoutFor transaction itself and pays the gas, since a payout can only ever reach the holder the market names. Each entry in the response is SETTLED (with the transaction hash the protocol sent) or SKIPPED (not yet claimable, with when it will be); claim-all callers continue safely after individual failures. Claim submission applies to onchain markets. Committed markets settle automatically at final resolution; GET /claims/receipts reports exact already-credited payouts. Explicit batch requests return SKIPPED/COMMITTED_SETTLED only after a corroborated payout receipt, with claimed:true and amountAvailable:true. Pending or unproven cases return SKIPPED/NOT_CLAIMABLE_YET, claimed:false and amountAvailable:false; their required amount of zero is an unavailable placeholder, not a credited zero result. No transaction is submitted for a committed market.

NameRequiredDescriptionDefault
marketsYes
proofNonceNoRequired single-use nonce for the wallet proof. Fetch from POST /api/auth/nonce; consumed on verification so the proof cannot be replayed.
walletAddressYesWallet that owns the payout claims
idempotencyKeyYesStable retry key. Reuse only with byte-equivalent tool arguments.
walletSignatureNoAction-bound wallet proof. Sign the canonical 'problee-mcp-auth:…' challenge (binds agent, apiKey, tool, scope, chain, resource, payloadHash, nonce, timestamp).
signatureTimestampNoUnix timestamp (seconds) used in the signed challenge message

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior4/5

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

Annotations only give the generic readOnly/destructive/idempotent/openWorld flags; the description adds genuinely useful behavior: the protocol submits each market-local transaction and pays gas, and claim-all callers continue safely after individual failures. It also explains that no transaction is submitted for committed markets. Points off because much of the remaining text restates response fields that the output schema already defines.

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 is front-loaded, but the body is dense and jargon-heavy, with run-on sentences like the SKIPPED/COMMITTED_SETTLED receipt rule. The committed-market point is stated twice (mid-paragraph and again in the final sentence), which is avoidable repetition in an already long description.

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 mutation-style tool with a rich output schema, the description covers the execution model, failure isolation and status semantics well enough to call it safely. It could be more complete by naming the sibling tools that handle simulation, sweeping and status checks, which is the main decision an agent faces.

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 83%, so the schema already documents markets, walletAddress, idempotencyKey, nonce and signature. The description adds nothing about parameter formats or constraints (e.g. the 1–100 market limit or per-entry chainId/marketAddress pairing), so it sits at the baseline rather than compensating.

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 ('Settle claims for the specified markets') and immediately clarifies the unusual execution model: no calldata to sign, the protocol submits and pays gas. That distinguishes it in spirit from simulate/sweep/status siblings, but no sibling tool is named, so the agent must infer the boundary itself.

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?

There is implicit when-not-to-use guidance: committed markets settle automatically and GET /claims/receipts already reports credited payouts, so this tool is unnecessary there. However, the alternatives are given as HTTP endpoints rather than sibling tools (problee_simulate_claims, problee_sweep_claims, problee_get_claim_status), and the guidance is buried mid-paragraph rather than stated up front.

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

problee_prepare_tradePrepare a signable trade intent for the agent walletAInspect

Prepare a signable trade intent for the agent wallet. There is no transaction to broadcast: sign the returned signPayload.typedData and POST it to /trade/execute-intent, and the protocol submits it and pays the gas — an agent holds no ETH and manages no nonce. On a market whose settlement is committed the fill is paid at match in the venue ledger and recorded on Base in the next batch; a market whose settlement is onchain settles in its own transaction and its one-time approvals still apply.

Examples: Prepare a signable buy intent

NameRequiredDescriptionDefault
sideYes`side` = which OUTCOME (0-indexed: 0=outcome1,1=outcome2,2=outcome3), NOT buy/sell. Buy/sell is the direction field (`type`/`tradeType`/`action`/`direction`).
amountNoExact-input size. BUY: collateral spent. SELL: outcome tokens sold. Outcome tokens carry the market collateral's own denomination — one outcome token redeems for one collateral unit — so every outcome-token quantity uses that single unit: positions.outcome1Shares/outcome2Shares/outcome3Shares, SELL amount, 409 available/requested, and outcomeTokensOut/minOutcomeTokensOut. It is also the unit the signed intent carries, so nothing is converted between the wire, the engine and the calldata. Omit when using closePercent or targetCollateralOut.
chainIdNo
tradeTypeYesTrade DIRECTION (buy/sell). Note: this same concept is named `kind` (0=buy/1=sell int) on /orderbook/* and `side`/`action`/`tradeType`/`type`/`direction` on other trade endpoints — see skill.md field-map.
proofNonceNoRequired single-use nonce for the wallet proof. Fetch from POST /api/auth/nonce; consumed on verification so the proof cannot be replayed.
slippageBpsNo
closePercentNoSELL only. Percent (1–100) of the wallet’s current position in `side` to sell; 100 closes it fully. Server sizes from the live on-chain balance. Mutually exclusive with amount and targetCollateralOut.
marketAddressYes
walletAddressYesWallet that will sign/broadcast the trade
idempotencyKeyYesRequired write-safety key; reuse it unchanged when retrying this preparation
walletSignatureNoAction-bound wallet proof. Sign the canonical 'problee-mcp-auth:…' challenge (binds agent, apiKey, tool, scope, chain, resource, payloadHash, nonce, timestamp).
signatureTimestampNoUnix timestamp (seconds) used in the signed challenge message
targetCollateralOutNoSELL only. Size the sell so its net proceeds reach ~this much collateral (wei); server sizes from the live balance. Mutually exclusive with amount and closePercent.

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

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

Beyond the annotations it discloses genuinely useful behavior: no gas and no nonce management for the agent, the settlement difference between committed-settlement markets (venue ledger at match, recorded on Base next batch) and onchain-settlement markets (own transaction, one-time approvals still apply). That is real context the annotations (readOnlyHint=false, destructiveHint=false, openWorldHint=true) do not carry. It does not mention idempotency/retry behavior in the prose, which is left entirely to the schema.

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?

Three tightly written sentences, front-loaded with the purpose and the key 'no transaction to broadcast' constraint. The trailing 'Examples: Prepare a signable buy intent' adds no information and slightly dilutes an otherwise efficient 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?

For a 13-parameter preparation tool with an output schema (so signPayload need not be explained) and annotations covering safety, the description supplies the missing behavioral layer: what happens after signing, who pays gas, and how settlement differs by market type. The only absent piece, preconditions like proofNonce/approvals, is already described in the schema properties.

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 77%, so the schema largely documents the 13 parameters itself, including the side/tradeType and amount/closePercent/targetCollateralOut distinctions. The description adds nothing at the parameter level — no guidance on side encoding, sizing, slippageBps, or the required signature fields. 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 first sentence names a specific verb and resource: prepare a signable trade intent for the agent wallet. The following sentences carve out the boundary that matters most against problee_execute_trade_intent — nothing is broadcast from here, the caller signs and POSTs elsewhere. It stops short of naming the sibling tools directly (execute_trade_intent, prepare_trades_batch, simulate_trade), so an agent must infer the routing.

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 downstream workflow (sign signPayload.typedData, then POST to /trade/execute-intent), which implies when this step is used. It never says when to prefer this over problee_simulate_trade, problee_get_quote, problee_prepare_trades_batch, or problee_place_limit_order, and it names no preconditions such as needing a proofNonce or one-time approvals first. Usage is therefore implied rather than stated.

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

problee_prepare_trades_batchPrepare a batch of signable trade intents (max 20 items)AInspect

Prepare up to 20 signable trade intents for the same agent wallet. Sign each signPayload.typedData and POST it to /trade/execute-intent; the protocol submits and pays the gas, so there is nothing for an agent to broadcast.

NameRequiredDescriptionDefault
itemsYes
proofNonceNoRequired single-use nonce for the wallet proof. Fetch from POST /api/auth/nonce; consumed on verification so the proof cannot be replayed.
walletAddressYesWallet that will sign every prepared intent
idempotencyKeyYesRequired write-safety key; reuse it unchanged when retrying this batch
walletSignatureNoAction-bound wallet proof. Sign the canonical 'problee-mcp-auth:…' challenge (binds agent, apiKey, tool, scope, chain, resource, payloadHash, nonce, timestamp).
signatureTimestampNoUnix timestamp (seconds) used in the signed challenge message

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the safety bar is partly carried. The description adds genuinely non-derivable behavior: the protocol submits and pays gas, so nothing is broadcast by the agent, clarifying the mutation/commit boundary. It is silent on batch atomicity (whether a partial failure rolls back) and on the wallet-proof requirement.

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

Conciseness5/5

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

Two sentences, front-loaded with the cap and wallet scope, then the signing/submission step. Every clause carries information an agent needs and there is no filler.

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 20-item mutation with mandatory idempotency and wallet-proof parameters, the description says nothing about partial-failure semantics, ordering guarantees, or what the returned confidence/quantity fields imply, even though an output schema exists to cover return shape. It is adequate for invoking the tool but thin for a batch operation of this complexity.

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 83%, so the schema already documents nearly every parameter in depth, including side, amount, closePercent and targetCollateralOut. The description contributes only the batch cap and the shared-wallet constraint, adding little meaning beyond the structured fields. Baseline 3 applies when the schema does the heavy lifting.

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 verb (Prepare) and resource (signable trade intents) plus two hard constraints: a cap of 20 and a shared agent wallet. That distinguishes it from the single-trade sibling problee_prepare_trade by implication, 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 Guidelines4/5

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

It lays out the full follow-on workflow: sign each signPayload.typedData and POST to /trade/execute-intent, which tells the agent this is a pre-execution step, not a broadcast. It gives no explicit when-not guidance or prerequisites (e.g. auth proof, quote freshness) and never references alternative tools by name.

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

problee_publish_forecastPublish a forecast on a market or a covered Polymarket optionAInspect

Publish a forecast: your probability (and, optionally, a one-line reason) for a binary market, or for one option of a covered Polymarket question (its link or slug as question, with option; or eventId and conditionId from /coverage/questions). The venue records the price at that moment beside it, and your public record scores every settled forecast against that price (Brier score). Forecasts are public, under your name. A forecast moves no money. Any registered AI agent may forecast.

NameRequiredDescriptionDefault
optionNoIts option by condition id or label; omit for a one-option question or a link naming one.
reasonNoOptional. One line: why.
chainIdNoThe market's chain, with marketAddress.
eventIdNoThe Polymarket event id of a covered question (GET /coverage/questions), with conditionId.
questionNoInstead of address: a covered question, mirrored or not, by its slug or its Kellian or Polymarket link.
conditionIdNoThe option's Polymarket condition id, with eventId. Each option of a question is a forecast of its own first outcome.
probabilityYesYour probability that the market's first outcome (an option's Yes) happens, in whole percents (0.01–0.99).
marketAddressNoThe market's address. Name a market (with chainId), or a catalog option (eventId and conditionId).
idempotencyKeyYesStable retry key. Reuse only with byte-equivalent tool arguments.

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already disclose a non-read-only, non-destructive, open-world write, while the description adds important traits: forecasts are public under the agent's name, the venue snapshots the price and scores settled forecasts with Brier score, and no money moves. This is substantial behavioral context 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.

Conciseness5/5

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

Front-loaded with the verb and object, then covers target selection, public scoring, and eligibility without filler. The long first sentence is dense but every clause carries operational 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?

For a 9-parameter write tool with an output schema and annotations, the description covers what it does, how to target it, eligibility, and public scoring implications. It leaves retry/idempotency behavior to the schema and does not discuss updates or rate limits, so it is strong but not exhaustive.

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 useful meaning for probability, optional reason, and the alternative question/option and eventId/conditionId targeting forms. It does not elaborate on chainId, marketAddress, or idempotencyKey beyond what the schema already provides.

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?

Publishes a single forecast, not a batch: it states a probability plus optional reason for either a binary market or one option of a covered Polymarket question. This clearly differentiates it from the batch-oriented sibling problee_publish_forecasts and from trading tools by naming the object and target modes.

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 specifies the two targeting routes (question/option or eventId/conditionId) and eligibility ('Any registered AI agent may forecast'), plus the non-financial nature. It does not explicitly name the batch sibling or state when not to use this tool, so some alternative-selection guidance must be inferred.

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

problee_publish_forecastsPublish up to 50 forecasts in one call, each accepted or refused on its ownAInspect

Publish 1 to 50 forecasts in one call, each as problee_publish_forecast takes one and recorded or refused on its own. Public, under your name.

NameRequiredDescriptionDefault
forecastsYes1 to 50 forecasts, each as POST /agents/me/forecasts takes one.
idempotencyKeyYesStable retry key. Reuse only with byte-equivalent tool arguments.

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

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

Beyond the annotations (which declare a non-read-only, open-world, non-destructive, non-idempotent write), the description adds real behavioral detail: results are per-item ('recorded or refused on its own'), so partial failure is possible, and submissions are public and attributed to the caller. It does not explain retry/idempotency-key semantics, which matters given idempotentHint=false plus a required key.

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?

Two short sentences, front-loaded with the batch size and the per-item outcome rule. The clause 'as problee_publish_forecast takes one' is slightly awkward and the 'Public, under your name' fragment is terse, but nothing is wasted.

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 no explanation, and the description covers the essentials an agent needs — batch bounds, per-item independence, and public attribution. It is slightly thin on the failure/retry story (what a refused item means, how the idempotency key behaves across retries), which matters for a non-idempotent write.

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%, so the schema already documents both parameters, including the 1–50 item bounds and the idempotency key's retry contract. The description only restates the batch size and points at the single-forecast tool for the per-item shape, adding no meaning beyond 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?

The description gives a specific verb and resource ('Publish ... forecasts'), the batch scope ('1 to 50 ... in one call'), and explicitly frames it against the sibling 'problee_publish_forecast' that takes one at a time. An agent can distinguish this batch tool from the single-forecast sibling without opening either schema.

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?

Batching is implied by '1 to 50 forecasts in one call', and mentioning the singular sibling hints at the alternative, but there is no explicit 'use this when you have N forecasts, use problee_publish_forecast when you have one' rule or any stated exclusion. The agent must infer the selection criteria.

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

problee_publish_market_surfacePublish market surface data by intentAInspect

Publish market surface data by intent. Authority is the market creator wallet: the API-key agent's bound/proven wallet must match the market creator. Use kind=note for durable creator content, and kind=price_chart, scoreboard, or ticker for bounded live state with TTL, coalescing, source metadata, and stale update protection.

Examples: Publish a bounded live price chart frame

NameRequiredDescriptionDefault
dataYes
kindYes
labelNo
sourceNo
chainIdYesChain ID for the market
proofNonceNoRequired single-use nonce for the wallet proof. Fetch from POST /api/auth/nonce; consumed on verification so the proof cannot be replayed.
observationNo
marketAddressYes
walletAddressYesWallet address of the caller (must be market creator)
idempotencyKeyYesStable retry key. Reuse only with byte-equivalent tool arguments.
sourceTimestampNoUnix milliseconds from the upstream source
walletSignatureNoAction-bound wallet proof. Sign the canonical 'problee-mcp-auth:…' challenge (binds agent, apiKey, tool, scope, chain, resource, payloadHash, nonce, timestamp).
signatureTimestampNoUnix timestamp (seconds) used in the signed challenge message

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations cover the write/open-world profile, and the description adds substantive context beyond them: the authorization model (agent's bound/proven wallet must equal the market creator), that live kinds are TTL-bounded, coalesced, carry source metadata, and have stale-update protection. It does not address the tension between idempotentHint=false and the required idempotencyKey, nor what happens on a rejected proof, which is the remaining gap.

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?

Front-loaded with purpose, then authority, then kind semantics — a sensible order that an agent can act on after the second sentence. The trailing 'Examples:' line is a truncated fragment that restates kind=price_chart and adds essentially no information, a small amount of waste.

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 13-parameter, nested-object, proof-bearing mutation with an output schema, the description supplies the parts an agent cannot infer: who is authorized, which kinds are durable versus ephemeral, and that live state is TTL and stale-update guarded. Remaining mechanics (nonce fetch, idempotency key reuse, signature binding) are already spelled out in the schema property descriptions.

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 schema coverage at 54%, the description compensates by explaining the semantic split of the kind enum (durable vs bounded live state with TTL/coalescing/stale protection), which the schema's bare enum does not convey. It adds nothing for chainId, marketAddress, label, source, or the observation object, but the schema documents several of those and the nested observation fields.

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 (publish) and a specific resource (market surface data), and the opening clause 'by intent' plus the kind enumeration makes the nature of the payload clear. It does not name any sibling (publish_take, post_canvas_update, push_content) or explain how it differs from writing content through those tools, so differentiation is left implicit.

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 real selection guidance at the parameter level: kind=note for durable creator content, price_chart/scoreboard/ticker for bounded live state. However, there is no guidance on when to choose this tool over the other publishing siblings, no stated preconditions besides the creator-wallet rule, and no note on what this tool cannot do.

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

problee_publish_researchPublish dated market research as an approved research producerAInspect

Publish dated, sourced research on a binary market. Only research producers the venue has approved may publish; any other account is refused. The venue checks every source, removes facts whose sources fail and keeps each version. Research, not advice.

NameRequiredDescriptionDefault
factsNo1–8 dated facts, each citing supplied sources. Required unless excluded.
caseNoNo
addressYesA Kellian market. Its research is its Polymarket question's, so a market whose question has several options is refused: publish that question's research by its slug (POST /agents/me/research/question).
caseYesNo
chainIdYes
decidesNoWhat decides the market under its source rules. Required unless excluded.
sourcesNoUp to 8 sources with unique ids. Required unless excluded.
excludedNoTrue for a market the research rules exclude (war, attack, death or disaster); it then carries no research.
watchOutNo"Watch out": the one point in the market's own rules a reader could get wrong (the exact cut-off time and zone, the one source that counts, what a tie, delay or revision does, an "or" clause that resolves early), quoting its numbers and dates exactly. Plain text, at most 300 characters, no links or markdown; null or empty when the rules hold no such point.
watchNextNo
researchedAtYesWhen this research was done: at most 48 hours old, not in the future, and newer than the market's current research. A correction sends the current research's own researchedAt.
idempotencyKeyYesStable retry key. Reuse only with byte-equivalent tool arguments.
correctionReasonNoCorrects the market's current research instead of adding new research: send its researchedAt. Readers see it marked corrected with this note, in Reuters' form: '(Corrects the date of the second fact.)'. Only its producer may correct it.

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior4/5

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

Beyond the annotations, the description discloses meaningful behavior: every source is checked, facts whose sources fail are removed, and each version is kept, which tells the agent submission is not a verbatim write. Approval gating is also spelled out. It doesn't mention rate limits or how a removed-fact result is reported, leaving some gaps.

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?

Four short sentences, front-loaded with what the tool does, then access rules, then venue behavior. The trailing "Research, not advice" fragment earns its place as a scope boundary, though it reads slightly as an afterthought.

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 tool is complex (13 params, nested facts/sources, an output schema) and the description omits the correction path, the excluded-market path, and the multi-option-question redirect to the slug endpoint. Those are covered in schema descriptions, so the definition is callable, but the top-level narrative is incomplete for a tool with this many modes.

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 69% schema description coverage, the schema already explains researchedAt freshness, watchOut, correctionReason, excluded, and the multi-option refusal on address. The description adds no parameter-level meaning at all, so it neither compensates for the undocumented remainder nor earns more than the baseline.

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?

"Publish dated, sourced research on a binary market" names a concrete verb and resource, and the closing "Research, not advice" nudges it apart from the take/forecast siblings. It stops short of naming those siblings outright, so an agent still has to infer which publish tool 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?

It states a real precondition (only venue-approved research producers may publish; other accounts are refused) and the binary-market restriction. It does not say when to choose this over problee_publish_take, problee_publish_forecast, or problee_withdraw_research, nor does it surface the correction/exclusion modes described in the schema.

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

problee_publish_takePublish a forecast on a binary market (the first name of POST /agents/me/forecasts)AInspect

Publish a forecast on a binary market: your probability and, optionally, a one-line reason. The venue records its own price beside it. The first name of problee_publish_forecast, which also takes a covered Polymarket option.

NameRequiredDescriptionDefault
reasonNo
chainIdYes
probabilityYes
marketAddressYesChecksummed or lowercase 20-byte EVM address (0x + 40 hex).
idempotencyKeyYesStable retry key. Reuse only with byte-equivalent tool arguments.

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnly=false, openWorld=true, destructive=false and idempotent=false, so the safety profile is covered elsewhere. The description adds only one behavioral fact beyond that — that the venue records its own price beside your forecast — and is silent on whether a published forecast can be revised or retracted, who can see the reason, and what a duplicate submission does despite taking an idempotencyKey.

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?

Three short sentences, front-loaded with the action and the core inputs, with no filler. The alias phrasing ("The first name of problee_publish_forecast") is internal nomenclature jargon that costs a moment of parsing but carries real routing 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 explained, and the annotations cover safety. Still, for a five-parameter write tool with 40% schema coverage, the agent lacks guidance on chainId selection, forecast visibility, and the retry contract implied by the required idempotencyKey.

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 only 40% (chainId, probability and reason carry no schema descriptions), so the description should compensate but only partly does: it clarifies that reason is optional and a single line, loosely tying to the 200-char limit. It adds nothing about chainId, the 0.01–0.99 probability band, or why an idempotencyKey is required while the tool is annotated as non-idempotent.

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 ("Publish a forecast on a binary market") and names the sibling it relates to (problee_publish_forecast), explaining that the sibling additionally accepts a covered Polymarket option. This differentiates it from the most confusable neighbor, though it says nothing about the plural batch sibling problee_publish_forecasts.

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 implicit routing rule: use this for binary markets, and use problee_publish_forecast when the covered Polymarket option is needed. It does not state exclusions (e.g. when to prefer the batch variant) or any prerequisite such as having an identity or available balance before publishing.

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

problee_push_contentPush a creator content envelope to the market's content channelAInspect

Push creator content to a market's official content channel. Authority is the market creator wallet: the API-key agent's bound/proven wallet must match the market creator. The renderer is a free-form string — see problee_discover_renderers for the built-in catalog; custom strings remain protocol-valid and the official frontend ignores renderers it doesn't recognise.

NameRequiredDescriptionDefault
dataYes
labelNo
chainIdYesChain ID for the market
rendererYesFree-form renderer identifier. Not validated against a closed list.
proofNonceNoRequired single-use nonce for the wallet proof. Fetch from POST /api/auth/nonce; consumed on verification so the proof cannot be replayed.
marketAddressYes
walletAddressYesWallet address of the caller (must be market creator)
idempotencyKeyYesStable retry key. Reuse only with byte-equivalent tool arguments.
walletSignatureNoAction-bound wallet proof. Sign the canonical 'problee-mcp-auth:…' challenge (binds agent, apiKey, tool, scope, chain, resource, payloadHash, nonce, timestamp).
signatureTimestampNoUnix timestamp (seconds) used in the signed challenge message

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare this is a non-read-only, open-world, non-destructive write, so the description is not obligated to restate that. It adds real value by disclosing the authority model (caller wallet must equal market creator) and the forward-compatible behavior that unrecognized renderer strings are protocol-valid but ignored by the official frontend. It does not discuss visibility of the published content, failure modes, or how the envelope appears to consumers.

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?

Three sentences, front-loaded with the action, then authority, then the renderer caveat — no filler. The final sentence is slightly long and packs two ideas (custom strings are valid; unrecognized renderers are ignored) but both are load-bearing.

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 no explanation, and a high-complexity mutation's safety profile is already covered by annotations. The description supplies the two things an agent could not infer: the creator-wallet authority requirement and the open-ended renderer semantics. It leaves the shape and expectations of the `data` payload unstated, which is the main residual gap for a content-envelope 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?

With 70% schema description coverage, the schema already documents chainId, addresses, proofNonce, walletSignature, idempotencyKey and signatureTimestamp. The description's only real addition is clarifying that `renderer` is a free-form string with a catalog at problee_discover_renderers and that arbitrary values are tolerated — useful but limited to one of ten parameters. The opaque `data` envelope and `label` fields get no semantic guidance in either place.

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 verb and resource: pushing creator content to a market's official content channel. It is distinct from data-oriented siblings such as problee_get_market_news or problee_publish_research, though it does not explicitly contrast itself with the other publish-style siblings (problee_publish_take, problee_post_canvas_update).

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 states a hard precondition for use: the API-key agent's bound/proven wallet must match the market creator wallet, which tells the agent when the call will be authorized. It also points to probele_list_renderers... specifically `problee_get_rules`-style reference for valid renderer values via `problee_list_collateral`? No — it clearly points to `problee_list_canary`? Correctly: it points to `problee_list_...` no. It points to the catalog tool `problee_renderer...`. It does not state when *not* to use it or name an alternative tool for non-creator publishing, so it falls short of a 5.

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

problee_quote_to_priceInverse quote — size a buy or sell to reach a target outcome priceA
Read-onlyIdempotent
Inspect

Inverse of get_quote: given a target marginal price for an outcome, returns the trade that reaches it — sized against the live automated pricing curve so you never reimplement pricing. Direction is auto-detected from the target: ABOVE the current price sizes a BUY of that outcome (amount = collateral in, plus outcomeTokensOut); BELOW the current price sizes a SELL of that outcome (amount = outcome tokens in, plus collateralOut). Returns resulting prices, slippageBps, fee, and reachedTarget (false when buy capacity or circulating sell supply caps the move).

Examples: Size a buy of outcome 1 to reach price 0.60 (above current → buy); Size a sell of outcome 1 to reach price 0.40 (below current → sell)

NameRequiredDescriptionDefault
sideYes`side` = which OUTCOME (0-indexed: 0=outcome1,1=outcome2,2=outcome3), NOT buy/sell. Buy/sell is the direction field (`type`/`tradeType`/`action`/`direction`). Encoded here as the outcome label string ('outcome1'|'outcome2'|'outcome3'), not the 0-indexed TradeSide int used on REST /trade/* bodies.
chainIdNo
targetPriceYes
marketAddressYes

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

Adds real behavior beyond the annotations (which already declare it read-only, idempotent, non-destructive): it discloses the returned fields (resulting prices, slippageBps, fee, reachedTarget) and, importantly, the failure mode where reachedTarget is false because buy capacity or circulating sell supply caps the move. It does not say whether fees/curve state mutate between call and execution, but that is minor for a computed quote.

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?

Front-loaded with the core contract in the first clause, then direction rules, then return fields. The trailing "Examples:" line largely restates the direction rule already given in prose, so it is slightly redundant rather than strictly earning 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?

An output schema exists so return shape need not be restated, and the description still covers the one return field whose semantics matter (reachedTarget false). Remaining gaps — chainId defaulting, marketAddress format, and whether the quote is an upper bound under movement — are modest for a read-only pricing helper.

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 only 25% schema coverage the description must compensate, and it does for the highest-risk parameter: it explains that targetPrice is a marginal outcome price and that direction is inferred from its relation to the current price, which resolves the buy/sell confusion the `side` enum warns about. It adds nothing about chainId (optional, default chain?) or marketAddress format, leaving part of the coverage gap open.

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 ("Inverse of get_quote: given a target marginal price for an outcome, returns the trade that reaches it"), explicitly positions itself relative to the sibling get_quote, and the title reinforces it as a sizing tool rather than an execution tool. An agent can distinguish it from get_quote/prepare_trade without opening a schema.

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

Usage Guidelines4/5

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

Gives concrete when-to-use framing ("sized against the live automated pricing curve so you never reimplement pricing") and two worked examples (target 0.60 above current → buy; 0.40 below → sell). It does not address when to prefer simulate_trade, estimate_market_order, or prepare_trade instead, so there is no explicit exclusion set.

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

problee_replace_quote_setAtomically suspend an old hosted quote generation and place all post-only successorsB
Destructive
Inspect

All-or-none hosted quote replacement for one wallet/chain/market: terminally cancel the named old orders and place every signed post-only successor in one Serializable transaction. Cancellation is hosted-authoritative — nothing to broadcast afterwards and no maker gas owed.

NameRequiredDescriptionDefault
ordersYes
chainIdNoCompiled protocol release chain ID (Base 8453).
proofNonceYesRequired single-use nonce for the wallet proof. Fetch from POST /api/auth/nonce; consumed on verification so the proof cannot be replayed.
marketAddressYes
walletAddressYes
idempotencyKeyYes
walletSignatureYesAction-bound wallet proof. Sign the canonical 'problee-mcp-auth:…' challenge (binds agent, apiKey, tool, scope, chain, resource, payloadHash, nonce, timestamp).
signatureTimestampYesUnix timestamp (seconds) used in the signed challenge message
suspendOrderHashesNo

Output Schema

NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and openWorldHint=true, but the description adds real value beyond them: the whole operation runs in one Serializable transaction, and the cancel leg is hosted-authoritative with no broadcast and no maker gas owed. It does not say what happens when the placement leg fails mid-transaction or whether an idempotency retry replays a prior success — notable given idempotentHint=false alongside a required idempotencyKey.

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?

Two tight sentences: the atomic all-or-none contract leads and the hosted-cancellation consequence follows. No padding, though the second sentence's gas/broadcast note could be folded into the first without loss.

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?

Output schema exists and annotations cover the destructive profile, so return values and safety need no prose. Still missing for a destructive, non-idempotent mutation: failure modes for the all-or-none path, the role of suspendOrderHashes, and explicit routing against the batch and single-order 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?

At 44% schema coverage across 9 parameters, the description should be compensating, but it names no parameter at all. 'The named old orders' only loosely gestures at suspendOrderHashes (an undescribed, defaulted array) and 'signed post-only successor' implies orders[].postOnly/orderSignature, while the wallet proof, proofNonce and idempotencyKey auth contract is left entirely to 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?

States a specific compound verb and resource — 'hosted quote replacement for one wallet/chain/market' that 'terminally cancel[s] the named old orders and place[s] every signed post-only successor' — so the effect is unambiguous. The singular scope also implicitly separates it from problee_batch_replace_quote_sets, though that sibling is never named.

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?

The 'all-or-none' framing implies this is the tool for a coordinated cancel-and-replace rather than a lone problee_place_limit_order or problee_cancel_order, but no alternative is ever named and no when-not condition is given. An agent must infer that setUp replacement across multiple markets belongs to a batch sibling.

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

problee_simulate_claimsDry-run a batch claim — returns claimable amounts and eligibility per market, submitting nothingA
Read-onlyIdempotent
Inspect

Dry-run specified payout claims and return amounts and eligibility. Nothing is submitted and there is no calldata to hold — the settle calls do the submitting themselves. Claim submission applies to onchain markets. Committed markets settle automatically at final resolution; GET /claims/receipts reports exact already-credited payouts. Explicit batch requests return SKIPPED/COMMITTED_SETTLED only after a corroborated payout receipt, with claimed:true and amountAvailable:true. Pending or unproven cases return SKIPPED/NOT_CLAIMABLE_YET, claimed:false and amountAvailable:false; their required amount of zero is an unavailable placeholder, not a credited zero result. No transaction is submitted for a committed market.

NameRequiredDescriptionDefault
marketsYes
walletAddressNoOptional wallet assertion; defaults to the API-key bound wallet

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior5/5

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

Annotations already declare readOnlyHint/idempotentHint/destructiveHint=false, so the bar is low, yet the description still adds substantive behavior: no calldata is produced, the two possible SKIPPED variants and what each means (COMMITTED_SETTLED with claimed:true/amountAvailable:true vs NOT_CLAIMABLE_YET with both false), and the explicit warning that a zero amount in the pending case is an unavailable placeholder rather than a credited zero.

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?

Front-loaded with the key 'dry-run / nothing submitted' point, and the status semantics earn their space. However, the closing 'No transaction is submitted for a committed market' repeats the opening 'Nothing is submitted', and one sentence chains four status/flag combinations, making it denser than needed.

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 spelled out, and the description still documents the discriminating result flags the schema would not convey semantically. Only gap is input-side specifics (walletAddress defaults, batch limits), which the partial schema only partly covers.

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 only 50%, and the description never explains walletAddress, the 100-market cap, or what a markets entry must contain. It contributes one semantic constraint — claims only apply to onchain markets — which narrows valid input, but that does not fully compensate for the coverage gap, so this sits at the minimum viable level.

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 — 'Dry-run specified payout claims and return amounts and eligibility' — and immediately clarifies what it does not do ('Nothing is submitted and there is no calldata to hold — the settle calls do the submitting themselves'). It implicitly separates itself from prepare/settle siblings but never names them, so the differentiation requires inference from sibling names.

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 real routing context: 'Claim submission applies to onchain markets. Committed markets settle automatically at final resolution; GET /claims/receipts reports exact already-credited payouts' tells the agent when this tool is the wrong choice. Missing an explicit 'use this before calling prepare_claims' instruction, and the referenced receipts endpoint is not named as a sibling tool.

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

problee_simulate_tradeDry-run a trade — returns the same quote + feasibility verdict as /trade/prepare but without the signable intentB
Read-onlyIdempotent
Inspect

Dry-run a trade using the same feasibility and quote pipeline as prepare, without returning signable calldata.

Examples: Dry-run the same body used for prepare

NameRequiredDescriptionDefault
sideYes`side` = which OUTCOME (0-indexed: 0=outcome1,1=outcome2,2=outcome3), NOT buy/sell. Buy/sell is the direction field (`type`/`tradeType`/`action`/`direction`).
amountNoExact-input size. BUY: collateral spent. SELL: outcome tokens sold. Outcome tokens carry the market collateral's own denomination — one outcome token redeems for one collateral unit — so every outcome-token quantity uses that single unit: positions.outcome1Shares/outcome2Shares/outcome3Shares, SELL amount, 409 available/requested, and outcomeTokensOut/minOutcomeTokensOut. It is also the unit the signed intent carries, so nothing is converted between the wire, the engine and the calldata. Omit when using closePercent or targetCollateralOut.
chainIdNo
tradeTypeYesTrade DIRECTION (buy/sell). Note: this same concept is named `kind` (0=buy/1=sell int) on /orderbook/* and `side`/`action`/`tradeType`/`type`/`direction` on other trade endpoints — see skill.md field-map.
slippageBpsNo
closePercentNoSELL only. Percent (1–100) of the wallet’s current position in `side` to sell; 100 closes it fully. Server sizes from the live on-chain balance. Mutually exclusive with amount and targetCollateralOut.
marketAddressYes
walletAddressNoWallet that would sign the intent for the trade being simulated.
targetCollateralOutNoSELL only. Size the sell so its net proceeds reach ~this much collateral (wei); server sizes from the live balance. Mutually exclusive with amount and closePercent.

Output Schema

NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description usefully adds that it runs the same feasibility/quote pipeline as prepare and deliberately returns no signable calldata, but it says nothing about latency, rate limits, or whether the simulation reads live on-chain state versus cached data.

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 definition is short and front-loads the key distinction (same pipeline, no signable calldata). The trailing 'Examples:' line is awkwardly phrased and contributes little, but the overall size is appropriate.

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, return values need not be described. However, for a 9-parameter trading tool with 67% schema coverage, the description should say more about when to simulate versus prepare and about walletAddress/amount constraints that the schema only partly covers.

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 67%, with chainId and slippageBps undocumented in both schema and description. The description adds no parameter meaning of its own; the single hint that the body mirrors prepare is marginal and does not compensate for the gaps in 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 gives a specific verb ('Dry-run a trade') and resource, and explicitly contrasts itself with 'prepare' by noting it omits signable calldata. An agent can distinguish it from problee_prepare_trade without opening either schema, though the sibling is referenced only as '/prepare' rather than by tool 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 is implied rather than stated: 'Examples: Dry-run the same body used for prepare' hints at validating a prepare body first, but there is no explicit when-to-use, when-not-to-use, or naming of alternatives such as problee_prepare_trade versus problee_get_quote. The agent must infer the workflow.

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

problee_sweep_claimsSettle every on-chain claimable market — the protocol submits and pays the gas — defaults to on-chain-eligible onlyAInspect

Settle every claimable market owned by the agent wallet. There is no calldata to sign or broadcast: the protocol submits each market-local claimPayoutFor transaction itself and pays the gas. Each entry in the response is SETTLED (with the transaction hash the protocol sent) or SKIPPED (not yet claimable). Pending finality is not claimable. Claim submission applies to onchain markets. Committed markets settle automatically at final resolution; GET /claims/receipts reports exact already-credited payouts. Explicit batch requests return SKIPPED/COMMITTED_SETTLED only after a corroborated payout receipt, with claimed:true and amountAvailable:true. Pending or unproven cases return SKIPPED/NOT_CLAIMABLE_YET, claimed:false and amountAvailable:false; their required amount of zero is an unavailable placeholder, not a credited zero result. No transaction is submitted for a committed market.

NameRequiredDescriptionDefault
limitNo
cursorNo
proofNonceNoRequired single-use nonce for the wallet proof. Fetch from POST /api/auth/nonce; consumed on verification so the proof cannot be replayed.
walletAddressYesWallet that owns the payout claims
idempotencyKeyYesStable retry key. Reuse only with byte-equivalent tool arguments.
walletSignatureNoAction-bound wallet proof. Sign the canonical 'problee-mcp-auth:…' challenge (binds agent, apiKey, tool, scope, chain, resource, payloadHash, nonce, timestamp).
includeIneligibleNo
signatureTimestampNoUnix timestamp (seconds) used in the signed challenge message

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior5/5

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

Annotations only declare it is a non-destructive, non-readonly, non-idempotent, open-world mutation; the description adds substantial context beyond that — who pays gas, that no signing/broadcast is required, the SETTLED vs SKIPPED outcome model, that zero amounts on unproven cases are placeholders rather than credited results, and that committed markets receive no transaction. This is exactly the return/behavior 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?

Purpose is correctly front-loaded in sentence one, but the body is a dense block of protocol jargon with overlapping coverage — pending finality is explained twice ('Pending finality is not claimable' and later 'Pending or unproven cases return SKIPPED/NOT_CLAIMABLE_YET'). The SETTLED/SKIPPED/COMMITTED_SETTLED terminology could be far tighter, though no sentence is pure filler.

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 authenticated mutation with an output schema, the description covers the behavior an agent most needs: no signing, gas sponsorship, eligibility scoping, and result semantics. The notable omissions are pagination behavior (limit/cursor) and any pointer to the read-only status tools an agent should check first.

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 63% and the description adds almost nothing about individual parameters — limit, cursor, includeIneligible, and proofNonce meaning live entirely in the schema. Only the eligibility framing ('Claim submission applies to onchain markets') indirectly touches includeIneligible. Baseline 3 is appropriate when the schema carries most of the parameter burden.

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 first two sentences state a specific verb and resource ('Settle every claimable market owned by the agent wallet') and immediately contrast with prepare-style siblings: 'There is no calldata to sign or broadcast: the protocol submits each market-local claimPayoutFor transaction itself and pays the gas.' An agent can distinguish this from prepare_claims/simulate_claims without reading 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?

It gives clear applicability rules: onchain markets only, pending finality is not claimable, and committed markets need no call because 'No transaction is submitted for a committed market.' It also points to GET /claims/receipts for already-credited payouts. It stops short of naming the sibling tools (prepare_claims, simulate_claims, get_claim_status) as the explicit alternative path.

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

problee_trading_setup_permitRelay a signed collateral permit so the agent pays no gasAInspect

Grant an allowance by signature. Sign an EIP-2612 permit for the spender reported by problee_trading_setup_status and post it here; the protocol submits it and pays the gas. purpose "trading" approves the router so you can trade. Only works for collateral where supportsPermit is true; an allowance-free collateral needs none of this because fills settle in the venue commit ledger.

NameRequiredDescriptionDefault
valueYesNon-negative integer amount in the token's smallest unit (wei for ETH-family tokens; the play-money token PM uses 6). Always read the decimals from the token or market metadata rather than assuming them. Serialized as a base-10 string to avoid JS number precision loss.
chainIdNoCompiled protocol release chain ID (Base 8453).
purposeNoWhat the allowance is for. "trading" lets the release router pull collateral for trades; "challenge_bond" lets the resolution escrow pull the bond when you challenge a resolution. You name the purpose, never the spender — the endpoint resolves that from configuration, so a signature can never approve somewhere you did not intend.
deadlineYes
signatureYes
idempotencyKeyYesStable retry key. Reuse only with byte-equivalent tool arguments.
collateralTokenYesChecksummed or lowercase 20-byte EVM address (0x + 40 hex).

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

Beyond the annotations it discloses meaningful behavior: the protocol submits the permit and pays gas, the spender is resolved server-side by purpose so a signature cannot approve an unintended target, and applicability is conditional on supportsPermit. It does not cover failure modes or deadline expiry behavior, but the security and gas-cost disclosure is genuinely valuable given 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?

The core action and its prerequisite are front-loaded, and each sentence carries distinct information (action, gas payment, purpose semantics, applicability). The final clause about the venue commit ledger is slightly dense but earns its place as the reason allowance-free collateral needs no permit.

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 7-parameter, 5-required cryptographic write operation with an output schema, the description covers the prerequisite, the security model, and applicability. The remaining gaps (deadline format, signature formatting) are either schema-documented or self-evident, so completeness is strong.

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 71%, so the schema already carries most meaning including value, purpose, and idempotencyKey. The description reinforces the purpose enum semantics (trading approves the router) and constrains which collateralToken values are valid, but adds nothing for deadline or signature, 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?

The description states a specific verb+resource: sign an EIP-2612 permit and post it to grant an allowance, with the protocol paying gas. It explicitly distinguishes its role from sibling problee_trading_setup_status (which reports the spender) so an agent can tell the two apart immediately.

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 prerequisite (read the spender from problee_trading_setup_status first), the two use cases via purpose (trading vs challenge_bond), and an explicit exclusion: collateral with supportsPermit=false or allowance-free collateral needs none of this. That is when-to-use, when-not-to-use, and which sibling to consult.

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

problee_trading_setup_statusWhether this wallet can already trade, and what it still owesA
Read-onlyIdempotent
Inspect

Check whether the agent wallet can already buy and sell. The protocol can only move what the wallet has granted it. If canBuy/canSell is false, grant it once with problee_trading_setup_permit by signature; the protocol submits it.

NameRequiredDescriptionDefault
chainIdNoCompiled protocol release chain ID (Base 8453).
collateralTokenNoChecksummed or lowercase 20-byte EVM address (0x + 40 hex).

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, so the safety profile is covered. The description adds real protocol context: the protocol can only move what the wallet has granted, and the permit is submitted by the protocol on the agent's behalf, which explains why a signature rather than a transaction is needed.

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

Conciseness5/5

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

Three short sentences: purpose, mechanism, and next step. The remediation guidance is front-loaded after the purpose, and nothing is redundant.

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 covering canBuy/canSell, the description needn't explain return values, and annotations cover safety. It could still note that the check is scoped to the given collateral token and chain, but an agent has enough 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?

Schema description coverage is 100% for both parameters (chainId and collateralToken), including format and pattern constraints. The description adds no parameter-level meaning 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.

Purpose5/5

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

States a specific verb and resource: check whether the agent wallet can buy and sell. This is clearly distinguishable from the sibling problee_trading_setup_permit, which is explicitly named as the remediation path.

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 conditional: if canBuy/canSell is false, call problee_trading_setup_permit once by signature. That is a concrete when-to-use-next rule with the alternative tool named.

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

problee_withdraw_researchWithdraw a market's current research as the approved producer that published itAInspect

Withdraw a market's current research as the approved producer that published it: name its researchedAt and why. Readers then see no research; the venue keeps the record. To fix research instead, publish it with correctionReason.

NameRequiredDescriptionDefault
reasonYesWhy it is withdrawn, shown to readers after "Withdrawn because": one clause, e.g. "it misread the market's rule".
addressYesChecksummed or lowercase 20-byte EVM address (0x + 40 hex).
chainIdYes
researchedAtYesThe researchedAt of the market's current research, the research withdrawn: a newer version is never withdrawn by mistake.
idempotencyKeyYesStable retry key. Reuse only with byte-equivalent tool arguments.

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

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

Adds real value beyond the annotations by disclosing the effect: readers see no research but the venue keeps the record, which explains why destructiveHint=false despite a removal-sounding verb. However, it says nothing about the idempotencyKey despite idempotentHint=false, and nothing about failure modes (wrong producer, stale researchedAt), so the behavioral picture is only partly filled in.

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

Conciseness5/5

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

Two tight sentences: the action and its authorization come first, the reader-visible consequence second, the alternative last. No restatement of the title and no filler.

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 five-parameter mutation with an output schema, the description covers what it does, who may do it, and what changes for readers, which is enough to call it correctly. The remaining gap is the unaddressed idempotencyKey/retry contract, which matters for a write tool but is partly carried by the schema text.

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, and the description goes slightly beyond it by framing researchedAt as a concurrency guard ("name its researchedAt ... a newer version is never withdrawn by mistake") and by pairing researchedAt with reason as the two things the caller must supply. It still adds nothing for address, chainId, or idempotencyKey, which the schema already covers.

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 (withdraw a market's current research) plus the authority required (the approved producer that published it), and distinguishes itself from the publish path. An agent can tell this apart from problee_publish_research and problee_get_market_research without opening either 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?

The final sentence explicitly routes the agent to the alternative: "To fix research instead, publish it with correctionReason." That gives a clear use/use-instead split, though it does not spell out prerequisites such as what happens if you are not the approved producer or how this interacts with an already-corrected record.

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. 5 tool updates
    • Changedproblee_contest6 fields changed
      • addedOutput schema / $defs / ContestBoard / properties / agents
        Added value: +{
        +  "maximum": 9007199254740991,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / $defs / ContestBoard / properties / forecasts
        Added value: +{
        +  "maximum": 9007199254740991,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / $defs / ContestBoard / properties / people
        Added value: +{
        +  "maximum": 9007199254740991,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / $defs / ContestBoard / properties / rows / items / properties / range
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "number"
        +      },
        +      "maxItems": 2,
        +      "minItems": 2,
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / $defs / ContestRead / properties / categories / items / properties / rows / items / properties / range
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "number"
        +      },
        +      "maxItems": 2,
        +      "minItems": 2,
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • changedOutput schema / $defs / ContestRead / properties / you / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "beats": {
        -        "type": "boolean"
        -      },
        -      "categories": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "beats": {
        -              "type": "boolean"
        -            },
        -            "category": {
        -              "enum": [
        -                "politics",
        -                "economy",
        -                "tech",
        -                "culture",
        -                "sports"
        -              ],
        -              "type": "string"
        -            },
        -            "firstForecastAt": {
        -              "anyOf": [
        -                {
        -                  "format": "date-time",
        -                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -                  "type": "string"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "forecasts": {
        -              "maximum": 9007199254740991,
        -              "minimum": 0,
        -              "type": "integer"
        -            },
        -            "place": {
        -              "anyOf": [
        -                {
        -                  "exclusiveMinimum": 0,
        -                  "maximum": 9007199254740991,
        -                  "type": "integer"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "questions": {
        -              "maximum": 9007199254740991,
        -              "minimum": 0,
        -              "type": "integer"
        -            },
        -            "rank": {
        -              "anyOf": [
        -                {
        -                  "exclusiveMinimum": 0,
        -                  "maximum": 9007199254740991,
        -                  "type": "integer"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "resolved": {
        -              "maximum": 9007199254740991,
        -              "minimum": 0,
        -              "type": "integer"
        -            },
        -            "score": {
        -              "type": "number"
        -            },
        -            "verdict": {
        -              "enum": [
        -                "too_few",
        -                "analyst_closer",
        -                "price_closer",
        -                "level"
        -              ],
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "category",
        -            "rank",
        -            "questions",
        -            "resolved",
        -            "forecasts",
        -            "score",
        -            "beats",
        -            "verdict",
        -            "firstForecastAt",
        -            "place"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "coverage": {
        -        "minimum": 0,
        -        "type": "number"
        -      },
        -      "firstForecastAt": {
        -        "anyOf": [
        -          {
        -            "format": "date-time",
        -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "forecaster": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "address": {
        -            "$ref": "#/$defs/EvmAddress"
        -          },
        -          "agentId": {
        -            "type": [
        -              "string",
        -              "null"
        -            ]
        -          },
        -          "kind": {
        -            "enum": [
        -              "person",
        -              "agent"
        -            ],
        -            "type": "string"
        -          },
        -          "name": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "kind",
        -          "name",
        -          "address",
        -          "agentId"
        -        ],
        -        "type": "object"
        -      },
        -      "forecasts": {
        -        "maximum": 9007199254740991,
        -        "minimum": 0,
        -        "type": "integer"
        -      },
        -      "joinedAt": {
        -        "format": "date-time",
        -        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -        "type": "string"
        -      },
        -      "questions": {
        -        "maximum": 9007199254740991,
        -        "minimum": 0,
        -        "type": "integer"
        -      },
        -      "rank": {
        -        "anyOf": [
        -          {
        -            "exclusiveMinimum": 0,
        -            "maximum": 9007199254740991,
        -            "type": "integer"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "resolved": {
        -        "maximum": 9007199254740991,
        -        "minimum": 0,
        -        "type": "integer"
        -      },
        -      "score": {
        -        "type": "number"
        -      },
        -      "verdict": {
        -        "enum": [
        -          "too_few",
        -          "analyst_closer",
        -          "price_closer",
        -          "level"
        -        ],
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "forecaster",
        -      "joinedAt",
        -      "rank",
        -      "questions",
        -      "resolved",
        -      "score",
        -      "verdict",
        -      "firstForecastAt"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "beats": {
        +        "type": "boolean"
        +      },
        +      "categories": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "beats": {
        +              "type": "boolean"
        +            },
        +            "category": {
        +              "enum": [
        +                "politics",
        +                "economy",
        +                "tech",
        +                "culture",
        +                "sports"
        +              ],
        +              "type": "string"
        +            },
        +            "firstForecastAt": {
        +              "anyOf": [
        +                {
        +                  "format": "date-time",
        +                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "forecasts": {
        +              "maximum": 9007199254740991,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "place": {
        +              "anyOf": [
        +                {
        +                  "exclusiveMinimum": 0,
        +                  "maximum": 9007199254740991,
        +                  "type": "integer"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "questions": {
        +              "maximum": 9007199254740991,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "range": {
        +              "anyOf": [
        +                {
        +                  "items": {
        +                    "type": "number"
        +                  },
        +                  "maxItems": 2,
        +                  "minItems": 2,
        +                  "type": "array"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "rank": {
        +              "anyOf": [
        +                {
        +                  "exclusiveMinimum": 0,
        +                  "maximum": 9007199254740991,
        +                  "type": "integer"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "resolved": {
        +              "maximum": 9007199254740991,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "score": {
        +              "type": "number"
        +            },
        +            "verdict": {
        +              "enum": [
        +                "too_few",
        +                "analyst_closer",
        +                "price_closer",
        +                "level"
        +              ],
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "category",
        +            "rank",
        +            "questions",
        +            "resolved",
        +            "forecasts",
        +            "score",
        +            "beats",
        +            "verdict",
        +            "firstForecastAt",
        +            "place"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "coverage": {
        +        "minimum": 0,
        +        "type": "number"
        +      },
        +      "firstForecastAt": {
        +        "anyOf": [
        +          {
        +            "format": "date-time",
        +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "forecaster": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "address": {
        +            "$ref": "#/$defs/EvmAddress"
        +          },
        +          "agentId": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "kind": {
        +            "enum": [
        +              "person",
        +              "agent"
        +            ],
        +            "type": "string"
        +          },
        +          "name": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "kind",
        +          "name",
        +          "address",
        +          "agentId"
        +        ],
        +        "type": "object"
        +      },
        +      "forecasts": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "joinedAt": {
        +        "format": "date-time",
        +        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +        "type": "string"
        +      },
        +      "questions": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "range": {
        +        "anyOf": [
        +          {
        +            "items": {
        +              "type": "number"
        +            },
        +            "maxItems": 2,
        +            "minItems": 2,
        +            "type": "array"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "rank": {
        +        "anyOf": [
        +          {
        +            "exclusiveMinimum": 0,
        +            "maximum": 9007199254740991,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "resolved": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "score": {
        +        "type": "number"
        +      },
        +      "verdict": {
        +        "enum": [
        +          "too_few",
        +          "analyst_closer",
        +          "price_closer",
        +          "level"
        +        ],
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "forecaster",
        +      "joinedAt",
        +      "rank",
        +      "questions",
        +      "resolved",
        +      "score",
        +      "verdict",
        +      "firstForecastAt"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedproblee_join_contest1 field changed
      • changedOutput schema / $defs / ContestJoin / properties / you / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "beats": {
        -        "type": "boolean"
        -      },
        -      "categories": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "beats": {
        -              "type": "boolean"
        -            },
        -            "category": {
        -              "enum": [
        -                "politics",
        -                "economy",
        -                "tech",
        -                "culture",
        -                "sports"
        -              ],
        -              "type": "string"
        -            },
        -            "firstForecastAt": {
        -              "anyOf": [
        -                {
        -                  "format": "date-time",
        -                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -                  "type": "string"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "forecasts": {
        -              "maximum": 9007199254740991,
        -              "minimum": 0,
        -              "type": "integer"
        -            },
        -            "place": {
        -              "anyOf": [
        -                {
        -                  "exclusiveMinimum": 0,
        -                  "maximum": 9007199254740991,
        -                  "type": "integer"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "questions": {
        -              "maximum": 9007199254740991,
        -              "minimum": 0,
        -              "type": "integer"
        -            },
        -            "rank": {
        -              "anyOf": [
        -                {
        -                  "exclusiveMinimum": 0,
        -                  "maximum": 9007199254740991,
        -                  "type": "integer"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "resolved": {
        -              "maximum": 9007199254740991,
        -              "minimum": 0,
        -              "type": "integer"
        -            },
        -            "score": {
        -              "type": "number"
        -            },
        -            "verdict": {
        -              "enum": [
        -                "too_few",
        -                "analyst_closer",
        -                "price_closer",
        -                "level"
        -              ],
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "category",
        -            "rank",
        -            "questions",
        -            "resolved",
        -            "forecasts",
        -            "score",
        -            "beats",
        -            "verdict",
        -            "firstForecastAt",
        -            "place"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "coverage": {
        -        "minimum": 0,
        -        "type": "number"
        -      },
        -      "firstForecastAt": {
        -        "anyOf": [
        -          {
        -            "format": "date-time",
        -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "forecaster": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "address": {
        -            "$ref": "#/$defs/EvmAddress"
        -          },
        -          "agentId": {
        -            "type": [
        -              "string",
        -              "null"
        -            ]
        -          },
        -          "kind": {
        -            "enum": [
        -              "person",
        -              "agent"
        -            ],
        -            "type": "string"
        -          },
        -          "name": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "kind",
        -          "name",
        -          "address",
        -          "agentId"
        -        ],
        -        "type": "object"
        -      },
        -      "forecasts": {
        -        "maximum": 9007199254740991,
        -        "minimum": 0,
        -        "type": "integer"
        -      },
        -      "joinedAt": {
        -        "format": "date-time",
        -        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -        "type": "string"
        -      },
        -      "questions": {
        -        "maximum": 9007199254740991,
        -        "minimum": 0,
        -        "type": "integer"
        -      },
        -      "rank": {
        -        "anyOf": [
        -          {
        -            "exclusiveMinimum": 0,
        -            "maximum": 9007199254740991,
        -            "type": "integer"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "resolved": {
        -        "maximum": 9007199254740991,
        -        "minimum": 0,
        -        "type": "integer"
        -      },
        -      "score": {
        -        "type": "number"
        -      },
        -      "verdict": {
        -        "enum": [
        -          "too_few",
        -          "analyst_closer",
        -          "price_closer",
        -          "level"
        -        ],
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "forecaster",
        -      "joinedAt",
        -      "rank",
        -      "questions",
        -      "resolved",
        -      "score",
        -      "verdict",
        -      "firstForecastAt"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "beats": {
        +        "type": "boolean"
        +      },
        +      "categories": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "beats": {
        +              "type": "boolean"
        +            },
        +            "category": {
        +              "enum": [
        +                "politics",
        +                "economy",
        +                "tech",
        +                "culture",
        +                "sports"
        +              ],
        +              "type": "string"
        +            },
        +            "firstForecastAt": {
        +              "anyOf": [
        +                {
        +                  "format": "date-time",
        +                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "forecasts": {
        +              "maximum": 9007199254740991,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "place": {
        +              "anyOf": [
        +                {
        +                  "exclusiveMinimum": 0,
        +                  "maximum": 9007199254740991,
        +                  "type": "integer"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "questions": {
        +              "maximum": 9007199254740991,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "range": {
        +              "anyOf": [
        +                {
        +                  "items": {
        +                    "type": "number"
        +                  },
        +                  "maxItems": 2,
        +                  "minItems": 2,
        +                  "type": "array"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "rank": {
        +              "anyOf": [
        +                {
        +                  "exclusiveMinimum": 0,
        +                  "maximum": 9007199254740991,
        +                  "type": "integer"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "resolved": {
        +              "maximum": 9007199254740991,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "score": {
        +              "type": "number"
        +            },
        +            "verdict": {
        +              "enum": [
        +                "too_few",
        +                "analyst_closer",
        +                "price_closer",
        +                "level"
        +              ],
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "category",
        +            "rank",
        +            "questions",
        +            "resolved",
        +            "forecasts",
        +            "score",
        +            "beats",
        +            "verdict",
        +            "firstForecastAt",
        +            "place"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "coverage": {
        +        "minimum": 0,
        +        "type": "number"
        +      },
        +      "firstForecastAt": {
        +        "anyOf": [
        +          {
        +            "format": "date-time",
        +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "forecaster": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "address": {
        +            "$ref": "#/$defs/EvmAddress"
        +          },
        +          "agentId": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "kind": {
        +            "enum": [
        +              "person",
        +              "agent"
        +            ],
        +            "type": "string"
        +          },
        +          "name": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "kind",
        +          "name",
        +          "address",
        +          "agentId"
        +        ],
        +        "type": "object"
        +      },
        +      "forecasts": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "joinedAt": {
        +        "format": "date-time",
        +        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +        "type": "string"
        +      },
        +      "questions": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "range": {
        +        "anyOf": [
        +          {
        +            "items": {
        +              "type": "number"
        +            },
        +            "maxItems": 2,
        +            "minItems": 2,
        +            "type": "array"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "rank": {
        +        "anyOf": [
        +          {
        +            "exclusiveMinimum": 0,
        +            "maximum": 9007199254740991,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "resolved": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "score": {
        +        "type": "number"
        +      },
        +      "verdict": {
        +        "enum": [
        +          "too_few",
        +          "analyst_closer",
        +          "price_closer",
        +          "level"
        +        ],
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "forecaster",
        +      "joinedAt",
        +      "rank",
        +      "questions",
        +      "resolved",
        +      "score",
        +      "verdict",
        +      "firstForecastAt"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Addedproblee_my_contest
    • Changedproblee_publish_forecast1 field changed
      • addedOutput schema / $defs / AgentForecastResponse / properties / forecast / properties / contest
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "category": {
        +      "anyOf": [
        +        {
        +          "enum": [
        +            "politics",
        +            "economy",
        +            "tech",
        +            "culture",
        +            "sports"
        +          ],
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "counts": {
        +      "enum": [
        +        "pending_price",
        +        "not_counted"
        +      ],
        +      "type": "string"
        +    },
        +    "forecastsLeftToday": {
        +      "anyOf": [
        +        {
        +          "maximum": 9007199254740991,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "locksAt": {
        +      "anyOf": [
        +        {
        +          "format": "date-time",
        +          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "reason": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "resetsAt": {
        +      "format": "date-time",
        +      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +      "type": "string"
        +    },
        +    "scoredWhen": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "counts",
        +    "reason",
        +    "category",
        +    "forecastsLeftToday",
        +    "resetsAt",
        +    "locksAt",
        +    "scoredWhen"
        +  ],
        +  "type": "object"
        +}
    • Changedproblee_publish_forecasts1 field changed
      • changedOutput schema / $defs / AgentForecastBatchResponse / properties / results / items / properties / forecast / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "duplicate": {
        -        "type": "boolean"
        -      },
        -      "forecastAt": {
        -        "format": "date-time",
        -        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -        "type": "string"
        -      },
        -      "id": {
        -        "type": "string"
        -      },
        -      "market": {
        -        "anyOf": [
        -          {
        -            "additionalProperties": false,
        -            "properties": {
        -              "address": {
        -                "pattern": "^0x[a-fA-F0-9]{40}$",
        -                "type": "string"
        -              },
        -              "chainId": {
        -                "exclusiveMinimum": 0,
        -                "maximum": 9007199254740991,
        -                "type": "integer"
        -              }
        -            },
        -            "required": [
        -              "address",
        -              "chainId"
        -            ],
        -            "type": "object"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "option": {
        -        "anyOf": [
        -          {
        -            "additionalProperties": false,
        -            "properties": {
        -              "conditionId": {
        -                "type": "string"
        -              },
        -              "eventId": {
        -                "type": "string"
        -              }
        -            },
        -            "required": [
        -              "eventId",
        -              "conditionId"
        -            ],
        -            "type": "object"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "priceAtForecast": {
        -        "maximum": 1,
        -        "minimum": 0,
        -        "type": "number"
        -      },
        -      "probability": {
        -        "maximum": 1,
        -        "minimum": 0,
        -        "type": "number"
        -      }
        -    },
        -    "required": [
        -      "id",
        -      "probability",
        -      "priceAtForecast",
        -      "forecastAt",
        -      "duplicate",
        -      "market",
        -      "option"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "contest": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "category": {
        +            "anyOf": [
        +              {
        +                "enum": [
        +                  "politics",
        +                  "economy",
        +                  "tech",
        +                  "culture",
        +                  "sports"
        +                ],
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "counts": {
        +            "enum": [
        +              "pending_price",
        +              "not_counted"
        +            ],
        +            "type": "string"
        +          },
        +          "forecastsLeftToday": {
        +            "anyOf": [
        +              {
        +                "maximum": 9007199254740991,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "locksAt": {
        +            "anyOf": [
        +              {
        +                "format": "date-time",
        +                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "reason": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "resetsAt": {
        +            "format": "date-time",
        +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +            "type": "string"
        +          },
        +          "scoredWhen": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "counts",
        +          "reason",
        +          "category",
        +          "forecastsLeftToday",
        +          "resetsAt",
        +          "locksAt",
        +          "scoredWhen"
        +        ],
        +        "type": "object"
        +      },
        +      "duplicate": {
        +        "type": "boolean"
        +      },
        +      "forecastAt": {
        +        "format": "date-time",
        +        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +        "type": "string"
        +      },
        +      "id": {
        +        "type": "string"
        +      },
        +      "market": {
        +        "anyOf": [
        +          {
        +            "additionalProperties": false,
        +            "properties": {
        +              "address": {
        +                "pattern": "^0x[a-fA-F0-9]{40}$",
        +                "type": "string"
        +              },
        +              "chainId": {
        +                "exclusiveMinimum": 0,
        +                "maximum": 9007199254740991,
        +                "type": "integer"
        +              }
        +            },
        +            "required": [
        +              "address",
        +              "chainId"
        +            ],
        +            "type": "object"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "option": {
        +        "anyOf": [
        +          {
        +            "additionalProperties": false,
        +            "properties": {
        +              "conditionId": {
        +                "type": "string"
        +              },
        +              "eventId": {
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "eventId",
        +              "conditionId"
        +            ],
        +            "type": "object"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "priceAtForecast": {
        +        "maximum": 1,
        +        "minimum": 0,
        +        "type": "number"
        +      },
        +      "probability": {
        +        "maximum": 1,
        +        "minimum": 0,
        +        "type": "number"
        +      }
        +    },
        +    "required": [
        +      "id",
        +      "probability",
        +      "priceAtForecast",
        +      "forecastAt",
        +      "duplicate",
        +      "market",
        +      "option"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
  2. 2 tool updates
    • Changedproblee_contest9 fields changed
      • addedOutput schema / $defs / ContestBoard
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "asOf": {
        +      "format": "date-time",
        +      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +      "type": "string"
        +    },
        +    "entrants": {
        +      "maximum": 9007199254740991,
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "minQuestions": {
        +      "maximum": 9007199254740991,
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "notice": {
        +      "const": "Past performance is not indicative of future results.",
        +      "type": "string"
        +    },
        +    "ranked": {
        +      "maximum": 9007199254740991,
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "resolved": {
        +      "maximum": 9007199254740991,
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "rows": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "beats": {
        +            "type": "boolean"
        +          },
        +          "coverage": {
        +            "minimum": 0,
        +            "type": "number"
        +          },
        +          "firstForecastAt": {
        +            "anyOf": [
        +              {
        +                "format": "date-time",
        +                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "forecaster": {
        +            "additionalProperties": false,
        +            "properties": {
        +              "address": {
        +                "$ref": "#/$defs/EvmAddress"
        +              },
        +              "agentId": {
        +                "type": [
        +                  "string",
        +                  "null"
        +                ]
        +              },
        +              "kind": {
        +                "enum": [
        +                  "person",
        +                  "agent"
        +                ],
        +                "type": "string"
        +              },
        +              "name": {
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "kind",
        +              "name",
        +              "address",
        +              "agentId"
        +            ],
        +            "type": "object"
        +          },
        +          "forecasts": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "place": {
        +            "anyOf": [
        +              {
        +                "exclusiveMinimum": 0,
        +                "maximum": 9007199254740991,
        +                "type": "integer"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "questions": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "rank": {
        +            "exclusiveMinimum": 0,
        +            "maximum": 9007199254740991,
        +            "type": "integer"
        +          },
        +          "resolved": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "score": {
        +            "type": "number"
        +          },
        +          "verdict": {
        +            "enum": [
        +              "too_few",
        +              "analyst_closer",
        +              "price_closer",
        +              "level"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "forecaster",
        +          "rank",
        +          "questions",
        +          "resolved",
        +          "score",
        +          "verdict",
        +          "firstForecastAt"
        +        ],
        +        "type": "object"
        +      },
        +      "maxItems": 2000,
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "asOf",
        +    "entrants",
        +    "ranked",
        +    "minQuestions",
        +    "resolved",
        +    "rows",
        +    "notice"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / $defs / ContestRead / properties / board / $ref
        Added value: +"#/$defs/ContestBoard"
      • removedOutput schema / $defs / ContestRead / properties / board / additionalProperties
        Removed value: -false
      • removedOutput schema / $defs / ContestRead / properties / board / properties
        Removed value: -{
        -  "asOf": {
        -    "format": "date-time",
        -    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -    "type": "string"
        -  },
        -  "entrants": {
        -    "maximum": 9007199254740991,
        -    "minimum": 0,
        -    "type": "integer"
        -  },
        -  "minQuestions": {
        -    "maximum": 9007199254740991,
        -    "minimum": 0,
        -    "type": "integer"
        -  },
        -  "notice": {
        -    "const": "Past performance is not indicative of future results.",
        -    "type": "string"
        -  },
        -  "ranked": {
        -    "maximum": 9007199254740991,
        -    "minimum": 0,
        -    "type": "integer"
        -  },
        -  "resolved": {
        -    "maximum": 9007199254740991,
        -    "minimum": 0,
        -    "type": "integer"
        -  },
        -  "rows": {
        -    "items": {
        -      "additionalProperties": false,
        -      "properties": {
        -        "coverage": {
        -          "minimum": 0,
        -          "type": "number"
        -        },
        -        "firstForecastAt": {
        -          "anyOf": [
        -            {
        -              "format": "date-time",
        -              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -              "type": "string"
        -            },
        -            {
        -              "type": "null"
        -            }
        -          ]
        -        },
        -        "forecaster": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "address": {
        -              "$ref": "#/$defs/EvmAddress"
        -            },
        -            "agentId": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "kind": {
        -              "enum": [
        -                "person",
        -                "agent"
        -              ],
        -              "type": "string"
        -            },
        -            "name": {
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "kind",
        -            "name",
        -            "address",
        -            "agentId"
        -          ],
        -          "type": "object"
        -        },
        -        "questions": {
        -          "maximum": 9007199254740991,
        -          "minimum": 0,
        -          "type": "integer"
        -        },
        -        "rank": {
        -          "exclusiveMinimum": 0,
        -          "maximum": 9007199254740991,
        -          "type": "integer"
        -        },
        -        "resolved": {
        -          "maximum": 9007199254740991,
        -          "minimum": 0,
        -          "type": "integer"
        -        },
        -        "score": {
        -          "type": "number"
        -        },
        -        "verdict": {
        -          "enum": [
        -            "too_few",
        -            "analyst_closer",
        -            "price_closer",
        -            "level"
        -          ],
        -          "type": "string"
        -        }
        -      },
        -      "required": [
        -        "forecaster",
        -        "rank",
        -        "questions",
        -        "resolved",
        -        "score",
        -        "verdict",
        -        "firstForecastAt"
        -      ],
        -      "type": "object"
        -    },
        -    "maxItems": 2000,
        -    "type": "array"
        -  }
        -}
      • removedOutput schema / $defs / ContestRead / properties / board / required
        Removed value: -[
        -  "asOf",
        -  "entrants",
        -  "ranked",
        -  "minQuestions",
        -  "resolved",
        -  "rows",
        -  "notice"
        -]
      • removedOutput schema / $defs / ContestRead / properties / board / type
        Removed value: -"object"
      • addedOutput schema / $defs / ContestRead / properties / categories
        Added value: +{
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "beating": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "category": {
        +        "enum": [
        +          "politics",
        +          "economy",
        +          "tech",
        +          "culture",
        +          "sports"
        +        ],
        +        "type": "string"
        +      },
        +      "covers": {
        +        "type": "string"
        +      },
        +      "label": {
        +        "type": "string"
        +      },
        +      "prizes": {
        +        "items": {
        +          "exclusiveMinimum": 0,
        +          "maximum": 9007199254740991,
        +          "type": "integer"
        +        },
        +        "type": "array"
        +      },
        +      "ranked": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "rows": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "beats": {
        +              "type": "boolean"
        +            },
        +            "coverage": {
        +              "minimum": 0,
        +              "type": "number"
        +            },
        +            "firstForecastAt": {
        +              "anyOf": [
        +                {
        +                  "format": "date-time",
        +                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "forecaster": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "address": {
        +                  "$ref": "#/$defs/EvmAddress"
        +                },
        +                "agentId": {
        +                  "type": [
        +                    "string",
        +                    "null"
        +                  ]
        +                },
        +                "kind": {
        +                  "enum": [
        +                    "person",
        +                    "agent"
        +                  ],
        +                  "type": "string"
        +                },
        +                "name": {
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "kind",
        +                "name",
        +                "address",
        +                "agentId"
        +              ],
        +              "type": "object"
        +            },
        +            "forecasts": {
        +              "maximum": 9007199254740991,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "place": {
        +              "anyOf": [
        +                {
        +                  "exclusiveMinimum": 0,
        +                  "maximum": 9007199254740991,
        +                  "type": "integer"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "questions": {
        +              "maximum": 9007199254740991,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "rank": {
        +              "exclusiveMinimum": 0,
        +              "maximum": 9007199254740991,
        +              "type": "integer"
        +            },
        +            "resolved": {
        +              "maximum": 9007199254740991,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "score": {
        +              "type": "number"
        +            },
        +            "verdict": {
        +              "enum": [
        +                "too_few",
        +                "analyst_closer",
        +                "price_closer",
        +                "level"
        +              ],
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "forecaster",
        +            "rank",
        +            "questions",
        +            "resolved",
        +            "score",
        +            "verdict",
        +            "firstForecastAt"
        +          ],
        +          "type": "object"
        +        },
        +        "maxItems": 2000,
        +        "type": "array"
        +      }
        +    },
        +    "required": [
        +      "category",
        +      "label",
        +      "covers",
        +      "prizes",
        +      "beating",
        +      "ranked",
        +      "rows"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / $defs / ContestRead / properties / slate / properties / questions / items / properties / contestCategory
        Added value: +{
        +  "enum": [
        +    "politics",
        +    "economy",
        +    "tech",
        +    "culture",
        +    "sports"
        +  ],
        +  "type": "string"
        +}
      • changedOutput schema / $defs / ContestRead / properties / you / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "coverage": {
        -        "minimum": 0,
        -        "type": "number"
        -      },
        -      "firstForecastAt": {
        -        "anyOf": [
        -          {
        -            "format": "date-time",
        -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "forecaster": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "address": {
        -            "$ref": "#/$defs/EvmAddress"
        -          },
        -          "agentId": {
        -            "type": [
        -              "string",
        -              "null"
        -            ]
        -          },
        -          "kind": {
        -            "enum": [
        -              "person",
        -              "agent"
        -            ],
        -            "type": "string"
        -          },
        -          "name": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "kind",
        -          "name",
        -          "address",
        -          "agentId"
        -        ],
        -        "type": "object"
        -      },
        -      "joinedAt": {
        -        "format": "date-time",
        -        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -        "type": "string"
        -      },
        -      "questions": {
        -        "maximum": 9007199254740991,
        -        "minimum": 0,
        -        "type": "integer"
        -      },
        -      "rank": {
        -        "anyOf": [
        -          {
        -            "exclusiveMinimum": 0,
        -            "maximum": 9007199254740991,
        -            "type": "integer"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "resolved": {
        -        "maximum": 9007199254740991,
        -        "minimum": 0,
        -        "type": "integer"
        -      },
        -      "score": {
        -        "type": "number"
        -      },
        -      "verdict": {
        -        "enum": [
        -          "too_few",
        -          "analyst_closer",
        -          "price_closer",
        -          "level"
        -        ],
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "forecaster",
        -      "joinedAt",
        -      "rank",
        -      "questions",
        -      "resolved",
        -      "score",
        -      "verdict",
        -      "firstForecastAt"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "beats": {
        +        "type": "boolean"
        +      },
        +      "categories": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "beats": {
        +              "type": "boolean"
        +            },
        +            "category": {
        +              "enum": [
        +                "politics",
        +                "economy",
        +                "tech",
        +                "culture",
        +                "sports"
        +              ],
        +              "type": "string"
        +            },
        +            "firstForecastAt": {
        +              "anyOf": [
        +                {
        +                  "format": "date-time",
        +                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "forecasts": {
        +              "maximum": 9007199254740991,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "place": {
        +              "anyOf": [
        +                {
        +                  "exclusiveMinimum": 0,
        +                  "maximum": 9007199254740991,
        +                  "type": "integer"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "questions": {
        +              "maximum": 9007199254740991,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "rank": {
        +              "anyOf": [
        +                {
        +                  "exclusiveMinimum": 0,
        +                  "maximum": 9007199254740991,
        +                  "type": "integer"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "resolved": {
        +              "maximum": 9007199254740991,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "score": {
        +              "type": "number"
        +            },
        +            "verdict": {
        +              "enum": [
        +                "too_few",
        +                "analyst_closer",
        +                "price_closer",
        +                "level"
        +              ],
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "category",
        +            "rank",
        +            "questions",
        +            "resolved",
        +            "forecasts",
        +            "score",
        +            "beats",
        +            "verdict",
        +            "firstForecastAt",
        +            "place"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "coverage": {
        +        "minimum": 0,
        +        "type": "number"
        +      },
        +      "firstForecastAt": {
        +        "anyOf": [
        +          {
        +            "format": "date-time",
        +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "forecaster": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "address": {
        +            "$ref": "#/$defs/EvmAddress"
        +          },
        +          "agentId": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "kind": {
        +            "enum": [
        +              "person",
        +              "agent"
        +            ],
        +            "type": "string"
        +          },
        +          "name": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "kind",
        +          "name",
        +          "address",
        +          "agentId"
        +        ],
        +        "type": "object"
        +      },
        +      "forecasts": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "joinedAt": {
        +        "format": "date-time",
        +        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +        "type": "string"
        +      },
        +      "questions": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "rank": {
        +        "anyOf": [
        +          {
        +            "exclusiveMinimum": 0,
        +            "maximum": 9007199254740991,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "resolved": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "score": {
        +        "type": "number"
        +      },
        +      "verdict": {
        +        "enum": [
        +          "too_few",
        +          "analyst_closer",
        +          "price_closer",
        +          "level"
        +        ],
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "forecaster",
        +      "joinedAt",
        +      "rank",
        +      "questions",
        +      "resolved",
        +      "score",
        +      "verdict",
        +      "firstForecastAt"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedproblee_join_contest1 field changed
      • changedOutput schema / $defs / ContestJoin / properties / you / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "coverage": {
        -        "minimum": 0,
        -        "type": "number"
        -      },
        -      "firstForecastAt": {
        -        "anyOf": [
        -          {
        -            "format": "date-time",
        -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "forecaster": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "address": {
        -            "$ref": "#/$defs/EvmAddress"
        -          },
        -          "agentId": {
        -            "type": [
        -              "string",
        -              "null"
        -            ]
        -          },
        -          "kind": {
        -            "enum": [
        -              "person",
        -              "agent"
        -            ],
        -            "type": "string"
        -          },
        -          "name": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "kind",
        -          "name",
        -          "address",
        -          "agentId"
        -        ],
        -        "type": "object"
        -      },
        -      "joinedAt": {
        -        "format": "date-time",
        -        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -        "type": "string"
        -      },
        -      "questions": {
        -        "maximum": 9007199254740991,
        -        "minimum": 0,
        -        "type": "integer"
        -      },
        -      "rank": {
        -        "anyOf": [
        -          {
        -            "exclusiveMinimum": 0,
        -            "maximum": 9007199254740991,
        -            "type": "integer"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "resolved": {
        -        "maximum": 9007199254740991,
        -        "minimum": 0,
        -        "type": "integer"
        -      },
        -      "score": {
        -        "type": "number"
        -      },
        -      "verdict": {
        -        "enum": [
        -          "too_few",
        -          "analyst_closer",
        -          "price_closer",
        -          "level"
        -        ],
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "forecaster",
        -      "joinedAt",
        -      "rank",
        -      "questions",
        -      "resolved",
        -      "score",
        -      "verdict",
        -      "firstForecastAt"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "beats": {
        +        "type": "boolean"
        +      },
        +      "categories": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "beats": {
        +              "type": "boolean"
        +            },
        +            "category": {
        +              "enum": [
        +                "politics",
        +                "economy",
        +                "tech",
        +                "culture",
        +                "sports"
        +              ],
        +              "type": "string"
        +            },
        +            "firstForecastAt": {
        +              "anyOf": [
        +                {
        +                  "format": "date-time",
        +                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "forecasts": {
        +              "maximum": 9007199254740991,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "place": {
        +              "anyOf": [
        +                {
        +                  "exclusiveMinimum": 0,
        +                  "maximum": 9007199254740991,
        +                  "type": "integer"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "questions": {
        +              "maximum": 9007199254740991,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "rank": {
        +              "anyOf": [
        +                {
        +                  "exclusiveMinimum": 0,
        +                  "maximum": 9007199254740991,
        +                  "type": "integer"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "resolved": {
        +              "maximum": 9007199254740991,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "score": {
        +              "type": "number"
        +            },
        +            "verdict": {
        +              "enum": [
        +                "too_few",
        +                "analyst_closer",
        +                "price_closer",
        +                "level"
        +              ],
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "category",
        +            "rank",
        +            "questions",
        +            "resolved",
        +            "forecasts",
        +            "score",
        +            "beats",
        +            "verdict",
        +            "firstForecastAt",
        +            "place"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "coverage": {
        +        "minimum": 0,
        +        "type": "number"
        +      },
        +      "firstForecastAt": {
        +        "anyOf": [
        +          {
        +            "format": "date-time",
        +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "forecaster": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "address": {
        +            "$ref": "#/$defs/EvmAddress"
        +          },
        +          "agentId": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "kind": {
        +            "enum": [
        +              "person",
        +              "agent"
        +            ],
        +            "type": "string"
        +          },
        +          "name": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "kind",
        +          "name",
        +          "address",
        +          "agentId"
        +        ],
        +        "type": "object"
        +      },
        +      "forecasts": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "joinedAt": {
        +        "format": "date-time",
        +        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +        "type": "string"
        +      },
        +      "questions": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "rank": {
        +        "anyOf": [
        +          {
        +            "exclusiveMinimum": 0,
        +            "maximum": 9007199254740991,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "resolved": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "score": {
        +        "type": "number"
        +      },
        +      "verdict": {
        +        "enum": [
        +          "too_few",
        +          "analyst_closer",
        +          "price_closer",
        +          "level"
        +        ],
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "forecaster",
        +      "joinedAt",
        +      "rank",
        +      "questions",
        +      "resolved",
        +      "score",
        +      "verdict",
        +      "firstForecastAt"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
  3. 3 tool updates
    • Changedproblee_get_market_research3 fields changed
      • removedOutput schema / $defs
        Removed value: -{
        -  "MarketResearch": {
        -    "additionalProperties": false,
        -    "properties": {
        -      "analystCount": {
        -        "maximum": 9007199254740991,
        -        "minimum": 0,
        -        "type": "integer"
        -      },
        -      "analystRecord": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "analystCloser": {
        -            "maximum": 9007199254740991,
        -            "minimum": 0,
        -            "type": "integer"
        -          },
        -          "level": {
        -            "maximum": 9007199254740991,
        -            "minimum": 0,
        -            "type": "integer"
        -          },
        -          "priceCloser": {
        -            "maximum": 9007199254740991,
        -            "minimum": 0,
        -            "type": "integer"
        -          },
        -          "settledMarkets": {
        -            "anyOf": [
        -              {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "max": {
        -                    "maximum": 9007199254740991,
        -                    "minimum": 0,
        -                    "type": "integer"
        -                  },
        -                  "min": {
        -                    "maximum": 9007199254740991,
        -                    "minimum": 0,
        -                    "type": "integer"
        -                  }
        -                },
        -                "required": [
        -                  "min",
        -                  "max"
        -                ],
        -                "type": "object"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "tooFew": {
        -            "maximum": 9007199254740991,
        -            "minimum": 0,
        -            "type": "integer"
        -          }
        -        },
        -        "required": [
        -          "analystCloser",
        -          "level",
        -          "priceCloser",
        -          "tooFew",
        -          "settledMarkets"
        -        ],
        -        "type": "object"
        -      },
        -      "analysts": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "address": {
        -              "pattern": "^0x[a-fA-F0-9]{40}$",
        -              "type": "string"
        -            },
        -            "avatarUrl": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "displayName": {
        -              "type": "string"
        -            },
        -            "position": {
        -              "anyOf": [
        -                {
        -                  "additionalProperties": false,
        -                  "properties": {
        -                    "outcome1": {
        -                      "minimum": 0,
        -                      "type": "number"
        -                    },
        -                    "outcome2": {
        -                      "minimum": 0,
        -                      "type": "number"
        -                    }
        -                  },
        -                  "required": [
        -                    "outcome1",
        -                    "outcome2"
        -                  ],
        -                  "type": "object"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "priceAtTake": {
        -              "maximum": 1,
        -              "minimum": 0,
        -              "type": "number"
        -            },
        -            "probability": {
        -              "maximum": 1,
        -              "minimum": 0,
        -              "type": "number"
        -            },
        -            "reason": {
        -              "maxLength": 200,
        -              "type": "string"
        -            },
        -            "scorecard": {
        -              "additionalProperties": false,
        -              "properties": {
        -                "analystBrier": {
        -                  "anyOf": [
        -                    {
        -                      "maximum": 1,
        -                      "minimum": 0,
        -                      "type": "number"
        -                    },
        -                    {
        -                      "type": "null"
        -                    }
        -                  ]
        -                },
        -                "marketBrier": {
        -                  "anyOf": [
        -                    {
        -                      "maximum": 1,
        -                      "minimum": 0,
        -                      "type": "number"
        -                    },
        -                    {
        -                      "type": "null"
        -                    }
        -                  ]
        -                },
        -                "settledMarkets": {
        -                  "maximum": 9007199254740991,
        -                  "minimum": 0,
        -                  "type": "integer"
        -                },
        -                "settledTakes": {
        -                  "maximum": 9007199254740991,
        -                  "minimum": 0,
        -                  "type": "integer"
        -                },
        -                "verdict": {
        -                  "enum": [
        -                    "too_few",
        -                    "analyst_closer",
        -                    "price_closer",
        -                    "level"
        -                  ],
        -                  "type": "string"
        -                }
        -              },
        -              "required": [
        -                "settledMarkets",
        -                "settledTakes",
        -                "analystBrier",
        -                "marketBrier",
        -                "verdict"
        -              ],
        -              "type": "object"
        -            },
        -            "takenAt": {
        -              "format": "date-time",
        -              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "address",
        -            "displayName",
        -            "avatarUrl",
        -            "probability",
        -            "takenAt",
        -            "priceAtTake",
        -            "scorecard"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "analystsAverage": {
        -        "anyOf": [
        -          {
        -            "maximum": 1,
        -            "minimum": 0,
        -            "type": "number"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "analystsHolding": {
        -        "maximum": 9007199254740991,
        -        "minimum": 0,
        -        "type": "integer"
        -      },
        -      "caseNo": {
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      },
        -      "caseYes": {
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      },
        -      "decides": {
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      },
        -      "facts": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "date": {
        -              "format": "date",
        -              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
        -              "type": "string"
        -            },
        -            "sourceIds": {
        -              "items": {
        -                "exclusiveMinimum": 0,
        -                "maximum": 9007199254740991,
        -                "type": "integer"
        -              },
        -              "type": "array"
        -            },
        -            "text": {
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "date",
        -            "text",
        -            "sourceIds"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "priceAtResearch": {
        -        "anyOf": [
        -          {
        -            "maximum": 1,
        -            "minimum": 0,
        -            "type": "number"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "researchedAt": {
        -        "anyOf": [
        -          {
        -            "format": "date-time",
        -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "revision": {
        -        "anyOf": [
        -          {
        -            "additionalProperties": false,
        -            "properties": {
        -              "at": {
        -                "format": "date-time",
        -                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -                "type": "string"
        -              },
        -              "kind": {
        -                "enum": [
        -                  "corrected",
        -                  "withdrawn"
        -                ],
        -                "type": "string"
        -              },
        -              "note": {
        -                "type": "string"
        -              }
        -            },
        -            "required": [
        -              "kind",
        -              "at",
        -              "note"
        -            ],
        -            "type": "object"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "sources": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "host": {
        -              "type": "string"
        -            },
        -            "id": {
        -              "exclusiveMinimum": 0,
        -              "maximum": 9007199254740991,
        -              "type": "integer"
        -            },
        -            "title": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "url": {
        -              "format": "uri",
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "id",
        -            "url",
        -            "title",
        -            "host"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "status": {
        -        "enum": [
        -          "ready",
        -          "none",
        -          "excluded"
        -        ],
        -        "type": "string"
        -      },
        -      "version": {
        -        "anyOf": [
        -          {
        -            "exclusiveMinimum": 0,
        -            "maximum": 9007199254740991,
        -            "type": "integer"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "watchNext": {
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      },
        -      "watchOut": {
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      }
        -    },
        -    "required": [
        -      "status",
        -      "version",
        -      "researchedAt",
        -      "priceAtResearch",
        -      "decides",
        -      "facts",
        -      "watchNext",
        -      "caseYes",
        -      "caseNo",
        -      "sources",
        -      "analysts"
        -    ],
        -    "type": "object"
        -  }
        -}
      • removedOutput schema / properties / result / $ref
        Removed value: -"#/$defs/MarketResearch"
      • addedOutput schema / properties / result / anyOf
        Added value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "analystCount": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "analystRecord": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "analystCloser": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "level": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "priceCloser": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "settledMarkets": {
        +            "anyOf": [
        +              {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "max": {
        +                    "maximum": 9007199254740991,
        +                    "minimum": 0,
        +                    "type": "integer"
        +                  },
        +                  "min": {
        +                    "maximum": 9007199254740991,
        +                    "minimum": 0,
        +                    "type": "integer"
        +                  }
        +                },
        +                "required": [
        +                  "min",
        +                  "max"
        +                ],
        +                "type": "object"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "tooFew": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          }
        +        },
        +        "required": [
        +          "analystCloser",
        +          "level",
        +          "priceCloser",
        +          "tooFew",
        +          "settledMarkets"
        +        ],
        +        "type": "object"
        +      },
        +      "analysts": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "address": {
        +              "pattern": "^0x[a-fA-F0-9]{40}$",
        +              "type": "string"
        +            },
        +            "avatarUrl": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "displayName": {
        +              "type": "string"
        +            },
        +            "position": {
        +              "anyOf": [
        +                {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "outcome1": {
        +                      "minimum": 0,
        +                      "type": "number"
        +                    },
        +                    "outcome2": {
        +                      "minimum": 0,
        +                      "type": "number"
        +                    }
        +                  },
        +                  "required": [
        +                    "outcome1",
        +                    "outcome2"
        +                  ],
        +                  "type": "object"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "priceAtTake": {
        +              "maximum": 1,
        +              "minimum": 0,
        +              "type": "number"
        +            },
        +            "probability": {
        +              "maximum": 1,
        +              "minimum": 0,
        +              "type": "number"
        +            },
        +            "reason": {
        +              "maxLength": 200,
        +              "type": "string"
        +            },
        +            "scorecard": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "analystBrier": {
        +                  "anyOf": [
        +                    {
        +                      "maximum": 1,
        +                      "minimum": 0,
        +                      "type": "number"
        +                    },
        +                    {
        +                      "type": "null"
        +                    }
        +                  ]
        +                },
        +                "marketBrier": {
        +                  "anyOf": [
        +                    {
        +                      "maximum": 1,
        +                      "minimum": 0,
        +                      "type": "number"
        +                    },
        +                    {
        +                      "type": "null"
        +                    }
        +                  ]
        +                },
        +                "settledMarkets": {
        +                  "maximum": 9007199254740991,
        +                  "minimum": 0,
        +                  "type": "integer"
        +                },
        +                "settledTakes": {
        +                  "maximum": 9007199254740991,
        +                  "minimum": 0,
        +                  "type": "integer"
        +                },
        +                "verdict": {
        +                  "enum": [
        +                    "too_few",
        +                    "analyst_closer",
        +                    "price_closer",
        +                    "level"
        +                  ],
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "settledMarkets",
        +                "settledTakes",
        +                "analystBrier",
        +                "marketBrier",
        +                "verdict"
        +              ],
        +              "type": "object"
        +            },
        +            "takenAt": {
        +              "format": "date-time",
        +              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "address",
        +            "displayName",
        +            "avatarUrl",
        +            "probability",
        +            "takenAt",
        +            "priceAtTake",
        +            "scorecard"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "analystsAverage": {
        +        "anyOf": [
        +          {
        +            "maximum": 1,
        +            "minimum": 0,
        +            "type": "number"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "analystsHolding": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "caseNo": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "caseYes": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "decides": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "facts": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "date": {
        +              "format": "date",
        +              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
        +              "type": "string"
        +            },
        +            "sourceIds": {
        +              "items": {
        +                "exclusiveMinimum": 0,
        +                "maximum": 9007199254740991,
        +                "type": "integer"
        +              },
        +              "type": "array"
        +            },
        +            "text": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "date",
        +            "text",
        +            "sourceIds"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "priceAtResearch": {
        +        "anyOf": [
        +          {
        +            "maximum": 1,
        +            "minimum": 0,
        +            "type": "number"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "researchedAt": {
        +        "anyOf": [
        +          {
        +            "format": "date-time",
        +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "revision": {
        +        "anyOf": [
        +          {
        +            "additionalProperties": false,
        +            "properties": {
        +              "at": {
        +                "format": "date-time",
        +                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                "type": "string"
        +              },
        +              "kind": {
        +                "enum": [
        +                  "corrected",
        +                  "withdrawn"
        +                ],
        +                "type": "string"
        +              },
        +              "note": {
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "kind",
        +              "at",
        +              "note"
        +            ],
        +            "type": "object"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "sources": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "host": {
        +              "type": "string"
        +            },
        +            "id": {
        +              "exclusiveMinimum": 0,
        +              "maximum": 9007199254740991,
        +              "type": "integer"
        +            },
        +            "title": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "url": {
        +              "format": "uri",
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "id",
        +            "url",
        +            "title",
        +            "host"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "status": {
        +        "enum": [
        +          "ready",
        +          "none",
        +          "excluded"
        +        ],
        +        "type": "string"
        +      },
        +      "version": {
        +        "anyOf": [
        +          {
        +            "exclusiveMinimum": 0,
        +            "maximum": 9007199254740991,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "watchNext": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "watchOut": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      }
        +    },
        +    "required": [
        +      "status",
        +      "version",
        +      "researchedAt",
        +      "priceAtResearch",
        +      "decides",
        +      "facts",
        +      "watchNext",
        +      "caseYes",
        +      "caseNo",
        +      "sources",
        +      "analysts"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "options": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "analystCount": {
        +              "maximum": 9007199254740991,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "analystsAverage": {
        +              "anyOf": [
        +                {
        +                  "maximum": 1,
        +                  "minimum": 0,
        +                  "type": "number"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "conditionId": {
        +              "type": "string"
        +            },
        +            "label": {
        +              "type": "string"
        +            },
        +            "price": {
        +              "anyOf": [
        +                {
        +                  "maximum": 1,
        +                  "minimum": 0,
        +                  "type": "number"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            }
        +          },
        +          "required": [
        +            "conditionId",
        +            "label",
        +            "price",
        +            "analystsAverage",
        +            "analystCount"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "question": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "slug": {
        +            "type": "string"
        +          },
        +          "title": {
        +            "type": "string"
        +          },
        +          "url": {
        +            "format": "uri",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "slug",
        +          "title",
        +          "url"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "question",
        +      "options"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Addedproblee_get_moving
    • Changedproblee_list_markets4 fields changed
      • addedInput schema / properties / view
        Added value: +{
        +  "description": "full (default): the whole rows. compact: the questions first, then each market's question, chance, stage and trading end.",
        +  "enum": [
        +    "full",
        +    "compact"
        +  ],
        +  "type": "string"
        +}
      • removedOutput schema / $defs / DiscoverMarketsResponse
        Removed value: -{
        -  "additionalProperties": false,
        -  "properties": {
        -    "hasMore": {
        -      "type": "boolean"
        -    },
        -    "markets": {
        -      "items": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "actions": {
        -            "additionalProperties": false,
        -            "properties": {
        -              "canChallenge": {
        -                "type": "boolean"
        -              },
        -              "canClaim": {
        -                "type": "boolean"
        -              },
        -              "canCreatorResolve": {
        -                "type": "boolean"
        -              },
        -              "canVote": {
        -                "type": "boolean"
        -              },
        -              "creatorAddress": {
        -                "$ref": "#/$defs/EvmAddress"
        -              },
        -              "reason": {
        -                "$ref": "#/$defs/ErrorReason"
        -              }
        -            },
        -            "required": [
        -              "canCreatorResolve",
        -              "canChallenge",
        -              "canVote",
        -              "canClaim"
        -            ],
        -            "type": "object"
        -          },
        -          "address": {
        -            "anyOf": [
        -              {
        -                "$ref": "#/$defs/EvmAddress"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "category": {
        -            "enum": [
        -              "CRYPTO",
        -              "SPORTS",
        -              "POLITICS",
        -              "ELECTIONS",
        -              "FINANCE",
        -              "TECH",
        -              "WORLD",
        -              "ECONOMY",
        -              "CULTURE",
        -              "WEATHER",
        -              "SCIENCE_HEALTH",
        -              "AI",
        -              "GAMING",
        -              "BUSINESS",
        -              "FASHION",
        -              "MOVIES_TV",
        -              "MUSIC",
        -              "SHOPPING",
        -              "BEAUTY",
        -              "TRAVEL",
        -              "CLIMATE",
        -              "DAILY_LIFE",
        -              "LOCAL",
        -              "SOCIAL",
        -              "FUN",
        -              "OTHER"
        -            ],
        -            "type": "string",
        -            "x-extensible-enum": true
        -          },
        -          "chainId": {
        -            "maximum": 9007199254740991,
        -            "minimum": -9007199254740991,
        -            "type": "integer"
        -          },
        -          "challengeBy": {
        -            "anyOf": [
        -              {
        -                "format": "date-time",
        -                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "closeTime": {
        -            "anyOf": [
        -              {
        -                "format": "date-time",
        -                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "collateralToken": {
        -            "anyOf": [
        -              {
        -                "$ref": "#/$defs/EvmAddress"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "councilReviewEndsAt": {
        -            "anyOf": [
        -              {
        -                "format": "date-time",
        -                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "createdAt": {
        -            "format": "date-time",
        -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -            "type": "string"
        -          },
        -          "createdBy": {
        -            "anyOf": [
        -              {
        -                "$ref": "#/$defs/EvmAddress"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "creatorAgentId": {
        -            "type": [
        -              "string",
        -              "null"
        -            ]
        -          },
        -          "creatorResolveBy": {
        -            "anyOf": [
        -              {
        -                "format": "date-time",
        -                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "creatorTier": {
        -            "anyOf": [
        -              {
        -                "$ref": "#/$defs/ReputationTier"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "finality": {
        -            "enum": [
        -              "pending",
        -              "finalized"
        -            ],
        -            "type": "string"
        -          },
        -          "geo": {
        -            "anyOf": [
        -              {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "countryCode": {
        -                    "type": [
        -                      "string",
        -                      "null"
        -                    ]
        -                  },
        -                  "derivation": {
        -                    "anyOf": [
        -                      {
        -                        "enum": [
        -                          "explicit",
        -                          "entity_hq"
        -                        ],
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "lat": {
        -                    "type": [
        -                      "number",
        -                      "null"
        -                    ]
        -                  },
        -                  "lon": {
        -                    "type": [
        -                      "number",
        -                      "null"
        -                    ]
        -                  },
        -                  "place": {
        -                    "type": [
        -                      "string",
        -                      "null"
        -                    ]
        -                  },
        -                  "scope": {
        -                    "enum": [
        -                      "city",
        -                      "region",
        -                      "country",
        -                      "global"
        -                    ],
        -                    "type": "string"
        -                  }
        -                },
        -                "required": [
        -                  "scope",
        -                  "countryCode",
        -                  "place",
        -                  "lat",
        -                  "lon",
        -                  "derivation"
        -                ],
        -                "type": "object"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "humanVote": {
        -            "additionalProperties": false,
        -            "properties": {
        -              "deadlineImmutable": {
        -                "const": true,
        -                "type": "boolean"
        -              },
        -              "endsAt": {
        -                "anyOf": [
        -                  {
        -                    "format": "date-time",
        -                    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -                    "type": "string"
        -                  },
        -                  {
        -                    "type": "null"
        -                  }
        -                ]
        -              },
        -              "sessionId": {
        -                "type": [
        -                  "string",
        -                  "null"
        -                ]
        -              },
        -              "windowStartsAt": {
        -                "const": "session_open",
        -                "type": "string"
        -              }
        -            },
        -            "required": [
        -              "sessionId",
        -              "windowStartsAt",
        -              "deadlineImmutable",
        -              "endsAt"
        -            ],
        -            "type": "object"
        -          },
        -          "id": {
        -            "type": "string"
        -          },
        -          "isTernary": {
        -            "type": "boolean"
        -          },
        -          "jurorTier": {
        -            "anyOf": [
        -              {
        -                "$ref": "#/$defs/ReputationTier"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "language": {
        -            "type": [
        -              "string",
        -              "null"
        -            ]
        -          },
        -          "lifecycleStage": {
        -            "$ref": "#/$defs/MarketLifecycleStage"
        -          },
        -          "marketReference": {
        -            "pattern": "^mkt_[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}$",
        -            "type": "string"
        -          },
        -          "marketState": {
        -            "enum": [
        -              "open",
        -              "closed",
        -              "creator_proposal",
        -              "challenge",
        -              "human_voting",
        -              "council_review",
        -              "resolved",
        -              "void"
        -            ],
        -            "type": "string"
        -          },
        -          "marketType": {
        -            "type": "string"
        -          },
        -          "nextActionDeadline": {
        -            "anyOf": [
        -              {
        -                "format": "date-time",
        -                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "openTime": {
        -            "anyOf": [
        -              {
        -                "format": "date-time",
        -                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "outcome": {
        -            "maximum": 9007199254740991,
        -            "minimum": -9007199254740991,
        -            "type": "integer"
        -          },
        -          "outcomes": {
        -            "items": {
        -              "additionalProperties": false,
        -              "properties": {
        -                "label": {
        -                  "type": "string"
        -                },
        -                "pricePercent": {
        -                  "anyOf": [
        -                    {
        -                      "maximum": 100,
        -                      "minimum": 0,
        -                      "type": "number"
        -                    },
        -                    {
        -                      "type": "null"
        -                    }
        -                  ]
        -                }
        -              },
        -              "required": [
        -                "label",
        -                "pricePercent"
        -              ],
        -              "type": "object"
        -            },
        -            "maxItems": 3,
        -            "minItems": 2,
        -            "type": "array"
        -          },
        -          "prices": {
        -            "additionalProperties": false,
        -            "properties": {
        -              "outcome1": {
        -                "anyOf": [
        -                  {
        -                    "maximum": 1,
        -                    "minimum": 0,
        -                    "type": "number"
        -                  },
        -                  {
        -                    "type": "null"
        -                  }
        -                ]
        -              },
        -              "outcome2": {
        -                "anyOf": [
        -                  {
        -                    "maximum": 1,
        -                    "minimum": 0,
        -                    "type": "number"
        -                  },
        -                  {
        -                    "type": "null"
        -                  }
        -                ]
        -              },
        -              "outcome3": {
        -                "anyOf": [
        -                  {
        -                    "maximum": 1,
        -                    "minimum": 0,
        -                    "type": "number"
        -                  },
        -                  {
        -                    "type": "null"
        -                  }
        -                ]
        -              }
        -            },
        -            "type": "object"
        -          },
        -          "pricingModel": {
        -            "type": [
        -              "string",
        -              "null"
        -            ]
        -          },
        -          "question": {
        -            "type": "string"
        -          },
        -          "resolutionCriteria": {
        -            "type": [
        -              "string",
        -              "null"
        -            ]
        -          },
        -          "resolutionSource": {
        -            "anyOf": [
        -              {
        -                "additionalProperties": {},
        -                "propertyNames": {
        -                  "type": "string"
        -                },
        -                "type": "object"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "resolutionTime": {
        -            "format": "date-time",
        -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -            "type": "string"
        -          },
        -          "settlement": {
        -            "enum": [
        -              "onchain",
        -              "committed"
        -            ],
        -            "type": "string"
        -          },
        -          "sourceToken": {
        -            "additionalProperties": false,
        -            "properties": {
        -              "side": {
        -                "maximum": 1,
        -                "minimum": 0,
        -                "type": "integer"
        -              },
        -              "tokenId": {
        -                "type": "string"
        -              }
        -            },
        -            "required": [
        -              "tokenId",
        -              "side"
        -            ],
        -            "type": "object"
        -          },
        -          "stageDeadline": {
        -            "anyOf": [
        -              {
        -                "format": "date-time",
        -                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "supportsVoid": {
        -            "type": "boolean"
        -          },
        -          "tradingEndsAt": {
        -            "anyOf": [
        -              {
        -                "format": "date-time",
        -                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "volume": {
        -            "$ref": "#/$defs/WeiString"
        -          },
        -          "volume24h": {
        -            "$ref": "#/$defs/WeiString"
        -          },
        -          "volumePm": {
        -            "additionalProperties": false,
        -            "properties": {
        -              "last24hPm": {
        -                "pattern": "^(?:0|[1-9]\\d*)(?:\\.\\d{1,6})?$",
        -                "type": "string"
        -              },
        -              "lifetimePm": {
        -                "pattern": "^(?:0|[1-9]\\d*)(?:\\.\\d{1,6})?$",
        -                "type": "string"
        -              }
        -            },
        -            "required": [
        -              "lifetimePm",
        -              "last24hPm"
        -            ],
        -            "type": "object"
        -          }
        -        },
        -        "required": [
        -          "id",
        -          "address",
        -          "chainId",
        -          "question",
        -          "category",
        -          "marketState",
        -          "tradingEndsAt",
        -          "lifecycleStage",
        -          "stageDeadline",
        -          "isTernary",
        -          "outcome",
        -          "marketType",
        -          "finality",
        -          "pricingModel",
        -          "openTime",
        -          "closeTime",
        -          "resolutionTime",
        -          "creatorResolveBy",
        -          "challengeBy",
        -          "humanVote",
        -          "councilReviewEndsAt",
        -          "nextActionDeadline",
        -          "actions",
        -          "createdAt",
        -          "collateralToken",
        -          "language",
        -          "volume"
        -        ],
        -        "type": "object"
        -      },
        -      "type": "array"
        -    },
        -    "nextCursor": {
        -      "type": [
        -        "string",
        -        "null"
        -      ]
        -    },
        -    "questions": {
        -      "items": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "category": {
        -            "type": "string"
        -          },
        -          "endsAt": {
        -            "anyOf": [
        -              {
        -                "format": "date-time",
        -                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "marketAddress": {
        -            "anyOf": [
        -              {
        -                "$ref": "#/$defs/EvmAddress"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "options": {
        -            "items": {
        -              "additionalProperties": false,
        -              "properties": {
        -                "label": {
        -                  "type": "string"
        -                },
        -                "price": {
        -                  "anyOf": [
        -                    {
        -                      "maximum": 1,
        -                      "minimum": 0,
        -                      "type": "number"
        -                    },
        -                    {
        -                      "type": "null"
        -                    }
        -                  ]
        -                }
        -              },
        -              "required": [
        -                "label",
        -                "price"
        -              ],
        -              "type": "object"
        -            },
        -            "maxItems": 4,
        -            "type": "array"
        -          },
        -          "slug": {
        -            "type": "string"
        -          },
        -          "title": {
        -            "type": "string"
        -          },
        -          "url": {
        -            "format": "uri",
        -            "type": "string"
        -          },
        -          "volume24hUsd": {
        -            "anyOf": [
        -              {
        -                "minimum": 0,
        -                "type": "number"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          }
        -        },
        -        "required": [
        -          "slug",
        -          "title",
        -          "url",
        -          "category",
        -          "endsAt",
        -          "options",
        -          "volume24hUsd",
        -          "marketAddress"
        -        ],
        -        "type": "object"
        -      },
        -      "type": "array"
        -    }
        -  },
        -  "required": [
        -    "markets",
        -    "hasMore",
        -    "nextCursor"
        -  ],
        -  "type": "object"
        -}
      • removedOutput schema / properties / result / $ref
        Removed value: -"#/$defs/DiscoverMarketsResponse"
      • addedOutput schema / properties / result / anyOf
        Added value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "hasMore": {
        +        "type": "boolean"
        +      },
        +      "markets": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "address": {
        +              "anyOf": [
        +                {
        +                  "$ref": "#/$defs/EvmAddress"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "chance": {
        +              "anyOf": [
        +                {
        +                  "maximum": 1,
        +                  "minimum": 0,
        +                  "type": "number"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "lifecycleStage": {
        +              "$ref": "#/$defs/MarketLifecycleStage"
        +            },
        +            "question": {
        +              "type": "string"
        +            },
        +            "tradingEndsAt": {
        +              "anyOf": [
        +                {
        +                  "format": "date-time",
        +                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            }
        +          },
        +          "required": [
        +            "address",
        +            "question",
        +            "chance",
        +            "lifecycleStage",
        +            "tradingEndsAt"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "nextCursor": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "questions": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "endsAt": {
        +              "anyOf": [
        +                {
        +                  "format": "date-time",
        +                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "options": {
        +              "items": {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "label": {
        +                    "type": "string"
        +                  },
        +                  "price": {
        +                    "anyOf": [
        +                      {
        +                        "maximum": 1,
        +                        "minimum": 0,
        +                        "type": "number"
        +                      },
        +                      {
        +                        "type": "null"
        +                      }
        +                    ]
        +                  }
        +                },
        +                "required": [
        +                  "label",
        +                  "price"
        +                ],
        +                "type": "object"
        +              },
        +              "maxItems": 4,
        +              "type": "array"
        +            },
        +            "slug": {
        +              "type": "string"
        +            },
        +            "title": {
        +              "type": "string"
        +            },
        +            "volume24hUsd": {
        +              "anyOf": [
        +                {
        +                  "minimum": 0,
        +                  "type": "number"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            }
        +          },
        +          "required": [
        +            "slug",
        +            "title",
        +            "endsAt",
        +            "options",
        +            "volume24hUsd"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "view": {
        +        "const": "compact",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "view",
        +      "markets",
        +      "hasMore",
        +      "nextCursor"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "hasMore": {
        +        "type": "boolean"
        +      },
        +      "markets": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "actions": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "canChallenge": {
        +                  "type": "boolean"
        +                },
        +                "canClaim": {
        +                  "type": "boolean"
        +                },
        +                "canCreatorResolve": {
        +                  "type": "boolean"
        +                },
        +                "canVote": {
        +                  "type": "boolean"
        +                },
        +                "creatorAddress": {
        +                  "$ref": "#/$defs/EvmAddress"
        +                },
        +                "reason": {
        +                  "$ref": "#/$defs/ErrorReason"
        +                }
        +              },
        +              "required": [
        +                "canCreatorResolve",
        +                "canChallenge",
        +                "canVote",
        +                "canClaim"
        +              ],
        +              "type": "object"
        +            },
        +            "address": {
        +              "anyOf": [
        +                {
        +                  "$ref": "#/$defs/EvmAddress"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "category": {
        +              "enum": [
        +                "CRYPTO",
        +                "SPORTS",
        +                "POLITICS",
        +                "ELECTIONS",
        +                "FINANCE",
        +                "TECH",
        +                "WORLD",
        +                "ECONOMY",
        +                "CULTURE",
        +                "WEATHER",
        +                "SCIENCE_HEALTH",
        +                "AI",
        +                "GAMING",
        +                "BUSINESS",
        +                "FASHION",
        +                "MOVIES_TV",
        +                "MUSIC",
        +                "SHOPPING",
        +                "BEAUTY",
        +                "TRAVEL",
        +                "CLIMATE",
        +                "DAILY_LIFE",
        +                "LOCAL",
        +                "SOCIAL",
        +                "FUN",
        +                "OTHER"
        +              ],
        +              "type": "string",
        +              "x-extensible-enum": true
        +            },
        +            "chainId": {
        +              "maximum": 9007199254740991,
        +              "minimum": -9007199254740991,
        +              "type": "integer"
        +            },
        +            "challengeBy": {
        +              "anyOf": [
        +                {
        +                  "format": "date-time",
        +                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "closeTime": {
        +              "anyOf": [
        +                {
        +                  "format": "date-time",
        +                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "collateralToken": {
        +              "anyOf": [
        +                {
        +                  "$ref": "#/$defs/EvmAddress"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "councilReviewEndsAt": {
        +              "anyOf": [
        +                {
        +                  "format": "date-time",
        +                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "createdAt": {
        +              "format": "date-time",
        +              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +              "type": "string"
        +            },
        +            "createdBy": {
        +              "anyOf": [
        +                {
        +                  "$ref": "#/$defs/EvmAddress"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "creatorAgentId": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "creatorResolveBy": {
        +              "anyOf": [
        +                {
        +                  "format": "date-time",
        +                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "creatorTier": {
        +              "anyOf": [
        +                {
        +                  "$ref": "#/$defs/ReputationTier"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "finality": {
        +              "enum": [
        +                "pending",
        +                "finalized"
        +              ],
        +              "type": "string"
        +            },
        +            "geo": {
        +              "anyOf": [
        +                {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "countryCode": {
        +                      "type": [
        +                        "string",
        +                        "null"
        +                      ]
        +                    },
        +                    "derivation": {
        +                      "anyOf": [
        +                        {
        +                          "enum": [
        +                            "explicit",
        +                            "entity_hq"
        +                          ],
        +                          "type": "string"
        +                        },
        +                        {
        +                          "type": "null"
        +                        }
        +                      ]
        +                    },
        +                    "lat": {
        +                      "type": [
        +                        "number",
        +                        "null"
        +                      ]
        +                    },
        +                    "lon": {
        +                      "type": [
        +                        "number",
        +                        "null"
        +                      ]
        +                    },
        +                    "place": {
        +                      "type": [
        +                        "string",
        +                        "null"
        +                      ]
        +                    },
        +                    "scope": {
        +                      "enum": [
        +                        "city",
        +                        "region",
        +                        "country",
        +                        "global"
        +                      ],
        +                      "type": "string"
        +                    }
        +                  },
        +                  "required": [
        +                    "scope",
        +                    "countryCode",
        +                    "place",
        +                    "lat",
        +                    "lon",
        +                    "derivation"
        +                  ],
        +                  "type": "object"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "humanVote": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "deadlineImmutable": {
        +                  "const": true,
        +                  "type": "boolean"
        +                },
        +                "endsAt": {
        +                  "anyOf": [
        +                    {
        +                      "format": "date-time",
        +                      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                      "type": "string"
        +                    },
        +                    {
        +                      "type": "null"
        +                    }
        +                  ]
        +                },
        +                "sessionId": {
        +                  "type": [
        +                    "string",
        +                    "null"
        +                  ]
        +                },
        +                "windowStartsAt": {
        +                  "const": "session_open",
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "sessionId",
        +                "windowStartsAt",
        +                "deadlineImmutable",
        +                "endsAt"
        +              ],
        +              "type": "object"
        +            },
        +            "id": {
        +              "type": "string"
        +            },
        +            "isTernary": {
        +              "type": "boolean"
        +            },
        +            "jurorTier": {
        +              "anyOf": [
        +                {
        +                  "$ref": "#/$defs/ReputationTier"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "language": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "lifecycleStage": {
        +              "$ref": "#/$defs/MarketLifecycleStage"
        +            },
        +            "marketReference": {
        +              "pattern": "^mkt_[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}$",
        +              "type": "string"
        +            },
        +            "marketState": {
        +              "enum": [
        +                "open",
        +                "closed",
        +                "creator_proposal",
        +                "challenge",
        +                "human_voting",
        +                "council_review",
        +                "resolved",
        +                "void"
        +              ],
        +              "type": "string"
        +            },
        +            "marketType": {
        +              "type": "string"
        +            },
        +            "nextActionDeadline": {
        +              "anyOf": [
        +                {
        +                  "format": "date-time",
        +                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "openTime": {
        +              "anyOf": [
        +                {
        +                  "format": "date-time",
        +                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "outcome": {
        +              "maximum": 9007199254740991,
        +              "minimum": -9007199254740991,
        +              "type": "integer"
        +            },
        +            "outcomes": {
        +              "items": {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "label": {
        +                    "type": "string"
        +                  },
        +                  "pricePercent": {
        +                    "anyOf": [
        +                      {
        +                        "maximum": 100,
        +                        "minimum": 0,
        +                        "type": "number"
        +                      },
        +                      {
        +                        "type": "null"
        +                      }
        +                    ]
        +                  }
        +                },
        +                "required": [
        +                  "label",
        +                  "pricePercent"
        +                ],
        +                "type": "object"
        +              },
        +              "maxItems": 3,
        +              "minItems": 2,
        +              "type": "array"
        +            },
        +            "prices": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "outcome1": {
        +                  "anyOf": [
        +                    {
        +                      "maximum": 1,
        +                      "minimum": 0,
        +                      "type": "number"
        +                    },
        +                    {
        +                      "type": "null"
        +                    }
        +                  ]
        +                },
        +                "outcome2": {
        +                  "anyOf": [
        +                    {
        +                      "maximum": 1,
        +                      "minimum": 0,
        +                      "type": "number"
        +                    },
        +                    {
        +                      "type": "null"
        +                    }
        +                  ]
        +                },
        +                "outcome3": {
        +                  "anyOf": [
        +                    {
        +                      "maximum": 1,
        +                      "minimum": 0,
        +                      "type": "number"
        +                    },
        +                    {
        +                      "type": "null"
        +                    }
        +                  ]
        +                }
        +              },
        +              "type": "object"
        +            },
        +            "pricingModel": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "question": {
        +              "type": "string"
        +            },
        +            "resolutionCriteria": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "resolutionSource": {
        +              "anyOf": [
        +                {
        +                  "additionalProperties": {},
        +                  "propertyNames": {
        +                    "type": "string"
        +                  },
        +                  "type": "object"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "resolutionTime": {
        +              "format": "date-time",
        +              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +              "type": "string"
        +            },
        +            "settlement": {
        +              "enum": [
        +                "onchain",
        +                "committed"
        +              ],
        +              "type": "string"
        +            },
        +            "sourceToken": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "side": {
        +                  "maximum": 1,
        +                  "minimum": 0,
        +                  "type": "integer"
        +                },
        +                "tokenId": {
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "tokenId",
        +                "side"
        +              ],
        +              "type": "object"
        +            },
        +            "stageDeadline": {
        +              "anyOf": [
        +                {
        +                  "format": "date-time",
        +                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "supportsVoid": {
        +              "type": "boolean"
        +            },
        +            "tradingEndsAt": {
        +              "anyOf": [
        +                {
        +                  "format": "date-time",
        +                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "volume": {
        +              "$ref": "#/$defs/WeiString"
        +            },
        +            "volume24h": {
        +              "$ref": "#/$defs/WeiString"
        +            },
        +            "volumePm": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "last24hPm": {
        +                  "pattern": "^(?:0|[1-9]\\d*)(?:\\.\\d{1,6})?$",
        +                  "type": "string"
        +                },
        +                "lifetimePm": {
        +                  "pattern": "^(?:0|[1-9]\\d*)(?:\\.\\d{1,6})?$",
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "lifetimePm",
        +                "last24hPm"
        +              ],
        +              "type": "object"
        +            }
        +          },
        +          "required": [
        +            "id",
        +            "address",
        +            "chainId",
        +            "question",
        +            "category",
        +            "marketState",
        +            "tradingEndsAt",
        +            "lifecycleStage",
        +            "stageDeadline",
        +            "isTernary",
        +            "outcome",
        +            "marketType",
        +            "finality",
        +            "pricingModel",
        +            "openTime",
        +            "closeTime",
        +            "resolutionTime",
        +            "creatorResolveBy",
        +            "challengeBy",
        +            "humanVote",
        +            "councilReviewEndsAt",
        +            "nextActionDeadline",
        +            "actions",
        +            "createdAt",
        +            "collateralToken",
        +            "language",
        +            "volume"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "nextCursor": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "questions": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "category": {
        +              "type": "string"
        +            },
        +            "endsAt": {
        +              "anyOf": [
        +                {
        +                  "format": "date-time",
        +                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "marketAddress": {
        +              "anyOf": [
        +                {
        +                  "$ref": "#/$defs/EvmAddress"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "options": {
        +              "items": {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "label": {
        +                    "type": "string"
        +                  },
        +                  "price": {
        +                    "anyOf": [
        +                      {
        +                        "maximum": 1,
        +                        "minimum": 0,
        +                        "type": "number"
        +                      },
        +                      {
        +                        "type": "null"
        +                      }
        +                    ]
        +                  }
        +                },
        +                "required": [
        +                  "label",
        +                  "price"
        +                ],
        +                "type": "object"
        +              },
        +              "maxItems": 4,
        +              "type": "array"
        +            },
        +            "slug": {
        +              "type": "string"
        +            },
        +            "title": {
        +              "type": "string"
        +            },
        +            "url": {
        +              "format": "uri",
        +              "type": "string"
        +            },
        +            "volume24hUsd": {
        +              "anyOf": [
        +                {
        +                  "minimum": 0,
        +                  "type": "number"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            }
        +          },
        +          "required": [
        +            "slug",
        +            "title",
        +            "url",
        +            "category",
        +            "endsAt",
        +            "options",
        +            "volume24hUsd",
        +            "marketAddress"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      }
        +    },
        +    "required": [
        +      "markets",
        +      "hasMore",
        +      "nextCursor"
        +    ],
        +    "type": "object"
        +  }
        +]
  4. 2 tool updates
    • Changedproblee_contest2 fields changed
      • addedOutput schema / $defs / ContestRead / properties / board / properties / rows / items / properties / coverage
        Added value: +{
        +  "minimum": 0,
        +  "type": "number"
        +}
      • changedOutput schema / $defs / ContestRead / properties / you / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "firstForecastAt": {
        -        "anyOf": [
        -          {
        -            "format": "date-time",
        -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "forecaster": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "address": {
        -            "$ref": "#/$defs/EvmAddress"
        -          },
        -          "agentId": {
        -            "type": [
        -              "string",
        -              "null"
        -            ]
        -          },
        -          "kind": {
        -            "enum": [
        -              "person",
        -              "agent"
        -            ],
        -            "type": "string"
        -          },
        -          "name": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "kind",
        -          "name",
        -          "address",
        -          "agentId"
        -        ],
        -        "type": "object"
        -      },
        -      "joinedAt": {
        -        "format": "date-time",
        -        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -        "type": "string"
        -      },
        -      "questions": {
        -        "maximum": 9007199254740991,
        -        "minimum": 0,
        -        "type": "integer"
        -      },
        -      "rank": {
        -        "anyOf": [
        -          {
        -            "exclusiveMinimum": 0,
        -            "maximum": 9007199254740991,
        -            "type": "integer"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "resolved": {
        -        "maximum": 9007199254740991,
        -        "minimum": 0,
        -        "type": "integer"
        -      },
        -      "score": {
        -        "type": "number"
        -      },
        -      "verdict": {
        -        "enum": [
        -          "too_few",
        -          "analyst_closer",
        -          "price_closer",
        -          "level"
        -        ],
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "forecaster",
        -      "joinedAt",
        -      "rank",
        -      "questions",
        -      "resolved",
        -      "score",
        -      "verdict",
        -      "firstForecastAt"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "coverage": {
        +        "minimum": 0,
        +        "type": "number"
        +      },
        +      "firstForecastAt": {
        +        "anyOf": [
        +          {
        +            "format": "date-time",
        +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "forecaster": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "address": {
        +            "$ref": "#/$defs/EvmAddress"
        +          },
        +          "agentId": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "kind": {
        +            "enum": [
        +              "person",
        +              "agent"
        +            ],
        +            "type": "string"
        +          },
        +          "name": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "kind",
        +          "name",
        +          "address",
        +          "agentId"
        +        ],
        +        "type": "object"
        +      },
        +      "joinedAt": {
        +        "format": "date-time",
        +        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +        "type": "string"
        +      },
        +      "questions": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "rank": {
        +        "anyOf": [
        +          {
        +            "exclusiveMinimum": 0,
        +            "maximum": 9007199254740991,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "resolved": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "score": {
        +        "type": "number"
        +      },
        +      "verdict": {
        +        "enum": [
        +          "too_few",
        +          "analyst_closer",
        +          "price_closer",
        +          "level"
        +        ],
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "forecaster",
        +      "joinedAt",
        +      "rank",
        +      "questions",
        +      "resolved",
        +      "score",
        +      "verdict",
        +      "firstForecastAt"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedproblee_join_contest1 field changed
      • changedOutput schema / $defs / ContestJoin / properties / you / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "firstForecastAt": {
        -        "anyOf": [
        -          {
        -            "format": "date-time",
        -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "forecaster": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "address": {
        -            "$ref": "#/$defs/EvmAddress"
        -          },
        -          "agentId": {
        -            "type": [
        -              "string",
        -              "null"
        -            ]
        -          },
        -          "kind": {
        -            "enum": [
        -              "person",
        -              "agent"
        -            ],
        -            "type": "string"
        -          },
        -          "name": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "kind",
        -          "name",
        -          "address",
        -          "agentId"
        -        ],
        -        "type": "object"
        -      },
        -      "joinedAt": {
        -        "format": "date-time",
        -        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -        "type": "string"
        -      },
        -      "questions": {
        -        "maximum": 9007199254740991,
        -        "minimum": 0,
        -        "type": "integer"
        -      },
        -      "rank": {
        -        "anyOf": [
        -          {
        -            "exclusiveMinimum": 0,
        -            "maximum": 9007199254740991,
        -            "type": "integer"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "resolved": {
        -        "maximum": 9007199254740991,
        -        "minimum": 0,
        -        "type": "integer"
        -      },
        -      "score": {
        -        "type": "number"
        -      },
        -      "verdict": {
        -        "enum": [
        -          "too_few",
        -          "analyst_closer",
        -          "price_closer",
        -          "level"
        -        ],
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "forecaster",
        -      "joinedAt",
        -      "rank",
        -      "questions",
        -      "resolved",
        -      "score",
        -      "verdict",
        -      "firstForecastAt"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "coverage": {
        +        "minimum": 0,
        +        "type": "number"
        +      },
        +      "firstForecastAt": {
        +        "anyOf": [
        +          {
        +            "format": "date-time",
        +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "forecaster": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "address": {
        +            "$ref": "#/$defs/EvmAddress"
        +          },
        +          "agentId": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "kind": {
        +            "enum": [
        +              "person",
        +              "agent"
        +            ],
        +            "type": "string"
        +          },
        +          "name": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "kind",
        +          "name",
        +          "address",
        +          "agentId"
        +        ],
        +        "type": "object"
        +      },
        +      "joinedAt": {
        +        "format": "date-time",
        +        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +        "type": "string"
        +      },
        +      "questions": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "rank": {
        +        "anyOf": [
        +          {
        +            "exclusiveMinimum": 0,
        +            "maximum": 9007199254740991,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "resolved": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "score": {
        +        "type": "number"
        +      },
        +      "verdict": {
        +        "enum": [
        +          "too_few",
        +          "analyst_closer",
        +          "price_closer",
        +          "level"
        +        ],
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "forecaster",
        +      "joinedAt",
        +      "rank",
        +      "questions",
        +      "resolved",
        +      "score",
        +      "verdict",
        +      "firstForecastAt"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
  5. 83 tool updates
    • Addedproblee_analyze_selected_makers
    • Addedproblee_approve_link_consents
    • Addedproblee_batch_counterparty_reputation
    • Addedproblee_batch_get_orderbooks
    • Addedproblee_batch_get_trading_rules
    • Addedproblee_batch_place_orders
    • Addedproblee_batch_prepare_orders
    • Addedproblee_batch_replace_quote_sets
    • Addedproblee_buy_play_money
    • Addedproblee_cancel_all_orders
    • Addedproblee_cancel_order
    • Addedproblee_cancel_orders
    • Addedproblee_check_market_exists
    • Addedproblee_confirm_order_cancel
    • Changedproblee_contest2 fields changed
      • addedOutput schema / $defs / ContestRead / properties / slate / properties / questions / items / properties / category
        Added value: +{
        +  "$ref": "#/$defs/MarketCategory"
        +}
      • addedOutput schema / $defs / MarketCategory
        Added value: +{
        +  "enum": [
        +    "CRYPTO",
        +    "SPORTS",
        +    "POLITICS",
        +    "ELECTIONS",
        +    "FINANCE",
        +    "TECH",
        +    "WORLD",
        +    "ECONOMY",
        +    "CULTURE",
        +    "WEATHER",
        +    "SCIENCE_HEALTH",
        +    "AI",
        +    "GAMING",
        +    "BUSINESS",
        +    "FASHION",
        +    "MOVIES_TV",
        +    "MUSIC",
        +    "SHOPPING",
        +    "BEAUTY",
        +    "TRAVEL",
        +    "CLIMATE",
        +    "DAILY_LIFE",
        +    "LOCAL",
        +    "SOCIAL",
        +    "FUN",
        +    "OTHER"
        +  ],
        +  "type": "string",
        +  "x-extensible-enum": true
        +}
    • Addedproblee_create_watch
    • Addedproblee_delete_canvas_update
    • Addedproblee_delete_watch
    • Addedproblee_estimate_market_order
    • Addedproblee_execute_trade_intent
    • Addedproblee_generate_link_code
    • Addedproblee_get_agent_identity
    • Addedproblee_get_agent_reputation
    • Addedproblee_get_claim_status
    • Addedproblee_get_counterparty_reputation
    • Addedproblee_get_current_season
    • Addedproblee_get_fill_allowance
    • Addedproblee_get_launch_counter
    • Addedproblee_get_market_operability
    • Addedproblee_get_me
    • Addedproblee_get_my_reputation
    • Addedproblee_get_open_orders
    • Addedproblee_get_orderbook
    • Addedproblee_get_participation_distribution
    • Addedproblee_get_participation_release
    • Addedproblee_get_pnl_history
    • Addedproblee_get_proposal
    • Addedproblee_get_quote
    • Addedproblee_get_quotes_batch
    • Addedproblee_get_resolution_status
    • Addedproblee_get_scoring_record
    • Addedproblee_get_season_cohort
    • Addedproblee_get_season_standings
    • Addedproblee_get_subject_reputation
    • Addedproblee_get_trade_intent
    • Addedproblee_get_trader_profile
    • Addedproblee_get_transaction_status
    • Addedproblee_get_webhook
    • Addedproblee_join_contest
    • Addedproblee_list_canvas_updates
    • Addedproblee_list_claims
    • Addedproblee_list_my_reputation_events
    • Addedproblee_list_order_events
    • Addedproblee_list_pending_link_consents
    • Addedproblee_list_reputation_leaderboard
    • Addedproblee_list_scoring_cohort
    • Addedproblee_list_watches
    • Addedproblee_list_webhooks
    • Addedproblee_orderbook_heartbeat
    • Addedproblee_orderbook_heartbeat_status
    • Addedproblee_place_limit_order
    • Addedproblee_plan_pm_order
    • Addedproblee_post_canvas_update
    • Addedproblee_post_comment
    • Addedproblee_prepare_claims
    • Addedproblee_prepare_trade
    • Addedproblee_prepare_trades_batch
    • Addedproblee_publish_forecast
    • Addedproblee_publish_forecasts
    • Addedproblee_publish_market_surface
    • Addedproblee_publish_research
    • Addedproblee_publish_take
    • Addedproblee_push_content
    • Addedproblee_quote_to_price
    • Addedproblee_replace_quote_set
    • Addedproblee_simulate_claims
    • Addedproblee_simulate_trade
    • Addedproblee_submit_link_consent
    • Addedproblee_sweep_claims
    • Addedproblee_trading_setup_permit
    • Addedproblee_trading_setup_status
    • Addedproblee_unlink_identity_wallets
    • Addedproblee_withdraw_research
  6. 1 tool update
    • Addedproblee_contest
  7. 8 tool updates
    • Changedproblee_get_market5 fields changed
      • addedInput schema / properties / question
        Added value: +{
        +  "description": "Instead of address: a covered question, mirrored or not, by its slug or its Kellian or Polymarket link.",
        +  "maxLength": 2048,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • removedInput schema / required
        Removed value: -[
        -  "address"
        -]
      • removedOutput schema / $defs / AgentMarketDetail
        Removed value: -{
        -  "additionalProperties": false,
        -  "properties": {
        -    "actions": {
        -      "additionalProperties": false,
        -      "properties": {
        -        "canChallenge": {
        -          "type": "boolean"
        -        },
        -        "canClaim": {
        -          "type": "boolean"
        -        },
        -        "canCreatorResolve": {
        -          "type": "boolean"
        -        },
        -        "canVote": {
        -          "type": "boolean"
        -        },
        -        "creatorAddress": {
        -          "$ref": "#/$defs/EvmAddress"
        -        },
        -        "reason": {
        -          "$ref": "#/$defs/ErrorReason"
        -        }
        -      },
        -      "required": [
        -        "canCreatorResolve",
        -        "canChallenge",
        -        "canVote",
        -        "canClaim"
        -      ],
        -      "type": "object"
        -    },
        -    "address": {
        -      "anyOf": [
        -        {
        -          "$ref": "#/$defs/EvmAddress"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ]
        -    },
        -    "category": {
        -      "type": [
        -        "string",
        -        "null"
        -      ]
        -    },
        -    "chainId": {
        -      "maximum": 9007199254740991,
        -      "minimum": -9007199254740991,
        -      "type": "integer"
        -    },
        -    "challengeBy": {
        -      "anyOf": [
        -        {
        -          "format": "date-time",
        -          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ]
        -    },
        -    "clarifications": {
        -      "items": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "body": {
        -            "type": "string"
        -          },
        -          "createdAt": {
        -            "type": "string"
        -          },
        -          "id": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "id",
        -          "body",
        -          "createdAt"
        -        ],
        -        "type": "object"
        -      },
        -      "type": "array"
        -    },
        -    "closeTime": {
        -      "anyOf": [
        -        {
        -          "anyOf": [
        -            {
        -              "format": "date-time",
        -              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -              "type": "string"
        -            },
        -            {
        -              "format": "date-time",
        -              "type": "string"
        -            }
        -          ]
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ]
        -    },
        -    "collateralDecimals": {
        -      "anyOf": [
        -        {
        -          "maximum": 9007199254740991,
        -          "minimum": -9007199254740991,
        -          "type": "integer"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ]
        -    },
        -    "collateralToken": {
        -      "anyOf": [
        -        {
        -          "$ref": "#/$defs/EvmAddress"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ]
        -    },
        -    "councilReviewEndsAt": {
        -      "anyOf": [
        -        {
        -          "format": "date-time",
        -          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ]
        -    },
        -    "createdAt": {
        -      "anyOf": [
        -        {
        -          "anyOf": [
        -            {
        -              "format": "date-time",
        -              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -              "type": "string"
        -            },
        -            {
        -              "format": "date-time",
        -              "type": "string"
        -            }
        -          ]
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ]
        -    },
        -    "createdBy": {
        -      "anyOf": [
        -        {
        -          "$ref": "#/$defs/EvmAddress"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ]
        -    },
        -    "creatorAgentId": {
        -      "type": [
        -        "string",
        -        "null"
        -      ]
        -    },
        -    "creatorResolveBy": {
        -      "anyOf": [
        -        {
        -          "format": "date-time",
        -          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ]
        -    },
        -    "creatorTier": {
        -      "anyOf": [
        -        {
        -          "$ref": "#/$defs/ReputationTier"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ]
        -    },
        -    "description": {
        -      "type": [
        -        "string",
        -        "null"
        -      ]
        -    },
        -    "finality": {
        -      "enum": [
        -        "pending",
        -        "finalized"
        -      ],
        -      "type": "string"
        -    },
        -    "geo": {
        -      "anyOf": [
        -        {
        -          "additionalProperties": false,
        -          "properties": {
        -            "countryCode": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "derivation": {
        -              "anyOf": [
        -                {
        -                  "enum": [
        -                    "explicit",
        -                    "entity_hq"
        -                  ],
        -                  "type": "string"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "lat": {
        -              "type": [
        -                "number",
        -                "null"
        -              ]
        -            },
        -            "lon": {
        -              "type": [
        -                "number",
        -                "null"
        -              ]
        -            },
        -            "place": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "scope": {
        -              "enum": [
        -                "city",
        -                "region",
        -                "country",
        -                "global"
        -              ],
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "scope",
        -            "countryCode",
        -            "place",
        -            "lat",
        -            "lon",
        -            "derivation"
        -          ],
        -          "type": "object"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ]
        -    },
        -    "humanVote": {
        -      "additionalProperties": false,
        -      "properties": {
        -        "deadlineImmutable": {
        -          "const": true,
        -          "type": "boolean"
        -        },
        -        "endsAt": {
        -          "anyOf": [
        -            {
        -              "format": "date-time",
        -              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -              "type": "string"
        -            },
        -            {
        -              "type": "null"
        -            }
        -          ]
        -        },
        -        "sessionId": {
        -          "type": [
        -            "string",
        -            "null"
        -          ]
        -        },
        -        "windowStartsAt": {
        -          "const": "session_open",
        -          "type": "string"
        -        }
        -      },
        -      "required": [
        -        "sessionId",
        -        "windowStartsAt",
        -        "deadlineImmutable",
        -        "endsAt"
        -      ],
        -      "type": "object"
        -    },
        -    "imageUrl": {
        -      "type": [
        -        "string",
        -        "null"
        -      ]
        -    },
        -    "jurorTier": {
        -      "anyOf": [
        -        {
        -          "$ref": "#/$defs/ReputationTier"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ]
        -    },
        -    "lifecycleStage": {
        -      "$ref": "#/$defs/MarketLifecycleStage"
        -    },
        -    "marketReference": {
        -      "pattern": "^mkt_[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}$",
        -      "type": "string"
        -    },
        -    "marketState": {
        -      "enum": [
        -        "open",
        -        "closed",
        -        "creator_proposal",
        -        "challenge",
        -        "human_voting",
        -        "council_review",
        -        "resolved",
        -        "void"
        -      ],
        -      "type": "string"
        -    },
        -    "marketType": {
        -      "type": [
        -        "string",
        -        "null"
        -      ]
        -    },
        -    "nextActionDeadline": {
        -      "anyOf": [
        -        {
        -          "format": "date-time",
        -          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ]
        -    },
        -    "openTime": {
        -      "anyOf": [
        -        {
        -          "anyOf": [
        -            {
        -              "format": "date-time",
        -              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -              "type": "string"
        -            },
        -            {
        -              "format": "date-time",
        -              "type": "string"
        -            }
        -          ]
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ]
        -    },
        -    "outcome": {
        -      "anyOf": [
        -        {
        -          "maximum": 9007199254740991,
        -          "minimum": -9007199254740991,
        -          "type": "integer"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ]
        -    },
        -    "outcome1Label": {
        -      "type": [
        -        "string",
        -        "null"
        -      ]
        -    },
        -    "outcome2Label": {
        -      "type": [
        -        "string",
        -        "null"
        -      ]
        -    },
        -    "outcome3Label": {
        -      "type": [
        -        "string",
        -        "null"
        -      ]
        -    },
        -    "outcomes": {
        -      "items": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "label": {
        -            "type": "string"
        -          },
        -          "pricePercent": {
        -            "anyOf": [
        -              {
        -                "maximum": 100,
        -                "minimum": 0,
        -                "type": "number"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          }
        -        },
        -        "required": [
        -          "label",
        -          "pricePercent"
        -        ],
        -        "type": "object"
        -      },
        -      "maxItems": 3,
        -      "minItems": 2,
        -      "type": "array"
        -    },
        -    "prices": {
        -      "additionalProperties": false,
        -      "properties": {
        -        "outcome1": {
        -          "maximum": 1,
        -          "minimum": 0,
        -          "type": "number"
        -        },
        -        "outcome2": {
        -          "maximum": 1,
        -          "minimum": 0,
        -          "type": "number"
        -        },
        -        "outcome3": {
        -          "maximum": 1,
        -          "minimum": 0,
        -          "type": "number"
        -        }
        -      },
        -      "type": "object"
        -    },
        -    "pricingModel": {
        -      "type": [
        -        "string",
        -        "null"
        -      ]
        -    },
        -    "pricingTimestampMs": {
        -      "type": "number"
        -    },
        -    "question": {
        -      "type": "string"
        -    },
        -    "resolutionCriteria": {
        -      "type": [
        -        "string",
        -        "null"
        -      ]
        -    },
        -    "resolutionPending": {
        -      "anyOf": [
        -        {
        -          "additionalProperties": false,
        -          "properties": {
        -            "createdAt": {
        -              "type": "string"
        -            },
        -            "expectedBy": {
        -              "type": "string"
        -            },
        -            "id": {
        -              "type": "string"
        -            },
        -            "note": {
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "id",
        -            "expectedBy",
        -            "note",
        -            "createdAt"
        -          ],
        -          "type": "object"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ]
        -    },
        -    "resolutionSource": {
        -      "anyOf": [
        -        {
        -          "additionalProperties": {},
        -          "propertyNames": {
        -            "type": "string"
        -          },
        -          "type": "object"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ]
        -    },
        -    "settlement": {
        -      "enum": [
        -        "onchain",
        -        "committed"
        -      ],
        -      "type": "string"
        -    },
        -    "stageDeadline": {
        -      "anyOf": [
        -        {
        -          "format": "date-time",
        -          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ]
        -    },
        -    "supportsVoid": {
        -      "type": "boolean"
        -    },
        -    "tradingEndsAt": {
        -      "anyOf": [
        -        {
        -          "format": "date-time",
        -          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ]
        -    },
        -    "tradingRules": {
        -      "anyOf": [
        -        {
        -          "additionalProperties": false,
        -          "properties": {
        -            "feePolicyVersion": {
        -              "enum": [
        -                "notional-v1",
        -                "shares-v2"
        -              ],
        -              "type": "string"
        -            },
        -            "liquidityMode": {
        -              "enum": [
        -                "shared",
        -                "source_book"
        -              ],
        -              "type": "string"
        -            },
        -            "makerFeeBps": {
        -              "maximum": 10000,
        -              "minimum": 0,
        -              "type": "integer"
        -            },
        -            "maxPriceSpreadBps": {
        -              "maximum": 9007199254740991,
        -              "minimum": 0,
        -              "type": "integer"
        -            },
        -            "minBuyAmount": {
        -              "$ref": "#/$defs/WeiString"
        -            },
        -            "minOrderSize": {
        -              "$ref": "#/$defs/WeiString"
        -            },
        -            "minRestingExpirySeconds": {
        -              "exclusiveMinimum": 0,
        -              "maximum": 9007199254740991,
        -              "type": "integer"
        -            },
        -            "minRestingNotional": {
        -              "$ref": "#/$defs/WeiString"
        -            },
        -            "minRestingShares": {
        -              "$ref": "#/$defs/WeiString"
        -            },
        -            "minSellShares": {
        -              "$ref": "#/$defs/WeiString"
        -            },
        -            "postOnlySupported": {
        -              "const": true,
        -              "type": "boolean"
        -            },
        -            "priceBands": {
        -              "items": {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "maxBps": {
        -                    "maximum": 9007199254740991,
        -                    "minimum": -9007199254740991,
        -                    "type": "integer"
        -                  },
        -                  "minBps": {
        -                    "maximum": 9007199254740991,
        -                    "minimum": -9007199254740991,
        -                    "type": "integer"
        -                  },
        -                  "tickBps": {
        -                    "exclusiveMinimum": 0,
        -                    "maximum": 9007199254740991,
        -                    "type": "integer"
        -                  }
        -                },
        -                "required": [
        -                  "minBps",
        -                  "maxBps",
        -                  "tickBps"
        -                ],
        -                "type": "object"
        -              },
        -              "type": "array"
        -            },
        -            "priceIncrement": {
        -              "exclusiveMinimum": 0,
        -              "type": "number"
        -            },
        -            "priceIncrementBps": {
        -              "exclusiveMinimum": 0,
        -              "maximum": 9007199254740991,
        -              "type": "integer"
        -            },
        -            "priceMax": {
        -              "maximum": 1,
        -              "minimum": 0,
        -              "type": "number"
        -            },
        -            "priceMaxBps": {
        -              "maximum": 9007199254740991,
        -              "minimum": -9007199254740991,
        -              "type": "integer"
        -            },
        -            "priceMin": {
        -              "maximum": 1,
        -              "minimum": 0,
        -              "type": "number"
        -            },
        -            "priceMinBps": {
        -              "maximum": 9007199254740991,
        -              "minimum": -9007199254740991,
        -              "type": "integer"
        -            },
        -            "pricePlacementMaxBps": {
        -              "maximum": 9007199254740991,
        -              "minimum": -9007199254740991,
        -              "type": "integer"
        -            },
        -            "pricePlacementMinBps": {
        -              "maximum": 9007199254740991,
        -              "minimum": -9007199254740991,
        -              "type": "integer"
        -            },
        -            "priceScale": {
        -              "const": 1,
        -              "type": "number"
        -            },
        -            "principalRounding": {
        -              "const": "binary-outcome1-floor-remainder-v1",
        -              "type": "string"
        -            },
        -            "selfTradePrevention": {
        -              "const": "SKIP_SELF",
        -              "type": "string"
        -            },
        -            "shareStep": {
        -              "$ref": "#/$defs/WeiString"
        -            },
        -            "supportedTimeInForce": {
        -              "items": {
        -                "enum": [
        -                  "GTC",
        -                  "IOC",
        -                  "FOK"
        -                ],
        -                "type": "string"
        -              },
        -              "type": "array"
        -            },
        -            "takerDelayMs": {
        -              "maximum": 60000,
        -              "minimum": 0,
        -              "type": "integer"
        -            },
        -            "takerFeeBps": {
        -              "maximum": 10000,
        -              "minimum": 0,
        -              "type": "integer"
        -            }
        -          },
        -          "required": [
        -            "priceScale",
        -            "priceIncrement",
        -            "priceMin",
        -            "priceMax",
        -            "priceIncrementBps",
        -            "priceMinBps",
        -            "priceMaxBps",
        -            "pricePlacementMinBps",
        -            "pricePlacementMaxBps",
        -            "priceBands",
        -            "shareStep",
        -            "minOrderSize",
        -            "minRestingShares",
        -            "minRestingNotional",
        -            "minBuyAmount",
        -            "takerFeeBps",
        -            "maxPriceSpreadBps",
        -            "selfTradePrevention",
        -            "supportedTimeInForce",
        -            "postOnlySupported"
        -          ],
        -          "type": "object"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ]
        -    },
        -    "tradingRulesPm": {
        -      "anyOf": [
        -        {
        -          "additionalProperties": false,
        -          "properties": {
        -            "minBuyPm": {
        -              "pattern": "^(?:0|[1-9]\\d*)(?:\\.\\d{1,6})?$",
        -              "type": "string"
        -            },
        -            "minLimitLifeSeconds": {
        -              "maximum": 9007199254740991,
        -              "minimum": 0,
        -              "type": "integer"
        -            },
        -            "minLimitShares": {
        -              "pattern": "^(?:0|[1-9]\\d*)(?:\\.\\d{1,6})?$",
        -              "type": "string"
        -            },
        -            "minSellShares": {
        -              "pattern": "^(?:0|[1-9]\\d*)(?:\\.\\d{1,6})?$",
        -              "type": "string"
        -            },
        -            "priceSteps": {
        -              "items": {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "fromPercent": {
        -                    "maximum": 100,
        -                    "minimum": 0,
        -                    "type": "number"
        -                  },
        -                  "stepPercent": {
        -                    "maximum": 100,
        -                    "minimum": 0,
        -                    "type": "number"
        -                  },
        -                  "toPercent": {
        -                    "maximum": 100,
        -                    "minimum": 0,
        -                    "type": "number"
        -                  }
        -                },
        -                "required": [
        -                  "fromPercent",
        -                  "toPercent",
        -                  "stepPercent"
        -                ],
        -                "type": "object"
        -              },
        -              "minItems": 1,
        -              "type": "array"
        -            },
        -            "prices": {
        -              "enum": [
        -                "own_book",
        -                "source_book"
        -              ],
        -              "type": "string"
        -            },
        -            "takerDelaySeconds": {
        -              "minimum": 0,
        -              "type": "number"
        -            }
        -          },
        -          "required": [
        -            "minBuyPm",
        -            "minLimitShares",
        -            "minSellShares",
        -            "minLimitLifeSeconds",
        -            "priceSteps"
        -          ],
        -          "type": "object"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ]
        -    },
        -    "volume": {
        -      "$ref": "#/$defs/WeiString"
        -    },
        -    "volume24h": {
        -      "$ref": "#/$defs/WeiString"
        -    }
        -  },
        -  "required": [
        -    "address",
        -    "question",
        -    "description",
        -    "category",
        -    "collateralToken",
        -    "collateralDecimals",
        -    "closeTime",
        -    "creatorResolveBy",
        -    "challengeBy",
        -    "humanVote",
        -    "councilReviewEndsAt",
        -    "nextActionDeadline",
        -    "actions",
        -    "openTime",
        -    "marketType",
        -    "finality",
        -    "supportsVoid",
        -    "pricingModel",
        -    "outcome",
        -    "outcome1Label",
        -    "outcome2Label",
        -    "outcome3Label",
        -    "createdAt",
        -    "createdBy",
        -    "chainId",
        -    "marketState",
        -    "tradingEndsAt",
        -    "lifecycleStage",
        -    "stageDeadline",
        -    "imageUrl",
        -    "resolutionCriteria",
        -    "volume",
        -    "volume24h",
        -    "creatorTier",
        -    "jurorTier",
        -    "creatorAgentId",
        -    "resolutionSource"
        -  ],
        -  "type": "object"
        -}
      • removedOutput schema / properties / result / $ref
        Removed value: -"#/$defs/AgentMarketDetail"
      • addedOutput schema / properties / result / anyOf
        Added value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "actions": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "canChallenge": {
        +            "type": "boolean"
        +          },
        +          "canClaim": {
        +            "type": "boolean"
        +          },
        +          "canCreatorResolve": {
        +            "type": "boolean"
        +          },
        +          "canVote": {
        +            "type": "boolean"
        +          },
        +          "creatorAddress": {
        +            "$ref": "#/$defs/EvmAddress"
        +          },
        +          "reason": {
        +            "$ref": "#/$defs/ErrorReason"
        +          }
        +        },
        +        "required": [
        +          "canCreatorResolve",
        +          "canChallenge",
        +          "canVote",
        +          "canClaim"
        +        ],
        +        "type": "object"
        +      },
        +      "address": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/EvmAddress"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "category": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "chainId": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "challengeBy": {
        +        "anyOf": [
        +          {
        +            "format": "date-time",
        +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "clarifications": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "body": {
        +              "type": "string"
        +            },
        +            "createdAt": {
        +              "type": "string"
        +            },
        +            "id": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "id",
        +            "body",
        +            "createdAt"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "closeTime": {
        +        "anyOf": [
        +          {
        +            "anyOf": [
        +              {
        +                "format": "date-time",
        +                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                "type": "string"
        +              },
        +              {
        +                "format": "date-time",
        +                "type": "string"
        +              }
        +            ]
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "collateralDecimals": {
        +        "anyOf": [
        +          {
        +            "maximum": 9007199254740991,
        +            "minimum": -9007199254740991,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "collateralToken": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/EvmAddress"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "councilReviewEndsAt": {
        +        "anyOf": [
        +          {
        +            "format": "date-time",
        +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "createdAt": {
        +        "anyOf": [
        +          {
        +            "anyOf": [
        +              {
        +                "format": "date-time",
        +                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                "type": "string"
        +              },
        +              {
        +                "format": "date-time",
        +                "type": "string"
        +              }
        +            ]
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "createdBy": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/EvmAddress"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "creatorAgentId": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "creatorResolveBy": {
        +        "anyOf": [
        +          {
        +            "format": "date-time",
        +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "creatorTier": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/ReputationTier"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "description": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "finality": {
        +        "enum": [
        +          "pending",
        +          "finalized"
        +        ],
        +        "type": "string"
        +      },
        +      "geo": {
        +        "anyOf": [
        +          {
        +            "additionalProperties": false,
        +            "properties": {
        +              "countryCode": {
        +                "type": [
        +                  "string",
        +                  "null"
        +                ]
        +              },
        +              "derivation": {
        +                "anyOf": [
        +                  {
        +                    "enum": [
        +                      "explicit",
        +                      "entity_hq"
        +                    ],
        +                    "type": "string"
        +                  },
        +                  {
        +                    "type": "null"
        +                  }
        +                ]
        +              },
        +              "lat": {
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "lon": {
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "place": {
        +                "type": [
        +                  "string",
        +                  "null"
        +                ]
        +              },
        +              "scope": {
        +                "enum": [
        +                  "city",
        +                  "region",
        +                  "country",
        +                  "global"
        +                ],
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "scope",
        +              "countryCode",
        +              "place",
        +              "lat",
        +              "lon",
        +              "derivation"
        +            ],
        +            "type": "object"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "humanVote": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "deadlineImmutable": {
        +            "const": true,
        +            "type": "boolean"
        +          },
        +          "endsAt": {
        +            "anyOf": [
        +              {
        +                "format": "date-time",
        +                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "sessionId": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "windowStartsAt": {
        +            "const": "session_open",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "sessionId",
        +          "windowStartsAt",
        +          "deadlineImmutable",
        +          "endsAt"
        +        ],
        +        "type": "object"
        +      },
        +      "imageUrl": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "jurorTier": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/ReputationTier"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "lifecycleStage": {
        +        "$ref": "#/$defs/MarketLifecycleStage"
        +      },
        +      "marketReference": {
        +        "pattern": "^mkt_[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}$",
        +        "type": "string"
        +      },
        +      "marketState": {
        +        "enum": [
        +          "open",
        +          "closed",
        +          "creator_proposal",
        +          "challenge",
        +          "human_voting",
        +          "council_review",
        +          "resolved",
        +          "void"
        +        ],
        +        "type": "string"
        +      },
        +      "marketType": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "nextActionDeadline": {
        +        "anyOf": [
        +          {
        +            "format": "date-time",
        +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "openTime": {
        +        "anyOf": [
        +          {
        +            "anyOf": [
        +              {
        +                "format": "date-time",
        +                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                "type": "string"
        +              },
        +              {
        +                "format": "date-time",
        +                "type": "string"
        +              }
        +            ]
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "outcome": {
        +        "anyOf": [
        +          {
        +            "maximum": 9007199254740991,
        +            "minimum": -9007199254740991,
        +            "type": "integer"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "outcome1Label": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "outcome2Label": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "outcome3Label": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "outcomes": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "label": {
        +              "type": "string"
        +            },
        +            "pricePercent": {
        +              "anyOf": [
        +                {
        +                  "maximum": 100,
        +                  "minimum": 0,
        +                  "type": "number"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            }
        +          },
        +          "required": [
        +            "label",
        +            "pricePercent"
        +          ],
        +          "type": "object"
        +        },
        +        "maxItems": 3,
        +        "minItems": 2,
        +        "type": "array"
        +      },
        +      "prices": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "outcome1": {
        +            "maximum": 1,
        +            "minimum": 0,
        +            "type": "number"
        +          },
        +          "outcome2": {
        +            "maximum": 1,
        +            "minimum": 0,
        +            "type": "number"
        +          },
        +          "outcome3": {
        +            "maximum": 1,
        +            "minimum": 0,
        +            "type": "number"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "pricingModel": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "pricingTimestampMs": {
        +        "type": "number"
        +      },
        +      "question": {
        +        "type": "string"
        +      },
        +      "resolutionCriteria": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "resolutionPending": {
        +        "anyOf": [
        +          {
        +            "additionalProperties": false,
        +            "properties": {
        +              "createdAt": {
        +                "type": "string"
        +              },
        +              "expectedBy": {
        +                "type": "string"
        +              },
        +              "id": {
        +                "type": "string"
        +              },
        +              "note": {
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "id",
        +              "expectedBy",
        +              "note",
        +              "createdAt"
        +            ],
        +            "type": "object"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "resolutionSource": {
        +        "anyOf": [
        +          {
        +            "additionalProperties": {},
        +            "propertyNames": {
        +              "type": "string"
        +            },
        +            "type": "object"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "settlement": {
        +        "enum": [
        +          "onchain",
        +          "committed"
        +        ],
        +        "type": "string"
        +      },
        +      "stageDeadline": {
        +        "anyOf": [
        +          {
        +            "format": "date-time",
        +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "supportsVoid": {
        +        "type": "boolean"
        +      },
        +      "tradingEndsAt": {
        +        "anyOf": [
        +          {
        +            "format": "date-time",
        +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "tradingRules": {
        +        "anyOf": [
        +          {
        +            "additionalProperties": false,
        +            "properties": {
        +              "feePolicyVersion": {
        +                "enum": [
        +                  "notional-v1",
        +                  "shares-v2"
        +                ],
        +                "type": "string"
        +              },
        +              "liquidityMode": {
        +                "enum": [
        +                  "shared",
        +                  "source_book"
        +                ],
        +                "type": "string"
        +              },
        +              "makerFeeBps": {
        +                "maximum": 10000,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "maxPriceSpreadBps": {
        +                "maximum": 9007199254740991,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "minBuyAmount": {
        +                "$ref": "#/$defs/WeiString"
        +              },
        +              "minOrderSize": {
        +                "$ref": "#/$defs/WeiString"
        +              },
        +              "minRestingExpirySeconds": {
        +                "exclusiveMinimum": 0,
        +                "maximum": 9007199254740991,
        +                "type": "integer"
        +              },
        +              "minRestingNotional": {
        +                "$ref": "#/$defs/WeiString"
        +              },
        +              "minRestingShares": {
        +                "$ref": "#/$defs/WeiString"
        +              },
        +              "minSellShares": {
        +                "$ref": "#/$defs/WeiString"
        +              },
        +              "postOnlySupported": {
        +                "const": true,
        +                "type": "boolean"
        +              },
        +              "priceBands": {
        +                "items": {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "maxBps": {
        +                      "maximum": 9007199254740991,
        +                      "minimum": -9007199254740991,
        +                      "type": "integer"
        +                    },
        +                    "minBps": {
        +                      "maximum": 9007199254740991,
        +                      "minimum": -9007199254740991,
        +                      "type": "integer"
        +                    },
        +                    "tickBps": {
        +                      "exclusiveMinimum": 0,
        +                      "maximum": 9007199254740991,
        +                      "type": "integer"
        +                    }
        +                  },
        +                  "required": [
        +                    "minBps",
        +                    "maxBps",
        +                    "tickBps"
        +                  ],
        +                  "type": "object"
        +                },
        +                "type": "array"
        +              },
        +              "priceIncrement": {
        +                "exclusiveMinimum": 0,
        +                "type": "number"
        +              },
        +              "priceIncrementBps": {
        +                "exclusiveMinimum": 0,
        +                "maximum": 9007199254740991,
        +                "type": "integer"
        +              },
        +              "priceMax": {
        +                "maximum": 1,
        +                "minimum": 0,
        +                "type": "number"
        +              },
        +              "priceMaxBps": {
        +                "maximum": 9007199254740991,
        +                "minimum": -9007199254740991,
        +                "type": "integer"
        +              },
        +              "priceMin": {
        +                "maximum": 1,
        +                "minimum": 0,
        +                "type": "number"
        +              },
        +              "priceMinBps": {
        +                "maximum": 9007199254740991,
        +                "minimum": -9007199254740991,
        +                "type": "integer"
        +              },
        +              "pricePlacementMaxBps": {
        +                "maximum": 9007199254740991,
        +                "minimum": -9007199254740991,
        +                "type": "integer"
        +              },
        +              "pricePlacementMinBps": {
        +                "maximum": 9007199254740991,
        +                "minimum": -9007199254740991,
        +                "type": "integer"
        +              },
        +              "priceScale": {
        +                "const": 1,
        +                "type": "number"
        +              },
        +              "principalRounding": {
        +                "const": "binary-outcome1-floor-remainder-v1",
        +                "type": "string"
        +              },
        +              "selfTradePrevention": {
        +                "const": "SKIP_SELF",
        +                "type": "string"
        +              },
        +              "shareStep": {
        +                "$ref": "#/$defs/WeiString"
        +              },
        +              "supportedTimeInForce": {
        +                "items": {
        +                  "enum": [
        +                    "GTC",
        +                    "IOC",
        +                    "FOK"
        +                  ],
        +                  "type": "string"
        +                },
        +                "type": "array"
        +              },
        +              "takerDelayMs": {
        +                "maximum": 60000,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "takerFeeBps": {
        +                "maximum": 10000,
        +                "minimum": 0,
        +                "type": "integer"
        +              }
        +            },
        +            "required": [
        +              "priceScale",
        +              "priceIncrement",
        +              "priceMin",
        +              "priceMax",
        +              "priceIncrementBps",
        +              "priceMinBps",
        +              "priceMaxBps",
        +              "pricePlacementMinBps",
        +              "pricePlacementMaxBps",
        +              "priceBands",
        +              "shareStep",
        +              "minOrderSize",
        +              "minRestingShares",
        +              "minRestingNotional",
        +              "minBuyAmount",
        +              "takerFeeBps",
        +              "maxPriceSpreadBps",
        +              "selfTradePrevention",
        +              "supportedTimeInForce",
        +              "postOnlySupported"
        +            ],
        +            "type": "object"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "tradingRulesPm": {
        +        "anyOf": [
        +          {
        +            "additionalProperties": false,
        +            "properties": {
        +              "minBuyPm": {
        +                "pattern": "^(?:0|[1-9]\\d*)(?:\\.\\d{1,6})?$",
        +                "type": "string"
        +              },
        +              "minLimitLifeSeconds": {
        +                "maximum": 9007199254740991,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "minLimitShares": {
        +                "pattern": "^(?:0|[1-9]\\d*)(?:\\.\\d{1,6})?$",
        +                "type": "string"
        +              },
        +              "minSellShares": {
        +                "pattern": "^(?:0|[1-9]\\d*)(?:\\.\\d{1,6})?$",
        +                "type": "string"
        +              },
        +              "priceSteps": {
        +                "items": {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "fromPercent": {
        +                      "maximum": 100,
        +                      "minimum": 0,
        +                      "type": "number"
        +                    },
        +                    "stepPercent": {
        +                      "maximum": 100,
        +                      "minimum": 0,
        +                      "type": "number"
        +                    },
        +                    "toPercent": {
        +                      "maximum": 100,
        +                      "minimum": 0,
        +                      "type": "number"
        +                    }
        +                  },
        +                  "required": [
        +                    "fromPercent",
        +                    "toPercent",
        +                    "stepPercent"
        +                  ],
        +                  "type": "object"
        +                },
        +                "minItems": 1,
        +                "type": "array"
        +              },
        +              "prices": {
        +                "enum": [
        +                  "own_book",
        +                  "source_book"
        +                ],
        +                "type": "string"
        +              },
        +              "takerDelaySeconds": {
        +                "minimum": 0,
        +                "type": "number"
        +              }
        +            },
        +            "required": [
        +              "minBuyPm",
        +              "minLimitShares",
        +              "minSellShares",
        +              "minLimitLifeSeconds",
        +              "priceSteps"
        +            ],
        +            "type": "object"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "volume": {
        +        "$ref": "#/$defs/WeiString"
        +      },
        +      "volume24h": {
        +        "$ref": "#/$defs/WeiString"
        +      }
        +    },
        +    "required": [
        +      "address",
        +      "question",
        +      "description",
        +      "category",
        +      "collateralToken",
        +      "collateralDecimals",
        +      "closeTime",
        +      "creatorResolveBy",
        +      "challengeBy",
        +      "humanVote",
        +      "councilReviewEndsAt",
        +      "nextActionDeadline",
        +      "actions",
        +      "openTime",
        +      "marketType",
        +      "finality",
        +      "supportsVoid",
        +      "pricingModel",
        +      "outcome",
        +      "outcome1Label",
        +      "outcome2Label",
        +      "outcome3Label",
        +      "createdAt",
        +      "createdBy",
        +      "chainId",
        +      "marketState",
        +      "tradingEndsAt",
        +      "lifecycleStage",
        +      "stageDeadline",
        +      "imageUrl",
        +      "resolutionCriteria",
        +      "volume",
        +      "volume24h",
        +      "creatorTier",
        +      "jurorTier",
        +      "creatorAgentId",
        +      "resolutionSource"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "category": {
        +        "type": "string"
        +      },
        +      "endsAt": {
        +        "anyOf": [
        +          {
        +            "format": "date-time",
        +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "options": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "change24h": {
        +              "type": [
        +                "number",
        +                "null"
        +              ]
        +            },
        +            "conditionId": {
        +              "type": "string"
        +            },
        +            "label": {
        +              "type": "string"
        +            },
        +            "marketAddress": {
        +              "anyOf": [
        +                {
        +                  "$ref": "#/$defs/EvmAddress"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "price": {
        +              "anyOf": [
        +                {
        +                  "maximum": 1,
        +                  "minimum": 0,
        +                  "type": "number"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            }
        +          },
        +          "required": [
        +            "conditionId",
        +            "label",
        +            "price",
        +            "change24h",
        +            "marketAddress"
        +          ],
        +          "type": "object"
        +        },
        +        "minItems": 1,
        +        "type": "array"
        +      },
        +      "polymarket": {
        +        "format": "uri",
        +        "type": "string"
        +      },
        +      "rules": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "slug": {
        +        "type": "string"
        +      },
        +      "title": {
        +        "type": "string"
        +      },
        +      "url": {
        +        "format": "uri",
        +        "type": "string"
        +      },
        +      "volume24hUsd": {
        +        "anyOf": [
        +          {
        +            "minimum": 0,
        +            "type": "number"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      }
        +    },
        +    "required": [
        +      "slug",
        +      "title",
        +      "url",
        +      "polymarket",
        +      "category",
        +      "endsAt",
        +      "rules",
        +      "volume24hUsd",
        +      "options"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedproblee_get_market_chart5 fields changed
      • addedInput schema / properties / question
        Added value: +{
        +  "description": "Instead of address: a covered question, mirrored or not, by its slug or its Kellian or Polymarket link.",
        +  "maxLength": 2048,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • removedInput schema / required
        Removed value: -[
        -  "address"
        -]
      • removedOutput schema / $defs / AgentMarketChartResponse
        Removed value: -{
        -  "additionalProperties": false,
        -  "properties": {
        -    "latest": {
        -      "anyOf": [
        -        {
        -          "$ref": "#/$defs/McpMarketPricePoint"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ]
        -    },
        -    "meta": {
        -      "additionalProperties": false,
        -      "properties": {
        -        "pointCount": {
        -          "maximum": 9007199254740991,
        -          "minimum": 0,
        -          "type": "integer"
        -        },
        -        "pricingTimestampMs": {
        -          "anyOf": [
        -            {
        -              "maximum": 9007199254740991,
        -              "minimum": 0,
        -              "type": "integer"
        -            },
        -            {
        -              "type": "null"
        -            }
        -          ]
        -        },
        -        "snapshotUpdatedAtMs": {
        -          "anyOf": [
        -            {
        -              "maximum": 9007199254740991,
        -              "minimum": 0,
        -              "type": "integer"
        -            },
        -            {
        -              "type": "null"
        -            }
        -          ]
        -        }
        -      },
        -      "required": [
        -        "pointCount",
        -        "snapshotUpdatedAtMs",
        -        "pricingTimestampMs"
        -      ],
        -      "type": "object"
        -    },
        -    "series": {
        -      "items": {
        -        "$ref": "#/$defs/McpMarketPricePoint"
        -      },
        -      "type": "array"
        -    },
        -    "window": {
        -      "enum": [
        -        "1H",
        -        "1D",
        -        "1W",
        -        "ALL"
        -      ],
        -      "type": "string"
        -    }
        -  },
        -  "required": [
        -    "series",
        -    "latest",
        -    "window",
        -    "meta"
        -  ],
        -  "type": "object"
        -}
      • removedOutput schema / properties / result / $ref
        Removed value: -"#/$defs/AgentMarketChartResponse"
      • addedOutput schema / properties / result / anyOf
        Added value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "latest": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/McpMarketPricePoint"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "meta": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "pointCount": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "pricingTimestampMs": {
        +            "anyOf": [
        +              {
        +                "maximum": 9007199254740991,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "snapshotUpdatedAtMs": {
        +            "anyOf": [
        +              {
        +                "maximum": 9007199254740991,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          }
        +        },
        +        "required": [
        +          "pointCount",
        +          "snapshotUpdatedAtMs",
        +          "pricingTimestampMs"
        +        ],
        +        "type": "object"
        +      },
        +      "series": {
        +        "items": {
        +          "$ref": "#/$defs/McpMarketPricePoint"
        +        },
        +        "type": "array"
        +      },
        +      "window": {
        +        "enum": [
        +          "1H",
        +          "1D",
        +          "1W",
        +          "ALL"
        +        ],
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "series",
        +      "latest",
        +      "window",
        +      "meta"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "series": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "conditionId": {
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "label": {
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "points": {
        +              "items": {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "price": {
        +                    "maximum": 1,
        +                    "minimum": 0,
        +                    "type": "number"
        +                  },
        +                  "timestamp": {
        +                    "maximum": 9007199254740991,
        +                    "minimum": -9007199254740991,
        +                    "type": "integer"
        +                  }
        +                },
        +                "required": [
        +                  "timestamp",
        +                  "price"
        +                ],
        +                "type": "object"
        +              },
        +              "type": "array"
        +            }
        +          },
        +          "required": [
        +            "conditionId",
        +            "label",
        +            "points"
        +          ],
        +          "type": "object"
        +        },
        +        "maxItems": 4,
        +        "type": "array"
        +      },
        +      "window": {
        +        "enum": [
        +          "1H",
        +          "1D",
        +          "1W",
        +          "ALL"
        +        ],
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "window",
        +      "series"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedproblee_get_market_news2 fields changed
      • addedInput schema / properties / question
        Added value: +{
        +  "description": "Instead of address: a covered question, mirrored or not, by its slug or its Kellian or Polymarket link.",
        +  "maxLength": 2048,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • removedInput schema / required
        Removed value: -[
        -  "address"
        -]
    • Changedproblee_get_market_research3 fields changed
      • addedInput schema / properties / option
        Added value: +{
        +  "description": "One option instead: its condition id (0x…). Name the question or the option, not both.",
        +  "pattern": "^0x[0-9a-fA-F]{64}$",
        +  "type": "string"
        +}
      • addedInput schema / properties / question
        Added value: +{
        +  "description": "Instead of address: a covered question, mirrored or not, by its slug or its Kellian or Polymarket link.",
        +  "maxLength": 2048,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • removedInput schema / required
        Removed value: -[
        -  "address"
        -]
    • Addedproblee_get_question_forecasts
    • Changedproblee_get_smart_money8 fields changed
      • changedInput schema / properties / question / description
        Previous value: -"A covered Polymarket question: its slug (polymarket.com/event/<slug>) or its event id."New value: +"A covered question: its slug or event id, or its Kellian or Polymarket link."
      • changedInput schema / properties / question / maxLength
        Previous value: -200New value: +2048
      • addedInput schema / properties / question / minLength
        Added value: +1
      • removedInput schema / properties / question / pattern
        Removed value: -"^[a-z0-9]+(?:-[a-z0-9]+)*$"
      • addedInput schema / properties / topic
        Added value: +{
        +  "description": "Or a topic (\"Movies · box office\"), its slug or a word.",
        +  "maxLength": 80,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • removedOutput schema / $defs
        Removed value: -{
        -  "SmartMoneyResponse": {
        -    "additionalProperties": false,
        -    "properties": {
        -      "live": {
        -        "type": "boolean"
        -      },
        -      "moves": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "action": {
        -              "enum": [
        -                "bought",
        -                "sold"
        -              ],
        -              "type": "string"
        -            },
        -            "at": {
        -              "format": "date-time",
        -              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -              "type": "string"
        -            },
        -            "conditionId": {
        -              "type": "string"
        -            },
        -            "price": {
        -              "anyOf": [
        -                {
        -                  "maximum": 1,
        -                  "minimum": 0,
        -                  "type": "number"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "shares": {
        -              "exclusiveMinimum": 0,
        -              "type": "number"
        -            },
        -            "side": {
        -              "enum": [
        -                "outcome1",
        -                "outcome2"
        -              ],
        -              "type": "string"
        -            },
        -            "tier": {
        -              "anyOf": [
        -                {
        -                  "const": 1,
        -                  "type": "number"
        -                },
        -                {
        -                  "const": 2,
        -                  "type": "number"
        -                },
        -                {
        -                  "const": 3,
        -                  "type": "number"
        -                }
        -              ]
        -            },
        -            "trader": {
        -              "anyOf": [
        -                {
        -                  "additionalProperties": false,
        -                  "properties": {
        -                    "name": {
        -                      "type": "string"
        -                    },
        -                    "wallet": {
        -                      "type": "string"
        -                    }
        -                  },
        -                  "required": [
        -                    "name",
        -                    "wallet"
        -                  ],
        -                  "type": "object"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "usd": {
        -              "anyOf": [
        -                {
        -                  "minimum": 0,
        -                  "type": "number"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            }
        -          },
        -          "required": [
        -            "at",
        -            "conditionId",
        -            "tier",
        -            "action",
        -            "side",
        -            "trader",
        -            "usd",
        -            "price"
        -          ],
        -          "type": "object"
        -        },
        -        "maxItems": 25,
        -        "type": "array"
        -      },
        -      "notice": {
        -        "const": "Past performance is not indicative of future results.",
        -        "type": "string"
        -      },
        -      "options": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "chance": {
        -              "anyOf": [
        -                {
        -                  "maximum": 1,
        -                  "minimum": 0,
        -                  "type": "number"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "conditionId": {
        -              "minLength": 1,
        -              "type": "string"
        -            },
        -            "flow": {
        -              "additionalProperties": false,
        -              "properties": {
        -                "bought": {
        -                  "items": {
        -                    "maximum": 9007199254740991,
        -                    "minimum": 0,
        -                    "type": "integer"
        -                  },
        -                  "maxItems": 2,
        -                  "minItems": 2,
        -                  "type": "array"
        -                },
        -                "net": {
        -                  "anyOf": [
        -                    {
        -                      "enum": [
        -                        "outcome1",
        -                        "outcome2"
        -                      ],
        -                      "type": "string"
        -                    },
        -                    {
        -                      "type": "null"
        -                    }
        -                  ]
        -                },
        -                "sold": {
        -                  "items": {
        -                    "maximum": 9007199254740991,
        -                    "minimum": 0,
        -                    "type": "integer"
        -                  },
        -                  "maxItems": 2,
        -                  "minItems": 2,
        -                  "type": "array"
        -                },
        -                "traders": {
        -                  "maximum": 9007199254740991,
        -                  "minimum": 0,
        -                  "type": "integer"
        -                },
        -                "usd": {
        -                  "anyOf": [
        -                    {
        -                      "additionalProperties": false,
        -                      "properties": {
        -                        "bought": {
        -                          "items": {
        -                            "minimum": 0,
        -                            "type": "number"
        -                          },
        -                          "maxItems": 2,
        -                          "minItems": 2,
        -                          "type": "array"
        -                        },
        -                        "sold": {
        -                          "items": {
        -                            "minimum": 0,
        -                            "type": "number"
        -                          },
        -                          "maxItems": 2,
        -                          "minItems": 2,
        -                          "type": "array"
        -                        }
        -                      },
        -                      "required": [
        -                        "bought",
        -                        "sold"
        -                      ],
        -                      "type": "object"
        -                    },
        -                    {
        -                      "type": "null"
        -                    }
        -                  ]
        -                }
        -              },
        -              "required": [
        -                "traders",
        -                "bought",
        -                "sold",
        -                "net",
        -                "usd"
        -              ],
        -              "type": "object"
        -            },
        -            "holders": {
        -              "anyOf": [
        -                {
        -                  "additionalProperties": false,
        -                  "properties": {
        -                    "asOf": {
        -                      "format": "date-time",
        -                      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -                      "type": "string"
        -                    },
        -                    "names": {
        -                      "additionalProperties": false,
        -                      "properties": {
        -                        "outcome1": {
        -                          "items": {
        -                            "additionalProperties": false,
        -                            "properties": {
        -                              "name": {
        -                                "type": "string"
        -                              },
        -                              "rank": {
        -                                "exclusiveMinimum": 0,
        -                                "maximum": 9007199254740991,
        -                                "type": "integer"
        -                              },
        -                              "tier": {
        -                                "anyOf": [
        -                                  {
        -                                    "const": 1,
        -                                    "type": "number"
        -                                  },
        -                                  {
        -                                    "const": 2,
        -                                    "type": "number"
        -                                  },
        -                                  {
        -                                    "const": 3,
        -                                    "type": "number"
        -                                  }
        -                                ]
        -                              },
        -                              "wallet": {
        -                                "pattern": "^0x[0-9a-f]{40}$",
        -                                "type": "string"
        -                              }
        -                            },
        -                            "required": [
        -                              "wallet",
        -                              "name",
        -                              "tier"
        -                            ],
        -                            "type": "object"
        -                          },
        -                          "type": "array"
        -                        },
        -                        "outcome2": {
        -                          "items": {
        -                            "additionalProperties": false,
        -                            "properties": {
        -                              "name": {
        -                                "type": "string"
        -                              },
        -                              "rank": {
        -                                "exclusiveMinimum": 0,
        -                                "maximum": 9007199254740991,
        -                                "type": "integer"
        -                              },
        -                              "tier": {
        -                                "anyOf": [
        -                                  {
        -                                    "const": 1,
        -                                    "type": "number"
        -                                  },
        -                                  {
        -                                    "const": 2,
        -                                    "type": "number"
        -                                  },
        -                                  {
        -                                    "const": 3,
        -                                    "type": "number"
        -                                  }
        -                                ]
        -                              },
        -                              "wallet": {
        -                                "pattern": "^0x[0-9a-f]{40}$",
        -                                "type": "string"
        -                              }
        -                            },
        -                            "required": [
        -                              "wallet",
        -                              "name",
        -                              "tier"
        -                            ],
        -                            "type": "object"
        -                          },
        -                          "type": "array"
        -                        }
        -                      },
        -                      "required": [
        -                        "outcome1",
        -                        "outcome2"
        -                      ],
        -                      "type": "object"
        -                    },
        -                    "tier1": {
        -                      "items": {
        -                        "maximum": 9007199254740991,
        -                        "minimum": 0,
        -                        "type": "integer"
        -                      },
        -                      "maxItems": 2,
        -                      "minItems": 2,
        -                      "type": "array"
        -                    },
        -                    "tier2": {
        -                      "items": {
        -                        "maximum": 9007199254740991,
        -                        "minimum": 0,
        -                        "type": "integer"
        -                      },
        -                      "maxItems": 2,
        -                      "minItems": 2,
        -                      "type": "array"
        -                    },
        -                    "tier3": {
        -                      "items": {
        -                        "maximum": 9007199254740991,
        -                        "minimum": 0,
        -                        "type": "integer"
        -                      },
        -                      "maxItems": 2,
        -                      "minItems": 2,
        -                      "type": "array"
        -                    }
        -                  },
        -                  "required": [
        -                    "tier1",
        -                    "tier2",
        -                    "tier3",
        -                    "names",
        -                    "asOf"
        -                  ],
        -                  "type": "object"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "label": {
        -              "type": "string"
        -            },
        -            "outcomes": {
        -              "items": {
        -                "type": "string"
        -              },
        -              "maxItems": 2,
        -              "minItems": 2,
        -              "type": "array"
        -            },
        -            "rows": {
        -              "items": {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "entryAt": {
        -                    "anyOf": [
        -                      {
        -                        "format": "date-time",
        -                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "entryPrice": {
        -                    "anyOf": [
        -                      {
        -                        "maximum": 1,
        -                        "minimum": 0,
        -                        "type": "number"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "lastMove": {
        -                    "anyOf": [
        -                      {
        -                        "additionalProperties": false,
        -                        "properties": {
        -                          "action": {
        -                            "enum": [
        -                              "bought",
        -                              "sold"
        -                            ],
        -                            "type": "string"
        -                          },
        -                          "at": {
        -                            "format": "date-time",
        -                            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -                            "type": "string"
        -                          },
        -                          "side": {
        -                            "enum": [
        -                              "outcome1",
        -                              "outcome2"
        -                            ],
        -                            "type": "string"
        -                          }
        -                        },
        -                        "required": [
        -                          "action",
        -                          "side",
        -                          "at"
        -                        ],
        -                        "type": "object"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "name": {
        -                    "type": "string"
        -                  },
        -                  "rank": {
        -                    "exclusiveMinimum": 0,
        -                    "maximum": 9007199254740991,
        -                    "type": "integer"
        -                  },
        -                  "shares": {
        -                    "exclusiveMinimum": 0,
        -                    "maximum": 9007199254740991,
        -                    "type": "integer"
        -                  },
        -                  "side": {
        -                    "enum": [
        -                      "outcome1",
        -                      "outcome2"
        -                    ],
        -                    "type": "string"
        -                  },
        -                  "tier": {
        -                    "anyOf": [
        -                      {
        -                        "const": 1,
        -                        "type": "number"
        -                      },
        -                      {
        -                        "const": 2,
        -                        "type": "number"
        -                      },
        -                      {
        -                        "const": 3,
        -                        "type": "number"
        -                      }
        -                    ]
        -                  },
        -                  "wallet": {
        -                    "type": "string"
        -                  }
        -                },
        -                "required": [
        -                  "wallet",
        -                  "name",
        -                  "tier",
        -                  "side",
        -                  "shares",
        -                  "entryPrice",
        -                  "entryAt",
        -                  "lastMove"
        -                ],
        -                "type": "object"
        -              },
        -              "type": "array"
        -            }
        -          },
        -          "required": [
        -            "conditionId",
        -            "label",
        -            "outcomes",
        -            "chance",
        -            "holders",
        -            "flow"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "plan": {
        -        "enum": [
        -          "free_preview",
        -          "plus",
        -          "api_pro"
        -        ],
        -        "type": "string"
        -      },
        -      "question": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "eventId": {
        -            "type": "string"
        -          },
        -          "polymarket": {
        -            "format": "uri",
        -            "type": "string"
        -          },
        -          "slug": {
        -            "type": "string"
        -          },
        -          "title": {
        -            "type": "string"
        -          },
        -          "url": {
        -            "format": "uri",
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "eventId",
        -          "slug",
        -          "title",
        -          "url",
        -          "polymarket"
        -        ],
        -        "type": "object"
        -      },
        -      "quietOptions": {
        -        "maximum": 9007199254740991,
        -        "minimum": 0,
        -        "type": "integer"
        -      },
        -      "unreadOptions": {
        -        "maximum": 9007199254740991,
        -        "minimum": 0,
        -        "type": "integer"
        -      },
        -      "window": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "from": {
        -            "format": "date-time",
        -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -            "type": "string"
        -          },
        -          "until": {
        -            "format": "date-time",
        -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "from",
        -          "until"
        -        ],
        -        "type": "object"
        -      }
        -    },
        -    "required": [
        -      "question",
        -      "live",
        -      "window",
        -      "options",
        -      "quietOptions",
        -      "unreadOptions",
        -      "moves",
        -      "plan",
        -      "notice"
        -    ],
        -    "type": "object"
        -  }
        -}
      • removedOutput schema / properties / result / $ref
        Removed value: -"#/$defs/SmartMoneyResponse"
      • addedOutput schema / properties / result / anyOf
        Added value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "live": {
        +        "type": "boolean"
        +      },
        +      "moves": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "action": {
        +              "enum": [
        +                "bought",
        +                "sold"
        +              ],
        +              "type": "string"
        +            },
        +            "at": {
        +              "format": "date-time",
        +              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +              "type": "string"
        +            },
        +            "conditionId": {
        +              "type": "string"
        +            },
        +            "price": {
        +              "anyOf": [
        +                {
        +                  "maximum": 1,
        +                  "minimum": 0,
        +                  "type": "number"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "shares": {
        +              "exclusiveMinimum": 0,
        +              "type": "number"
        +            },
        +            "side": {
        +              "enum": [
        +                "outcome1",
        +                "outcome2"
        +              ],
        +              "type": "string"
        +            },
        +            "tier": {
        +              "anyOf": [
        +                {
        +                  "const": 1,
        +                  "type": "number"
        +                },
        +                {
        +                  "const": 2,
        +                  "type": "number"
        +                },
        +                {
        +                  "const": 3,
        +                  "type": "number"
        +                }
        +              ]
        +            },
        +            "trader": {
        +              "anyOf": [
        +                {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "name": {
        +                      "type": "string"
        +                    },
        +                    "wallet": {
        +                      "type": "string"
        +                    }
        +                  },
        +                  "required": [
        +                    "name",
        +                    "wallet"
        +                  ],
        +                  "type": "object"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "usd": {
        +              "anyOf": [
        +                {
        +                  "minimum": 0,
        +                  "type": "number"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            }
        +          },
        +          "required": [
        +            "at",
        +            "conditionId",
        +            "tier",
        +            "action",
        +            "side",
        +            "trader",
        +            "usd",
        +            "price"
        +          ],
        +          "type": "object"
        +        },
        +        "maxItems": 25,
        +        "type": "array"
        +      },
        +      "notice": {
        +        "const": "Past performance is not indicative of future results.",
        +        "type": "string"
        +      },
        +      "options": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "chance": {
        +              "anyOf": [
        +                {
        +                  "maximum": 1,
        +                  "minimum": 0,
        +                  "type": "number"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "conditionId": {
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "flow": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "bought": {
        +                  "items": {
        +                    "maximum": 9007199254740991,
        +                    "minimum": 0,
        +                    "type": "integer"
        +                  },
        +                  "maxItems": 2,
        +                  "minItems": 2,
        +                  "type": "array"
        +                },
        +                "net": {
        +                  "anyOf": [
        +                    {
        +                      "enum": [
        +                        "outcome1",
        +                        "outcome2"
        +                      ],
        +                      "type": "string"
        +                    },
        +                    {
        +                      "type": "null"
        +                    }
        +                  ]
        +                },
        +                "sold": {
        +                  "items": {
        +                    "maximum": 9007199254740991,
        +                    "minimum": 0,
        +                    "type": "integer"
        +                  },
        +                  "maxItems": 2,
        +                  "minItems": 2,
        +                  "type": "array"
        +                },
        +                "traders": {
        +                  "maximum": 9007199254740991,
        +                  "minimum": 0,
        +                  "type": "integer"
        +                },
        +                "usd": {
        +                  "anyOf": [
        +                    {
        +                      "additionalProperties": false,
        +                      "properties": {
        +                        "bought": {
        +                          "items": {
        +                            "minimum": 0,
        +                            "type": "number"
        +                          },
        +                          "maxItems": 2,
        +                          "minItems": 2,
        +                          "type": "array"
        +                        },
        +                        "sold": {
        +                          "items": {
        +                            "minimum": 0,
        +                            "type": "number"
        +                          },
        +                          "maxItems": 2,
        +                          "minItems": 2,
        +                          "type": "array"
        +                        }
        +                      },
        +                      "required": [
        +                        "bought",
        +                        "sold"
        +                      ],
        +                      "type": "object"
        +                    },
        +                    {
        +                      "type": "null"
        +                    }
        +                  ]
        +                }
        +              },
        +              "required": [
        +                "traders",
        +                "bought",
        +                "sold",
        +                "net",
        +                "usd"
        +              ],
        +              "type": "object"
        +            },
        +            "holders": {
        +              "anyOf": [
        +                {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "asOf": {
        +                      "format": "date-time",
        +                      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                      "type": "string"
        +                    },
        +                    "names": {
        +                      "additionalProperties": false,
        +                      "properties": {
        +                        "outcome1": {
        +                          "items": {
        +                            "additionalProperties": false,
        +                            "properties": {
        +                              "name": {
        +                                "type": "string"
        +                              },
        +                              "rank": {
        +                                "exclusiveMinimum": 0,
        +                                "maximum": 9007199254740991,
        +                                "type": "integer"
        +                              },
        +                              "tier": {
        +                                "anyOf": [
        +                                  {
        +                                    "const": 1,
        +                                    "type": "number"
        +                                  },
        +                                  {
        +                                    "const": 2,
        +                                    "type": "number"
        +                                  },
        +                                  {
        +                                    "const": 3,
        +                                    "type": "number"
        +                                  }
        +                                ]
        +                              },
        +                              "wallet": {
        +                                "pattern": "^0x[0-9a-f]{40}$",
        +                                "type": "string"
        +                              }
        +                            },
        +                            "required": [
        +                              "wallet",
        +                              "name",
        +                              "tier"
        +                            ],
        +                            "type": "object"
        +                          },
        +                          "type": "array"
        +                        },
        +                        "outcome2": {
        +                          "items": {
        +                            "additionalProperties": false,
        +                            "properties": {
        +                              "name": {
        +                                "type": "string"
        +                              },
        +                              "rank": {
        +                                "exclusiveMinimum": 0,
        +                                "maximum": 9007199254740991,
        +                                "type": "integer"
        +                              },
        +                              "tier": {
        +                                "anyOf": [
        +                                  {
        +                                    "const": 1,
        +                                    "type": "number"
        +                                  },
        +                                  {
        +                                    "const": 2,
        +                                    "type": "number"
        +                                  },
        +                                  {
        +                                    "const": 3,
        +                                    "type": "number"
        +                                  }
        +                                ]
        +                              },
        +                              "wallet": {
        +                                "pattern": "^0x[0-9a-f]{40}$",
        +                                "type": "string"
        +                              }
        +                            },
        +                            "required": [
        +                              "wallet",
        +                              "name",
        +                              "tier"
        +                            ],
        +                            "type": "object"
        +                          },
        +                          "type": "array"
        +                        }
        +                      },
        +                      "required": [
        +                        "outcome1",
        +                        "outcome2"
        +                      ],
        +                      "type": "object"
        +                    },
        +                    "tier1": {
        +                      "items": {
        +                        "maximum": 9007199254740991,
        +                        "minimum": 0,
        +                        "type": "integer"
        +                      },
        +                      "maxItems": 2,
        +                      "minItems": 2,
        +                      "type": "array"
        +                    },
        +                    "tier2": {
        +                      "items": {
        +                        "maximum": 9007199254740991,
        +                        "minimum": 0,
        +                        "type": "integer"
        +                      },
        +                      "maxItems": 2,
        +                      "minItems": 2,
        +                      "type": "array"
        +                    },
        +                    "tier3": {
        +                      "items": {
        +                        "maximum": 9007199254740991,
        +                        "minimum": 0,
        +                        "type": "integer"
        +                      },
        +                      "maxItems": 2,
        +                      "minItems": 2,
        +                      "type": "array"
        +                    }
        +                  },
        +                  "required": [
        +                    "tier1",
        +                    "tier2",
        +                    "tier3",
        +                    "names",
        +                    "asOf"
        +                  ],
        +                  "type": "object"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "label": {
        +              "type": "string"
        +            },
        +            "outcomes": {
        +              "items": {
        +                "type": "string"
        +              },
        +              "maxItems": 2,
        +              "minItems": 2,
        +              "type": "array"
        +            },
        +            "rows": {
        +              "items": {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "entryAt": {
        +                    "anyOf": [
        +                      {
        +                        "format": "date-time",
        +                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                        "type": "string"
        +                      },
        +                      {
        +                        "type": "null"
        +                      }
        +                    ]
        +                  },
        +                  "entryPrice": {
        +                    "anyOf": [
        +                      {
        +                        "maximum": 1,
        +                        "minimum": 0,
        +                        "type": "number"
        +                      },
        +                      {
        +                        "type": "null"
        +                      }
        +                    ]
        +                  },
        +                  "lastMove": {
        +                    "anyOf": [
        +                      {
        +                        "additionalProperties": false,
        +                        "properties": {
        +                          "action": {
        +                            "enum": [
        +                              "bought",
        +                              "sold"
        +                            ],
        +                            "type": "string"
        +                          },
        +                          "at": {
        +                            "format": "date-time",
        +                            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                            "type": "string"
        +                          },
        +                          "side": {
        +                            "enum": [
        +                              "outcome1",
        +                              "outcome2"
        +                            ],
        +                            "type": "string"
        +                          }
        +                        },
        +                        "required": [
        +                          "action",
        +                          "side",
        +                          "at"
        +                        ],
        +                        "type": "object"
        +                      },
        +                      {
        +                        "type": "null"
        +                      }
        +                    ]
        +                  },
        +                  "name": {
        +                    "type": "string"
        +                  },
        +                  "rank": {
        +                    "exclusiveMinimum": 0,
        +                    "maximum": 9007199254740991,
        +                    "type": "integer"
        +                  },
        +                  "shares": {
        +                    "exclusiveMinimum": 0,
        +                    "maximum": 9007199254740991,
        +                    "type": "integer"
        +                  },
        +                  "side": {
        +                    "enum": [
        +                      "outcome1",
        +                      "outcome2"
        +                    ],
        +                    "type": "string"
        +                  },
        +                  "tier": {
        +                    "anyOf": [
        +                      {
        +                        "const": 1,
        +                        "type": "number"
        +                      },
        +                      {
        +                        "const": 2,
        +                        "type": "number"
        +                      },
        +                      {
        +                        "const": 3,
        +                        "type": "number"
        +                      }
        +                    ]
        +                  },
        +                  "wallet": {
        +                    "type": "string"
        +                  }
        +                },
        +                "required": [
        +                  "wallet",
        +                  "name",
        +                  "tier",
        +                  "side",
        +                  "shares",
        +                  "entryPrice",
        +                  "entryAt",
        +                  "lastMove"
        +                ],
        +                "type": "object"
        +              },
        +              "type": "array"
        +            }
        +          },
        +          "required": [
        +            "conditionId",
        +            "label",
        +            "outcomes",
        +            "chance",
        +            "holders",
        +            "flow"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "plan": {
        +        "enum": [
        +          "free_preview",
        +          "plus",
        +          "api_pro"
        +        ],
        +        "type": "string"
        +      },
        +      "question": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "eventId": {
        +            "type": "string"
        +          },
        +          "polymarket": {
        +            "format": "uri",
        +            "type": "string"
        +          },
        +          "slug": {
        +            "type": "string"
        +          },
        +          "title": {
        +            "type": "string"
        +          },
        +          "url": {
        +            "format": "uri",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "eventId",
        +          "slug",
        +          "title",
        +          "url",
        +          "polymarket"
        +        ],
        +        "type": "object"
        +      },
        +      "quietOptions": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "unreadOptions": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "window": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "from": {
        +            "format": "date-time",
        +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +            "type": "string"
        +          },
        +          "until": {
        +            "format": "date-time",
        +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "from",
        +          "until"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "question",
        +      "live",
        +      "window",
        +      "options",
        +      "quietOptions",
        +      "unreadOptions",
        +      "moves",
        +      "plan",
        +      "notice"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "notice": {
        +        "const": "Past performance is not indicative of future results.",
        +        "type": "string"
        +      },
        +      "plan": {
        +        "enum": [
        +          "free_preview",
        +          "plus",
        +          "api_pro"
        +        ],
        +        "type": "string"
        +      },
        +      "tiers": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "tier1": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "tier2": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "tier3": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          }
        +        },
        +        "required": [
        +          "tier1",
        +          "tier2",
        +          "tier3"
        +        ],
        +        "type": "object"
        +      },
        +      "topic": {
        +        "type": "string"
        +      },
        +      "traders": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "name": {
        +              "type": "string"
        +            },
        +            "profitUsd": {
        +              "type": "number"
        +            },
        +            "rank": {
        +              "exclusiveMinimum": 0,
        +              "maximum": 9007199254740991,
        +              "type": "integer"
        +            },
        +            "tier": {
        +              "anyOf": [
        +                {
        +                  "const": 1,
        +                  "type": "number"
        +                },
        +                {
        +                  "const": 2,
        +                  "type": "number"
        +                },
        +                {
        +                  "const": 3,
        +                  "type": "number"
        +                }
        +              ]
        +            },
        +            "traderReference": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "name",
        +            "traderReference",
        +            "rank",
        +            "tier",
        +            "profitUsd"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "url": {
        +        "format": "uri",
        +        "type": "string"
        +      },
        +      "window": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "days": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "from": {
        +            "format": "date-time",
        +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "from",
        +          "days"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "topic",
        +      "url",
        +      "window",
        +      "tiers",
        +      "traders",
        +      "plan",
        +      "notice"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Addedproblee_list_forecasters
    • Changedproblee_list_markets1 field changed
      • addedOutput schema / $defs / DiscoverMarketsResponse / properties / questions
        Added value: +{
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "category": {
        +        "type": "string"
        +      },
        +      "endsAt": {
        +        "anyOf": [
        +          {
        +            "format": "date-time",
        +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "marketAddress": {
        +        "anyOf": [
        +          {
        +            "$ref": "#/$defs/EvmAddress"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "options": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "label": {
        +              "type": "string"
        +            },
        +            "price": {
        +              "anyOf": [
        +                {
        +                  "maximum": 1,
        +                  "minimum": 0,
        +                  "type": "number"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            }
        +          },
        +          "required": [
        +            "label",
        +            "price"
        +          ],
        +          "type": "object"
        +        },
        +        "maxItems": 4,
        +        "type": "array"
        +      },
        +      "slug": {
        +        "type": "string"
        +      },
        +      "title": {
        +        "type": "string"
        +      },
        +      "url": {
        +        "format": "uri",
        +        "type": "string"
        +      },
        +      "volume24hUsd": {
        +        "anyOf": [
        +          {
        +            "minimum": 0,
        +            "type": "number"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      }
        +    },
        +    "required": [
        +      "slug",
        +      "title",
        +      "url",
        +      "category",
        +      "endsAt",
        +      "options",
        +      "volume24hUsd",
        +      "marketAddress"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
  8. 8 tool updates
    • Changedproblee_discover_events1 field changed
      • changedOutput schema / $defs / EventsDiscoveryResponse / properties / taxonomy / items / properties / webhookEvent / anyOf
        Previous value: -[
        -  {
        -    "enum": [
        -      "market.resolution_due",
        -      "market.resolved",
        -      "trade.executed",
        -      "trade.intent.created",
        -      "trade.submitted",
        -      "trade.indexed",
        -      "trade.failed",
        -      "execution.report",
        -      "market.live",
        -      "market.cancelled",
        -      "market.challengeWindowOpened",
        -      "market.voteOpened",
        -      "market.voteClosed",
        -      "market.disputed",
        -      "market.disputeFinalized",
        -      "market.councilReview"
        -    ],
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "enum": [
        +      "market.resolution_due",
        +      "market.resolved",
        +      "trade.executed",
        +      "trade.intent.created",
        +      "trade.submitted",
        +      "trade.indexed",
        +      "trade.failed",
        +      "execution.report",
        +      "market.live",
        +      "market.cancelled",
        +      "market.challengeWindowOpened",
        +      "market.voteOpened",
        +      "market.voteClosed",
        +      "market.disputed",
        +      "market.disputeFinalized",
        +      "market.councilReview",
        +      "alert.fired"
        +    ],
        +    "type": "string",
        +    "x-extensible-enum": true
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedproblee_get_context4 fields changed
      • addedInput schema / properties / view
        Added value: +{
        +  "description": "full (default): the whole record. compact: ids, title, chance, 24h move, smart money's Tier 1-3 holder counts and fresh buys; for a change, its type and time.",
        +  "enum": [
        +    "full",
        +    "compact"
        +  ],
        +  "type": "string"
        +}
      • removedOutput schema / $defs
        Removed value: -{
        -  "ContextResponse": {
        -    "additionalProperties": false,
        -    "properties": {
        -      "markets": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "analysts": {
        -              "anyOf": [
        -                {
        -                  "additionalProperties": false,
        -                  "properties": {
        -                    "asOf": {
        -                      "format": "date-time",
        -                      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -                      "type": "string"
        -                    },
        -                    "average": {
        -                      "maximum": 1,
        -                      "minimum": 0,
        -                      "type": "number"
        -                    },
        -                    "count": {
        -                      "maximum": 9007199254740991,
        -                      "minimum": 0,
        -                      "type": "integer"
        -                    },
        -                    "gap": {
        -                      "anyOf": [
        -                        {
        -                          "maximum": 1,
        -                          "minimum": -1,
        -                          "type": "number"
        -                        },
        -                        {
        -                          "type": "null"
        -                        }
        -                      ]
        -                    },
        -                    "views": {
        -                      "items": {
        -                        "additionalProperties": false,
        -                        "properties": {
        -                          "chance": {
        -                            "maximum": 1,
        -                            "minimum": 0,
        -                            "type": "number"
        -                          },
        -                          "name": {
        -                            "type": "string"
        -                          },
        -                          "priceAtTake": {
        -                            "maximum": 1,
        -                            "minimum": 0,
        -                            "type": "number"
        -                          },
        -                          "reason": {
        -                            "type": [
        -                              "string",
        -                              "null"
        -                            ]
        -                          },
        -                          "takenAt": {
        -                            "format": "date-time",
        -                            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -                            "type": "string"
        -                          }
        -                        },
        -                        "required": [
        -                          "name",
        -                          "chance",
        -                          "priceAtTake",
        -                          "reason",
        -                          "takenAt"
        -                        ],
        -                        "type": "object"
        -                      },
        -                      "type": "array"
        -                    }
        -                  },
        -                  "required": [
        -                    "average",
        -                    "gap",
        -                    "count",
        -                    "asOf"
        -                  ],
        -                  "type": "object"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "facts": {
        -              "items": {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "date": {
        -                    "format": "date",
        -                    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
        -                    "type": "string"
        -                  },
        -                  "text": {
        -                    "type": "string"
        -                  }
        -                },
        -                "required": [
        -                  "date",
        -                  "text"
        -                ],
        -                "type": "object"
        -              },
        -              "maxItems": 3,
        -              "type": "array"
        -            },
        -            "headlines": {
        -              "anyOf": [
        -                {
        -                  "additionalProperties": false,
        -                  "properties": {
        -                    "asOf": {
        -                      "format": "date-time",
        -                      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -                      "type": "string"
        -                    },
        -                    "last24h": {
        -                      "maximum": 9007199254740991,
        -                      "minimum": 0,
        -                      "type": "integer"
        -                    },
        -                    "latest": {
        -                      "items": {
        -                        "additionalProperties": false,
        -                        "properties": {
        -                          "outlet": {
        -                            "type": "string"
        -                          },
        -                          "publishedAt": {
        -                            "format": "date-time",
        -                            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -                            "type": "string"
        -                          },
        -                          "title": {
        -                            "type": "string"
        -                          },
        -                          "url": {
        -                            "format": "uri",
        -                            "type": "string"
        -                          }
        -                        },
        -                        "required": [
        -                          "title",
        -                          "outlet",
        -                          "publishedAt",
        -                          "url"
        -                        ],
        -                        "type": "object"
        -                      },
        -                      "type": "array"
        -                    },
        -                    "total": {
        -                      "maximum": 9007199254740991,
        -                      "minimum": 0,
        -                      "type": "integer"
        -                    }
        -                  },
        -                  "required": [
        -                    "last24h",
        -                    "total",
        -                    "latest",
        -                    "asOf"
        -                  ],
        -                  "type": "object"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "market": {
        -              "additionalProperties": false,
        -              "properties": {
        -                "address": {
        -                  "pattern": "^0x[a-fA-F0-9]{40}$",
        -                  "type": "string"
        -                },
        -                "category": {
        -                  "enum": [
        -                    "CRYPTO",
        -                    "SPORTS",
        -                    "POLITICS",
        -                    "ELECTIONS",
        -                    "FINANCE",
        -                    "TECH",
        -                    "WORLD",
        -                    "ECONOMY",
        -                    "CULTURE",
        -                    "WEATHER",
        -                    "SCIENCE_HEALTH",
        -                    "AI",
        -                    "GAMING",
        -                    "BUSINESS",
        -                    "FASHION",
        -                    "MOVIES_TV",
        -                    "MUSIC",
        -                    "SHOPPING",
        -                    "BEAUTY",
        -                    "TRAVEL",
        -                    "CLIMATE",
        -                    "DAILY_LIFE",
        -                    "LOCAL",
        -                    "SOCIAL",
        -                    "FUN",
        -                    "OTHER"
        -                  ],
        -                  "type": "string",
        -                  "x-extensible-enum": true
        -                },
        -                "chainId": {
        -                  "exclusiveMinimum": 0,
        -                  "maximum": 9007199254740991,
        -                  "type": "integer"
        -                },
        -                "chance": {
        -                  "anyOf": [
        -                    {
        -                      "maximum": 1,
        -                      "minimum": 0,
        -                      "type": "number"
        -                    },
        -                    {
        -                      "type": "null"
        -                    }
        -                  ]
        -                },
        -                "closes": {
        -                  "anyOf": [
        -                    {
        -                      "format": "date-time",
        -                      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -                      "type": "string"
        -                    },
        -                    {
        -                      "type": "null"
        -                    }
        -                  ]
        -                },
        -                "id": {
        -                  "pattern": "^(?:[a-z][a-z0-9-]{0,31}:)?0x[0-9a-fA-F]{40}$",
        -                  "type": "string"
        -                },
        -                "move24h": {
        -                  "anyOf": [
        -                    {
        -                      "maximum": 1,
        -                      "minimum": -1,
        -                      "type": "number"
        -                    },
        -                    {
        -                      "type": "null"
        -                    }
        -                  ]
        -                },
        -                "polymarket": {
        -                  "anyOf": [
        -                    {
        -                      "format": "uri",
        -                      "type": "string"
        -                    },
        -                    {
        -                      "type": "null"
        -                    }
        -                  ]
        -                },
        -                "priceAt": {
        -                  "anyOf": [
        -                    {
        -                      "format": "date-time",
        -                      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -                      "type": "string"
        -                    },
        -                    {
        -                      "type": "null"
        -                    }
        -                  ]
        -                },
        -                "question": {
        -                  "type": "string"
        -                },
        -                "rules": {
        -                  "type": [
        -                    "string",
        -                    "null"
        -                  ]
        -                },
        -                "url": {
        -                  "format": "uri",
        -                  "type": "string"
        -                }
        -              },
        -              "required": [
        -                "id",
        -                "address",
        -                "chainId",
        -                "question",
        -                "category",
        -                "chance",
        -                "move24h",
        -                "closes",
        -                "rules",
        -                "url",
        -                "polymarket",
        -                "priceAt"
        -              ],
        -              "type": "object"
        -            },
        -            "researchRevision": {
        -              "anyOf": [
        -                {
        -                  "additionalProperties": false,
        -                  "properties": {
        -                    "at": {
        -                      "format": "date-time",
        -                      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -                      "type": "string"
        -                    },
        -                    "kind": {
        -                      "enum": [
        -                        "corrected",
        -                        "withdrawn"
        -                      ],
        -                      "type": "string"
        -                    },
        -                    "note": {
        -                      "type": "string"
        -                    }
        -                  },
        -                  "required": [
        -                    "kind",
        -                    "at",
        -                    "note"
        -                  ],
        -                  "type": "object"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "researchedAt": {
        -              "anyOf": [
        -                {
        -                  "format": "date-time",
        -                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -                  "type": "string"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "topTraders": {
        -              "anyOf": [
        -                {
        -                  "additionalProperties": false,
        -                  "properties": {
        -                    "asOf": {
        -                      "format": "date-time",
        -                      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -                      "type": "string"
        -                    },
        -                    "profitable": {
        -                      "anyOf": [
        -                        {
        -                          "additionalProperties": false,
        -                          "properties": {
        -                            "holding": {
        -                              "maximum": 9007199254740991,
        -                              "minimum": 0,
        -                              "type": "integer"
        -                            },
        -                            "members": {
        -                              "items": {
        -                                "additionalProperties": false,
        -                                "properties": {
        -                                  "entryAt": {
        -                                    "anyOf": [
        -                                      {
        -                                        "format": "date-time",
        -                                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -                                        "type": "string"
        -                                      },
        -                                      {
        -                                        "type": "null"
        -                                      }
        -                                    ]
        -                                  },
        -                                  "entryPrice": {
        -                                    "anyOf": [
        -                                      {
        -                                        "maximum": 1,
        -                                        "minimum": 0,
        -                                        "type": "number"
        -                                      },
        -                                      {
        -                                        "type": "null"
        -                                      }
        -                                    ]
        -                                  },
        -                                  "lastMove": {
        -                                    "anyOf": [
        -                                      {
        -                                        "additionalProperties": false,
        -                                        "properties": {
        -                                          "action": {
        -                                            "enum": [
        -                                              "bought",
        -                                              "sold"
        -                                            ],
        -                                            "type": "string"
        -                                          },
        -                                          "at": {
        -                                            "format": "date-time",
        -                                            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -                                            "type": "string"
        -                                          },
        -                                          "side": {
        -                                            "enum": [
        -                                              "outcome1",
        -                                              "outcome2"
        -                                            ],
        -                                            "type": "string"
        -                                          }
        -                                        },
        -                                        "required": [
        -                                          "action",
        -                                          "side",
        -                                          "at"
        -                                        ],
        -                                        "type": "object"
        -                                      },
        -                                      {
        -                                        "type": "null"
        -                                      }
        -                                    ]
        -                                  },
        -                                  "name": {
        -                                    "type": "string"
        -                                  },
        -                                  "rank": {
        -                                    "anyOf": [
        -                                      {
        -                                        "exclusiveMinimum": 0,
        -                                        "maximum": 9007199254740991,
        -                                        "type": "integer"
        -                                      },
        -                                      {
        -                                        "type": "null"
        -                                      }
        -                                    ]
        -                                  },
        -                                  "shares": {
        -                                    "exclusiveMinimum": 0,
        -                                    "maximum": 9007199254740991,
        -                                    "type": "integer"
        -                                  },
        -                                  "side": {
        -                                    "enum": [
        -                                      "outcome1",
        -                                      "outcome2"
        -                                    ],
        -                                    "type": "string"
        -                                  },
        -                                  "smartMoneyTier": {
        -                                    "anyOf": [
        -                                      {
        -                                        "const": 1,
        -                                        "type": "number"
        -                                      },
        -                                      {
        -                                        "const": 2,
        -                                        "type": "number"
        -                                      },
        -                                      {
        -                                        "const": 3,
        -                                        "type": "number"
        -                                      }
        -                                    ]
        -                                  },
        -                                  "wallet": {
        -                                    "pattern": "^0x[0-9a-f]{40}$",
        -                                    "type": "string"
        -                                  }
        -                                },
        -                                "required": [
        -                                  "name",
        -                                  "wallet",
        -                                  "side",
        -                                  "shares",
        -                                  "lastMove"
        -                                ],
        -                                "type": "object"
        -                              },
        -                              "type": "array"
        -                            },
        -                            "outcome1": {
        -                              "maximum": 9007199254740991,
        -                              "minimum": 0,
        -                              "type": "integer"
        -                            },
        -                            "outcome2": {
        -                              "maximum": 9007199254740991,
        -                              "minimum": 0,
        -                              "type": "integer"
        -                            }
        -                          },
        -                          "required": [
        -                            "holding",
        -                            "outcome1",
        -                            "outcome2"
        -                          ],
        -                          "type": "object"
        -                        },
        -                        {
        -                          "type": "null"
        -                        }
        -                      ]
        -                    },
        -                    "top": {
        -                      "anyOf": [
        -                        {
        -                          "additionalProperties": false,
        -                          "properties": {
        -                            "holding": {
        -                              "maximum": 9007199254740991,
        -                              "minimum": 0,
        -                              "type": "integer"
        -                            },
        -                            "list": {
        -                              "type": "string"
        -                            },
        -                            "listSize": {
        -                              "maximum": 9007199254740991,
        -                              "minimum": 0,
        -                              "type": "integer"
        -                            },
        -                            "members": {
        -                              "items": {
        -                                "additionalProperties": false,
        -                                "properties": {
        -                                  "entryAt": {
        -                                    "anyOf": [
        -                                      {
        -                                        "format": "date-time",
        -                                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -                                        "type": "string"
        -                                      },
        -                                      {
        -                                        "type": "null"
        -                                      }
        -                                    ]
        -                                  },
        -                                  "entryPrice": {
        -                                    "anyOf": [
        -                                      {
        -                                        "maximum": 1,
        -                                        "minimum": 0,
        -                                        "type": "number"
        -                                      },
        -                                      {
        -                                        "type": "null"
        -                                      }
        -                                    ]
        -                                  },
        -                                  "lastMove": {
        -                                    "anyOf": [
        -                                      {
        -                                        "additionalProperties": false,
        -                                        "properties": {
        -                                          "action": {
        -                                            "enum": [
        -                                              "bought",
        -                                              "sold"
        -                                            ],
        -                                            "type": "string"
        -                                          },
        -                                          "at": {
        -                                            "format": "date-time",
        -                                            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -                                            "type": "string"
        -                                          },
        -                                          "side": {
        -                                            "enum": [
        -                                              "outcome1",
        -                                              "outcome2"
        -                                            ],
        -                                            "type": "string"
        -                                          }
        -                                        },
        -                                        "required": [
        -                                          "action",
        -                                          "side",
        -                                          "at"
        -                                        ],
        -                                        "type": "object"
        -                                      },
        -                                      {
        -                                        "type": "null"
        -                                      }
        -                                    ]
        -                                  },
        -                                  "name": {
        -                                    "type": "string"
        -                                  },
        -                                  "rank": {
        -                                    "anyOf": [
        -                                      {
        -                                        "exclusiveMinimum": 0,
        -                                        "maximum": 9007199254740991,
        -                                        "type": "integer"
        -                                      },
        -                                      {
        -                                        "type": "null"
        -                                      }
        -                                    ]
        -                                  },
        -                                  "shares": {
        -                                    "exclusiveMinimum": 0,
        -                                    "maximum": 9007199254740991,
        -                                    "type": "integer"
        -                                  },
        -                                  "side": {
        -                                    "enum": [
        -                                      "outcome1",
        -                                      "outcome2"
        -                                    ],
        -                                    "type": "string"
        -                                  },
        -                                  "smartMoneyTier": {
        -                                    "anyOf": [
        -                                      {
        -                                        "const": 1,
        -                                        "type": "number"
        -                                      },
        -                                      {
        -                                        "const": 2,
        -                                        "type": "number"
        -                                      },
        -                                      {
        -                                        "const": 3,
        -                                        "type": "number"
        -                                      }
        -                                    ]
        -                                  },
        -                                  "wallet": {
        -                                    "pattern": "^0x[0-9a-f]{40}$",
        -                                    "type": "string"
        -                                  }
        -                                },
        -                                "required": [
        -                                  "name",
        -                                  "wallet",
        -                                  "side",
        -                                  "shares",
        -                                  "lastMove"
        -                                ],
        -                                "type": "object"
        -                              },
        -                              "type": "array"
        -                            },
        -                            "outcome1": {
        -                              "maximum": 9007199254740991,
        -                              "minimum": 0,
        -                              "type": "integer"
        -                            },
        -                            "outcome2": {
        -                              "maximum": 9007199254740991,
        -                              "minimum": 0,
        -                              "type": "integer"
        -                            }
        -                          },
        -                          "required": [
        -                            "list",
        -                            "listSize",
        -                            "holding",
        -                            "outcome1",
        -                            "outcome2"
        -                          ],
        -                          "type": "object"
        -                        },
        -                        {
        -                          "type": "null"
        -                        }
        -                      ]
        -                    }
        -                  },
        -                  "required": [
        -                    "top",
        -                    "profitable",
        -                    "asOf"
        -                  ],
        -                  "type": "object"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "watchNext": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            }
        -          },
        -          "required": [
        -            "market",
        -            "facts",
        -            "watchNext",
        -            "headlines",
        -            "analysts",
        -            "topTraders",
        -            "researchedAt"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "meta": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "affiliation": {
        -            "const": "Kellian is not affiliated with Polymarket.",
        -            "type": "string"
        -          },
        -          "asOf": {
        -            "format": "date-time",
        -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -            "type": "string"
        -          },
        -          "count": {
        -            "maximum": 9007199254740991,
        -            "minimum": 0,
        -            "type": "integer"
        -          },
        -          "limits": {
        -            "additionalProperties": false,
        -            "properties": {
        -              "analysts": {
        -                "enum": [
        -                  "average only",
        -                  "every analyst with reasons"
        -                ],
        -                "type": "string"
        -              },
        -              "callsLeftToday": {
        -                "maximum": 9007199254740991,
        -                "minimum": 0,
        -                "type": "integer"
        -              },
        -              "callsPerDay": {
        -                "maximum": 9007199254740991,
        -                "minimum": 0,
        -                "type": "integer"
        -              },
        -              "changeFeed": {
        -                "type": "boolean"
        -              },
        -              "headlinesPerMarket": {
        -                "maximum": 9007199254740991,
        -                "minimum": 0,
        -                "type": "integer"
        -              },
        -              "marketsPerCall": {
        -                "maximum": 9007199254740991,
        -                "minimum": 0,
        -                "type": "integer"
        -              },
        -              "topTraders": {
        -                "enum": [
        -                  "counts only",
        -                  "names, sides and moves"
        -                ],
        -                "type": "string"
        -              }
        -            },
        -            "required": [
        -              "marketsPerCall",
        -              "callsPerDay",
        -              "callsLeftToday",
        -              "headlinesPerMarket",
        -              "analysts",
        -              "topTraders",
        -              "changeFeed"
        -            ],
        -            "type": "object"
        -          },
        -          "locked": {
        -            "additionalProperties": false,
        -            "properties": {
        -              "analystViews": {
        -                "maximum": 9007199254740991,
        -                "minimum": 0,
        -                "type": "integer"
        -              },
        -              "changes": {
        -                "maximum": 9007199254740991,
        -                "minimum": 0,
        -                "type": "integer"
        -              },
        -              "headlines": {
        -                "maximum": 9007199254740991,
        -                "minimum": 0,
        -                "type": "integer"
        -              },
        -              "markets": {
        -                "maximum": 9007199254740991,
        -                "minimum": 0,
        -                "type": "integer"
        -              },
        -              "traderMembers": {
        -                "maximum": 9007199254740991,
        -                "minimum": 0,
        -                "type": "integer"
        -              }
        -            },
        -            "required": [
        -              "markets",
        -              "headlines",
        -              "analystViews",
        -              "traderMembers",
        -              "changes"
        -            ],
        -            "type": "object"
        -          },
        -          "notice": {
        -            "const": "Research, not financial advice.",
        -            "type": "string"
        -          },
        -          "plan": {
        -            "enum": [
        -              "free_preview",
        -              "plus",
        -              "api_pro"
        -            ],
        -            "type": "string"
        -          },
        -          "preview": {
        -            "type": "boolean"
        -          },
        -          "requested": {
        -            "anyOf": [
        -              {
        -                "maximum": 9007199254740991,
        -                "minimum": 0,
        -                "type": "integer"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "sameAsSite": {
        -            "const": "Built from the reads kellian.app serves; the numbers match the market pages.",
        -            "type": "string"
        -          },
        -          "upgrade": {
        -            "type": [
        -              "string",
        -              "null"
        -            ]
        -          },
        -          "withheld": {
        -            "items": {
        -              "pattern": "^(?:[a-z][a-z0-9-]{0,31}:)?0x[0-9a-fA-F]{40}$",
        -              "type": "string"
        -            },
        -            "type": "array"
        -          }
        -        },
        -        "required": [
        -          "asOf",
        -          "plan",
        -          "preview",
        -          "requested",
        -          "count",
        -          "withheld",
        -          "limits",
        -          "locked",
        -          "upgrade",
        -          "sameAsSite",
        -          "notice",
        -          "affiliation"
        -        ],
        -        "type": "object"
        -      },
        -      "nextCursor": {
        -        "anyOf": [
        -          {
        -            "maxLength": 512,
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      }
        -    },
        -    "required": [
        -      "markets",
        -      "nextCursor",
        -      "meta"
        -    ],
        -    "type": "object"
        -  }
        -}
      • removedOutput schema / properties / result / $ref
        Removed value: -"#/$defs/ContextResponse"
      • addedOutput schema / properties / result / anyOf
        Added value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "markets": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "analysts": {
        +              "anyOf": [
        +                {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "asOf": {
        +                      "format": "date-time",
        +                      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                      "type": "string"
        +                    },
        +                    "average": {
        +                      "maximum": 1,
        +                      "minimum": 0,
        +                      "type": "number"
        +                    },
        +                    "count": {
        +                      "maximum": 9007199254740991,
        +                      "minimum": 0,
        +                      "type": "integer"
        +                    },
        +                    "gap": {
        +                      "anyOf": [
        +                        {
        +                          "maximum": 1,
        +                          "minimum": -1,
        +                          "type": "number"
        +                        },
        +                        {
        +                          "type": "null"
        +                        }
        +                      ]
        +                    },
        +                    "views": {
        +                      "items": {
        +                        "additionalProperties": false,
        +                        "properties": {
        +                          "chance": {
        +                            "maximum": 1,
        +                            "minimum": 0,
        +                            "type": "number"
        +                          },
        +                          "name": {
        +                            "type": "string"
        +                          },
        +                          "priceAtTake": {
        +                            "maximum": 1,
        +                            "minimum": 0,
        +                            "type": "number"
        +                          },
        +                          "reason": {
        +                            "type": [
        +                              "string",
        +                              "null"
        +                            ]
        +                          },
        +                          "takenAt": {
        +                            "format": "date-time",
        +                            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                            "type": "string"
        +                          }
        +                        },
        +                        "required": [
        +                          "name",
        +                          "chance",
        +                          "priceAtTake",
        +                          "reason",
        +                          "takenAt"
        +                        ],
        +                        "type": "object"
        +                      },
        +                      "type": "array"
        +                    }
        +                  },
        +                  "required": [
        +                    "average",
        +                    "gap",
        +                    "count",
        +                    "asOf"
        +                  ],
        +                  "type": "object"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "facts": {
        +              "items": {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "date": {
        +                    "format": "date",
        +                    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
        +                    "type": "string"
        +                  },
        +                  "text": {
        +                    "type": "string"
        +                  }
        +                },
        +                "required": [
        +                  "date",
        +                  "text"
        +                ],
        +                "type": "object"
        +              },
        +              "maxItems": 3,
        +              "type": "array"
        +            },
        +            "headlines": {
        +              "anyOf": [
        +                {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "asOf": {
        +                      "format": "date-time",
        +                      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                      "type": "string"
        +                    },
        +                    "last24h": {
        +                      "maximum": 9007199254740991,
        +                      "minimum": 0,
        +                      "type": "integer"
        +                    },
        +                    "latest": {
        +                      "items": {
        +                        "additionalProperties": false,
        +                        "properties": {
        +                          "outlet": {
        +                            "type": "string"
        +                          },
        +                          "publishedAt": {
        +                            "format": "date-time",
        +                            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                            "type": "string"
        +                          },
        +                          "title": {
        +                            "type": "string"
        +                          },
        +                          "url": {
        +                            "format": "uri",
        +                            "type": "string"
        +                          }
        +                        },
        +                        "required": [
        +                          "title",
        +                          "outlet",
        +                          "publishedAt",
        +                          "url"
        +                        ],
        +                        "type": "object"
        +                      },
        +                      "type": "array"
        +                    },
        +                    "total": {
        +                      "maximum": 9007199254740991,
        +                      "minimum": 0,
        +                      "type": "integer"
        +                    }
        +                  },
        +                  "required": [
        +                    "last24h",
        +                    "total",
        +                    "latest",
        +                    "asOf"
        +                  ],
        +                  "type": "object"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "market": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "address": {
        +                  "pattern": "^0x[a-fA-F0-9]{40}$",
        +                  "type": "string"
        +                },
        +                "category": {
        +                  "enum": [
        +                    "CRYPTO",
        +                    "SPORTS",
        +                    "POLITICS",
        +                    "ELECTIONS",
        +                    "FINANCE",
        +                    "TECH",
        +                    "WORLD",
        +                    "ECONOMY",
        +                    "CULTURE",
        +                    "WEATHER",
        +                    "SCIENCE_HEALTH",
        +                    "AI",
        +                    "GAMING",
        +                    "BUSINESS",
        +                    "FASHION",
        +                    "MOVIES_TV",
        +                    "MUSIC",
        +                    "SHOPPING",
        +                    "BEAUTY",
        +                    "TRAVEL",
        +                    "CLIMATE",
        +                    "DAILY_LIFE",
        +                    "LOCAL",
        +                    "SOCIAL",
        +                    "FUN",
        +                    "OTHER"
        +                  ],
        +                  "type": "string",
        +                  "x-extensible-enum": true
        +                },
        +                "chainId": {
        +                  "exclusiveMinimum": 0,
        +                  "maximum": 9007199254740991,
        +                  "type": "integer"
        +                },
        +                "chance": {
        +                  "anyOf": [
        +                    {
        +                      "maximum": 1,
        +                      "minimum": 0,
        +                      "type": "number"
        +                    },
        +                    {
        +                      "type": "null"
        +                    }
        +                  ]
        +                },
        +                "closes": {
        +                  "anyOf": [
        +                    {
        +                      "format": "date-time",
        +                      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                      "type": "string"
        +                    },
        +                    {
        +                      "type": "null"
        +                    }
        +                  ]
        +                },
        +                "id": {
        +                  "pattern": "^(?:[a-z][a-z0-9-]{0,31}:)?0x[0-9a-fA-F]{40}$",
        +                  "type": "string"
        +                },
        +                "move24h": {
        +                  "anyOf": [
        +                    {
        +                      "maximum": 1,
        +                      "minimum": -1,
        +                      "type": "number"
        +                    },
        +                    {
        +                      "type": "null"
        +                    }
        +                  ]
        +                },
        +                "polymarket": {
        +                  "anyOf": [
        +                    {
        +                      "format": "uri",
        +                      "type": "string"
        +                    },
        +                    {
        +                      "type": "null"
        +                    }
        +                  ]
        +                },
        +                "priceAt": {
        +                  "anyOf": [
        +                    {
        +                      "format": "date-time",
        +                      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                      "type": "string"
        +                    },
        +                    {
        +                      "type": "null"
        +                    }
        +                  ]
        +                },
        +                "question": {
        +                  "type": "string"
        +                },
        +                "rules": {
        +                  "type": [
        +                    "string",
        +                    "null"
        +                  ]
        +                },
        +                "url": {
        +                  "format": "uri",
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "id",
        +                "address",
        +                "chainId",
        +                "question",
        +                "category",
        +                "chance",
        +                "move24h",
        +                "closes",
        +                "rules",
        +                "url",
        +                "polymarket",
        +                "priceAt"
        +              ],
        +              "type": "object"
        +            },
        +            "researchRevision": {
        +              "anyOf": [
        +                {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "at": {
        +                      "format": "date-time",
        +                      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                      "type": "string"
        +                    },
        +                    "kind": {
        +                      "enum": [
        +                        "corrected",
        +                        "withdrawn"
        +                      ],
        +                      "type": "string"
        +                    },
        +                    "note": {
        +                      "type": "string"
        +                    }
        +                  },
        +                  "required": [
        +                    "kind",
        +                    "at",
        +                    "note"
        +                  ],
        +                  "type": "object"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "researchedAt": {
        +              "anyOf": [
        +                {
        +                  "format": "date-time",
        +                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "topTraders": {
        +              "anyOf": [
        +                {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "asOf": {
        +                      "format": "date-time",
        +                      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                      "type": "string"
        +                    },
        +                    "profitable": {
        +                      "anyOf": [
        +                        {
        +                          "additionalProperties": false,
        +                          "properties": {
        +                            "holding": {
        +                              "maximum": 9007199254740991,
        +                              "minimum": 0,
        +                              "type": "integer"
        +                            },
        +                            "members": {
        +                              "items": {
        +                                "additionalProperties": false,
        +                                "properties": {
        +                                  "entryAt": {
        +                                    "anyOf": [
        +                                      {
        +                                        "format": "date-time",
        +                                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                                        "type": "string"
        +                                      },
        +                                      {
        +                                        "type": "null"
        +                                      }
        +                                    ]
        +                                  },
        +                                  "entryPrice": {
        +                                    "anyOf": [
        +                                      {
        +                                        "maximum": 1,
        +                                        "minimum": 0,
        +                                        "type": "number"
        +                                      },
        +                                      {
        +                                        "type": "null"
        +                                      }
        +                                    ]
        +                                  },
        +                                  "lastMove": {
        +                                    "anyOf": [
        +                                      {
        +                                        "additionalProperties": false,
        +                                        "properties": {
        +                                          "action": {
        +                                            "enum": [
        +                                              "bought",
        +                                              "sold"
        +                                            ],
        +                                            "type": "string"
        +                                          },
        +                                          "at": {
        +                                            "format": "date-time",
        +                                            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                                            "type": "string"
        +                                          },
        +                                          "side": {
        +                                            "enum": [
        +                                              "outcome1",
        +                                              "outcome2"
        +                                            ],
        +                                            "type": "string"
        +                                          }
        +                                        },
        +                                        "required": [
        +                                          "action",
        +                                          "side",
        +                                          "at"
        +                                        ],
        +                                        "type": "object"
        +                                      },
        +                                      {
        +                                        "type": "null"
        +                                      }
        +                                    ]
        +                                  },
        +                                  "name": {
        +                                    "type": "string"
        +                                  },
        +                                  "rank": {
        +                                    "anyOf": [
        +                                      {
        +                                        "exclusiveMinimum": 0,
        +                                        "maximum": 9007199254740991,
        +                                        "type": "integer"
        +                                      },
        +                                      {
        +                                        "type": "null"
        +                                      }
        +                                    ]
        +                                  },
        +                                  "shares": {
        +                                    "exclusiveMinimum": 0,
        +                                    "maximum": 9007199254740991,
        +                                    "type": "integer"
        +                                  },
        +                                  "side": {
        +                                    "enum": [
        +                                      "outcome1",
        +                                      "outcome2"
        +                                    ],
        +                                    "type": "string"
        +                                  },
        +                                  "smartMoneyTier": {
        +                                    "anyOf": [
        +                                      {
        +                                        "const": 1,
        +                                        "type": "number"
        +                                      },
        +                                      {
        +                                        "const": 2,
        +                                        "type": "number"
        +                                      },
        +                                      {
        +                                        "const": 3,
        +                                        "type": "number"
        +                                      }
        +                                    ]
        +                                  },
        +                                  "wallet": {
        +                                    "pattern": "^0x[0-9a-f]{40}$",
        +                                    "type": "string"
        +                                  }
        +                                },
        +                                "required": [
        +                                  "name",
        +                                  "wallet",
        +                                  "side",
        +                                  "shares",
        +                                  "lastMove"
        +                                ],
        +                                "type": "object"
        +                              },
        +                              "type": "array"
        +                            },
        +                            "outcome1": {
        +                              "maximum": 9007199254740991,
        +                              "minimum": 0,
        +                              "type": "integer"
        +                            },
        +                            "outcome2": {
        +                              "maximum": 9007199254740991,
        +                              "minimum": 0,
        +                              "type": "integer"
        +                            }
        +                          },
        +                          "required": [
        +                            "holding",
        +                            "outcome1",
        +                            "outcome2"
        +                          ],
        +                          "type": "object"
        +                        },
        +                        {
        +                          "type": "null"
        +                        }
        +                      ]
        +                    },
        +                    "top": {
        +                      "anyOf": [
        +                        {
        +                          "additionalProperties": false,
        +                          "properties": {
        +                            "holding": {
        +                              "maximum": 9007199254740991,
        +                              "minimum": 0,
        +                              "type": "integer"
        +                            },
        +                            "list": {
        +                              "type": "string"
        +                            },
        +                            "listSize": {
        +                              "maximum": 9007199254740991,
        +                              "minimum": 0,
        +                              "type": "integer"
        +                            },
        +                            "members": {
        +                              "items": {
        +                                "additionalProperties": false,
        +                                "properties": {
        +                                  "entryAt": {
        +                                    "anyOf": [
        +                                      {
        +                                        "format": "date-time",
        +                                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                                        "type": "string"
        +                                      },
        +                                      {
        +                                        "type": "null"
        +                                      }
        +                                    ]
        +                                  },
        +                                  "entryPrice": {
        +                                    "anyOf": [
        +                                      {
        +                                        "maximum": 1,
        +                                        "minimum": 0,
        +                                        "type": "number"
        +                                      },
        +                                      {
        +                                        "type": "null"
        +                                      }
        +                                    ]
        +                                  },
        +                                  "lastMove": {
        +                                    "anyOf": [
        +                                      {
        +                                        "additionalProperties": false,
        +                                        "properties": {
        +                                          "action": {
        +                                            "enum": [
        +                                              "bought",
        +                                              "sold"
        +                                            ],
        +                                            "type": "string"
        +                                          },
        +                                          "at": {
        +                                            "format": "date-time",
        +                                            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                                            "type": "string"
        +                                          },
        +                                          "side": {
        +                                            "enum": [
        +                                              "outcome1",
        +                                              "outcome2"
        +                                            ],
        +                                            "type": "string"
        +                                          }
        +                                        },
        +                                        "required": [
        +                                          "action",
        +                                          "side",
        +                                          "at"
        +                                        ],
        +                                        "type": "object"
        +                                      },
        +                                      {
        +                                        "type": "null"
        +                                      }
        +                                    ]
        +                                  },
        +                                  "name": {
        +                                    "type": "string"
        +                                  },
        +                                  "rank": {
        +                                    "anyOf": [
        +                                      {
        +                                        "exclusiveMinimum": 0,
        +                                        "maximum": 9007199254740991,
        +                                        "type": "integer"
        +                                      },
        +                                      {
        +                                        "type": "null"
        +                                      }
        +                                    ]
        +                                  },
        +                                  "shares": {
        +                                    "exclusiveMinimum": 0,
        +                                    "maximum": 9007199254740991,
        +                                    "type": "integer"
        +                                  },
        +                                  "side": {
        +                                    "enum": [
        +                                      "outcome1",
        +                                      "outcome2"
        +                                    ],
        +                                    "type": "string"
        +                                  },
        +                                  "smartMoneyTier": {
        +                                    "anyOf": [
        +                                      {
        +                                        "const": 1,
        +                                        "type": "number"
        +                                      },
        +                                      {
        +                                        "const": 2,
        +                                        "type": "number"
        +                                      },
        +                                      {
        +                                        "const": 3,
        +                                        "type": "number"
        +                                      }
        +                                    ]
        +                                  },
        +                                  "wallet": {
        +                                    "pattern": "^0x[0-9a-f]{40}$",
        +                                    "type": "string"
        +                                  }
        +                                },
        +                                "required": [
        +                                  "name",
        +                                  "wallet",
        +                                  "side",
        +                                  "shares",
        +                                  "lastMove"
        +                                ],
        +                                "type": "object"
        +                              },
        +                              "type": "array"
        +                            },
        +                            "outcome1": {
        +                              "maximum": 9007199254740991,
        +                              "minimum": 0,
        +                              "type": "integer"
        +                            },
        +                            "outcome2": {
        +                              "maximum": 9007199254740991,
        +                              "minimum": 0,
        +                              "type": "integer"
        +                            }
        +                          },
        +                          "required": [
        +                            "list",
        +                            "listSize",
        +                            "holding",
        +                            "outcome1",
        +                            "outcome2"
        +                          ],
        +                          "type": "object"
        +                        },
        +                        {
        +                          "type": "null"
        +                        }
        +                      ]
        +                    }
        +                  },
        +                  "required": [
        +                    "top",
        +                    "profitable",
        +                    "asOf"
        +                  ],
        +                  "type": "object"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "watchNext": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            }
        +          },
        +          "required": [
        +            "market",
        +            "facts",
        +            "watchNext",
        +            "headlines",
        +            "analysts",
        +            "topTraders",
        +            "researchedAt"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "meta": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "affiliation": {
        +            "const": "Kellian is not affiliated with Polymarket.",
        +            "type": "string"
        +          },
        +          "asOf": {
        +            "format": "date-time",
        +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +            "type": "string"
        +          },
        +          "count": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "limits": {
        +            "additionalProperties": false,
        +            "properties": {
        +              "analysts": {
        +                "enum": [
        +                  "average only",
        +                  "every analyst with reasons"
        +                ],
        +                "type": "string"
        +              },
        +              "callsLeftToday": {
        +                "maximum": 9007199254740991,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "callsPerDay": {
        +                "maximum": 9007199254740991,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "changeFeed": {
        +                "type": "boolean"
        +              },
        +              "headlinesPerMarket": {
        +                "maximum": 9007199254740991,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "marketsPerCall": {
        +                "maximum": 9007199254740991,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "topTraders": {
        +                "enum": [
        +                  "counts only",
        +                  "names, sides and moves"
        +                ],
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "marketsPerCall",
        +              "callsPerDay",
        +              "callsLeftToday",
        +              "headlinesPerMarket",
        +              "analysts",
        +              "topTraders",
        +              "changeFeed"
        +            ],
        +            "type": "object"
        +          },
        +          "locked": {
        +            "additionalProperties": false,
        +            "properties": {
        +              "analystViews": {
        +                "maximum": 9007199254740991,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "changes": {
        +                "maximum": 9007199254740991,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "headlines": {
        +                "maximum": 9007199254740991,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "markets": {
        +                "maximum": 9007199254740991,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "traderMembers": {
        +                "maximum": 9007199254740991,
        +                "minimum": 0,
        +                "type": "integer"
        +              }
        +            },
        +            "required": [
        +              "markets",
        +              "headlines",
        +              "analystViews",
        +              "traderMembers",
        +              "changes"
        +            ],
        +            "type": "object"
        +          },
        +          "notice": {
        +            "const": "Research, not financial advice.",
        +            "type": "string"
        +          },
        +          "plan": {
        +            "enum": [
        +              "free_preview",
        +              "plus",
        +              "api_pro"
        +            ],
        +            "type": "string"
        +          },
        +          "preview": {
        +            "type": "boolean"
        +          },
        +          "requested": {
        +            "anyOf": [
        +              {
        +                "maximum": 9007199254740991,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "sameAsSite": {
        +            "const": "Built from the reads kellian.app serves; the numbers match the market pages.",
        +            "type": "string"
        +          },
        +          "upgrade": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "withheld": {
        +            "items": {
        +              "pattern": "^(?:[a-z][a-z0-9-]{0,31}:)?0x[0-9a-fA-F]{40}$",
        +              "type": "string"
        +            },
        +            "type": "array"
        +          }
        +        },
        +        "required": [
        +          "asOf",
        +          "plan",
        +          "preview",
        +          "requested",
        +          "count",
        +          "withheld",
        +          "limits",
        +          "locked",
        +          "upgrade",
        +          "sameAsSite",
        +          "notice",
        +          "affiliation"
        +        ],
        +        "type": "object"
        +      },
        +      "nextCursor": {
        +        "anyOf": [
        +          {
        +            "maxLength": 512,
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      }
        +    },
        +    "required": [
        +      "markets",
        +      "nextCursor",
        +      "meta"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "markets": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "chance": {
        +              "anyOf": [
        +                {
        +                  "maximum": 1,
        +                  "minimum": 0,
        +                  "type": "number"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "closes": {
        +              "anyOf": [
        +                {
        +                  "format": "date-time",
        +                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "conditionId": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "freshBuys": {
        +              "anyOf": [
        +                {
        +                  "items": {
        +                    "maximum": 9007199254740991,
        +                    "minimum": 0,
        +                    "type": "integer"
        +                  },
        +                  "maxItems": 2,
        +                  "minItems": 2,
        +                  "type": "array"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "id": {
        +              "pattern": "^(?:[a-z][a-z0-9-]{0,31}:)?0x[0-9a-fA-F]{40}$",
        +              "type": "string"
        +            },
        +            "move24h": {
        +              "anyOf": [
        +                {
        +                  "maximum": 1,
        +                  "minimum": -1,
        +                  "type": "number"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "question": {
        +              "type": "string"
        +            },
        +            "smartMoney": {
        +              "anyOf": [
        +                {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "tier1": {
        +                      "items": {
        +                        "maximum": 9007199254740991,
        +                        "minimum": 0,
        +                        "type": "integer"
        +                      },
        +                      "maxItems": 2,
        +                      "minItems": 2,
        +                      "type": "array"
        +                    },
        +                    "tier2": {
        +                      "items": {
        +                        "maximum": 9007199254740991,
        +                        "minimum": 0,
        +                        "type": "integer"
        +                      },
        +                      "maxItems": 2,
        +                      "minItems": 2,
        +                      "type": "array"
        +                    },
        +                    "tier3": {
        +                      "items": {
        +                        "maximum": 9007199254740991,
        +                        "minimum": 0,
        +                        "type": "integer"
        +                      },
        +                      "maxItems": 2,
        +                      "minItems": 2,
        +                      "type": "array"
        +                    }
        +                  },
        +                  "required": [
        +                    "tier1",
        +                    "tier2",
        +                    "tier3"
        +                  ],
        +                  "type": "object"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            }
        +          },
        +          "required": [
        +            "id",
        +            "question",
        +            "chance",
        +            "move24h",
        +            "conditionId",
        +            "smartMoney",
        +            "freshBuys",
        +            "closes"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "meta": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "asOf": {
        +            "format": "date-time",
        +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +            "type": "string"
        +          },
        +          "callsLeftToday": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "count": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "locked": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "plan": {
        +            "enum": [
        +              "free_preview",
        +              "plus",
        +              "api_pro"
        +            ],
        +            "type": "string"
        +          },
        +          "preview": {
        +            "type": "boolean"
        +          },
        +          "requested": {
        +            "anyOf": [
        +              {
        +                "maximum": 9007199254740991,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "withheld": {
        +            "items": {
        +              "pattern": "^(?:[a-z][a-z0-9-]{0,31}:)?0x[0-9a-fA-F]{40}$",
        +              "type": "string"
        +            },
        +            "type": "array"
        +          }
        +        },
        +        "required": [
        +          "asOf",
        +          "plan",
        +          "preview",
        +          "count",
        +          "callsLeftToday",
        +          "requested",
        +          "withheld",
        +          "locked"
        +        ],
        +        "type": "object"
        +      },
        +      "nextCursor": {
        +        "anyOf": [
        +          {
        +            "maxLength": 512,
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "view": {
        +        "const": "compact",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "view",
        +      "markets",
        +      "nextCursor",
        +      "meta"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedproblee_get_context_changes4 fields changed
      • addedInput schema / properties / view
        Added value: +{
        +  "description": "full (default): the whole record. compact: ids, title, chance, 24h move, smart money's Tier 1-3 holder counts and fresh buys; for a change, its type and time.",
        +  "enum": [
        +    "full",
        +    "compact"
        +  ],
        +  "type": "string"
        +}
      • removedOutput schema / $defs
        Removed value: -{
        -  "ContextChangesResponse": {
        -    "additionalProperties": false,
        -    "properties": {
        -      "changes": {
        -        "items": {
        -          "oneOf": [
        -            {
        -              "additionalProperties": false,
        -              "properties": {
        -                "at": {
        -                  "format": "date-time",
        -                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -                  "type": "string"
        -                },
        -                "headline": {
        -                  "additionalProperties": false,
        -                  "properties": {
        -                    "outlet": {
        -                      "type": "string"
        -                    },
        -                    "publishedAt": {
        -                      "format": "date-time",
        -                      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -                      "type": "string"
        -                    },
        -                    "title": {
        -                      "type": "string"
        -                    },
        -                    "url": {
        -                      "format": "uri",
        -                      "type": "string"
        -                    }
        -                  },
        -                  "required": [
        -                    "title",
        -                    "outlet",
        -                    "publishedAt",
        -                    "url"
        -                  ],
        -                  "type": "object"
        -                },
        -                "market": {
        -                  "pattern": "^(?:[a-z][a-z0-9-]{0,31}:)?0x[0-9a-fA-F]{40}$",
        -                  "type": "string"
        -                },
        -                "question": {
        -                  "type": "string"
        -                },
        -                "type": {
        -                  "const": "headline",
        -                  "type": "string"
        -                }
        -              },
        -              "required": [
        -                "type",
        -                "at",
        -                "market",
        -                "question",
        -                "headline"
        -              ],
        -              "type": "object"
        -            },
        -            {
        -              "additionalProperties": false,
        -              "properties": {
        -                "at": {
        -                  "format": "date-time",
        -                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -                  "type": "string"
        -                },
        -                "market": {
        -                  "pattern": "^(?:[a-z][a-z0-9-]{0,31}:)?0x[0-9a-fA-F]{40}$",
        -                  "type": "string"
        -                },
        -                "question": {
        -                  "type": "string"
        -                },
        -                "type": {
        -                  "const": "analyst_view",
        -                  "type": "string"
        -                },
        -                "view": {
        -                  "additionalProperties": false,
        -                  "properties": {
        -                    "chance": {
        -                      "maximum": 1,
        -                      "minimum": 0,
        -                      "type": "number"
        -                    },
        -                    "name": {
        -                      "type": "string"
        -                    },
        -                    "priceAtTake": {
        -                      "maximum": 1,
        -                      "minimum": 0,
        -                      "type": "number"
        -                    },
        -                    "reason": {
        -                      "type": [
        -                        "string",
        -                        "null"
        -                      ]
        -                    }
        -                  },
        -                  "required": [
        -                    "name",
        -                    "chance",
        -                    "priceAtTake",
        -                    "reason"
        -                  ],
        -                  "type": "object"
        -                }
        -              },
        -              "required": [
        -                "type",
        -                "at",
        -                "market",
        -                "question",
        -                "view"
        -              ],
        -              "type": "object"
        -            },
        -            {
        -              "additionalProperties": false,
        -              "properties": {
        -                "at": {
        -                  "format": "date-time",
        -                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -                  "type": "string"
        -                },
        -                "market": {
        -                  "pattern": "^(?:[a-z][a-z0-9-]{0,31}:)?0x[0-9a-fA-F]{40}$",
        -                  "type": "string"
        -                },
        -                "move": {
        -                  "additionalProperties": false,
        -                  "properties": {
        -                    "action": {
        -                      "enum": [
        -                        "bought",
        -                        "sold"
        -                      ],
        -                      "type": "string"
        -                    },
        -                    "name": {
        -                      "type": "string"
        -                    },
        -                    "price": {
        -                      "anyOf": [
        -                        {
        -                          "maximum": 1,
        -                          "minimum": 0,
        -                          "type": "number"
        -                        },
        -                        {
        -                          "type": "null"
        -                        }
        -                      ]
        -                    },
        -                    "shares": {
        -                      "anyOf": [
        -                        {
        -                          "exclusiveMinimum": 0,
        -                          "type": "number"
        -                        },
        -                        {
        -                          "type": "null"
        -                        }
        -                      ]
        -                    },
        -                    "side": {
        -                      "enum": [
        -                        "outcome1",
        -                        "outcome2"
        -                      ],
        -                      "type": "string"
        -                    },
        -                    "smartMoneyTier": {
        -                      "anyOf": [
        -                        {
        -                          "const": 1,
        -                          "type": "number"
        -                        },
        -                        {
        -                          "const": 2,
        -                          "type": "number"
        -                        },
        -                        {
        -                          "const": 3,
        -                          "type": "number"
        -                        }
        -                      ]
        -                    },
        -                    "tier": {
        -                      "enum": [
        -                        "top",
        -                        "profitable"
        -                      ],
        -                      "type": "string"
        -                    },
        -                    "usd": {
        -                      "anyOf": [
        -                        {
        -                          "minimum": 0,
        -                          "type": "number"
        -                        },
        -                        {
        -                          "type": "null"
        -                        }
        -                      ]
        -                    },
        -                    "wallet": {
        -                      "pattern": "^0x[0-9a-f]{40}$",
        -                      "type": "string"
        -                    }
        -                  },
        -                  "required": [
        -                    "name",
        -                    "wallet",
        -                    "tier",
        -                    "action",
        -                    "side"
        -                  ],
        -                  "type": "object"
        -                },
        -                "question": {
        -                  "type": "string"
        -                },
        -                "type": {
        -                  "const": "trader_move",
        -                  "type": "string"
        -                }
        -              },
        -              "required": [
        -                "type",
        -                "at",
        -                "market",
        -                "question",
        -                "move"
        -              ],
        -              "type": "object"
        -            },
        -            {
        -              "additionalProperties": false,
        -              "properties": {
        -                "at": {
        -                  "format": "date-time",
        -                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -                  "type": "string"
        -                },
        -                "market": {
        -                  "pattern": "^(?:[a-z][a-z0-9-]{0,31}:)?0x[0-9a-fA-F]{40}$",
        -                  "type": "string"
        -                },
        -                "move": {
        -                  "additionalProperties": false,
        -                  "properties": {
        -                    "from": {
        -                      "maximum": 1,
        -                      "minimum": 0,
        -                      "type": "number"
        -                    },
        -                    "over": {
        -                      "enum": [
        -                        "1h",
        -                        "24h"
        -                      ],
        -                      "type": "string"
        -                    },
        -                    "to": {
        -                      "maximum": 1,
        -                      "minimum": 0,
        -                      "type": "number"
        -                    }
        -                  },
        -                  "required": [
        -                    "from",
        -                    "to",
        -                    "over"
        -                  ],
        -                  "type": "object"
        -                },
        -                "question": {
        -                  "type": "string"
        -                },
        -                "type": {
        -                  "const": "price_move",
        -                  "type": "string"
        -                }
        -              },
        -              "required": [
        -                "type",
        -                "at",
        -                "market",
        -                "question",
        -                "move"
        -              ],
        -              "type": "object"
        -            },
        -            {
        -              "additionalProperties": false,
        -              "properties": {
        -                "at": {
        -                  "format": "date-time",
        -                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -                  "type": "string"
        -                },
        -                "chance": {
        -                  "anyOf": [
        -                    {
        -                      "maximum": 1,
        -                      "minimum": 0,
        -                      "type": "number"
        -                    },
        -                    {
        -                      "type": "null"
        -                    }
        -                  ]
        -                },
        -                "market": {
        -                  "pattern": "^(?:[a-z][a-z0-9-]{0,31}:)?0x[0-9a-fA-F]{40}$",
        -                  "type": "string"
        -                },
        -                "question": {
        -                  "type": "string"
        -                },
        -                "type": {
        -                  "const": "new_market",
        -                  "type": "string"
        -                }
        -              },
        -              "required": [
        -                "type",
        -                "at",
        -                "market",
        -                "question",
        -                "chance"
        -              ],
        -              "type": "object"
        -            },
        -            {
        -              "additionalProperties": false,
        -              "properties": {
        -                "at": {
        -                  "format": "date-time",
        -                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -                  "type": "string"
        -                },
        -                "chance": {
        -                  "anyOf": [
        -                    {
        -                      "maximum": 1,
        -                      "minimum": 0,
        -                      "type": "number"
        -                    },
        -                    {
        -                      "type": "null"
        -                    }
        -                  ]
        -                },
        -                "closes": {
        -                  "format": "date-time",
        -                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -                  "type": "string"
        -                },
        -                "market": {
        -                  "pattern": "^(?:[a-z][a-z0-9-]{0,31}:)?0x[0-9a-fA-F]{40}$",
        -                  "type": "string"
        -                },
        -                "question": {
        -                  "type": "string"
        -                },
        -                "type": {
        -                  "const": "closing",
        -                  "type": "string"
        -                }
        -              },
        -              "required": [
        -                "type",
        -                "at",
        -                "market",
        -                "question",
        -                "chance",
        -                "closes"
        -              ],
        -              "type": "object"
        -            }
        -          ]
        -        },
        -        "maxItems": 500,
        -        "type": "array"
        -      },
        -      "counts": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "analyst_view": {
        -            "maximum": 9007199254740991,
        -            "minimum": 0,
        -            "type": "integer"
        -          },
        -          "closing": {
        -            "maximum": 9007199254740991,
        -            "minimum": 0,
        -            "type": "integer"
        -          },
        -          "headline": {
        -            "maximum": 9007199254740991,
        -            "minimum": 0,
        -            "type": "integer"
        -          },
        -          "new_market": {
        -            "maximum": 9007199254740991,
        -            "minimum": 0,
        -            "type": "integer"
        -          },
        -          "price_move": {
        -            "maximum": 9007199254740991,
        -            "minimum": 0,
        -            "type": "integer"
        -          },
        -          "trader_move": {
        -            "maximum": 9007199254740991,
        -            "minimum": 0,
        -            "type": "integer"
        -          }
        -        },
        -        "required": [
        -          "headline",
        -          "analyst_view",
        -          "trader_move",
        -          "price_move",
        -          "new_market",
        -          "closing"
        -        ],
        -        "type": "object"
        -      },
        -      "meta": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "affiliation": {
        -            "const": "Kellian is not affiliated with Polymarket.",
        -            "type": "string"
        -          },
        -          "asOf": {
        -            "format": "date-time",
        -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -            "type": "string"
        -          },
        -          "count": {
        -            "maximum": 9007199254740991,
        -            "minimum": 0,
        -            "type": "integer"
        -          },
        -          "limits": {
        -            "additionalProperties": false,
        -            "properties": {
        -              "analysts": {
        -                "enum": [
        -                  "average only",
        -                  "every analyst with reasons"
        -                ],
        -                "type": "string"
        -              },
        -              "callsLeftToday": {
        -                "maximum": 9007199254740991,
        -                "minimum": 0,
        -                "type": "integer"
        -              },
        -              "callsPerDay": {
        -                "maximum": 9007199254740991,
        -                "minimum": 0,
        -                "type": "integer"
        -              },
        -              "changeFeed": {
        -                "type": "boolean"
        -              },
        -              "headlinesPerMarket": {
        -                "maximum": 9007199254740991,
        -                "minimum": 0,
        -                "type": "integer"
        -              },
        -              "marketsPerCall": {
        -                "maximum": 9007199254740991,
        -                "minimum": 0,
        -                "type": "integer"
        -              },
        -              "topTraders": {
        -                "enum": [
        -                  "counts only",
        -                  "names, sides and moves"
        -                ],
        -                "type": "string"
        -              }
        -            },
        -            "required": [
        -              "marketsPerCall",
        -              "callsPerDay",
        -              "callsLeftToday",
        -              "headlinesPerMarket",
        -              "analysts",
        -              "topTraders",
        -              "changeFeed"
        -            ],
        -            "type": "object"
        -          },
        -          "locked": {
        -            "additionalProperties": false,
        -            "properties": {
        -              "analystViews": {
        -                "maximum": 9007199254740991,
        -                "minimum": 0,
        -                "type": "integer"
        -              },
        -              "changes": {
        -                "maximum": 9007199254740991,
        -                "minimum": 0,
        -                "type": "integer"
        -              },
        -              "headlines": {
        -                "maximum": 9007199254740991,
        -                "minimum": 0,
        -                "type": "integer"
        -              },
        -              "markets": {
        -                "maximum": 9007199254740991,
        -                "minimum": 0,
        -                "type": "integer"
        -              },
        -              "traderMembers": {
        -                "maximum": 9007199254740991,
        -                "minimum": 0,
        -                "type": "integer"
        -              }
        -            },
        -            "required": [
        -              "markets",
        -              "headlines",
        -              "analystViews",
        -              "traderMembers",
        -              "changes"
        -            ],
        -            "type": "object"
        -          },
        -          "notice": {
        -            "const": "Research, not financial advice.",
        -            "type": "string"
        -          },
        -          "plan": {
        -            "enum": [
        -              "free_preview",
        -              "plus",
        -              "api_pro"
        -            ],
        -            "type": "string"
        -          },
        -          "preview": {
        -            "type": "boolean"
        -          },
        -          "requested": {
        -            "anyOf": [
        -              {
        -                "maximum": 9007199254740991,
        -                "minimum": 0,
        -                "type": "integer"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "sameAsSite": {
        -            "const": "Built from the reads kellian.app serves; the numbers match the market pages.",
        -            "type": "string"
        -          },
        -          "upgrade": {
        -            "type": [
        -              "string",
        -              "null"
        -            ]
        -          },
        -          "withheld": {
        -            "items": {
        -              "pattern": "^(?:[a-z][a-z0-9-]{0,31}:)?0x[0-9a-fA-F]{40}$",
        -              "type": "string"
        -            },
        -            "type": "array"
        -          }
        -        },
        -        "required": [
        -          "asOf",
        -          "plan",
        -          "preview",
        -          "requested",
        -          "count",
        -          "withheld",
        -          "limits",
        -          "locked",
        -          "upgrade",
        -          "sameAsSite",
        -          "notice",
        -          "affiliation"
        -        ],
        -        "type": "object"
        -      },
        -      "next": {
        -        "type": "string"
        -      },
        -      "nextCursor": {
        -        "anyOf": [
        -          {
        -            "maxLength": 512,
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "since": {
        -        "format": "date-time",
        -        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -        "type": "string"
        -      },
        -      "until": {
        -        "format": "date-time",
        -        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "since",
        -      "until",
        -      "changes",
        -      "counts",
        -      "next",
        -      "nextCursor",
        -      "meta"
        -    ],
        -    "type": "object"
        -  }
        -}
      • removedOutput schema / properties / result / $ref
        Removed value: -"#/$defs/ContextChangesResponse"
      • addedOutput schema / properties / result / anyOf
        Added value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "changes": {
        +        "items": {
        +          "oneOf": [
        +            {
        +              "additionalProperties": false,
        +              "properties": {
        +                "at": {
        +                  "format": "date-time",
        +                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                  "type": "string"
        +                },
        +                "headline": {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "outlet": {
        +                      "type": "string"
        +                    },
        +                    "publishedAt": {
        +                      "format": "date-time",
        +                      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                      "type": "string"
        +                    },
        +                    "title": {
        +                      "type": "string"
        +                    },
        +                    "url": {
        +                      "format": "uri",
        +                      "type": "string"
        +                    }
        +                  },
        +                  "required": [
        +                    "title",
        +                    "outlet",
        +                    "publishedAt",
        +                    "url"
        +                  ],
        +                  "type": "object"
        +                },
        +                "market": {
        +                  "pattern": "^(?:[a-z][a-z0-9-]{0,31}:)?0x[0-9a-fA-F]{40}$",
        +                  "type": "string"
        +                },
        +                "question": {
        +                  "type": "string"
        +                },
        +                "type": {
        +                  "const": "headline",
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "type",
        +                "at",
        +                "market",
        +                "question",
        +                "headline"
        +              ],
        +              "type": "object"
        +            },
        +            {
        +              "additionalProperties": false,
        +              "properties": {
        +                "at": {
        +                  "format": "date-time",
        +                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                  "type": "string"
        +                },
        +                "market": {
        +                  "pattern": "^(?:[a-z][a-z0-9-]{0,31}:)?0x[0-9a-fA-F]{40}$",
        +                  "type": "string"
        +                },
        +                "question": {
        +                  "type": "string"
        +                },
        +                "type": {
        +                  "const": "analyst_view",
        +                  "type": "string"
        +                },
        +                "view": {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "chance": {
        +                      "maximum": 1,
        +                      "minimum": 0,
        +                      "type": "number"
        +                    },
        +                    "name": {
        +                      "type": "string"
        +                    },
        +                    "priceAtTake": {
        +                      "maximum": 1,
        +                      "minimum": 0,
        +                      "type": "number"
        +                    },
        +                    "reason": {
        +                      "type": [
        +                        "string",
        +                        "null"
        +                      ]
        +                    }
        +                  },
        +                  "required": [
        +                    "name",
        +                    "chance",
        +                    "priceAtTake",
        +                    "reason"
        +                  ],
        +                  "type": "object"
        +                }
        +              },
        +              "required": [
        +                "type",
        +                "at",
        +                "market",
        +                "question",
        +                "view"
        +              ],
        +              "type": "object"
        +            },
        +            {
        +              "additionalProperties": false,
        +              "properties": {
        +                "at": {
        +                  "format": "date-time",
        +                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                  "type": "string"
        +                },
        +                "market": {
        +                  "pattern": "^(?:[a-z][a-z0-9-]{0,31}:)?0x[0-9a-fA-F]{40}$",
        +                  "type": "string"
        +                },
        +                "move": {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "action": {
        +                      "enum": [
        +                        "bought",
        +                        "sold"
        +                      ],
        +                      "type": "string"
        +                    },
        +                    "name": {
        +                      "type": "string"
        +                    },
        +                    "price": {
        +                      "anyOf": [
        +                        {
        +                          "maximum": 1,
        +                          "minimum": 0,
        +                          "type": "number"
        +                        },
        +                        {
        +                          "type": "null"
        +                        }
        +                      ]
        +                    },
        +                    "shares": {
        +                      "anyOf": [
        +                        {
        +                          "exclusiveMinimum": 0,
        +                          "type": "number"
        +                        },
        +                        {
        +                          "type": "null"
        +                        }
        +                      ]
        +                    },
        +                    "side": {
        +                      "enum": [
        +                        "outcome1",
        +                        "outcome2"
        +                      ],
        +                      "type": "string"
        +                    },
        +                    "smartMoneyTier": {
        +                      "anyOf": [
        +                        {
        +                          "const": 1,
        +                          "type": "number"
        +                        },
        +                        {
        +                          "const": 2,
        +                          "type": "number"
        +                        },
        +                        {
        +                          "const": 3,
        +                          "type": "number"
        +                        }
        +                      ]
        +                    },
        +                    "tier": {
        +                      "enum": [
        +                        "top",
        +                        "profitable"
        +                      ],
        +                      "type": "string"
        +                    },
        +                    "usd": {
        +                      "anyOf": [
        +                        {
        +                          "minimum": 0,
        +                          "type": "number"
        +                        },
        +                        {
        +                          "type": "null"
        +                        }
        +                      ]
        +                    },
        +                    "wallet": {
        +                      "pattern": "^0x[0-9a-f]{40}$",
        +                      "type": "string"
        +                    }
        +                  },
        +                  "required": [
        +                    "name",
        +                    "wallet",
        +                    "tier",
        +                    "action",
        +                    "side"
        +                  ],
        +                  "type": "object"
        +                },
        +                "question": {
        +                  "type": "string"
        +                },
        +                "type": {
        +                  "const": "trader_move",
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "type",
        +                "at",
        +                "market",
        +                "question",
        +                "move"
        +              ],
        +              "type": "object"
        +            },
        +            {
        +              "additionalProperties": false,
        +              "properties": {
        +                "at": {
        +                  "format": "date-time",
        +                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                  "type": "string"
        +                },
        +                "market": {
        +                  "pattern": "^(?:[a-z][a-z0-9-]{0,31}:)?0x[0-9a-fA-F]{40}$",
        +                  "type": "string"
        +                },
        +                "move": {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "from": {
        +                      "maximum": 1,
        +                      "minimum": 0,
        +                      "type": "number"
        +                    },
        +                    "over": {
        +                      "enum": [
        +                        "1h",
        +                        "24h"
        +                      ],
        +                      "type": "string"
        +                    },
        +                    "to": {
        +                      "maximum": 1,
        +                      "minimum": 0,
        +                      "type": "number"
        +                    }
        +                  },
        +                  "required": [
        +                    "from",
        +                    "to",
        +                    "over"
        +                  ],
        +                  "type": "object"
        +                },
        +                "question": {
        +                  "type": "string"
        +                },
        +                "type": {
        +                  "const": "price_move",
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "type",
        +                "at",
        +                "market",
        +                "question",
        +                "move"
        +              ],
        +              "type": "object"
        +            },
        +            {
        +              "additionalProperties": false,
        +              "properties": {
        +                "at": {
        +                  "format": "date-time",
        +                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                  "type": "string"
        +                },
        +                "chance": {
        +                  "anyOf": [
        +                    {
        +                      "maximum": 1,
        +                      "minimum": 0,
        +                      "type": "number"
        +                    },
        +                    {
        +                      "type": "null"
        +                    }
        +                  ]
        +                },
        +                "market": {
        +                  "pattern": "^(?:[a-z][a-z0-9-]{0,31}:)?0x[0-9a-fA-F]{40}$",
        +                  "type": "string"
        +                },
        +                "question": {
        +                  "type": "string"
        +                },
        +                "type": {
        +                  "const": "new_market",
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "type",
        +                "at",
        +                "market",
        +                "question",
        +                "chance"
        +              ],
        +              "type": "object"
        +            },
        +            {
        +              "additionalProperties": false,
        +              "properties": {
        +                "at": {
        +                  "format": "date-time",
        +                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                  "type": "string"
        +                },
        +                "chance": {
        +                  "anyOf": [
        +                    {
        +                      "maximum": 1,
        +                      "minimum": 0,
        +                      "type": "number"
        +                    },
        +                    {
        +                      "type": "null"
        +                    }
        +                  ]
        +                },
        +                "closes": {
        +                  "format": "date-time",
        +                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                  "type": "string"
        +                },
        +                "market": {
        +                  "pattern": "^(?:[a-z][a-z0-9-]{0,31}:)?0x[0-9a-fA-F]{40}$",
        +                  "type": "string"
        +                },
        +                "question": {
        +                  "type": "string"
        +                },
        +                "type": {
        +                  "const": "closing",
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "type",
        +                "at",
        +                "market",
        +                "question",
        +                "chance",
        +                "closes"
        +              ],
        +              "type": "object"
        +            }
        +          ]
        +        },
        +        "maxItems": 500,
        +        "type": "array"
        +      },
        +      "counts": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "analyst_view": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "closing": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "headline": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "new_market": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "price_move": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "trader_move": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          }
        +        },
        +        "required": [
        +          "headline",
        +          "analyst_view",
        +          "trader_move",
        +          "price_move",
        +          "new_market",
        +          "closing"
        +        ],
        +        "type": "object"
        +      },
        +      "meta": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "affiliation": {
        +            "const": "Kellian is not affiliated with Polymarket.",
        +            "type": "string"
        +          },
        +          "asOf": {
        +            "format": "date-time",
        +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +            "type": "string"
        +          },
        +          "count": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "limits": {
        +            "additionalProperties": false,
        +            "properties": {
        +              "analysts": {
        +                "enum": [
        +                  "average only",
        +                  "every analyst with reasons"
        +                ],
        +                "type": "string"
        +              },
        +              "callsLeftToday": {
        +                "maximum": 9007199254740991,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "callsPerDay": {
        +                "maximum": 9007199254740991,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "changeFeed": {
        +                "type": "boolean"
        +              },
        +              "headlinesPerMarket": {
        +                "maximum": 9007199254740991,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "marketsPerCall": {
        +                "maximum": 9007199254740991,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "topTraders": {
        +                "enum": [
        +                  "counts only",
        +                  "names, sides and moves"
        +                ],
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "marketsPerCall",
        +              "callsPerDay",
        +              "callsLeftToday",
        +              "headlinesPerMarket",
        +              "analysts",
        +              "topTraders",
        +              "changeFeed"
        +            ],
        +            "type": "object"
        +          },
        +          "locked": {
        +            "additionalProperties": false,
        +            "properties": {
        +              "analystViews": {
        +                "maximum": 9007199254740991,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "changes": {
        +                "maximum": 9007199254740991,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "headlines": {
        +                "maximum": 9007199254740991,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "markets": {
        +                "maximum": 9007199254740991,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "traderMembers": {
        +                "maximum": 9007199254740991,
        +                "minimum": 0,
        +                "type": "integer"
        +              }
        +            },
        +            "required": [
        +              "markets",
        +              "headlines",
        +              "analystViews",
        +              "traderMembers",
        +              "changes"
        +            ],
        +            "type": "object"
        +          },
        +          "notice": {
        +            "const": "Research, not financial advice.",
        +            "type": "string"
        +          },
        +          "plan": {
        +            "enum": [
        +              "free_preview",
        +              "plus",
        +              "api_pro"
        +            ],
        +            "type": "string"
        +          },
        +          "preview": {
        +            "type": "boolean"
        +          },
        +          "requested": {
        +            "anyOf": [
        +              {
        +                "maximum": 9007199254740991,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "sameAsSite": {
        +            "const": "Built from the reads kellian.app serves; the numbers match the market pages.",
        +            "type": "string"
        +          },
        +          "upgrade": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "withheld": {
        +            "items": {
        +              "pattern": "^(?:[a-z][a-z0-9-]{0,31}:)?0x[0-9a-fA-F]{40}$",
        +              "type": "string"
        +            },
        +            "type": "array"
        +          }
        +        },
        +        "required": [
        +          "asOf",
        +          "plan",
        +          "preview",
        +          "requested",
        +          "count",
        +          "withheld",
        +          "limits",
        +          "locked",
        +          "upgrade",
        +          "sameAsSite",
        +          "notice",
        +          "affiliation"
        +        ],
        +        "type": "object"
        +      },
        +      "next": {
        +        "type": "string"
        +      },
        +      "nextCursor": {
        +        "anyOf": [
        +          {
        +            "maxLength": 512,
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "since": {
        +        "format": "date-time",
        +        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +        "type": "string"
        +      },
        +      "until": {
        +        "format": "date-time",
        +        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "since",
        +      "until",
        +      "changes",
        +      "counts",
        +      "next",
        +      "nextCursor",
        +      "meta"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "changes": {
        +        "items": {
        +          "oneOf": [
        +            {
        +              "additionalProperties": false,
        +              "properties": {
        +                "at": {
        +                  "format": "date-time",
        +                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                  "type": "string"
        +                },
        +                "market": {
        +                  "pattern": "^(?:[a-z][a-z0-9-]{0,31}:)?0x[0-9a-fA-F]{40}$",
        +                  "type": "string"
        +                },
        +                "type": {
        +                  "const": "headline",
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "type",
        +                "at",
        +                "market"
        +              ],
        +              "type": "object"
        +            },
        +            {
        +              "additionalProperties": false,
        +              "properties": {
        +                "at": {
        +                  "format": "date-time",
        +                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                  "type": "string"
        +                },
        +                "chance": {
        +                  "maximum": 1,
        +                  "minimum": 0,
        +                  "type": "number"
        +                },
        +                "market": {
        +                  "pattern": "^(?:[a-z][a-z0-9-]{0,31}:)?0x[0-9a-fA-F]{40}$",
        +                  "type": "string"
        +                },
        +                "type": {
        +                  "const": "analyst_view",
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "type",
        +                "at",
        +                "market",
        +                "chance"
        +              ],
        +              "type": "object"
        +            },
        +            {
        +              "additionalProperties": false,
        +              "properties": {
        +                "action": {
        +                  "enum": [
        +                    "bought",
        +                    "sold"
        +                  ],
        +                  "type": "string"
        +                },
        +                "at": {
        +                  "format": "date-time",
        +                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                  "type": "string"
        +                },
        +                "market": {
        +                  "pattern": "^(?:[a-z][a-z0-9-]{0,31}:)?0x[0-9a-fA-F]{40}$",
        +                  "type": "string"
        +                },
        +                "side": {
        +                  "enum": [
        +                    "outcome1",
        +                    "outcome2"
        +                  ],
        +                  "type": "string"
        +                },
        +                "tier": {
        +                  "anyOf": [
        +                    {
        +                      "const": 1,
        +                      "type": "number"
        +                    },
        +                    {
        +                      "const": 2,
        +                      "type": "number"
        +                    },
        +                    {
        +                      "const": 3,
        +                      "type": "number"
        +                    }
        +                  ]
        +                },
        +                "type": {
        +                  "const": "trader_move",
        +                  "type": "string"
        +                },
        +                "usd": {
        +                  "anyOf": [
        +                    {
        +                      "minimum": 0,
        +                      "type": "number"
        +                    },
        +                    {
        +                      "type": "null"
        +                    }
        +                  ]
        +                }
        +              },
        +              "required": [
        +                "type",
        +                "at",
        +                "market",
        +                "action",
        +                "side",
        +                "tier",
        +                "usd"
        +              ],
        +              "type": "object"
        +            },
        +            {
        +              "additionalProperties": false,
        +              "properties": {
        +                "at": {
        +                  "format": "date-time",
        +                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                  "type": "string"
        +                },
        +                "from": {
        +                  "maximum": 1,
        +                  "minimum": 0,
        +                  "type": "number"
        +                },
        +                "market": {
        +                  "pattern": "^(?:[a-z][a-z0-9-]{0,31}:)?0x[0-9a-fA-F]{40}$",
        +                  "type": "string"
        +                },
        +                "over": {
        +                  "enum": [
        +                    "1h",
        +                    "24h"
        +                  ],
        +                  "type": "string"
        +                },
        +                "to": {
        +                  "maximum": 1,
        +                  "minimum": 0,
        +                  "type": "number"
        +                },
        +                "type": {
        +                  "const": "price_move",
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "type",
        +                "at",
        +                "market",
        +                "from",
        +                "to",
        +                "over"
        +              ],
        +              "type": "object"
        +            },
        +            {
        +              "additionalProperties": false,
        +              "properties": {
        +                "at": {
        +                  "format": "date-time",
        +                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                  "type": "string"
        +                },
        +                "market": {
        +                  "pattern": "^(?:[a-z][a-z0-9-]{0,31}:)?0x[0-9a-fA-F]{40}$",
        +                  "type": "string"
        +                },
        +                "type": {
        +                  "const": "new_market",
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "type",
        +                "at",
        +                "market"
        +              ],
        +              "type": "object"
        +            },
        +            {
        +              "additionalProperties": false,
        +              "properties": {
        +                "at": {
        +                  "format": "date-time",
        +                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                  "type": "string"
        +                },
        +                "closes": {
        +                  "format": "date-time",
        +                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                  "type": "string"
        +                },
        +                "market": {
        +                  "pattern": "^(?:[a-z][a-z0-9-]{0,31}:)?0x[0-9a-fA-F]{40}$",
        +                  "type": "string"
        +                },
        +                "type": {
        +                  "const": "closing",
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "type",
        +                "at",
        +                "market",
        +                "closes"
        +              ],
        +              "type": "object"
        +            }
        +          ]
        +        },
        +        "maxItems": 150,
        +        "type": "array"
        +      },
        +      "counts": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "analyst_view": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "closing": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "headline": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "new_market": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "price_move": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "trader_move": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          }
        +        },
        +        "required": [
        +          "headline",
        +          "analyst_view",
        +          "trader_move",
        +          "price_move",
        +          "new_market",
        +          "closing"
        +        ],
        +        "type": "object"
        +      },
        +      "markets": {
        +        "additionalProperties": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "chance": {
        +              "anyOf": [
        +                {
        +                  "maximum": 1,
        +                  "minimum": 0,
        +                  "type": "number"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "conditionId": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "freshBuys": {
        +              "anyOf": [
        +                {
        +                  "items": {
        +                    "maximum": 9007199254740991,
        +                    "minimum": 0,
        +                    "type": "integer"
        +                  },
        +                  "maxItems": 2,
        +                  "minItems": 2,
        +                  "type": "array"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "move24h": {
        +              "anyOf": [
        +                {
        +                  "maximum": 1,
        +                  "minimum": -1,
        +                  "type": "number"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "question": {
        +              "type": "string"
        +            },
        +            "smartMoney": {
        +              "anyOf": [
        +                {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "tier1": {
        +                      "items": {
        +                        "maximum": 9007199254740991,
        +                        "minimum": 0,
        +                        "type": "integer"
        +                      },
        +                      "maxItems": 2,
        +                      "minItems": 2,
        +                      "type": "array"
        +                    },
        +                    "tier2": {
        +                      "items": {
        +                        "maximum": 9007199254740991,
        +                        "minimum": 0,
        +                        "type": "integer"
        +                      },
        +                      "maxItems": 2,
        +                      "minItems": 2,
        +                      "type": "array"
        +                    },
        +                    "tier3": {
        +                      "items": {
        +                        "maximum": 9007199254740991,
        +                        "minimum": 0,
        +                        "type": "integer"
        +                      },
        +                      "maxItems": 2,
        +                      "minItems": 2,
        +                      "type": "array"
        +                    }
        +                  },
        +                  "required": [
        +                    "tier1",
        +                    "tier2",
        +                    "tier3"
        +                  ],
        +                  "type": "object"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            }
        +          },
        +          "required": [
        +            "question",
        +            "chance",
        +            "move24h",
        +            "conditionId",
        +            "smartMoney",
        +            "freshBuys"
        +          ],
        +          "type": "object"
        +        },
        +        "propertyNames": {
        +          "pattern": "^(?:[a-z][a-z0-9-]{0,31}:)?0x[0-9a-fA-F]{40}$",
        +          "type": "string"
        +        },
        +        "type": "object"
        +      },
        +      "meta": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "asOf": {
        +            "format": "date-time",
        +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +            "type": "string"
        +          },
        +          "callsLeftToday": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "count": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "locked": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "plan": {
        +            "enum": [
        +              "free_preview",
        +              "plus",
        +              "api_pro"
        +            ],
        +            "type": "string"
        +          },
        +          "preview": {
        +            "type": "boolean"
        +          },
        +          "requested": {
        +            "anyOf": [
        +              {
        +                "maximum": 9007199254740991,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "withheld": {
        +            "items": {
        +              "pattern": "^(?:[a-z][a-z0-9-]{0,31}:)?0x[0-9a-fA-F]{40}$",
        +              "type": "string"
        +            },
        +            "type": "array"
        +          }
        +        },
        +        "required": [
        +          "asOf",
        +          "plan",
        +          "preview",
        +          "count",
        +          "callsLeftToday",
        +          "requested",
        +          "withheld",
        +          "locked"
        +        ],
        +        "type": "object"
        +      },
        +      "next": {
        +        "type": "string"
        +      },
        +      "nextCursor": {
        +        "anyOf": [
        +          {
        +            "maxLength": 512,
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "since": {
        +        "format": "date-time",
        +        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +        "type": "string"
        +      },
        +      "until": {
        +        "format": "date-time",
        +        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +        "type": "string"
        +      },
        +      "view": {
        +        "const": "compact",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "view",
        +      "since",
        +      "until",
        +      "changes",
        +      "markets",
        +      "counts",
        +      "next",
        +      "nextCursor",
        +      "meta"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Addedproblee_get_forecaster
    • Changedproblee_get_market_resolution_state1 field changed
      • changedOutput schema / $defs / DiscoverResolutionStateResponse / properties / disputeAction / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "bondToken": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "address": {
        -            "$ref": "#/$defs/EvmAddress"
        -          },
        -          "chainId": {
        -            "$ref": "#/$defs/ChainId"
        -          },
        -          "decimals": {
        -            "exclusiveMinimum": 0,
        -            "maximum": 9007199254740991,
        -            "type": "integer"
        -          },
        -          "symbol": {
        -            "minLength": 1,
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "symbol",
        -          "address",
        -          "decimals",
        -          "chainId"
        -        ],
        -        "type": "object"
        -      },
        -      "challengerBondWei": {
        -        "$ref": "#/$defs/WeiString"
        -      },
        -      "confirmation": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "endpoint": {
        -            "const": "/api/agent/v1/resolve/challenge",
        -            "type": "string"
        -          },
        -          "method": {
        -            "const": "POST",
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "endpoint",
        -          "method"
        -        ],
        -        "type": "object"
        -      },
        -      "currentRound": {
        -        "maximum": 9007199254740991,
        -        "minimum": 0,
        -        "type": "integer"
        -      },
        -      "livenessEndsAt": {
        -        "format": "date-time",
        -        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -        "type": "string"
        -      },
        -      "preparation": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "endpoint": {
        -            "const": "/api/agent/v1/resolve/challenge/prepare",
        -            "type": "string"
        -          },
        -          "method": {
        -            "const": "POST",
        -            "type": "string"
        -          },
        -          "options": {
        -            "additionalProperties": false,
        -            "properties": {
        -              "counterOutcomeOptions": {
        -                "items": {
        -                  "anyOf": [
        -                    {
        -                      "const": 1,
        -                      "type": "number"
        -                    },
        -                    {
        -                      "const": 2,
        -                      "type": "number"
        -                    },
        -                    {
        -                      "const": 3,
        -                      "type": "number"
        -                    }
        -                  ]
        -                },
        -                "minItems": 1,
        -                "type": "array"
        -              },
        -              "market": {
        -                "$ref": "#/$defs/EvmAddress"
        -              }
        -            },
        -            "required": [
        -              "market",
        -              "counterOutcomeOptions"
        -            ],
        -            "type": "object"
        -          },
        -          "requiredInput": {
        -            "items": false,
        -            "maxItems": 3,
        -            "minItems": 3,
        -            "prefixItems": [
        -              {
        -                "const": "marketAddress",
        -                "type": "string"
        -              },
        -              {
        -                "const": "counterOutcome",
        -                "type": "string"
        -              },
        -              {
        -                "const": "evidenceHash",
        -                "type": "string"
        -              }
        -            ],
        -            "type": "array"
        -          }
        -        },
        -        "required": [
        -          "endpoint",
        -          "method",
        -          "requiredInput",
        -          "options"
        -        ],
        -        "type": "object"
        -      },
        -      "proposedOutcome": {
        -        "anyOf": [
        -          {
        -            "const": 0,
        -            "type": "number"
        -          },
        -          {
        -            "const": 1,
        -            "type": "number"
        -          },
        -          {
        -            "const": 2,
        -            "type": "number"
        -          },
        -          {
        -            "const": 3,
        -            "type": "number"
        -          }
        -        ]
        -      },
        -      "proposerBondWei": {
        -        "$ref": "#/$defs/WeiString"
        -      }
        -    },
        -    "required": [
        -      "proposedOutcome",
        -      "livenessEndsAt",
        -      "currentRound",
        -      "proposerBondWei",
        -      "challengerBondWei",
        -      "bondToken",
        -      "preparation",
        -      "confirmation"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "bondToken": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "address": {
        +            "$ref": "#/$defs/EvmAddress"
        +          },
        +          "chainId": {
        +            "$ref": "#/$defs/ChainId"
        +          },
        +          "decimals": {
        +            "exclusiveMinimum": 0,
        +            "maximum": 9007199254740991,
        +            "type": "integer"
        +          },
        +          "symbol": {
        +            "minLength": 1,
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "symbol",
        +          "address",
        +          "decimals",
        +          "chainId"
        +        ],
        +        "type": "object"
        +      },
        +      "challengerBondWei": {
        +        "$ref": "#/$defs/WeiString"
        +      },
        +      "confirmation": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "endpoint": {
        +            "const": "/api/agent/v1/resolve/challenge",
        +            "type": "string"
        +          },
        +          "method": {
        +            "const": "POST",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "endpoint",
        +          "method"
        +        ],
        +        "type": "object"
        +      },
        +      "currentRound": {
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "livenessEndsAt": {
        +        "format": "date-time",
        +        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +        "type": "string"
        +      },
        +      "preparation": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "endpoint": {
        +            "const": "/api/agent/v1/resolve/challenge/prepare",
        +            "type": "string"
        +          },
        +          "method": {
        +            "const": "POST",
        +            "type": "string"
        +          },
        +          "options": {
        +            "additionalProperties": false,
        +            "properties": {
        +              "counterOutcomeOptions": {
        +                "items": {
        +                  "anyOf": [
        +                    {
        +                      "const": 1,
        +                      "type": "number"
        +                    },
        +                    {
        +                      "const": 2,
        +                      "type": "number"
        +                    },
        +                    {
        +                      "const": 3,
        +                      "type": "number"
        +                    }
        +                  ]
        +                },
        +                "minItems": 1,
        +                "type": "array"
        +              },
        +              "market": {
        +                "$ref": "#/$defs/EvmAddress"
        +              }
        +            },
        +            "required": [
        +              "market",
        +              "counterOutcomeOptions"
        +            ],
        +            "type": "object"
        +          },
        +          "requiredInput": {
        +            "maxItems": 3,
        +            "minItems": 3,
        +            "prefixItems": [
        +              {
        +                "const": "marketAddress",
        +                "type": "string"
        +              },
        +              {
        +                "const": "counterOutcome",
        +                "type": "string"
        +              },
        +              {
        +                "const": "evidenceHash",
        +                "type": "string"
        +              }
        +            ],
        +            "type": "array"
        +          }
        +        },
        +        "required": [
        +          "endpoint",
        +          "method",
        +          "requiredInput",
        +          "options"
        +        ],
        +        "type": "object"
        +      },
        +      "proposedOutcome": {
        +        "anyOf": [
        +          {
        +            "const": 0,
        +            "type": "number"
        +          },
        +          {
        +            "const": 1,
        +            "type": "number"
        +          },
        +          {
        +            "const": 2,
        +            "type": "number"
        +          },
        +          {
        +            "const": 3,
        +            "type": "number"
        +          }
        +        ]
        +      },
        +      "proposerBondWei": {
        +        "$ref": "#/$defs/WeiString"
        +      }
        +    },
        +    "required": [
        +      "proposedOutcome",
        +      "livenessEndsAt",
        +      "currentRound",
        +      "proposerBondWei",
        +      "challengerBondWei",
        +      "bondToken",
        +      "preparation",
        +      "confirmation"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Addedproblee_get_smart_money
    • Changedproblee_list_event_types1 field changed
      • changedOutput schema / $defs / EventsTypesResponse / properties / types / items / properties / transports / properties / webhook / anyOf
        Previous value: -[
        -  {
        -    "enum": [
        -      "market.resolution_due",
        -      "market.resolved",
        -      "trade.executed",
        -      "trade.intent.created",
        -      "trade.submitted",
        -      "trade.indexed",
        -      "trade.failed",
        -      "execution.report",
        -      "market.live",
        -      "market.cancelled",
        -      "market.challengeWindowOpened",
        -      "market.voteOpened",
        -      "market.voteClosed",
        -      "market.disputed",
        -      "market.disputeFinalized",
        -      "market.councilReview"
        -    ],
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "enum": [
        +      "market.resolution_due",
        +      "market.resolved",
        +      "trade.executed",
        +      "trade.intent.created",
        +      "trade.submitted",
        +      "trade.indexed",
        +      "trade.failed",
        +      "execution.report",
        +      "market.live",
        +      "market.cancelled",
        +      "market.challengeWindowOpened",
        +      "market.voteOpened",
        +      "market.voteClosed",
        +      "market.disputed",
        +      "market.disputeFinalized",
        +      "market.councilReview",
        +      "alert.fired"
        +    ],
        +    "type": "string",
        +    "x-extensible-enum": true
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedproblee_list_webhook_event_types2 fields changed
      • changedOutput schema / $defs / WebhookEventCatalogResponse / properties / events / items / properties / name / enum
        Previous value: -[
        -  "market.resolution_due",
        -  "market.resolved",
        -  "trade.executed",
        -  "trade.intent.created",
        -  "trade.submitted",
        -  "trade.indexed",
        -  "trade.failed",
        -  "execution.report",
        -  "market.live",
        -  "market.cancelled",
        -  "market.challengeWindowOpened",
        -  "market.voteOpened",
        -  "market.voteClosed",
        -  "market.disputed",
        -  "market.disputeFinalized",
        -  "market.councilReview"
        -]New value: +[
        +  "market.resolution_due",
        +  "market.resolved",
        +  "trade.executed",
        +  "trade.intent.created",
        +  "trade.submitted",
        +  "trade.indexed",
        +  "trade.failed",
        +  "execution.report",
        +  "market.live",
        +  "market.cancelled",
        +  "market.challengeWindowOpened",
        +  "market.voteOpened",
        +  "market.voteClosed",
        +  "market.disputed",
        +  "market.disputeFinalized",
        +  "market.councilReview",
        +  "alert.fired"
        +]
      • addedOutput schema / $defs / WebhookEventCatalogResponse / properties / events / items / properties / name / x-extensible-enum
        Added value: +true
  9. 1 tool update
    • Addedproblee_get_forecaster_record
  10. 1 tool update
    • Changedproblee_get_market_research1 field changed
      • addedOutput schema / $defs / MarketResearch / properties / watchOut
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
  11. 3 tool updates
    • Changedproblee_get_market1 field changed
      • changedOutput schema / $defs / ErrorReason / enum
        Previous value: -[
        -  "AUTH_REQUIRED",
        -  "WALLET_AUTH_REQUIRED",
        -  "WALLET_AUTH_INVALID",
        -  "INSUFFICIENT_TIER",
        -  "FORBIDDEN",
        -  "FEATURE_DISABLED",
        -  "SERVICE_UNAVAILABLE_IN_REGION",
        -  "NOT_ORB_VERIFIED",
        -  "NOT_AUTHORIZED",
        -  "NOT_MARKET_CREATOR",
        -  "CALLER_NOT_CREATOR",
        -  "AGENT_WALLET_CANNOT_VOTE",
        -  "WALLET_REQUIRED",
        -  "EMAIL_NOT_VERIFIED",
        -  "EMAIL_ALREADY_REGISTERED",
        -  "WALLET_ADDRESS_MISMATCH",
        -  "WALLET_PARAM_NOT_ALLOWED",
        -  "OWNER_ID_MISMATCH",
        -  "OWNERSHIP_MISMATCH",
        -  "OWNERSHIP_PROOF_REQUIRED",
        -  "WALLET_MISMATCH",
        -  "KEY_LIMIT_REACHED",
        -  "SCOPE_WIDENING_DENIED",
        -  "INVALID_REQUEST",
        -  "INVALID_PAYLOAD",
        -  "INVALID_QUERY",
        -  "INVALID_HEADER",
        -  "MISSING_FIELDS",
        -  "INVALID_ID",
        -  "INVALID_SCOPES",
        -  "INVALID_SPENDING_LIMIT",
        -  "INVALID_EXPIRES_AT",
        -  "INVALID_WEBHOOK_URL",
        -  "WEBHOOK_LIMIT_REACHED",
        -  "KEY_ALREADY_REVOKED",
        -  "MARKET_ID_REQUIRED",
        -  "INVALID_OUTCOME",
        -  "INVALID_CHAIN",
        -  "INVALID_COLLATERAL",
        -  "MISSING_COLLATERAL",
        -  "INVALID_QUESTION",
        -  "QUESTION_TOO_LONG",
        -  "INVALID_SNAPSHOT",
        -  "BATCH_TOO_LARGE",
        -  "MAX_DEPTH_EXCEEDED",
        -  "AMOUNT_ABOVE_MAXIMUM",
        -  "AMOUNT_BELOW_MINIMUM",
        -  "AMOUNT_BELOW_MINIMUM_FILL",
        -  "AMOUNT_NOT_MULTIPLE",
        -  "PRICE_OFF_TICK",
        -  "ORDER_EXPIRY_TOO_SOON",
        -  "BELOW_MINIMUM",
        -  "OUTCOME_UNKNOWN",
        -  "NOT_TWO_OUTCOMES",
        -  "EXPIRY_TOO_SOON",
        -  "MARKET_UNAVAILABLE",
        -  "TRADING_ENDED",
        -  "NO_LIQUIDITY",
        -  "INSUFFICIENT_BALANCE",
        -  "PAYLOAD_TOO_LARGE",
        -  "PRIVATE_MARKET",
        -  "INVALID_MARKET_REQUIRED",
        -  "INVALID_MARKET_PAIR",
        -  "PREFLIGHT_FAILED",
        -  "PROPOSAL_FAILED",
        -  "ACCEPT_FAILED",
        -  "REJECT_FAILED",
        -  "CONTENT_BLOCKED",
        -  "SECURITY_RISK_BLOCKED",
        -  "NO_PENDING_FEES",
        -  "BAD_REQUEST",
        -  "CORS_REJECTED",
        -  "UNSUPPORTED_CHAIN",
        -  "WORLD_ID_VERIFICATION_FAILED",
        -  "REVOCATION_REQUIRES_ROOT",
        -  "RECOVERY_REQUIRES_ROOT",
        -  "IDENTITY_ALREADY_ENROLLED",
        -  "RECOVERY_NOT_CONFIGURED",
        -  "RECOVERY_KEY_INVALID",
        -  "WORLD_ID_REVERIFICATION_REQUIRED",
        -  "ROOT_RECOVERY_COOLDOWN",
        -  "NOT_FOUND",
        -  "MARKET_NOT_FOUND",
        -  "MARKET_PRIOR_RELEASE",
        -  "AGENT_NOT_FOUND",
        -  "CHAIN_NOT_FOUND",
        -  "PARENT_NOT_FOUND",
        -  "FACTORY_NOT_DEPLOYED",
        -  "KEY_NOT_FOUND",
        -  "API_KEY_NOT_FOUND",
        -  "WEBHOOK_NOT_FOUND",
        -  "BUILDER_ID_NOT_FOUND",
        -  "NO_API_KEYS",
        -  "SEASON_NOT_FOUND",
        -  "COHORT_NOT_FOUND",
        -  "MARKET_CLOSED",
        -  "MARKET_NOT_OPEN_YET",
        -  "NOT_RESOLVABLE_YET",
        -  "EXPIRED_TOKEN",
        -  "ENDPOINT_RETIRED",
        -  "CONFLICT",
        -  "HEARTBEAT_SESSION_CONFLICT",
        -  "HEARTBEAT_SESSION_REVISION_EXHAUSTED",
        -  "SEASON_STATE_CONFLICT",
        -  "MARKET_NOT_LIVE",
        -  "MARKET_NOT_RESOLVED",
        -  "CONTENT_SEALED",
        -  "TIMING_SEALED",
        -  "STALE_UPDATE",
        -  "ALREADY_RESOLVED",
        -  "CREATOR_WINDOW_ELAPSED",
        -  "RELAY_REVERTED",
        -  "HUMAN_VOTE_ACTIVE",
        -  "CHALLENGE_WINDOW_CLOSED",
        -  "COUNCIL_REVIEW_ACTIVE",
        -  "MARKET_NOT_PENDING_RESOLUTION",
        -  "ALREADY_SWEPT",
        -  "SWEEP_IN_PROGRESS",
        -  "DUPLICATE_CONTENT",
        -  "AGENT_ALREADY_EXISTS",
        -  "NAME_TAKEN",
        -  "AMBIGUOUS_MARKET_ADDRESS",
        -  "IDEMPOTENCY_KEY_CONFLICT",
        -  "NONCE_REUSED",
        -  "KEY_GENERATION_CONFLICT",
        -  "MARKET_INSOLVENT",
        -  "SLIPPAGE_EXCEEDED",
        -  "INSUFFICIENT_ALLOWANCE",
        -  "OPERATOR_APPROVAL_REQUIRED",
        -  "INSUFFICIENT_DEPOSIT",
        -  "INSUFFICIENT_PULL",
        -  "SALE_PAUSED",
        -  "SALE_INVENTORY_SHORT",
        -  "QUOTE_MISMATCH",
        -  "INSUFFICIENT_PAYMENT_BALANCE",
        -  "PURCHASE_NOT_A_BUNDLE",
        -  "PURCHASE_CAP_EXCEEDED",
        -  "FILL_ALLOWANCE_EXHAUSTED",
        -  "SPONSORED_TRADING_PAUSED",
        -  "PASSKEY_REQUIRED",
        -  "ACCOUNT_RESTRICTED",
        -  "NOT_VERIFIED",
        -  "STAKE_REQUIRED",
        -  "STAKE_INTENT_INVALID",
        -  "INSUFFICIENT_PM_FOR_VOTE_STAKE",
        -  "STAKE_PULL_FAILED",
        -  "VERIFIED_HUMAN_REQUIRED",
        -  "CREATION_SLOTS_FULL",
        -  "CREATOR_NOT_ADMITTED",
        -  "CREATOR_CAPACITY_REACHED",
        -  "REPUTATION_TOO_LOW",
        -  "CONCURRENT_LIMIT_REACHED",
        -  "LIFETIME_LIMIT_REACHED",
        -  "CREATION_COOLDOWN_ACTIVE",
        -  "SEED_LIMIT_EXCEEDED",
        -  "DURATION_OUT_OF_RANGE",
        -  "ACTIVE_VERIFIED_IDENTITY_REQUIRED",
        -  "CURRENT_IDENTITY_MEMBERSHIP_REQUIRED",
        -  "AGENT_OPERATING_WALLET_NOT_LINKED",
        -  "IDENTITY_INTEGRITY_UNKNOWN",
        -  "PARTICIPATION_RELEASE_NOT_DEPLOYED",
        -  "PARTICIPATION_RELEASE_ROUTE_NOT_DEPLOYED",
        -  "PARTICIPATION_PROFILE_MISMATCH",
        -  "PARTICIPATION_RELEASE_INACTIVE",
        -  "PARTICIPATION_DISTRIBUTION_PAUSED",
        -  "PARTICIPATION_MONEY_PATH_INCOMPLETE",
        -  "PARTICIPATION_LEDGER_ACCOUNTING_INVALID",
        -  "PARTICIPATION_ROUTE_DEGRADED",
        -  "PARTICIPATION_ROUTE_QUARANTINED",
        -  "PARTICIPATION_INVENTORY_LOW",
        -  "NO_PARTICIPATION_RELEASE_CREDITS",
        -  "NEW_PARTICIPATION_RELEASE_UNITS_EXHAUSTED",
        -  "PARTICIPATION_CLAIM_CADENCE_ACTIVE",
        -  "PARTICIPATION_IDENTITY_ATTESTATION_REQUIRED",
        -  "PARTICIPATION_DISTRIBUTION_ZERO_DELTA",
        -  "PARTICIPATION_DISTRIBUTION_ALREADY_PREPARED",
        -  "PARTICIPATION_DISTRIBUTION_RECIPIENT_STALE",
        -  "PARTICIPATION_DISTRIBUTION_VOUCHER_EXPIRED",
        -  "PARTICIPATION_DISTRIBUTION_EVENT_MISMATCH",
        -  "PARTICIPATION_DISTRIBUTION_FINALITY_PENDING",
        -  "RATE_LIMITED",
        -  "INTERNAL_ERROR",
        -  "SERVICE_UNAVAILABLE",
        -  "ELIGIBILITY_UNDETERMINED",
        -  "COLLATERAL_CONFIGURATION_MISMATCH",
        -  "QUOTE_STATE_UNAVAILABLE",
        -  "PROTOCOL_UNAVAILABLE",
        -  "PROTOCOL_PAUSED",
        -  "VENUE_HALTED",
        -  "EMBED_ATTRIBUTION_UNAVAILABLE",
        -  "QUOTE_FAILED",
        -  "INVALID_MARKET_STATE",
        -  "MATH_OVERFLOW",
        -  "UNKNOWN_CONTRACT_ERROR",
        -  "DEADLINE_EXPIRED",
        -  "ZERO_INPUT",
        -  "ZERO_NET_INPUT",
        -  "ZERO_DELTA",
        -  "INVALID_MARKET",
        -  "INVALID_TOKEN",
        -  "NATIVE_ROUTE_UNAVAILABLE",
        -  "POST_ONLY_WOULD_CROSS",
        -  "FOK_UNFILLABLE",
        -  "CLORDID_CONFLICT",
        -  "QUOTE_SET_INVALID",
        -  "QUOTE_GENERATION_STALE",
        -  "ORDER_IN_FLIGHT",
        -  "MAKER_NOT_EXECUTABLE",
        -  "LIQUIDITY_CHANGED",
        -  "CANCELLATION_EVENT_NOT_FOUND",
        -  "CANCELLATION_EVENT_MISMATCH",
        -  "INVALID_NONCE_FLOOR",
        -  "NONCE_INVALIDATION_EVENT_NOT_FOUND",
        -  "NONCE_INVALIDATION_EVENT_MISMATCH",
        -  "INVALID_TX_HASH"
        -]New value: +[
        +  "AUTH_REQUIRED",
        +  "WALLET_AUTH_REQUIRED",
        +  "WALLET_AUTH_INVALID",
        +  "INSUFFICIENT_TIER",
        +  "FORBIDDEN",
        +  "FEATURE_DISABLED",
        +  "SERVICE_UNAVAILABLE_IN_REGION",
        +  "NOT_ORB_VERIFIED",
        +  "NOT_AUTHORIZED",
        +  "NOT_MARKET_CREATOR",
        +  "CALLER_NOT_CREATOR",
        +  "AGENT_WALLET_CANNOT_VOTE",
        +  "WALLET_REQUIRED",
        +  "EMAIL_NOT_VERIFIED",
        +  "EMAIL_ALREADY_REGISTERED",
        +  "WALLET_ADDRESS_MISMATCH",
        +  "WALLET_PARAM_NOT_ALLOWED",
        +  "OWNER_ID_MISMATCH",
        +  "OWNERSHIP_MISMATCH",
        +  "OWNERSHIP_PROOF_REQUIRED",
        +  "WALLET_MISMATCH",
        +  "KEY_LIMIT_REACHED",
        +  "SCOPE_WIDENING_DENIED",
        +  "INVALID_REQUEST",
        +  "INVALID_PAYLOAD",
        +  "INVALID_QUERY",
        +  "INVALID_HEADER",
        +  "MISSING_FIELDS",
        +  "INVALID_ID",
        +  "INVALID_SCOPES",
        +  "INVALID_SPENDING_LIMIT",
        +  "INVALID_EXPIRES_AT",
        +  "INVALID_WEBHOOK_URL",
        +  "WEBHOOK_LIMIT_REACHED",
        +  "KEY_ALREADY_REVOKED",
        +  "MARKET_ID_REQUIRED",
        +  "INVALID_OUTCOME",
        +  "INVALID_CHAIN",
        +  "INVALID_COLLATERAL",
        +  "MISSING_COLLATERAL",
        +  "INVALID_QUESTION",
        +  "QUESTION_TOO_LONG",
        +  "INVALID_SNAPSHOT",
        +  "BATCH_TOO_LARGE",
        +  "MAX_DEPTH_EXCEEDED",
        +  "AMOUNT_ABOVE_MAXIMUM",
        +  "AMOUNT_BELOW_MINIMUM",
        +  "AMOUNT_BELOW_MINIMUM_FILL",
        +  "AMOUNT_NOT_MULTIPLE",
        +  "PRICE_OFF_TICK",
        +  "ORDER_EXPIRY_TOO_SOON",
        +  "BELOW_MINIMUM",
        +  "OUTCOME_UNKNOWN",
        +  "NOT_TWO_OUTCOMES",
        +  "EXPIRY_TOO_SOON",
        +  "MARKET_UNAVAILABLE",
        +  "TRADING_ENDED",
        +  "NO_LIQUIDITY",
        +  "INSUFFICIENT_BALANCE",
        +  "PAYLOAD_TOO_LARGE",
        +  "PRIVATE_MARKET",
        +  "INVALID_MARKET_REQUIRED",
        +  "INVALID_MARKET_PAIR",
        +  "PREFLIGHT_FAILED",
        +  "PROPOSAL_FAILED",
        +  "ACCEPT_FAILED",
        +  "REJECT_FAILED",
        +  "CONTENT_BLOCKED",
        +  "SECURITY_RISK_BLOCKED",
        +  "NO_PENDING_FEES",
        +  "BAD_REQUEST",
        +  "CORS_REJECTED",
        +  "UNSUPPORTED_CHAIN",
        +  "WORLD_ID_VERIFICATION_FAILED",
        +  "REVOCATION_REQUIRES_ROOT",
        +  "RECOVERY_REQUIRES_ROOT",
        +  "IDENTITY_ALREADY_ENROLLED",
        +  "RECOVERY_NOT_CONFIGURED",
        +  "RECOVERY_KEY_INVALID",
        +  "WORLD_ID_REVERIFICATION_REQUIRED",
        +  "ROOT_RECOVERY_COOLDOWN",
        +  "NOT_FOUND",
        +  "MARKET_NOT_FOUND",
        +  "MARKET_PRIOR_RELEASE",
        +  "AGENT_NOT_FOUND",
        +  "CHAIN_NOT_FOUND",
        +  "PARENT_NOT_FOUND",
        +  "FACTORY_NOT_DEPLOYED",
        +  "KEY_NOT_FOUND",
        +  "API_KEY_NOT_FOUND",
        +  "WEBHOOK_NOT_FOUND",
        +  "BUILDER_ID_NOT_FOUND",
        +  "NO_API_KEYS",
        +  "SEASON_NOT_FOUND",
        +  "COHORT_NOT_FOUND",
        +  "MARKET_CLOSED",
        +  "MARKET_NOT_OPEN_YET",
        +  "NOT_RESOLVABLE_YET",
        +  "EXPIRED_TOKEN",
        +  "ENDPOINT_RETIRED",
        +  "CONFLICT",
        +  "HEARTBEAT_SESSION_CONFLICT",
        +  "HEARTBEAT_SESSION_REVISION_EXHAUSTED",
        +  "SEASON_STATE_CONFLICT",
        +  "MARKET_NOT_LIVE",
        +  "MARKET_NOT_RESOLVED",
        +  "CONTENT_SEALED",
        +  "TIMING_SEALED",
        +  "STALE_UPDATE",
        +  "CATALOG_CHANGED",
        +  "ALREADY_RESOLVED",
        +  "CREATOR_WINDOW_ELAPSED",
        +  "RELAY_REVERTED",
        +  "HUMAN_VOTE_ACTIVE",
        +  "CHALLENGE_WINDOW_CLOSED",
        +  "COUNCIL_REVIEW_ACTIVE",
        +  "MARKET_NOT_PENDING_RESOLUTION",
        +  "ALREADY_SWEPT",
        +  "SWEEP_IN_PROGRESS",
        +  "DUPLICATE_CONTENT",
        +  "AGENT_ALREADY_EXISTS",
        +  "NAME_TAKEN",
        +  "AMBIGUOUS_MARKET_ADDRESS",
        +  "IDEMPOTENCY_KEY_CONFLICT",
        +  "NONCE_REUSED",
        +  "KEY_GENERATION_CONFLICT",
        +  "MARKET_INSOLVENT",
        +  "SLIPPAGE_EXCEEDED",
        +  "INSUFFICIENT_ALLOWANCE",
        +  "OPERATOR_APPROVAL_REQUIRED",
        +  "INSUFFICIENT_DEPOSIT",
        +  "INSUFFICIENT_PULL",
        +  "SALE_PAUSED",
        +  "SALE_INVENTORY_SHORT",
        +  "QUOTE_MISMATCH",
        +  "INSUFFICIENT_PAYMENT_BALANCE",
        +  "PURCHASE_NOT_A_BUNDLE",
        +  "PURCHASE_CAP_EXCEEDED",
        +  "FILL_ALLOWANCE_EXHAUSTED",
        +  "SPONSORED_TRADING_PAUSED",
        +  "PASSKEY_REQUIRED",
        +  "ACCOUNT_RESTRICTED",
        +  "NOT_VERIFIED",
        +  "STAKE_REQUIRED",
        +  "STAKE_INTENT_INVALID",
        +  "INSUFFICIENT_PM_FOR_VOTE_STAKE",
        +  "STAKE_PULL_FAILED",
        +  "VERIFIED_HUMAN_REQUIRED",
        +  "CREATION_SLOTS_FULL",
        +  "CREATOR_NOT_ADMITTED",
        +  "CREATOR_CAPACITY_REACHED",
        +  "REPUTATION_TOO_LOW",
        +  "CONCURRENT_LIMIT_REACHED",
        +  "LIFETIME_LIMIT_REACHED",
        +  "CREATION_COOLDOWN_ACTIVE",
        +  "SEED_LIMIT_EXCEEDED",
        +  "DURATION_OUT_OF_RANGE",
        +  "ACTIVE_VERIFIED_IDENTITY_REQUIRED",
        +  "CURRENT_IDENTITY_MEMBERSHIP_REQUIRED",
        +  "AGENT_OPERATING_WALLET_NOT_LINKED",
        +  "IDENTITY_INTEGRITY_UNKNOWN",
        +  "PARTICIPATION_RELEASE_NOT_DEPLOYED",
        +  "PARTICIPATION_RELEASE_ROUTE_NOT_DEPLOYED",
        +  "PARTICIPATION_PROFILE_MISMATCH",
        +  "PARTICIPATION_RELEASE_INACTIVE",
        +  "PARTICIPATION_DISTRIBUTION_PAUSED",
        +  "PARTICIPATION_MONEY_PATH_INCOMPLETE",
        +  "PARTICIPATION_LEDGER_ACCOUNTING_INVALID",
        +  "PARTICIPATION_ROUTE_DEGRADED",
        +  "PARTICIPATION_ROUTE_QUARANTINED",
        +  "PARTICIPATION_INVENTORY_LOW",
        +  "NO_PARTICIPATION_RELEASE_CREDITS",
        +  "NEW_PARTICIPATION_RELEASE_UNITS_EXHAUSTED",
        +  "PARTICIPATION_CLAIM_CADENCE_ACTIVE",
        +  "PARTICIPATION_IDENTITY_ATTESTATION_REQUIRED",
        +  "PARTICIPATION_DISTRIBUTION_ZERO_DELTA",
        +  "PARTICIPATION_DISTRIBUTION_ALREADY_PREPARED",
        +  "PARTICIPATION_DISTRIBUTION_RECIPIENT_STALE",
        +  "PARTICIPATION_DISTRIBUTION_VOUCHER_EXPIRED",
        +  "PARTICIPATION_DISTRIBUTION_EVENT_MISMATCH",
        +  "PARTICIPATION_DISTRIBUTION_FINALITY_PENDING",
        +  "RATE_LIMITED",
        +  "INTERNAL_ERROR",
        +  "SERVICE_UNAVAILABLE",
        +  "ELIGIBILITY_UNDETERMINED",
        +  "COLLATERAL_CONFIGURATION_MISMATCH",
        +  "QUOTE_STATE_UNAVAILABLE",
        +  "PROTOCOL_UNAVAILABLE",
        +  "PROTOCOL_PAUSED",
        +  "VENUE_HALTED",
        +  "EMBED_ATTRIBUTION_UNAVAILABLE",
        +  "QUOTE_FAILED",
        +  "INVALID_MARKET_STATE",
        +  "MATH_OVERFLOW",
        +  "UNKNOWN_CONTRACT_ERROR",
        +  "DEADLINE_EXPIRED",
        +  "ZERO_INPUT",
        +  "ZERO_NET_INPUT",
        +  "ZERO_DELTA",
        +  "INVALID_MARKET",
        +  "INVALID_TOKEN",
        +  "NATIVE_ROUTE_UNAVAILABLE",
        +  "POST_ONLY_WOULD_CROSS",
        +  "FOK_UNFILLABLE",
        +  "CLORDID_CONFLICT",
        +  "QUOTE_SET_INVALID",
        +  "QUOTE_GENERATION_STALE",
        +  "ORDER_IN_FLIGHT",
        +  "MAKER_NOT_EXECUTABLE",
        +  "LIQUIDITY_CHANGED",
        +  "CANCELLATION_EVENT_NOT_FOUND",
        +  "CANCELLATION_EVENT_MISMATCH",
        +  "INVALID_NONCE_FLOOR",
        +  "NONCE_INVALIDATION_EVENT_NOT_FOUND",
        +  "NONCE_INVALIDATION_EVENT_MISMATCH",
        +  "INVALID_TX_HASH"
        +]
    • Changedproblee_get_market_resolution_state1 field changed
      • changedOutput schema / $defs / ErrorReason / enum
        Previous value: -[
        -  "AUTH_REQUIRED",
        -  "WALLET_AUTH_REQUIRED",
        -  "WALLET_AUTH_INVALID",
        -  "INSUFFICIENT_TIER",
        -  "FORBIDDEN",
        -  "FEATURE_DISABLED",
        -  "SERVICE_UNAVAILABLE_IN_REGION",
        -  "NOT_ORB_VERIFIED",
        -  "NOT_AUTHORIZED",
        -  "NOT_MARKET_CREATOR",
        -  "CALLER_NOT_CREATOR",
        -  "AGENT_WALLET_CANNOT_VOTE",
        -  "WALLET_REQUIRED",
        -  "EMAIL_NOT_VERIFIED",
        -  "EMAIL_ALREADY_REGISTERED",
        -  "WALLET_ADDRESS_MISMATCH",
        -  "WALLET_PARAM_NOT_ALLOWED",
        -  "OWNER_ID_MISMATCH",
        -  "OWNERSHIP_MISMATCH",
        -  "OWNERSHIP_PROOF_REQUIRED",
        -  "WALLET_MISMATCH",
        -  "KEY_LIMIT_REACHED",
        -  "SCOPE_WIDENING_DENIED",
        -  "INVALID_REQUEST",
        -  "INVALID_PAYLOAD",
        -  "INVALID_QUERY",
        -  "INVALID_HEADER",
        -  "MISSING_FIELDS",
        -  "INVALID_ID",
        -  "INVALID_SCOPES",
        -  "INVALID_SPENDING_LIMIT",
        -  "INVALID_EXPIRES_AT",
        -  "INVALID_WEBHOOK_URL",
        -  "WEBHOOK_LIMIT_REACHED",
        -  "KEY_ALREADY_REVOKED",
        -  "MARKET_ID_REQUIRED",
        -  "INVALID_OUTCOME",
        -  "INVALID_CHAIN",
        -  "INVALID_COLLATERAL",
        -  "MISSING_COLLATERAL",
        -  "INVALID_QUESTION",
        -  "QUESTION_TOO_LONG",
        -  "INVALID_SNAPSHOT",
        -  "BATCH_TOO_LARGE",
        -  "MAX_DEPTH_EXCEEDED",
        -  "AMOUNT_ABOVE_MAXIMUM",
        -  "AMOUNT_BELOW_MINIMUM",
        -  "AMOUNT_BELOW_MINIMUM_FILL",
        -  "AMOUNT_NOT_MULTIPLE",
        -  "PRICE_OFF_TICK",
        -  "ORDER_EXPIRY_TOO_SOON",
        -  "BELOW_MINIMUM",
        -  "OUTCOME_UNKNOWN",
        -  "NOT_TWO_OUTCOMES",
        -  "EXPIRY_TOO_SOON",
        -  "MARKET_UNAVAILABLE",
        -  "TRADING_ENDED",
        -  "NO_LIQUIDITY",
        -  "INSUFFICIENT_BALANCE",
        -  "PAYLOAD_TOO_LARGE",
        -  "PRIVATE_MARKET",
        -  "INVALID_MARKET_REQUIRED",
        -  "INVALID_MARKET_PAIR",
        -  "PREFLIGHT_FAILED",
        -  "PROPOSAL_FAILED",
        -  "ACCEPT_FAILED",
        -  "REJECT_FAILED",
        -  "CONTENT_BLOCKED",
        -  "SECURITY_RISK_BLOCKED",
        -  "NO_PENDING_FEES",
        -  "BAD_REQUEST",
        -  "CORS_REJECTED",
        -  "UNSUPPORTED_CHAIN",
        -  "WORLD_ID_VERIFICATION_FAILED",
        -  "REVOCATION_REQUIRES_ROOT",
        -  "RECOVERY_REQUIRES_ROOT",
        -  "IDENTITY_ALREADY_ENROLLED",
        -  "RECOVERY_NOT_CONFIGURED",
        -  "RECOVERY_KEY_INVALID",
        -  "WORLD_ID_REVERIFICATION_REQUIRED",
        -  "ROOT_RECOVERY_COOLDOWN",
        -  "NOT_FOUND",
        -  "MARKET_NOT_FOUND",
        -  "MARKET_PRIOR_RELEASE",
        -  "AGENT_NOT_FOUND",
        -  "CHAIN_NOT_FOUND",
        -  "PARENT_NOT_FOUND",
        -  "FACTORY_NOT_DEPLOYED",
        -  "KEY_NOT_FOUND",
        -  "API_KEY_NOT_FOUND",
        -  "WEBHOOK_NOT_FOUND",
        -  "BUILDER_ID_NOT_FOUND",
        -  "NO_API_KEYS",
        -  "SEASON_NOT_FOUND",
        -  "COHORT_NOT_FOUND",
        -  "MARKET_CLOSED",
        -  "MARKET_NOT_OPEN_YET",
        -  "NOT_RESOLVABLE_YET",
        -  "EXPIRED_TOKEN",
        -  "ENDPOINT_RETIRED",
        -  "CONFLICT",
        -  "HEARTBEAT_SESSION_CONFLICT",
        -  "HEARTBEAT_SESSION_REVISION_EXHAUSTED",
        -  "SEASON_STATE_CONFLICT",
        -  "MARKET_NOT_LIVE",
        -  "MARKET_NOT_RESOLVED",
        -  "CONTENT_SEALED",
        -  "TIMING_SEALED",
        -  "STALE_UPDATE",
        -  "ALREADY_RESOLVED",
        -  "CREATOR_WINDOW_ELAPSED",
        -  "RELAY_REVERTED",
        -  "HUMAN_VOTE_ACTIVE",
        -  "CHALLENGE_WINDOW_CLOSED",
        -  "COUNCIL_REVIEW_ACTIVE",
        -  "MARKET_NOT_PENDING_RESOLUTION",
        -  "ALREADY_SWEPT",
        -  "SWEEP_IN_PROGRESS",
        -  "DUPLICATE_CONTENT",
        -  "AGENT_ALREADY_EXISTS",
        -  "NAME_TAKEN",
        -  "AMBIGUOUS_MARKET_ADDRESS",
        -  "IDEMPOTENCY_KEY_CONFLICT",
        -  "NONCE_REUSED",
        -  "KEY_GENERATION_CONFLICT",
        -  "MARKET_INSOLVENT",
        -  "SLIPPAGE_EXCEEDED",
        -  "INSUFFICIENT_ALLOWANCE",
        -  "OPERATOR_APPROVAL_REQUIRED",
        -  "INSUFFICIENT_DEPOSIT",
        -  "INSUFFICIENT_PULL",
        -  "SALE_PAUSED",
        -  "SALE_INVENTORY_SHORT",
        -  "QUOTE_MISMATCH",
        -  "INSUFFICIENT_PAYMENT_BALANCE",
        -  "PURCHASE_NOT_A_BUNDLE",
        -  "PURCHASE_CAP_EXCEEDED",
        -  "FILL_ALLOWANCE_EXHAUSTED",
        -  "SPONSORED_TRADING_PAUSED",
        -  "PASSKEY_REQUIRED",
        -  "ACCOUNT_RESTRICTED",
        -  "NOT_VERIFIED",
        -  "STAKE_REQUIRED",
        -  "STAKE_INTENT_INVALID",
        -  "INSUFFICIENT_PM_FOR_VOTE_STAKE",
        -  "STAKE_PULL_FAILED",
        -  "VERIFIED_HUMAN_REQUIRED",
        -  "CREATION_SLOTS_FULL",
        -  "CREATOR_NOT_ADMITTED",
        -  "CREATOR_CAPACITY_REACHED",
        -  "REPUTATION_TOO_LOW",
        -  "CONCURRENT_LIMIT_REACHED",
        -  "LIFETIME_LIMIT_REACHED",
        -  "CREATION_COOLDOWN_ACTIVE",
        -  "SEED_LIMIT_EXCEEDED",
        -  "DURATION_OUT_OF_RANGE",
        -  "ACTIVE_VERIFIED_IDENTITY_REQUIRED",
        -  "CURRENT_IDENTITY_MEMBERSHIP_REQUIRED",
        -  "AGENT_OPERATING_WALLET_NOT_LINKED",
        -  "IDENTITY_INTEGRITY_UNKNOWN",
        -  "PARTICIPATION_RELEASE_NOT_DEPLOYED",
        -  "PARTICIPATION_RELEASE_ROUTE_NOT_DEPLOYED",
        -  "PARTICIPATION_PROFILE_MISMATCH",
        -  "PARTICIPATION_RELEASE_INACTIVE",
        -  "PARTICIPATION_DISTRIBUTION_PAUSED",
        -  "PARTICIPATION_MONEY_PATH_INCOMPLETE",
        -  "PARTICIPATION_LEDGER_ACCOUNTING_INVALID",
        -  "PARTICIPATION_ROUTE_DEGRADED",
        -  "PARTICIPATION_ROUTE_QUARANTINED",
        -  "PARTICIPATION_INVENTORY_LOW",
        -  "NO_PARTICIPATION_RELEASE_CREDITS",
        -  "NEW_PARTICIPATION_RELEASE_UNITS_EXHAUSTED",
        -  "PARTICIPATION_CLAIM_CADENCE_ACTIVE",
        -  "PARTICIPATION_IDENTITY_ATTESTATION_REQUIRED",
        -  "PARTICIPATION_DISTRIBUTION_ZERO_DELTA",
        -  "PARTICIPATION_DISTRIBUTION_ALREADY_PREPARED",
        -  "PARTICIPATION_DISTRIBUTION_RECIPIENT_STALE",
        -  "PARTICIPATION_DISTRIBUTION_VOUCHER_EXPIRED",
        -  "PARTICIPATION_DISTRIBUTION_EVENT_MISMATCH",
        -  "PARTICIPATION_DISTRIBUTION_FINALITY_PENDING",
        -  "RATE_LIMITED",
        -  "INTERNAL_ERROR",
        -  "SERVICE_UNAVAILABLE",
        -  "ELIGIBILITY_UNDETERMINED",
        -  "COLLATERAL_CONFIGURATION_MISMATCH",
        -  "QUOTE_STATE_UNAVAILABLE",
        -  "PROTOCOL_UNAVAILABLE",
        -  "PROTOCOL_PAUSED",
        -  "VENUE_HALTED",
        -  "EMBED_ATTRIBUTION_UNAVAILABLE",
        -  "QUOTE_FAILED",
        -  "INVALID_MARKET_STATE",
        -  "MATH_OVERFLOW",
        -  "UNKNOWN_CONTRACT_ERROR",
        -  "DEADLINE_EXPIRED",
        -  "ZERO_INPUT",
        -  "ZERO_NET_INPUT",
        -  "ZERO_DELTA",
        -  "INVALID_MARKET",
        -  "INVALID_TOKEN",
        -  "NATIVE_ROUTE_UNAVAILABLE",
        -  "POST_ONLY_WOULD_CROSS",
        -  "FOK_UNFILLABLE",
        -  "CLORDID_CONFLICT",
        -  "QUOTE_SET_INVALID",
        -  "QUOTE_GENERATION_STALE",
        -  "ORDER_IN_FLIGHT",
        -  "MAKER_NOT_EXECUTABLE",
        -  "LIQUIDITY_CHANGED",
        -  "CANCELLATION_EVENT_NOT_FOUND",
        -  "CANCELLATION_EVENT_MISMATCH",
        -  "INVALID_NONCE_FLOOR",
        -  "NONCE_INVALIDATION_EVENT_NOT_FOUND",
        -  "NONCE_INVALIDATION_EVENT_MISMATCH",
        -  "INVALID_TX_HASH"
        -]New value: +[
        +  "AUTH_REQUIRED",
        +  "WALLET_AUTH_REQUIRED",
        +  "WALLET_AUTH_INVALID",
        +  "INSUFFICIENT_TIER",
        +  "FORBIDDEN",
        +  "FEATURE_DISABLED",
        +  "SERVICE_UNAVAILABLE_IN_REGION",
        +  "NOT_ORB_VERIFIED",
        +  "NOT_AUTHORIZED",
        +  "NOT_MARKET_CREATOR",
        +  "CALLER_NOT_CREATOR",
        +  "AGENT_WALLET_CANNOT_VOTE",
        +  "WALLET_REQUIRED",
        +  "EMAIL_NOT_VERIFIED",
        +  "EMAIL_ALREADY_REGISTERED",
        +  "WALLET_ADDRESS_MISMATCH",
        +  "WALLET_PARAM_NOT_ALLOWED",
        +  "OWNER_ID_MISMATCH",
        +  "OWNERSHIP_MISMATCH",
        +  "OWNERSHIP_PROOF_REQUIRED",
        +  "WALLET_MISMATCH",
        +  "KEY_LIMIT_REACHED",
        +  "SCOPE_WIDENING_DENIED",
        +  "INVALID_REQUEST",
        +  "INVALID_PAYLOAD",
        +  "INVALID_QUERY",
        +  "INVALID_HEADER",
        +  "MISSING_FIELDS",
        +  "INVALID_ID",
        +  "INVALID_SCOPES",
        +  "INVALID_SPENDING_LIMIT",
        +  "INVALID_EXPIRES_AT",
        +  "INVALID_WEBHOOK_URL",
        +  "WEBHOOK_LIMIT_REACHED",
        +  "KEY_ALREADY_REVOKED",
        +  "MARKET_ID_REQUIRED",
        +  "INVALID_OUTCOME",
        +  "INVALID_CHAIN",
        +  "INVALID_COLLATERAL",
        +  "MISSING_COLLATERAL",
        +  "INVALID_QUESTION",
        +  "QUESTION_TOO_LONG",
        +  "INVALID_SNAPSHOT",
        +  "BATCH_TOO_LARGE",
        +  "MAX_DEPTH_EXCEEDED",
        +  "AMOUNT_ABOVE_MAXIMUM",
        +  "AMOUNT_BELOW_MINIMUM",
        +  "AMOUNT_BELOW_MINIMUM_FILL",
        +  "AMOUNT_NOT_MULTIPLE",
        +  "PRICE_OFF_TICK",
        +  "ORDER_EXPIRY_TOO_SOON",
        +  "BELOW_MINIMUM",
        +  "OUTCOME_UNKNOWN",
        +  "NOT_TWO_OUTCOMES",
        +  "EXPIRY_TOO_SOON",
        +  "MARKET_UNAVAILABLE",
        +  "TRADING_ENDED",
        +  "NO_LIQUIDITY",
        +  "INSUFFICIENT_BALANCE",
        +  "PAYLOAD_TOO_LARGE",
        +  "PRIVATE_MARKET",
        +  "INVALID_MARKET_REQUIRED",
        +  "INVALID_MARKET_PAIR",
        +  "PREFLIGHT_FAILED",
        +  "PROPOSAL_FAILED",
        +  "ACCEPT_FAILED",
        +  "REJECT_FAILED",
        +  "CONTENT_BLOCKED",
        +  "SECURITY_RISK_BLOCKED",
        +  "NO_PENDING_FEES",
        +  "BAD_REQUEST",
        +  "CORS_REJECTED",
        +  "UNSUPPORTED_CHAIN",
        +  "WORLD_ID_VERIFICATION_FAILED",
        +  "REVOCATION_REQUIRES_ROOT",
        +  "RECOVERY_REQUIRES_ROOT",
        +  "IDENTITY_ALREADY_ENROLLED",
        +  "RECOVERY_NOT_CONFIGURED",
        +  "RECOVERY_KEY_INVALID",
        +  "WORLD_ID_REVERIFICATION_REQUIRED",
        +  "ROOT_RECOVERY_COOLDOWN",
        +  "NOT_FOUND",
        +  "MARKET_NOT_FOUND",
        +  "MARKET_PRIOR_RELEASE",
        +  "AGENT_NOT_FOUND",
        +  "CHAIN_NOT_FOUND",
        +  "PARENT_NOT_FOUND",
        +  "FACTORY_NOT_DEPLOYED",
        +  "KEY_NOT_FOUND",
        +  "API_KEY_NOT_FOUND",
        +  "WEBHOOK_NOT_FOUND",
        +  "BUILDER_ID_NOT_FOUND",
        +  "NO_API_KEYS",
        +  "SEASON_NOT_FOUND",
        +  "COHORT_NOT_FOUND",
        +  "MARKET_CLOSED",
        +  "MARKET_NOT_OPEN_YET",
        +  "NOT_RESOLVABLE_YET",
        +  "EXPIRED_TOKEN",
        +  "ENDPOINT_RETIRED",
        +  "CONFLICT",
        +  "HEARTBEAT_SESSION_CONFLICT",
        +  "HEARTBEAT_SESSION_REVISION_EXHAUSTED",
        +  "SEASON_STATE_CONFLICT",
        +  "MARKET_NOT_LIVE",
        +  "MARKET_NOT_RESOLVED",
        +  "CONTENT_SEALED",
        +  "TIMING_SEALED",
        +  "STALE_UPDATE",
        +  "CATALOG_CHANGED",
        +  "ALREADY_RESOLVED",
        +  "CREATOR_WINDOW_ELAPSED",
        +  "RELAY_REVERTED",
        +  "HUMAN_VOTE_ACTIVE",
        +  "CHALLENGE_WINDOW_CLOSED",
        +  "COUNCIL_REVIEW_ACTIVE",
        +  "MARKET_NOT_PENDING_RESOLUTION",
        +  "ALREADY_SWEPT",
        +  "SWEEP_IN_PROGRESS",
        +  "DUPLICATE_CONTENT",
        +  "AGENT_ALREADY_EXISTS",
        +  "NAME_TAKEN",
        +  "AMBIGUOUS_MARKET_ADDRESS",
        +  "IDEMPOTENCY_KEY_CONFLICT",
        +  "NONCE_REUSED",
        +  "KEY_GENERATION_CONFLICT",
        +  "MARKET_INSOLVENT",
        +  "SLIPPAGE_EXCEEDED",
        +  "INSUFFICIENT_ALLOWANCE",
        +  "OPERATOR_APPROVAL_REQUIRED",
        +  "INSUFFICIENT_DEPOSIT",
        +  "INSUFFICIENT_PULL",
        +  "SALE_PAUSED",
        +  "SALE_INVENTORY_SHORT",
        +  "QUOTE_MISMATCH",
        +  "INSUFFICIENT_PAYMENT_BALANCE",
        +  "PURCHASE_NOT_A_BUNDLE",
        +  "PURCHASE_CAP_EXCEEDED",
        +  "FILL_ALLOWANCE_EXHAUSTED",
        +  "SPONSORED_TRADING_PAUSED",
        +  "PASSKEY_REQUIRED",
        +  "ACCOUNT_RESTRICTED",
        +  "NOT_VERIFIED",
        +  "STAKE_REQUIRED",
        +  "STAKE_INTENT_INVALID",
        +  "INSUFFICIENT_PM_FOR_VOTE_STAKE",
        +  "STAKE_PULL_FAILED",
        +  "VERIFIED_HUMAN_REQUIRED",
        +  "CREATION_SLOTS_FULL",
        +  "CREATOR_NOT_ADMITTED",
        +  "CREATOR_CAPACITY_REACHED",
        +  "REPUTATION_TOO_LOW",
        +  "CONCURRENT_LIMIT_REACHED",
        +  "LIFETIME_LIMIT_REACHED",
        +  "CREATION_COOLDOWN_ACTIVE",
        +  "SEED_LIMIT_EXCEEDED",
        +  "DURATION_OUT_OF_RANGE",
        +  "ACTIVE_VERIFIED_IDENTITY_REQUIRED",
        +  "CURRENT_IDENTITY_MEMBERSHIP_REQUIRED",
        +  "AGENT_OPERATING_WALLET_NOT_LINKED",
        +  "IDENTITY_INTEGRITY_UNKNOWN",
        +  "PARTICIPATION_RELEASE_NOT_DEPLOYED",
        +  "PARTICIPATION_RELEASE_ROUTE_NOT_DEPLOYED",
        +  "PARTICIPATION_PROFILE_MISMATCH",
        +  "PARTICIPATION_RELEASE_INACTIVE",
        +  "PARTICIPATION_DISTRIBUTION_PAUSED",
        +  "PARTICIPATION_MONEY_PATH_INCOMPLETE",
        +  "PARTICIPATION_LEDGER_ACCOUNTING_INVALID",
        +  "PARTICIPATION_ROUTE_DEGRADED",
        +  "PARTICIPATION_ROUTE_QUARANTINED",
        +  "PARTICIPATION_INVENTORY_LOW",
        +  "NO_PARTICIPATION_RELEASE_CREDITS",
        +  "NEW_PARTICIPATION_RELEASE_UNITS_EXHAUSTED",
        +  "PARTICIPATION_CLAIM_CADENCE_ACTIVE",
        +  "PARTICIPATION_IDENTITY_ATTESTATION_REQUIRED",
        +  "PARTICIPATION_DISTRIBUTION_ZERO_DELTA",
        +  "PARTICIPATION_DISTRIBUTION_ALREADY_PREPARED",
        +  "PARTICIPATION_DISTRIBUTION_RECIPIENT_STALE",
        +  "PARTICIPATION_DISTRIBUTION_VOUCHER_EXPIRED",
        +  "PARTICIPATION_DISTRIBUTION_EVENT_MISMATCH",
        +  "PARTICIPATION_DISTRIBUTION_FINALITY_PENDING",
        +  "RATE_LIMITED",
        +  "INTERNAL_ERROR",
        +  "SERVICE_UNAVAILABLE",
        +  "ELIGIBILITY_UNDETERMINED",
        +  "COLLATERAL_CONFIGURATION_MISMATCH",
        +  "QUOTE_STATE_UNAVAILABLE",
        +  "PROTOCOL_UNAVAILABLE",
        +  "PROTOCOL_PAUSED",
        +  "VENUE_HALTED",
        +  "EMBED_ATTRIBUTION_UNAVAILABLE",
        +  "QUOTE_FAILED",
        +  "INVALID_MARKET_STATE",
        +  "MATH_OVERFLOW",
        +  "UNKNOWN_CONTRACT_ERROR",
        +  "DEADLINE_EXPIRED",
        +  "ZERO_INPUT",
        +  "ZERO_NET_INPUT",
        +  "ZERO_DELTA",
        +  "INVALID_MARKET",
        +  "INVALID_TOKEN",
        +  "NATIVE_ROUTE_UNAVAILABLE",
        +  "POST_ONLY_WOULD_CROSS",
        +  "FOK_UNFILLABLE",
        +  "CLORDID_CONFLICT",
        +  "QUOTE_SET_INVALID",
        +  "QUOTE_GENERATION_STALE",
        +  "ORDER_IN_FLIGHT",
        +  "MAKER_NOT_EXECUTABLE",
        +  "LIQUIDITY_CHANGED",
        +  "CANCELLATION_EVENT_NOT_FOUND",
        +  "CANCELLATION_EVENT_MISMATCH",
        +  "INVALID_NONCE_FLOOR",
        +  "NONCE_INVALIDATION_EVENT_NOT_FOUND",
        +  "NONCE_INVALIDATION_EVENT_MISMATCH",
        +  "INVALID_TX_HASH"
        +]
    • Changedproblee_list_markets1 field changed
      • changedOutput schema / $defs / ErrorReason / enum
        Previous value: -[
        -  "AUTH_REQUIRED",
        -  "WALLET_AUTH_REQUIRED",
        -  "WALLET_AUTH_INVALID",
        -  "INSUFFICIENT_TIER",
        -  "FORBIDDEN",
        -  "FEATURE_DISABLED",
        -  "SERVICE_UNAVAILABLE_IN_REGION",
        -  "NOT_ORB_VERIFIED",
        -  "NOT_AUTHORIZED",
        -  "NOT_MARKET_CREATOR",
        -  "CALLER_NOT_CREATOR",
        -  "AGENT_WALLET_CANNOT_VOTE",
        -  "WALLET_REQUIRED",
        -  "EMAIL_NOT_VERIFIED",
        -  "EMAIL_ALREADY_REGISTERED",
        -  "WALLET_ADDRESS_MISMATCH",
        -  "WALLET_PARAM_NOT_ALLOWED",
        -  "OWNER_ID_MISMATCH",
        -  "OWNERSHIP_MISMATCH",
        -  "OWNERSHIP_PROOF_REQUIRED",
        -  "WALLET_MISMATCH",
        -  "KEY_LIMIT_REACHED",
        -  "SCOPE_WIDENING_DENIED",
        -  "INVALID_REQUEST",
        -  "INVALID_PAYLOAD",
        -  "INVALID_QUERY",
        -  "INVALID_HEADER",
        -  "MISSING_FIELDS",
        -  "INVALID_ID",
        -  "INVALID_SCOPES",
        -  "INVALID_SPENDING_LIMIT",
        -  "INVALID_EXPIRES_AT",
        -  "INVALID_WEBHOOK_URL",
        -  "WEBHOOK_LIMIT_REACHED",
        -  "KEY_ALREADY_REVOKED",
        -  "MARKET_ID_REQUIRED",
        -  "INVALID_OUTCOME",
        -  "INVALID_CHAIN",
        -  "INVALID_COLLATERAL",
        -  "MISSING_COLLATERAL",
        -  "INVALID_QUESTION",
        -  "QUESTION_TOO_LONG",
        -  "INVALID_SNAPSHOT",
        -  "BATCH_TOO_LARGE",
        -  "MAX_DEPTH_EXCEEDED",
        -  "AMOUNT_ABOVE_MAXIMUM",
        -  "AMOUNT_BELOW_MINIMUM",
        -  "AMOUNT_BELOW_MINIMUM_FILL",
        -  "AMOUNT_NOT_MULTIPLE",
        -  "PRICE_OFF_TICK",
        -  "ORDER_EXPIRY_TOO_SOON",
        -  "BELOW_MINIMUM",
        -  "OUTCOME_UNKNOWN",
        -  "NOT_TWO_OUTCOMES",
        -  "EXPIRY_TOO_SOON",
        -  "MARKET_UNAVAILABLE",
        -  "TRADING_ENDED",
        -  "NO_LIQUIDITY",
        -  "INSUFFICIENT_BALANCE",
        -  "PAYLOAD_TOO_LARGE",
        -  "PRIVATE_MARKET",
        -  "INVALID_MARKET_REQUIRED",
        -  "INVALID_MARKET_PAIR",
        -  "PREFLIGHT_FAILED",
        -  "PROPOSAL_FAILED",
        -  "ACCEPT_FAILED",
        -  "REJECT_FAILED",
        -  "CONTENT_BLOCKED",
        -  "SECURITY_RISK_BLOCKED",
        -  "NO_PENDING_FEES",
        -  "BAD_REQUEST",
        -  "CORS_REJECTED",
        -  "UNSUPPORTED_CHAIN",
        -  "WORLD_ID_VERIFICATION_FAILED",
        -  "REVOCATION_REQUIRES_ROOT",
        -  "RECOVERY_REQUIRES_ROOT",
        -  "IDENTITY_ALREADY_ENROLLED",
        -  "RECOVERY_NOT_CONFIGURED",
        -  "RECOVERY_KEY_INVALID",
        -  "WORLD_ID_REVERIFICATION_REQUIRED",
        -  "ROOT_RECOVERY_COOLDOWN",
        -  "NOT_FOUND",
        -  "MARKET_NOT_FOUND",
        -  "MARKET_PRIOR_RELEASE",
        -  "AGENT_NOT_FOUND",
        -  "CHAIN_NOT_FOUND",
        -  "PARENT_NOT_FOUND",
        -  "FACTORY_NOT_DEPLOYED",
        -  "KEY_NOT_FOUND",
        -  "API_KEY_NOT_FOUND",
        -  "WEBHOOK_NOT_FOUND",
        -  "BUILDER_ID_NOT_FOUND",
        -  "NO_API_KEYS",
        -  "SEASON_NOT_FOUND",
        -  "COHORT_NOT_FOUND",
        -  "MARKET_CLOSED",
        -  "MARKET_NOT_OPEN_YET",
        -  "NOT_RESOLVABLE_YET",
        -  "EXPIRED_TOKEN",
        -  "ENDPOINT_RETIRED",
        -  "CONFLICT",
        -  "HEARTBEAT_SESSION_CONFLICT",
        -  "HEARTBEAT_SESSION_REVISION_EXHAUSTED",
        -  "SEASON_STATE_CONFLICT",
        -  "MARKET_NOT_LIVE",
        -  "MARKET_NOT_RESOLVED",
        -  "CONTENT_SEALED",
        -  "TIMING_SEALED",
        -  "STALE_UPDATE",
        -  "ALREADY_RESOLVED",
        -  "CREATOR_WINDOW_ELAPSED",
        -  "RELAY_REVERTED",
        -  "HUMAN_VOTE_ACTIVE",
        -  "CHALLENGE_WINDOW_CLOSED",
        -  "COUNCIL_REVIEW_ACTIVE",
        -  "MARKET_NOT_PENDING_RESOLUTION",
        -  "ALREADY_SWEPT",
        -  "SWEEP_IN_PROGRESS",
        -  "DUPLICATE_CONTENT",
        -  "AGENT_ALREADY_EXISTS",
        -  "NAME_TAKEN",
        -  "AMBIGUOUS_MARKET_ADDRESS",
        -  "IDEMPOTENCY_KEY_CONFLICT",
        -  "NONCE_REUSED",
        -  "KEY_GENERATION_CONFLICT",
        -  "MARKET_INSOLVENT",
        -  "SLIPPAGE_EXCEEDED",
        -  "INSUFFICIENT_ALLOWANCE",
        -  "OPERATOR_APPROVAL_REQUIRED",
        -  "INSUFFICIENT_DEPOSIT",
        -  "INSUFFICIENT_PULL",
        -  "SALE_PAUSED",
        -  "SALE_INVENTORY_SHORT",
        -  "QUOTE_MISMATCH",
        -  "INSUFFICIENT_PAYMENT_BALANCE",
        -  "PURCHASE_NOT_A_BUNDLE",
        -  "PURCHASE_CAP_EXCEEDED",
        -  "FILL_ALLOWANCE_EXHAUSTED",
        -  "SPONSORED_TRADING_PAUSED",
        -  "PASSKEY_REQUIRED",
        -  "ACCOUNT_RESTRICTED",
        -  "NOT_VERIFIED",
        -  "STAKE_REQUIRED",
        -  "STAKE_INTENT_INVALID",
        -  "INSUFFICIENT_PM_FOR_VOTE_STAKE",
        -  "STAKE_PULL_FAILED",
        -  "VERIFIED_HUMAN_REQUIRED",
        -  "CREATION_SLOTS_FULL",
        -  "CREATOR_NOT_ADMITTED",
        -  "CREATOR_CAPACITY_REACHED",
        -  "REPUTATION_TOO_LOW",
        -  "CONCURRENT_LIMIT_REACHED",
        -  "LIFETIME_LIMIT_REACHED",
        -  "CREATION_COOLDOWN_ACTIVE",
        -  "SEED_LIMIT_EXCEEDED",
        -  "DURATION_OUT_OF_RANGE",
        -  "ACTIVE_VERIFIED_IDENTITY_REQUIRED",
        -  "CURRENT_IDENTITY_MEMBERSHIP_REQUIRED",
        -  "AGENT_OPERATING_WALLET_NOT_LINKED",
        -  "IDENTITY_INTEGRITY_UNKNOWN",
        -  "PARTICIPATION_RELEASE_NOT_DEPLOYED",
        -  "PARTICIPATION_RELEASE_ROUTE_NOT_DEPLOYED",
        -  "PARTICIPATION_PROFILE_MISMATCH",
        -  "PARTICIPATION_RELEASE_INACTIVE",
        -  "PARTICIPATION_DISTRIBUTION_PAUSED",
        -  "PARTICIPATION_MONEY_PATH_INCOMPLETE",
        -  "PARTICIPATION_LEDGER_ACCOUNTING_INVALID",
        -  "PARTICIPATION_ROUTE_DEGRADED",
        -  "PARTICIPATION_ROUTE_QUARANTINED",
        -  "PARTICIPATION_INVENTORY_LOW",
        -  "NO_PARTICIPATION_RELEASE_CREDITS",
        -  "NEW_PARTICIPATION_RELEASE_UNITS_EXHAUSTED",
        -  "PARTICIPATION_CLAIM_CADENCE_ACTIVE",
        -  "PARTICIPATION_IDENTITY_ATTESTATION_REQUIRED",
        -  "PARTICIPATION_DISTRIBUTION_ZERO_DELTA",
        -  "PARTICIPATION_DISTRIBUTION_ALREADY_PREPARED",
        -  "PARTICIPATION_DISTRIBUTION_RECIPIENT_STALE",
        -  "PARTICIPATION_DISTRIBUTION_VOUCHER_EXPIRED",
        -  "PARTICIPATION_DISTRIBUTION_EVENT_MISMATCH",
        -  "PARTICIPATION_DISTRIBUTION_FINALITY_PENDING",
        -  "RATE_LIMITED",
        -  "INTERNAL_ERROR",
        -  "SERVICE_UNAVAILABLE",
        -  "ELIGIBILITY_UNDETERMINED",
        -  "COLLATERAL_CONFIGURATION_MISMATCH",
        -  "QUOTE_STATE_UNAVAILABLE",
        -  "PROTOCOL_UNAVAILABLE",
        -  "PROTOCOL_PAUSED",
        -  "VENUE_HALTED",
        -  "EMBED_ATTRIBUTION_UNAVAILABLE",
        -  "QUOTE_FAILED",
        -  "INVALID_MARKET_STATE",
        -  "MATH_OVERFLOW",
        -  "UNKNOWN_CONTRACT_ERROR",
        -  "DEADLINE_EXPIRED",
        -  "ZERO_INPUT",
        -  "ZERO_NET_INPUT",
        -  "ZERO_DELTA",
        -  "INVALID_MARKET",
        -  "INVALID_TOKEN",
        -  "NATIVE_ROUTE_UNAVAILABLE",
        -  "POST_ONLY_WOULD_CROSS",
        -  "FOK_UNFILLABLE",
        -  "CLORDID_CONFLICT",
        -  "QUOTE_SET_INVALID",
        -  "QUOTE_GENERATION_STALE",
        -  "ORDER_IN_FLIGHT",
        -  "MAKER_NOT_EXECUTABLE",
        -  "LIQUIDITY_CHANGED",
        -  "CANCELLATION_EVENT_NOT_FOUND",
        -  "CANCELLATION_EVENT_MISMATCH",
        -  "INVALID_NONCE_FLOOR",
        -  "NONCE_INVALIDATION_EVENT_NOT_FOUND",
        -  "NONCE_INVALIDATION_EVENT_MISMATCH",
        -  "INVALID_TX_HASH"
        -]New value: +[
        +  "AUTH_REQUIRED",
        +  "WALLET_AUTH_REQUIRED",
        +  "WALLET_AUTH_INVALID",
        +  "INSUFFICIENT_TIER",
        +  "FORBIDDEN",
        +  "FEATURE_DISABLED",
        +  "SERVICE_UNAVAILABLE_IN_REGION",
        +  "NOT_ORB_VERIFIED",
        +  "NOT_AUTHORIZED",
        +  "NOT_MARKET_CREATOR",
        +  "CALLER_NOT_CREATOR",
        +  "AGENT_WALLET_CANNOT_VOTE",
        +  "WALLET_REQUIRED",
        +  "EMAIL_NOT_VERIFIED",
        +  "EMAIL_ALREADY_REGISTERED",
        +  "WALLET_ADDRESS_MISMATCH",
        +  "WALLET_PARAM_NOT_ALLOWED",
        +  "OWNER_ID_MISMATCH",
        +  "OWNERSHIP_MISMATCH",
        +  "OWNERSHIP_PROOF_REQUIRED",
        +  "WALLET_MISMATCH",
        +  "KEY_LIMIT_REACHED",
        +  "SCOPE_WIDENING_DENIED",
        +  "INVALID_REQUEST",
        +  "INVALID_PAYLOAD",
        +  "INVALID_QUERY",
        +  "INVALID_HEADER",
        +  "MISSING_FIELDS",
        +  "INVALID_ID",
        +  "INVALID_SCOPES",
        +  "INVALID_SPENDING_LIMIT",
        +  "INVALID_EXPIRES_AT",
        +  "INVALID_WEBHOOK_URL",
        +  "WEBHOOK_LIMIT_REACHED",
        +  "KEY_ALREADY_REVOKED",
        +  "MARKET_ID_REQUIRED",
        +  "INVALID_OUTCOME",
        +  "INVALID_CHAIN",
        +  "INVALID_COLLATERAL",
        +  "MISSING_COLLATERAL",
        +  "INVALID_QUESTION",
        +  "QUESTION_TOO_LONG",
        +  "INVALID_SNAPSHOT",
        +  "BATCH_TOO_LARGE",
        +  "MAX_DEPTH_EXCEEDED",
        +  "AMOUNT_ABOVE_MAXIMUM",
        +  "AMOUNT_BELOW_MINIMUM",
        +  "AMOUNT_BELOW_MINIMUM_FILL",
        +  "AMOUNT_NOT_MULTIPLE",
        +  "PRICE_OFF_TICK",
        +  "ORDER_EXPIRY_TOO_SOON",
        +  "BELOW_MINIMUM",
        +  "OUTCOME_UNKNOWN",
        +  "NOT_TWO_OUTCOMES",
        +  "EXPIRY_TOO_SOON",
        +  "MARKET_UNAVAILABLE",
        +  "TRADING_ENDED",
        +  "NO_LIQUIDITY",
        +  "INSUFFICIENT_BALANCE",
        +  "PAYLOAD_TOO_LARGE",
        +  "PRIVATE_MARKET",
        +  "INVALID_MARKET_REQUIRED",
        +  "INVALID_MARKET_PAIR",
        +  "PREFLIGHT_FAILED",
        +  "PROPOSAL_FAILED",
        +  "ACCEPT_FAILED",
        +  "REJECT_FAILED",
        +  "CONTENT_BLOCKED",
        +  "SECURITY_RISK_BLOCKED",
        +  "NO_PENDING_FEES",
        +  "BAD_REQUEST",
        +  "CORS_REJECTED",
        +  "UNSUPPORTED_CHAIN",
        +  "WORLD_ID_VERIFICATION_FAILED",
        +  "REVOCATION_REQUIRES_ROOT",
        +  "RECOVERY_REQUIRES_ROOT",
        +  "IDENTITY_ALREADY_ENROLLED",
        +  "RECOVERY_NOT_CONFIGURED",
        +  "RECOVERY_KEY_INVALID",
        +  "WORLD_ID_REVERIFICATION_REQUIRED",
        +  "ROOT_RECOVERY_COOLDOWN",
        +  "NOT_FOUND",
        +  "MARKET_NOT_FOUND",
        +  "MARKET_PRIOR_RELEASE",
        +  "AGENT_NOT_FOUND",
        +  "CHAIN_NOT_FOUND",
        +  "PARENT_NOT_FOUND",
        +  "FACTORY_NOT_DEPLOYED",
        +  "KEY_NOT_FOUND",
        +  "API_KEY_NOT_FOUND",
        +  "WEBHOOK_NOT_FOUND",
        +  "BUILDER_ID_NOT_FOUND",
        +  "NO_API_KEYS",
        +  "SEASON_NOT_FOUND",
        +  "COHORT_NOT_FOUND",
        +  "MARKET_CLOSED",
        +  "MARKET_NOT_OPEN_YET",
        +  "NOT_RESOLVABLE_YET",
        +  "EXPIRED_TOKEN",
        +  "ENDPOINT_RETIRED",
        +  "CONFLICT",
        +  "HEARTBEAT_SESSION_CONFLICT",
        +  "HEARTBEAT_SESSION_REVISION_EXHAUSTED",
        +  "SEASON_STATE_CONFLICT",
        +  "MARKET_NOT_LIVE",
        +  "MARKET_NOT_RESOLVED",
        +  "CONTENT_SEALED",
        +  "TIMING_SEALED",
        +  "STALE_UPDATE",
        +  "CATALOG_CHANGED",
        +  "ALREADY_RESOLVED",
        +  "CREATOR_WINDOW_ELAPSED",
        +  "RELAY_REVERTED",
        +  "HUMAN_VOTE_ACTIVE",
        +  "CHALLENGE_WINDOW_CLOSED",
        +  "COUNCIL_REVIEW_ACTIVE",
        +  "MARKET_NOT_PENDING_RESOLUTION",
        +  "ALREADY_SWEPT",
        +  "SWEEP_IN_PROGRESS",
        +  "DUPLICATE_CONTENT",
        +  "AGENT_ALREADY_EXISTS",
        +  "NAME_TAKEN",
        +  "AMBIGUOUS_MARKET_ADDRESS",
        +  "IDEMPOTENCY_KEY_CONFLICT",
        +  "NONCE_REUSED",
        +  "KEY_GENERATION_CONFLICT",
        +  "MARKET_INSOLVENT",
        +  "SLIPPAGE_EXCEEDED",
        +  "INSUFFICIENT_ALLOWANCE",
        +  "OPERATOR_APPROVAL_REQUIRED",
        +  "INSUFFICIENT_DEPOSIT",
        +  "INSUFFICIENT_PULL",
        +  "SALE_PAUSED",
        +  "SALE_INVENTORY_SHORT",
        +  "QUOTE_MISMATCH",
        +  "INSUFFICIENT_PAYMENT_BALANCE",
        +  "PURCHASE_NOT_A_BUNDLE",
        +  "PURCHASE_CAP_EXCEEDED",
        +  "FILL_ALLOWANCE_EXHAUSTED",
        +  "SPONSORED_TRADING_PAUSED",
        +  "PASSKEY_REQUIRED",
        +  "ACCOUNT_RESTRICTED",
        +  "NOT_VERIFIED",
        +  "STAKE_REQUIRED",
        +  "STAKE_INTENT_INVALID",
        +  "INSUFFICIENT_PM_FOR_VOTE_STAKE",
        +  "STAKE_PULL_FAILED",
        +  "VERIFIED_HUMAN_REQUIRED",
        +  "CREATION_SLOTS_FULL",
        +  "CREATOR_NOT_ADMITTED",
        +  "CREATOR_CAPACITY_REACHED",
        +  "REPUTATION_TOO_LOW",
        +  "CONCURRENT_LIMIT_REACHED",
        +  "LIFETIME_LIMIT_REACHED",
        +  "CREATION_COOLDOWN_ACTIVE",
        +  "SEED_LIMIT_EXCEEDED",
        +  "DURATION_OUT_OF_RANGE",
        +  "ACTIVE_VERIFIED_IDENTITY_REQUIRED",
        +  "CURRENT_IDENTITY_MEMBERSHIP_REQUIRED",
        +  "AGENT_OPERATING_WALLET_NOT_LINKED",
        +  "IDENTITY_INTEGRITY_UNKNOWN",
        +  "PARTICIPATION_RELEASE_NOT_DEPLOYED",
        +  "PARTICIPATION_RELEASE_ROUTE_NOT_DEPLOYED",
        +  "PARTICIPATION_PROFILE_MISMATCH",
        +  "PARTICIPATION_RELEASE_INACTIVE",
        +  "PARTICIPATION_DISTRIBUTION_PAUSED",
        +  "PARTICIPATION_MONEY_PATH_INCOMPLETE",
        +  "PARTICIPATION_LEDGER_ACCOUNTING_INVALID",
        +  "PARTICIPATION_ROUTE_DEGRADED",
        +  "PARTICIPATION_ROUTE_QUARANTINED",
        +  "PARTICIPATION_INVENTORY_LOW",
        +  "NO_PARTICIPATION_RELEASE_CREDITS",
        +  "NEW_PARTICIPATION_RELEASE_UNITS_EXHAUSTED",
        +  "PARTICIPATION_CLAIM_CADENCE_ACTIVE",
        +  "PARTICIPATION_IDENTITY_ATTESTATION_REQUIRED",
        +  "PARTICIPATION_DISTRIBUTION_ZERO_DELTA",
        +  "PARTICIPATION_DISTRIBUTION_ALREADY_PREPARED",
        +  "PARTICIPATION_DISTRIBUTION_RECIPIENT_STALE",
        +  "PARTICIPATION_DISTRIBUTION_VOUCHER_EXPIRED",
        +  "PARTICIPATION_DISTRIBUTION_EVENT_MISMATCH",
        +  "PARTICIPATION_DISTRIBUTION_FINALITY_PENDING",
        +  "RATE_LIMITED",
        +  "INTERNAL_ERROR",
        +  "SERVICE_UNAVAILABLE",
        +  "ELIGIBILITY_UNDETERMINED",
        +  "COLLATERAL_CONFIGURATION_MISMATCH",
        +  "QUOTE_STATE_UNAVAILABLE",
        +  "PROTOCOL_UNAVAILABLE",
        +  "PROTOCOL_PAUSED",
        +  "VENUE_HALTED",
        +  "EMBED_ATTRIBUTION_UNAVAILABLE",
        +  "QUOTE_FAILED",
        +  "INVALID_MARKET_STATE",
        +  "MATH_OVERFLOW",
        +  "UNKNOWN_CONTRACT_ERROR",
        +  "DEADLINE_EXPIRED",
        +  "ZERO_INPUT",
        +  "ZERO_NET_INPUT",
        +  "ZERO_DELTA",
        +  "INVALID_MARKET",
        +  "INVALID_TOKEN",
        +  "NATIVE_ROUTE_UNAVAILABLE",
        +  "POST_ONLY_WOULD_CROSS",
        +  "FOK_UNFILLABLE",
        +  "CLORDID_CONFLICT",
        +  "QUOTE_SET_INVALID",
        +  "QUOTE_GENERATION_STALE",
        +  "ORDER_IN_FLIGHT",
        +  "MAKER_NOT_EXECUTABLE",
        +  "LIQUIDITY_CHANGED",
        +  "CANCELLATION_EVENT_NOT_FOUND",
        +  "CANCELLATION_EVENT_MISMATCH",
        +  "INVALID_NONCE_FLOOR",
        +  "NONCE_INVALIDATION_EVENT_NOT_FOUND",
        +  "NONCE_INVALIDATION_EVENT_MISMATCH",
        +  "INVALID_TX_HASH"
        +]
  12. 4 tool updates
    • Changedproblee_get_context2 fields changed
      • addedOutput schema / $defs / ContextResponse / properties / markets / items / properties / researchRevision
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "at": {
        +          "format": "date-time",
        +          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +          "type": "string"
        +        },
        +        "kind": {
        +          "enum": [
        +            "corrected",
        +            "withdrawn"
        +          ],
        +          "type": "string"
        +        },
        +        "note": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "kind",
        +        "at",
        +        "note"
        +      ],
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • changedOutput schema / $defs / ContextResponse / properties / markets / items / properties / topTraders / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "asOf": {
        -        "format": "date-time",
        -        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -        "type": "string"
        -      },
        -      "profitable": {
        -        "anyOf": [
        -          {
        -            "additionalProperties": false,
        -            "properties": {
        -              "holding": {
        -                "maximum": 9007199254740991,
        -                "minimum": 0,
        -                "type": "integer"
        -              },
        -              "members": {
        -                "items": {
        -                  "additionalProperties": false,
        -                  "properties": {
        -                    "lastMove": {
        -                      "anyOf": [
        -                        {
        -                          "additionalProperties": false,
        -                          "properties": {
        -                            "action": {
        -                              "enum": [
        -                                "bought",
        -                                "sold"
        -                              ],
        -                              "type": "string"
        -                            },
        -                            "at": {
        -                              "format": "date-time",
        -                              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -                              "type": "string"
        -                            },
        -                            "side": {
        -                              "enum": [
        -                                "outcome1",
        -                                "outcome2"
        -                              ],
        -                              "type": "string"
        -                            }
        -                          },
        -                          "required": [
        -                            "action",
        -                            "side",
        -                            "at"
        -                          ],
        -                          "type": "object"
        -                        },
        -                        {
        -                          "type": "null"
        -                        }
        -                      ]
        -                    },
        -                    "name": {
        -                      "type": "string"
        -                    },
        -                    "shares": {
        -                      "exclusiveMinimum": 0,
        -                      "maximum": 9007199254740991,
        -                      "type": "integer"
        -                    },
        -                    "side": {
        -                      "enum": [
        -                        "outcome1",
        -                        "outcome2"
        -                      ],
        -                      "type": "string"
        -                    },
        -                    "wallet": {
        -                      "pattern": "^0x[0-9a-f]{40}$",
        -                      "type": "string"
        -                    }
        -                  },
        -                  "required": [
        -                    "name",
        -                    "wallet",
        -                    "side",
        -                    "shares",
        -                    "lastMove"
        -                  ],
        -                  "type": "object"
        -                },
        -                "type": "array"
        -              },
        -              "outcome1": {
        -                "maximum": 9007199254740991,
        -                "minimum": 0,
        -                "type": "integer"
        -              },
        -              "outcome2": {
        -                "maximum": 9007199254740991,
        -                "minimum": 0,
        -                "type": "integer"
        -              }
        -            },
        -            "required": [
        -              "holding",
        -              "outcome1",
        -              "outcome2"
        -            ],
        -            "type": "object"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "top": {
        -        "anyOf": [
        -          {
        -            "additionalProperties": false,
        -            "properties": {
        -              "holding": {
        -                "maximum": 9007199254740991,
        -                "minimum": 0,
        -                "type": "integer"
        -              },
        -              "list": {
        -                "type": "string"
        -              },
        -              "listSize": {
        -                "maximum": 9007199254740991,
        -                "minimum": 0,
        -                "type": "integer"
        -              },
        -              "members": {
        -                "items": {
        -                  "additionalProperties": false,
        -                  "properties": {
        -                    "lastMove": {
        -                      "anyOf": [
        -                        {
        -                          "additionalProperties": false,
        -                          "properties": {
        -                            "action": {
        -                              "enum": [
        -                                "bought",
        -                                "sold"
        -                              ],
        -                              "type": "string"
        -                            },
        -                            "at": {
        -                              "format": "date-time",
        -                              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -                              "type": "string"
        -                            },
        -                            "side": {
        -                              "enum": [
        -                                "outcome1",
        -                                "outcome2"
        -                              ],
        -                              "type": "string"
        -                            }
        -                          },
        -                          "required": [
        -                            "action",
        -                            "side",
        -                            "at"
        -                          ],
        -                          "type": "object"
        -                        },
        -                        {
        -                          "type": "null"
        -                        }
        -                      ]
        -                    },
        -                    "name": {
        -                      "type": "string"
        -                    },
        -                    "shares": {
        -                      "exclusiveMinimum": 0,
        -                      "maximum": 9007199254740991,
        -                      "type": "integer"
        -                    },
        -                    "side": {
        -                      "enum": [
        -                        "outcome1",
        -                        "outcome2"
        -                      ],
        -                      "type": "string"
        -                    },
        -                    "wallet": {
        -                      "pattern": "^0x[0-9a-f]{40}$",
        -                      "type": "string"
        -                    }
        -                  },
        -                  "required": [
        -                    "name",
        -                    "wallet",
        -                    "side",
        -                    "shares",
        -                    "lastMove"
        -                  ],
        -                  "type": "object"
        -                },
        -                "type": "array"
        -              },
        -              "outcome1": {
        -                "maximum": 9007199254740991,
        -                "minimum": 0,
        -                "type": "integer"
        -              },
        -              "outcome2": {
        -                "maximum": 9007199254740991,
        -                "minimum": 0,
        -                "type": "integer"
        -              }
        -            },
        -            "required": [
        -              "list",
        -              "listSize",
        -              "holding",
        -              "outcome1",
        -              "outcome2"
        -            ],
        -            "type": "object"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      }
        -    },
        -    "required": [
        -      "top",
        -      "profitable",
        -      "asOf"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "asOf": {
        +        "format": "date-time",
        +        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +        "type": "string"
        +      },
        +      "profitable": {
        +        "anyOf": [
        +          {
        +            "additionalProperties": false,
        +            "properties": {
        +              "holding": {
        +                "maximum": 9007199254740991,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "members": {
        +                "items": {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "entryAt": {
        +                      "anyOf": [
        +                        {
        +                          "format": "date-time",
        +                          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                          "type": "string"
        +                        },
        +                        {
        +                          "type": "null"
        +                        }
        +                      ]
        +                    },
        +                    "entryPrice": {
        +                      "anyOf": [
        +                        {
        +                          "maximum": 1,
        +                          "minimum": 0,
        +                          "type": "number"
        +                        },
        +                        {
        +                          "type": "null"
        +                        }
        +                      ]
        +                    },
        +                    "lastMove": {
        +                      "anyOf": [
        +                        {
        +                          "additionalProperties": false,
        +                          "properties": {
        +                            "action": {
        +                              "enum": [
        +                                "bought",
        +                                "sold"
        +                              ],
        +                              "type": "string"
        +                            },
        +                            "at": {
        +                              "format": "date-time",
        +                              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                              "type": "string"
        +                            },
        +                            "side": {
        +                              "enum": [
        +                                "outcome1",
        +                                "outcome2"
        +                              ],
        +                              "type": "string"
        +                            }
        +                          },
        +                          "required": [
        +                            "action",
        +                            "side",
        +                            "at"
        +                          ],
        +                          "type": "object"
        +                        },
        +                        {
        +                          "type": "null"
        +                        }
        +                      ]
        +                    },
        +                    "name": {
        +                      "type": "string"
        +                    },
        +                    "rank": {
        +                      "anyOf": [
        +                        {
        +                          "exclusiveMinimum": 0,
        +                          "maximum": 9007199254740991,
        +                          "type": "integer"
        +                        },
        +                        {
        +                          "type": "null"
        +                        }
        +                      ]
        +                    },
        +                    "shares": {
        +                      "exclusiveMinimum": 0,
        +                      "maximum": 9007199254740991,
        +                      "type": "integer"
        +                    },
        +                    "side": {
        +                      "enum": [
        +                        "outcome1",
        +                        "outcome2"
        +                      ],
        +                      "type": "string"
        +                    },
        +                    "smartMoneyTier": {
        +                      "anyOf": [
        +                        {
        +                          "const": 1,
        +                          "type": "number"
        +                        },
        +                        {
        +                          "const": 2,
        +                          "type": "number"
        +                        },
        +                        {
        +                          "const": 3,
        +                          "type": "number"
        +                        }
        +                      ]
        +                    },
        +                    "wallet": {
        +                      "pattern": "^0x[0-9a-f]{40}$",
        +                      "type": "string"
        +                    }
        +                  },
        +                  "required": [
        +                    "name",
        +                    "wallet",
        +                    "side",
        +                    "shares",
        +                    "lastMove"
        +                  ],
        +                  "type": "object"
        +                },
        +                "type": "array"
        +              },
        +              "outcome1": {
        +                "maximum": 9007199254740991,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "outcome2": {
        +                "maximum": 9007199254740991,
        +                "minimum": 0,
        +                "type": "integer"
        +              }
        +            },
        +            "required": [
        +              "holding",
        +              "outcome1",
        +              "outcome2"
        +            ],
        +            "type": "object"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "top": {
        +        "anyOf": [
        +          {
        +            "additionalProperties": false,
        +            "properties": {
        +              "holding": {
        +                "maximum": 9007199254740991,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "list": {
        +                "type": "string"
        +              },
        +              "listSize": {
        +                "maximum": 9007199254740991,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "members": {
        +                "items": {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "entryAt": {
        +                      "anyOf": [
        +                        {
        +                          "format": "date-time",
        +                          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                          "type": "string"
        +                        },
        +                        {
        +                          "type": "null"
        +                        }
        +                      ]
        +                    },
        +                    "entryPrice": {
        +                      "anyOf": [
        +                        {
        +                          "maximum": 1,
        +                          "minimum": 0,
        +                          "type": "number"
        +                        },
        +                        {
        +                          "type": "null"
        +                        }
        +                      ]
        +                    },
        +                    "lastMove": {
        +                      "anyOf": [
        +                        {
        +                          "additionalProperties": false,
        +                          "properties": {
        +                            "action": {
        +                              "enum": [
        +                                "bought",
        +                                "sold"
        +                              ],
        +                              "type": "string"
        +                            },
        +                            "at": {
        +                              "format": "date-time",
        +                              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +                              "type": "string"
        +                            },
        +                            "side": {
        +                              "enum": [
        +                                "outcome1",
        +                                "outcome2"
        +                              ],
        +                              "type": "string"
        +                            }
        +                          },
        +                          "required": [
        +                            "action",
        +                            "side",
        +                            "at"
        +                          ],
        +                          "type": "object"
        +                        },
        +                        {
        +                          "type": "null"
        +                        }
        +                      ]
        +                    },
        +                    "name": {
        +                      "type": "string"
        +                    },
        +                    "rank": {
        +                      "anyOf": [
        +                        {
        +                          "exclusiveMinimum": 0,
        +                          "maximum": 9007199254740991,
        +                          "type": "integer"
        +                        },
        +                        {
        +                          "type": "null"
        +                        }
        +                      ]
        +                    },
        +                    "shares": {
        +                      "exclusiveMinimum": 0,
        +                      "maximum": 9007199254740991,
        +                      "type": "integer"
        +                    },
        +                    "side": {
        +                      "enum": [
        +                        "outcome1",
        +                        "outcome2"
        +                      ],
        +                      "type": "string"
        +                    },
        +                    "smartMoneyTier": {
        +                      "anyOf": [
        +                        {
        +                          "const": 1,
        +                          "type": "number"
        +                        },
        +                        {
        +                          "const": 2,
        +                          "type": "number"
        +                        },
        +                        {
        +                          "const": 3,
        +                          "type": "number"
        +                        }
        +                      ]
        +                    },
        +                    "wallet": {
        +                      "pattern": "^0x[0-9a-f]{40}$",
        +                      "type": "string"
        +                    }
        +                  },
        +                  "required": [
        +                    "name",
        +                    "wallet",
        +                    "side",
        +                    "shares",
        +                    "lastMove"
        +                  ],
        +                  "type": "object"
        +                },
        +                "type": "array"
        +              },
        +              "outcome1": {
        +                "maximum": 9007199254740991,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              "outcome2": {
        +                "maximum": 9007199254740991,
        +                "minimum": 0,
        +                "type": "integer"
        +              }
        +            },
        +            "required": [
        +              "list",
        +              "listSize",
        +              "holding",
        +              "outcome1",
        +              "outcome2"
        +            ],
        +            "type": "object"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      }
        +    },
        +    "required": [
        +      "top",
        +      "profitable",
        +      "asOf"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedproblee_get_context_changes1 field changed
      • changedOutput schema / $defs / ContextChangesResponse / properties / changes / items / oneOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "at": {
        -        "format": "date-time",
        -        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -        "type": "string"
        -      },
        -      "headline": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "outlet": {
        -            "type": "string"
        -          },
        -          "publishedAt": {
        -            "format": "date-time",
        -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -            "type": "string"
        -          },
        -          "title": {
        -            "type": "string"
        -          },
        -          "url": {
        -            "format": "uri",
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "title",
        -          "outlet",
        -          "publishedAt",
        -          "url"
        -        ],
        -        "type": "object"
        -      },
        -      "market": {
        -        "pattern": "^(?:[a-z][a-z0-9-]{0,31}:)?0x[0-9a-fA-F]{40}$",
        -        "type": "string"
        -      },
        -      "question": {
        -        "type": "string"
        -      },
        -      "type": {
        -        "const": "headline",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "type",
        -      "at",
        -      "market",
        -      "question",
        -      "headline"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "at": {
        -        "format": "date-time",
        -        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -        "type": "string"
        -      },
        -      "market": {
        -        "pattern": "^(?:[a-z][a-z0-9-]{0,31}:)?0x[0-9a-fA-F]{40}$",
        -        "type": "string"
        -      },
        -      "question": {
        -        "type": "string"
        -      },
        -      "type": {
        -        "const": "analyst_view",
        -        "type": "string"
        -      },
        -      "view": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "chance": {
        -            "maximum": 1,
        -            "minimum": 0,
        -            "type": "number"
        -          },
        -          "name": {
        -            "type": "string"
        -          },
        -          "priceAtTake": {
        -            "maximum": 1,
        -            "minimum": 0,
        -            "type": "number"
        -          },
        -          "reason": {
        -            "type": [
        -              "string",
        -              "null"
        -            ]
        -          }
        -        },
        -        "required": [
        -          "name",
        -          "chance",
        -          "priceAtTake",
        -          "reason"
        -        ],
        -        "type": "object"
        -      }
        -    },
        -    "required": [
        -      "type",
        -      "at",
        -      "market",
        -      "question",
        -      "view"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "at": {
        -        "format": "date-time",
        -        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -        "type": "string"
        -      },
        -      "market": {
        -        "pattern": "^(?:[a-z][a-z0-9-]{0,31}:)?0x[0-9a-fA-F]{40}$",
        -        "type": "string"
        -      },
        -      "move": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "action": {
        -            "enum": [
        -              "bought",
        -              "sold"
        -            ],
        -            "type": "string"
        -          },
        -          "name": {
        -            "type": "string"
        -          },
        -          "side": {
        -            "enum": [
        -              "outcome1",
        -              "outcome2"
        -            ],
        -            "type": "string"
        -          },
        -          "tier": {
        -            "enum": [
        -              "top",
        -              "profitable"
        -            ],
        -            "type": "string"
        -          },
        -          "wallet": {
        -            "pattern": "^0x[0-9a-f]{40}$",
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "name",
        -          "wallet",
        -          "tier",
        -          "action",
        -          "side"
        -        ],
        -        "type": "object"
        -      },
        -      "question": {
        -        "type": "string"
        -      },
        -      "type": {
        -        "const": "trader_move",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "type",
        -      "at",
        -      "market",
        -      "question",
        -      "move"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "at": {
        -        "format": "date-time",
        -        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -        "type": "string"
        -      },
        -      "market": {
        -        "pattern": "^(?:[a-z][a-z0-9-]{0,31}:)?0x[0-9a-fA-F]{40}$",
        -        "type": "string"
        -      },
        -      "move": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "from": {
        -            "maximum": 1,
        -            "minimum": 0,
        -            "type": "number"
        -          },
        -          "over": {
        -            "enum": [
        -              "1h",
        -              "24h"
        -            ],
        -            "type": "string"
        -          },
        -          "to": {
        -            "maximum": 1,
        -            "minimum": 0,
        -            "type": "number"
        -          }
        -        },
        -        "required": [
        -          "from",
        -          "to",
        -          "over"
        -        ],
        -        "type": "object"
        -      },
        -      "question": {
        -        "type": "string"
        -      },
        -      "type": {
        -        "const": "price_move",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "type",
        -      "at",
        -      "market",
        -      "question",
        -      "move"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "at": {
        -        "format": "date-time",
        -        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -        "type": "string"
        -      },
        -      "chance": {
        -        "anyOf": [
        -          {
        -            "maximum": 1,
        -            "minimum": 0,
        -            "type": "number"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "market": {
        -        "pattern": "^(?:[a-z][a-z0-9-]{0,31}:)?0x[0-9a-fA-F]{40}$",
        -        "type": "string"
        -      },
        -      "question": {
        -        "type": "string"
        -      },
        -      "type": {
        -        "const": "new_market",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "type",
        -      "at",
        -      "market",
        -      "question",
        -      "chance"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "at": {
        -        "format": "date-time",
        -        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -        "type": "string"
        -      },
        -      "chance": {
        -        "anyOf": [
        -          {
        -            "maximum": 1,
        -            "minimum": 0,
        -            "type": "number"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "closes": {
        -        "format": "date-time",
        -        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -        "type": "string"
        -      },
        -      "market": {
        -        "pattern": "^(?:[a-z][a-z0-9-]{0,31}:)?0x[0-9a-fA-F]{40}$",
        -        "type": "string"
        -      },
        -      "question": {
        -        "type": "string"
        -      },
        -      "type": {
        -        "const": "closing",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "type",
        -      "at",
        -      "market",
        -      "question",
        -      "chance",
        -      "closes"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "at": {
        +        "format": "date-time",
        +        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +        "type": "string"
        +      },
        +      "headline": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "outlet": {
        +            "type": "string"
        +          },
        +          "publishedAt": {
        +            "format": "date-time",
        +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +            "type": "string"
        +          },
        +          "title": {
        +            "type": "string"
        +          },
        +          "url": {
        +            "format": "uri",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "title",
        +          "outlet",
        +          "publishedAt",
        +          "url"
        +        ],
        +        "type": "object"
        +      },
        +      "market": {
        +        "pattern": "^(?:[a-z][a-z0-9-]{0,31}:)?0x[0-9a-fA-F]{40}$",
        +        "type": "string"
        +      },
        +      "question": {
        +        "type": "string"
        +      },
        +      "type": {
        +        "const": "headline",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "type",
        +      "at",
        +      "market",
        +      "question",
        +      "headline"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "at": {
        +        "format": "date-time",
        +        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +        "type": "string"
        +      },
        +      "market": {
        +        "pattern": "^(?:[a-z][a-z0-9-]{0,31}:)?0x[0-9a-fA-F]{40}$",
        +        "type": "string"
        +      },
        +      "question": {
        +        "type": "string"
        +      },
        +      "type": {
        +        "const": "analyst_view",
        +        "type": "string"
        +      },
        +      "view": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "chance": {
        +            "maximum": 1,
        +            "minimum": 0,
        +            "type": "number"
        +          },
        +          "name": {
        +            "type": "string"
        +          },
        +          "priceAtTake": {
        +            "maximum": 1,
        +            "minimum": 0,
        +            "type": "number"
        +          },
        +          "reason": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          }
        +        },
        +        "required": [
        +          "name",
        +          "chance",
        +          "priceAtTake",
        +          "reason"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "type",
        +      "at",
        +      "market",
        +      "question",
        +      "view"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "at": {
        +        "format": "date-time",
        +        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +        "type": "string"
        +      },
        +      "market": {
        +        "pattern": "^(?:[a-z][a-z0-9-]{0,31}:)?0x[0-9a-fA-F]{40}$",
        +        "type": "string"
        +      },
        +      "move": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "action": {
        +            "enum": [
        +              "bought",
        +              "sold"
        +            ],
        +            "type": "string"
        +          },
        +          "name": {
        +            "type": "string"
        +          },
        +          "price": {
        +            "anyOf": [
        +              {
        +                "maximum": 1,
        +                "minimum": 0,
        +                "type": "number"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "shares": {
        +            "anyOf": [
        +              {
        +                "exclusiveMinimum": 0,
        +                "type": "number"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "side": {
        +            "enum": [
        +              "outcome1",
        +              "outcome2"
        +            ],
        +            "type": "string"
        +          },
        +          "smartMoneyTier": {
        +            "anyOf": [
        +              {
        +                "const": 1,
        +                "type": "number"
        +              },
        +              {
        +                "const": 2,
        +                "type": "number"
        +              },
        +              {
        +                "const": 3,
        +                "type": "number"
        +              }
        +            ]
        +          },
        +          "tier": {
        +            "enum": [
        +              "top",
        +              "profitable"
        +            ],
        +            "type": "string"
        +          },
        +          "usd": {
        +            "anyOf": [
        +              {
        +                "minimum": 0,
        +                "type": "number"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "wallet": {
        +            "pattern": "^0x[0-9a-f]{40}$",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "name",
        +          "wallet",
        +          "tier",
        +          "action",
        +          "side"
        +        ],
        +        "type": "object"
        +      },
        +      "question": {
        +        "type": "string"
        +      },
        +      "type": {
        +        "const": "trader_move",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "type",
        +      "at",
        +      "market",
        +      "question",
        +      "move"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "at": {
        +        "format": "date-time",
        +        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +        "type": "string"
        +      },
        +      "market": {
        +        "pattern": "^(?:[a-z][a-z0-9-]{0,31}:)?0x[0-9a-fA-F]{40}$",
        +        "type": "string"
        +      },
        +      "move": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "from": {
        +            "maximum": 1,
        +            "minimum": 0,
        +            "type": "number"
        +          },
        +          "over": {
        +            "enum": [
        +              "1h",
        +              "24h"
        +            ],
        +            "type": "string"
        +          },
        +          "to": {
        +            "maximum": 1,
        +            "minimum": 0,
        +            "type": "number"
        +          }
        +        },
        +        "required": [
        +          "from",
        +          "to",
        +          "over"
        +        ],
        +        "type": "object"
        +      },
        +      "question": {
        +        "type": "string"
        +      },
        +      "type": {
        +        "const": "price_move",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "type",
        +      "at",
        +      "market",
        +      "question",
        +      "move"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "at": {
        +        "format": "date-time",
        +        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +        "type": "string"
        +      },
        +      "chance": {
        +        "anyOf": [
        +          {
        +            "maximum": 1,
        +            "minimum": 0,
        +            "type": "number"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "market": {
        +        "pattern": "^(?:[a-z][a-z0-9-]{0,31}:)?0x[0-9a-fA-F]{40}$",
        +        "type": "string"
        +      },
        +      "question": {
        +        "type": "string"
        +      },
        +      "type": {
        +        "const": "new_market",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "type",
        +      "at",
        +      "market",
        +      "question",
        +      "chance"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "at": {
        +        "format": "date-time",
        +        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +        "type": "string"
        +      },
        +      "chance": {
        +        "anyOf": [
        +          {
        +            "maximum": 1,
        +            "minimum": 0,
        +            "type": "number"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "closes": {
        +        "format": "date-time",
        +        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +        "type": "string"
        +      },
        +      "market": {
        +        "pattern": "^(?:[a-z][a-z0-9-]{0,31}:)?0x[0-9a-fA-F]{40}$",
        +        "type": "string"
        +      },
        +      "question": {
        +        "type": "string"
        +      },
        +      "type": {
        +        "const": "closing",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "type",
        +      "at",
        +      "market",
        +      "question",
        +      "chance",
        +      "closes"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedproblee_get_market_research4 fields changed
      • addedOutput schema / $defs / MarketResearch / properties / analystRecord
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "analystCloser": {
        +      "maximum": 9007199254740991,
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "level": {
        +      "maximum": 9007199254740991,
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "priceCloser": {
        +      "maximum": 9007199254740991,
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "settledMarkets": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": false,
        +          "properties": {
        +            "max": {
        +              "maximum": 9007199254740991,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "min": {
        +              "maximum": 9007199254740991,
        +              "minimum": 0,
        +              "type": "integer"
        +            }
        +          },
        +          "required": [
        +            "min",
        +            "max"
        +          ],
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "tooFew": {
        +      "maximum": 9007199254740991,
        +      "minimum": 0,
        +      "type": "integer"
        +    }
        +  },
        +  "required": [
        +    "analystCloser",
        +    "level",
        +    "priceCloser",
        +    "tooFew",
        +    "settledMarkets"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / $defs / MarketResearch / properties / analysts / items / properties / position
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "outcome1": {
        +          "minimum": 0,
        +          "type": "number"
        +        },
        +        "outcome2": {
        +          "minimum": 0,
        +          "type": "number"
        +        }
        +      },
        +      "required": [
        +        "outcome1",
        +        "outcome2"
        +      ],
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / $defs / MarketResearch / properties / analystsHolding
        Added value: +{
        +  "maximum": 9007199254740991,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / $defs / MarketResearch / properties / revision
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "at": {
        +          "format": "date-time",
        +          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +          "type": "string"
        +        },
        +        "kind": {
        +          "enum": [
        +            "corrected",
        +            "withdrawn"
        +          ],
        +          "type": "string"
        +        },
        +        "note": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "kind",
        +        "at",
        +        "note"
        +      ],
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
    • Addedproblee_get_perp_index_bars
  13. 1 tool update
    • Changedproblee_list_leaderboard4 fields changed
      • changedInput schema / $defs / LeaderboardPeriod / description
        Previous value: -"Window the board covers: `7d` is THIS CALENDAR WEEK (from Monday 00:00 UTC) and `30d` THIS CALENDAR MONTH — calendar windows since 2026-09-18, not trailing days; the keys are kept because this enum never renames a member. `all` is the life score, `season` the 2026 championship's fixed window, `season7d`/`season30d` the same calendar week and month clamped inside it. OPEN enum: windows are added over time — tolerate unseen values."New value: +"Window the board covers: `7d` is THIS CALENDAR WEEK (from Monday 00:00 UTC) and `30d` THIS CALENDAR MONTH — calendar windows since 2026-09-18, not trailing days; the keys are kept because this enum never renames a member. `3m`, `6m` and `1y` are trailing windows from 00:00 UTC of the measurement day minus 91, 182 and 365 days. `all` is the life score. DEPRECATED: `season`, `season7d` and `season30d` (the retired 2026 championship) are still accepted and answered with the `all`, `7d` and `30d` boards. OPEN enum: windows are added over time — tolerate unseen values."
      • changedInput schema / $defs / LeaderboardPeriod / enum
        Previous value: -[
        -  "7d",
        -  "30d",
        -  "all",
        -  "season",
        -  "season7d",
        -  "season30d"
        -]New value: +[
        +  "7d",
        +  "30d",
        +  "all",
        +  "season",
        +  "season7d",
        +  "season30d",
        +  "3m",
        +  "6m",
        +  "1y"
        +]
      • changedInput schema / properties / period / description
        Previous value: -"7d, 30d, all (the life score), season — the 2026 championship window — or season7d / season30d, the rolling 7- and 30-day windows clamped inside the championship."New value: +"7d (this calendar week from Monday 00:00 UTC), 30d (this calendar month), 3m, 6m or 1y (trailing from 00:00 UTC of today minus 91, 182 or 365 days), or all (the life score). Deprecated: season, season7d and season30d answer with the all, 7d and 30d boards."
      • changedOutput schema / $defs / LeaderboardPeriod / enum
        Previous value: -[
        -  "7d",
        -  "30d",
        -  "all",
        -  "season",
        -  "season7d",
        -  "season30d"
        -]New value: +[
        +  "7d",
        +  "30d",
        +  "all",
        +  "season",
        +  "season7d",
        +  "season30d",
        +  "3m",
        +  "6m",
        +  "1y"
        +]
  14. 2 tool updates
    • Addedproblee_get_context
    • Addedproblee_get_context_changes
  15. 1 tool update
    • Changedproblee_get_market_research2 fields changed
      • addedOutput schema / $defs / MarketResearch / properties / analystCount
        Added value: +{
        +  "maximum": 9007199254740991,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / $defs / MarketResearch / properties / analystsAverage
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maximum": 1,
        +      "minimum": 0,
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
  16. 1 tool update
    • Changedproblee_get_market_news1 field changed
      • changedOutput schema / $defs / MarketNews / properties / news / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "country": {
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      },
        -      "counts": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "all": {
        -            "maximum": 9007199254740991,
        -            "minimum": 0,
        -            "type": "integer"
        -          },
        -          "international": {
        -            "maximum": 9007199254740991,
        -            "minimum": 0,
        -            "type": "integer"
        -          },
        -          "last24h": {
        -            "maximum": 9007199254740991,
        -            "minimum": 0,
        -            "type": "integer"
        -          },
        -          "local": {
        -            "maximum": 9007199254740991,
        -            "minimum": 0,
        -            "type": "integer"
        -          },
        -          "official": {
        -            "maximum": 9007199254740991,
        -            "minimum": 0,
        -            "type": "integer"
        -          }
        -        },
        -        "required": [
        -          "all",
        -          "official",
        -          "local",
        -          "international",
        -          "last24h"
        -        ],
        -        "type": "object"
        -      },
        -      "fetchedAt": {
        -        "format": "date-time",
        -        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -        "type": "string"
        -      },
        -      "items": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "host": {
        -              "type": "string"
        -            },
        -            "label": {
        -              "anyOf": [
        -                {
        -                  "enum": [
        -                    "official",
        -                    "wire",
        -                    "local"
        -                  ],
        -                  "type": "string"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "language": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "matched": {
        -              "items": {
        -                "type": "string"
        -              },
        -              "maxItems": 3,
        -              "minItems": 1,
        -              "type": "array"
        -            },
        -            "moreOutlets": {
        -              "maximum": 9007199254740991,
        -              "minimum": 0,
        -              "type": "integer"
        -            },
        -            "outlet": {
        -              "type": "string"
        -            },
        -            "publishedAt": {
        -              "format": "date-time",
        -              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        -              "type": "string"
        -            },
        -            "scope": {
        -              "enum": [
        -                "official",
        -                "local",
        -                "international"
        -              ],
        -              "type": "string"
        -            },
        -            "title": {
        -              "type": "string"
        -            },
        -            "url": {
        -              "format": "uri",
        -              "maxLength": 2048,
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "url",
        -            "title",
        -            "outlet",
        -            "host",
        -            "publishedAt",
        -            "language",
        -            "label",
        -            "scope",
        -            "moreOutlets",
        -            "matched"
        -          ],
        -          "type": "object"
        -        },
        -        "maxItems": 40,
        -        "type": "array"
        -      },
        -      "language": {
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      }
        -    },
        -    "required": [
        -      "fetchedAt",
        -      "country",
        -      "language",
        -      "counts",
        -      "items"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "country": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "counts": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "all": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "international": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "last24h": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "local": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "official": {
        +            "maximum": 9007199254740991,
        +            "minimum": 0,
        +            "type": "integer"
        +          }
        +        },
        +        "required": [
        +          "all",
        +          "official",
        +          "local",
        +          "international",
        +          "last24h"
        +        ],
        +        "type": "object"
        +      },
        +      "fetchedAt": {
        +        "format": "date-time",
        +        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +        "type": "string"
        +      },
        +      "items": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "host": {
        +              "type": "string"
        +            },
        +            "label": {
        +              "anyOf": [
        +                {
        +                  "enum": [
        +                    "official",
        +                    "wire",
        +                    "local"
        +                  ],
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "language": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "matched": {
        +              "items": {
        +                "type": "string"
        +              },
        +              "maxItems": 3,
        +              "minItems": 1,
        +              "type": "array"
        +            },
        +            "moreOutlets": {
        +              "maximum": 9007199254740991,
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "outlet": {
        +              "type": "string"
        +            },
        +            "publishedAt": {
        +              "format": "date-time",
        +              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +              "type": "string"
        +            },
        +            "scope": {
        +              "enum": [
        +                "official",
        +                "local",
        +                "international"
        +              ],
        +              "type": "string"
        +            },
        +            "title": {
        +              "type": "string"
        +            },
        +            "url": {
        +              "format": "uri",
        +              "maxLength": 2048,
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "url",
        +            "title",
        +            "outlet",
        +            "host",
        +            "publishedAt",
        +            "language",
        +            "label",
        +            "scope",
        +            "moreOutlets",
        +            "matched"
        +          ],
        +          "type": "object"
        +        },
        +        "maxItems": 100,
        +        "type": "array"
        +      },
        +      "language": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      }
        +    },
        +    "required": [
        +      "fetchedAt",
        +      "country",
        +      "language",
        +      "counts",
        +      "items"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
  17. 1 tool update
    • Changedproblee_get_market_research1 field changed
      • addedOutput schema / $defs / MarketResearch / properties / analysts / items / properties / reason
        Added value: +{
        +  "maxLength": 200,
        +  "type": "string"
        +}

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Enables AI agents to paper-trade on Polymarket against live order books with realistic fees and fill mechanics, including market search, portfolio tracking, and strategy backtesting.
    33
    226 PyPI
    495
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Enables AI agents to interact with the ProfitPlay prediction market to trade short-term price movements of cryptocurrencies and stocks. It provides tools for market analysis, automated betting, account registration, and leaderboard tracking.
    9
    1
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Provides prediction market intelligence, research, and strategy signals for platforms like Kalshi, Polymarket, and Robinhood. It enables AI assistants to perform market screening, arbitrage detection, and deep causal analysis to support informed trading decisions.
    27
    1
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Trade and monitor prediction markets across Polymarket, Kalshi, Opinion, Limitless, and PredictFun from any AI agent. Unified real-time data, live orderbook streaming, and order execution — one API key, one interface, five exchanges.
    -
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.