marketplaceEligibility
Per-rule eligibility for a strategy, optionally scoped to one candidate backtest, WITH actual values (e.g. '31 trades, needs 50'). AUTHENTICATED. backtestID is OPTIONAL: the publish drawer opens before a backtest is chosen, and the trade-count/window rules simply read as not-yet-met until one is supplied. Runs the SAME internal/marketplace.EvaluateEligibility publishListing gates on, so the drawer and the mutation can never disagree.
draft is what makes that last sentence true of the COPY rules too. Without
it this query judged title/metaDescription/body against empty strings, so
those three rules were permanently red here and the ceiling on
metaDescription — the bound on a public SERP snippet — was enforced nowhere
the publisher could see before the mutation fired. Supply the drawer's
current copy and the preview reports the same pass/fail, the same rule key
and the same required window ("120-160") publishListing itself would.
marketplaceEligibility(
strategyID: ID!
backtestID: ID
draft: MarketplaceCopyDraftInput
): MarketplaceEligibility!
Arguments
marketplaceEligibility.strategyID ● ID! non-null scalar
marketplaceEligibility.backtestID ● ID scalar
marketplaceEligibility.draft ● MarketplaceCopyDraftInput input
Type
MarketplaceEligibility object
Whether a strategy (optionally, a specific backtest) may be published RIGHT NOW, and why not if not. Reports EVERY rule, passed or failed — never fail-fast — so the drawer never makes a publisher fix one failure only to discover the next.