{"ok":true,"data":{"schema_version":2,"search_endpoint":"/v1/listings","ranking_formula_summary":"ts_rank_cd over weighted search_vector × title_coef. No quality_coef, no seller_coef, no verification multiplier, no composite trust score. Manifest-completeness is a sort tiebreaker only when q is present (never a primary input).","filters":[{"param":"q","kind":"literal_string","description":"Full-text query. Weighted ts_rank_cd over (dataset_name × A, tags × B, category+data_purpose+industry_tag_labels × C, description × D) with a narrow title-coefficient. Never a composite trust score.","ranking_role":"HARD_FILTER_ONLY"},{"param":"category","kind":"enum","description":"Listing category. Single value.","ranking_role":"HARD_FILTER_ONLY"},{"param":"data_purpose","kind":"list","description":"Listing data-purpose vocabulary. Multiple values.","ranking_role":"HARD_FILTER_ONLY"},{"param":"asset_class","kind":"enum","description":"Asset class: DATASET or TEXT_ASSET.","accepted_values":["DATASET","TEXT_ASSET"],"ranking_role":"HARD_FILTER_ONLY"},{"param":"file_format","kind":"enum","description":"Single file-format filter.","accepted_values":["CSV","JSON","PARQUET","TEXT","JSONL","PDF"],"ranking_role":"HARD_FILTER_ONLY"},{"param":"industry_tag","kind":"literal_string","description":"Hierarchical industry tag (taxonomy boundary on `.`). Equality + LIKE 'val.%' descendant match.","ranking_role":"HARD_FILTER_ONLY"},{"param":"packet_family","kind":"enum","description":"Packet family discriminator.","accepted_values":["NORMALIZATION","TAXONOMY","WORKFLOW_SOP","REFERENCE_DATA","EVALUATION"],"ranking_role":"HARD_FILTER_ONLY"},{"param":"packet_kind","kind":"literal_string","description":"Specific packet kind slug from the registry. Single value.","ranking_role":"HARD_FILTER_ONLY"},{"param":"min_price","kind":"integer","description":"Minimum price cents. Inclusive.","ranking_role":"HARD_FILTER_ONLY"},{"param":"max_price","kind":"integer","description":"Maximum price cents. Inclusive. Free-only acquisition can be expressed as max_price=0 or as free_only=true.","ranking_role":"HARD_FILTER_ONLY"},{"param":"free_only","kind":"literal_string","description":"Set to the literal \"true\" to restrict results to listings with price_cents=0. Friendly agent-side alias for max_price=0. Filter only — never a relevance boost.","accepted_values":["true"],"ranking_role":"HARD_FILTER_ONLY"},{"param":"packet_only","kind":"literal_string","description":"Set to the literal \"true\" to restrict results to packet-overlay listings (listings that carry a packet manifest). Filter only — never a relevance boost.","accepted_values":["true"],"ranking_role":"HARD_FILTER_ONLY"},{"param":"min_seller_tier","kind":"enum","description":"Minimum seller verification tier required. Filter only — never enters rank multiplication (D-147).","accepted_values":["UNVERIFIED","REGISTERED","IDENTITY_VERIFIED","CREDENTIAL_VERIFIED","INSTITUTION_VERIFIED"],"ranking_role":"HARD_FILTER_ONLY"},{"param":"rights_training_allowed","kind":"boolean","description":"Hard filter on rights_block.training_allowed. Filter only.","ranking_role":"HARD_FILTER_ONLY"},{"param":"rights_redistribution_allowed","kind":"boolean","description":"Hard filter on rights_block.redistribution_allowed. Filter only.","ranking_role":"HARD_FILTER_ONLY"},{"param":"rights_license_family","kind":"enum","description":"License-family hard filter. Filter only.","ranking_role":"HARD_FILTER_ONLY"},{"param":"requires_signed_manifest","kind":"literal_string","description":"Set to the literal \"true\" to restrict results to listings with a signed packet manifest. Filter only — never a relevance boost.","accepted_values":["true"],"ranking_role":"HARD_FILTER_ONLY"},{"param":"llm_origin_signals_present","kind":"enum","description":"Hard filter on the LLM-origin scanner disclosure. Accepts \"true\", \"false\", or \"scanned\". Filter only (D-138 / D-181).","accepted_values":["true","false","scanned"],"ranking_role":"HARD_FILTER_ONLY"},{"param":"llm_origin_max_confidence","kind":"enum","description":"Hard filter on the LLM-origin scanner confidence level. Filter only.","accepted_values":["low","medium","high"],"ranking_role":"HARD_FILTER_ONLY"},{"param":"max_benchmark_overlap_ratio","kind":"integer","description":"Hard filter on benchmark-overlap basis-points ratio (0..10000). Filter only (D-182).","ranking_role":"HARD_FILTER_ONLY"},{"param":"max_intra_packet_duplicate_ratio","kind":"integer","description":"Hard filter on intra-packet duplicate-diversity basis-points ratio (0..10000). Filter only (D-188); never enters rank multiplication, sort, or tiebreaker.","ranking_role":"HARD_FILTER_ONLY"},{"param":"rights_passport_access_mode","kind":"enum","description":"Hard filter on rights_passport.access_mode (D-186). Filter only.","ranking_role":"HARD_FILTER_ONLY"},{"param":"rights_passport_delivery_mode","kind":"enum","description":"Hard filter on rights_passport.delivery_mode (D-186). Filter only.","ranking_role":"HARD_FILTER_ONLY"},{"param":"rights_passport_agent_access_allowed","kind":"boolean","description":"Hard filter on rights_passport.agent_access_allowed (D-186). Filter only.","ranking_role":"HARD_FILTER_ONLY"},{"param":"publication_status","kind":"enum","description":"Hard filter on publication_metadata.publication_status (D-187). Filter only.","ranking_role":"HARD_FILTER_ONLY"},{"param":"publisher_role","kind":"enum","description":"Hard filter on publication_metadata.publisher_role (D-187). Filter only.","ranking_role":"HARD_FILTER_ONLY"},{"param":"language","kind":"literal_string","description":"Hard filter on publication_metadata.language (D-187). Filter only.","ranking_role":"HARD_FILTER_ONLY"},{"param":"jurisdiction","kind":"literal_string","description":"Hard filter on publication_metadata.jurisdictions[] membership (D-187). Filter only.","ranking_role":"HARD_FILTER_ONLY"},{"param":"has_doi","kind":"boolean","description":"Hard filter on publication_metadata.standard_identifiers.doi presence (D-187). Filter only.","ranking_role":"HARD_FILTER_ONLY"},{"param":"max_publication_date_age_days","kind":"integer","description":"Hard filter on publication_metadata.publication_date age in days (D-187). Filter only.","ranking_role":"HARD_FILTER_ONLY"},{"param":"has_bundle_assets","kind":"literal_string","description":"Set to literal \"true\" to restrict results to bundle-backed listings (listings.packet_bundle_revision_id IS NOT NULL). Filter only.","accepted_values":["true"],"ranking_role":"HARD_FILTER_ONLY"},{"param":"min_bundle_asset_count","kind":"integer","description":"Minimum number of assets in the packet bundle revision (>= 1, <= 1024). Excludes single-file listings. Filter only.","ranking_role":"HARD_FILTER_ONLY"},{"param":"max_bundle_asset_count","kind":"integer","description":"Maximum number of assets in the packet bundle revision (>= 1, <= 1024). Excludes single-file listings. Filter only.","ranking_role":"HARD_FILTER_ONLY"},{"param":"has_manifest_hash","kind":"literal_string","description":"Set to literal \"true\" to restrict results to listings with a populated packet_manifest_hash. Filter only.","accepted_values":["true"],"ranking_role":"HARD_FILTER_ONLY"},{"param":"has_packet_merkle_root","kind":"literal_string","description":"Set to literal \"true\" to restrict results to listings with a populated packet_merkle_root. Filter only.","accepted_values":["true"],"ranking_role":"HARD_FILTER_ONLY"},{"param":"has_publication_metadata","kind":"literal_string","description":"Set to literal \"true\" to restrict results to listings with a listing_publication_metadata row (D-187). Filter only.","accepted_values":["true"],"ranking_role":"HARD_FILTER_ONLY"},{"param":"has_source_url","kind":"literal_string","description":"Set to literal \"true\" to restrict results to listings whose underlying dataset declares a source_url. Filter only.","accepted_values":["true"],"ranking_role":"HARD_FILTER_ONLY"},{"param":"has_evaluated_evidence","kind":"literal_string","description":"Set to literal \"true\" to restrict results to listings whose packet_manifest.evidence_refs is a populated object. Disclosure-only — the bucket being declared does not certify quality.","accepted_values":["true"],"ranking_role":"HARD_FILTER_ONLY"},{"param":"tag","kind":"literal_string","description":"Canonical taxonomy tag (kebab-case). Aliases (e.g., `rag` → `rag-corpus`) are rewritten transparently. Unknown / non-canonical tokens return HTTP 400. See `tag_taxonomy.classes` for the canonical set. Filter only — no ranking impact.","ranking_role":"HARD_FILTER_ONLY"},{"param":"tag_class","kind":"enum","description":"Tag class id (kebab-case). Matches listings whose `listings.tags[]` overlap with the canonical set for that class. Filter only — no ranking impact.","accepted_values":["model-use","asset-type","domain","modality","format-family","structure","evaluation","integrity","rights","provenance","language","jurisdiction","freshness","standards","buyer-use","safety-posture"],"ranking_role":"HARD_FILTER_ONLY"},{"param":"starter_supply_slug","kind":"enum","description":"Starter-supply category slug. Matches listings whose `listings.tags[]` contain the slug. Filter only — never multiplies rank, never enters sort or tiebreaker. Invalid slug returns HTTP 400 with a structured validation error envelope (never a silent empty result). Single source of truth: src/shared/starter-supply-taxonomy.ts.","accepted_values":["project-governance","claude-md-agent-instructions","repo-playbooks","agent-workflows","evaluation-rubrics","prompt-policy-references","mcp-openapi-integration","public-source-digests","source-backed-research"],"ranking_role":"HARD_FILTER_ONLY"},{"param":"sort","kind":"enum","description":"Sort order. `relevance` (with q): final_relevance_score DESC, manifest_completeness DESC tiebreaker (never primary), then created_at DESC. `relevance` (without q): created_at DESC (manifest_completeness NOT applied to no-query browse so the catalog never silently reorders around packet content).","accepted_values":["relevance","price_asc","price_desc","newest"],"ranking_role":"HARD_FILTER_ONLY"}],"malformed_value_behavior":"Returns HTTP 400 on malformed values (e.g. non-integer min_price). Unknown enum values return HTTP 400.","unknown_filter_value_behavior":"Valid enum value with no matching listings returns HTTP 200 with empty `data.listings`.","invariants":{"no_hidden_ranking_inputs":true,"no_composite_trust_score":true,"no_agent_reputation_multiplier":true,"no_seller_prestige_relevance_boost":true,"no_quality_coefficient":true,"no_scanner_signal_ranking_input":true,"no_metadata_suggestions_ranking_input":true,"no_seller_funded_ranking_boost":true,"no_tag_taxonomy_ranking_input":true,"no_tag_count_ranking_input":true,"manifest_completeness_role":"TIEBREAKER_ONLY_WHEN_Q_PRESENT"},"filter_groups":{"ACCESS_AND_PRICING":["q","category","data_purpose","min_price","max_price","free_only","asset_class","file_format","industry_tag"],"PACKET_STRUCTURE":["packet_only","packet_family","packet_kind","has_bundle_assets","min_bundle_asset_count","max_bundle_asset_count"],"RIGHTS_AND_LICENSING":["rights_training_allowed","rights_redistribution_allowed","rights_license_family","rights_passport_access_mode","rights_passport_delivery_mode","rights_passport_agent_access_allowed"],"PROVENANCE_AND_PUBLICATION":["publication_status","publisher_role","language","jurisdiction","has_doi","max_publication_date_age_days","has_publication_metadata","has_source_url"],"MANIFEST_AND_INTEGRITY":["requires_signed_manifest","has_manifest_hash","has_packet_merkle_root","has_evaluated_evidence"],"SCANNER_DISCLOSURES":["llm_origin_signals_present","llm_origin_max_confidence","max_benchmark_overlap_ratio","max_intra_packet_duplicate_ratio"],"TAXONOMY_TAGGING":["tag","tag_class","starter_supply_slug"],"SELLER_AND_VERIFICATION":["min_seller_tier"]},"tag_taxonomy":{"canonical_form":"kebab-case","canonical_tag_count":189,"classes":{"model-use":{"description":"Model-consumption posture: what model task the packet is built for (RAG, fine-tuning, evaluation, instruction, tool-use, etc.).","buyer_question":"What model task is this packet built for?","reveal_default":["AGENT_DISCOVERY","PUBLIC_VISIBLE","PUBLIC_SEO"],"example_tags":["rag-corpus","fine-tuning-dataset","evaluation-corpus","benchmark-fixture","instruction-dataset","tool-use-dataset"]},"asset-type":{"description":"What kind of artifact the listing represents (paper, textbook, engineering standard, dictionary, governance policy, etc.).","buyer_question":"What kind of artifact is this?","reveal_default":["AGENT_DISCOVERY","PUBLIC_VISIBLE","PUBLIC_SEO"],"example_tags":["academic-paper","open-access-article","conference-paper","journal-article","preprint","textbook"]},"domain":{"description":"Subject domain (finance, healthcare, materials-science, media-and-film, etc.) derived from industry tags + category.","buyer_question":"What subject matter does it cover?","reveal_default":["AGENT_DISCOVERY","PUBLIC_VISIBLE","PUBLIC_SEO"],"example_tags":["finance","healthcare","life-sciences","biology","chemistry","materials-science"]},"modality":{"description":"Input modality (text, tabular, time-series, geospatial, multimodal, etc.) derived from asset_class + file_format.","buyer_question":"What input modality is included?","reveal_default":["AGENT_DISCOVERY","PUBLIC_VISIBLE","PUBLIC_SEO"],"example_tags":["text","tabular","time-series","geospatial","image-collection","audio-collection"]},"format-family":{"description":"Conceptual format family — AGENT scope only; raw file format remains on the structured `file_format` field.","buyer_question":"What conceptual format family does it use?","reveal_default":["AGENT_DISCOVERY"],"example_tags":["structured-records","narrative-prose","semi-structured-records","columnar-tabular","hierarchical-document","ledger-style"]},"structure":{"description":"How the asset is organized (single-asset, multi-asset-bundle, normalized-tables, etc.).","buyer_question":"How is the asset organized?","reveal_default":["AGENT_DISCOVERY","PUBLIC_VISIBLE"],"example_tags":["single-asset","multi-asset-bundle","hierarchical-bundle","normalized-tables","denormalized-flat","time-bucketed"]},"evaluation":{"description":"Evaluation evidence declared in `packet_manifest.evidence_refs.evaluation`.","buyer_question":"What evaluation evidence is included?","reveal_default":["AGENT_DISCOVERY","PUBLIC_VISIBLE"],"example_tags":["evaluated-corpus","validation-report-included","golden-set","labeled-eval-set","scored-by-rubric","ground-truth-included"]},"integrity":{"description":"Integrity evidence (manifest hash, signed manifest, merkle root, packet bundle validation).","buyer_question":"What integrity evidence is declared?","reveal_default":["AGENT_DISCOVERY","PUBLIC_VISIBLE"],"example_tags":["manifest-hash-present","signed-manifest","evidence-refs-present","merkle-root-present","content-sha256-per-file","packet-bundle-validated"]},"rights":{"description":"Seller-declared rights posture (training_allowed, redistribution_allowed, citation_required, etc.). AGENT scope only — never SEO.","buyer_question":"What rights have the seller declared?","reveal_default":["AGENT_DISCOVERY"],"example_tags":["training-allowed","training-restricted","redistribution-allowed","redistribution-restricted","citation-required","attribution-required"]},"provenance":{"description":"Source posture (primary-source, peer-reviewed, government-source, publication-metadata-declared, etc.).","buyer_question":"What source posture is declared?","reveal_default":["AGENT_DISCOVERY","PUBLIC_VISIBLE"],"example_tags":["primary-source","secondary-source","peer-reviewed","government-source","academic-source","industry-published"]},"language":{"description":"Language(s) declared on publication_metadata or ai_metadata.","buyer_question":"What language(s) is the content in?","reveal_default":["AGENT_DISCOVERY","PUBLIC_VISIBLE","PUBLIC_SEO"],"example_tags":["multilingual","parallel-corpus","translation-memory","bilingual-dictionary","language-tagged","monolingual"]},"jurisdiction":{"description":"Legal jurisdiction(s) declared on publication_metadata.jurisdictions[].","buyer_question":"What legal jurisdiction(s) apply?","reveal_default":["AGENT_DISCOVERY","PUBLIC_SEO"],"example_tags":["us","eu","international","treaty-derived","regional","sub-national"]},"freshness":{"description":"Recency / archival posture derived from publication_date / last_reviewed_at / created_at.","buyer_question":"How current is the content?","reveal_default":["AGENT_DISCOVERY","PUBLIC_VISIBLE"],"example_tags":["recent-90d","recent-365d","archival","historical-pre-1900","versioned-policy"]},"standards":{"description":"Standard identifiers and standards-body indicators (DOI, ISBN, ISO, IEEE, ANSI, etc.).","buyer_question":"What standards / standard identifiers are referenced?","reveal_default":["AGENT_DISCOVERY","PUBLIC_SEO"],"example_tags":["iso-standard","ieee-standard","ansi-standard","astm-standard","din-standard","gost-standard"]},"buyer-use":{"description":"Buyer use cases the packet is suitable for (agent-consumable, compliance-review, due-diligence, etc.).","buyer_question":"What buyer use case fits this packet?","reveal_default":["AGENT_DISCOVERY","PUBLIC_VISIBLE"],"example_tags":["agent-consumable","builder-ready","analysis-ready","training-candidate","compliance-review","due-diligence"]},"safety-posture":{"description":"Seller-declared safety posture (PII declared, redaction applied, sensitive-content declared, etc.). AGENT scope only — never SEO.","buyer_question":"What safety posture has the seller declared?","reveal_default":["AGENT_DISCOVERY"],"example_tags":["personal-data-declared","no-pii-declared","redaction-applied","anonymized","deidentified","sensitive-content-declared"]}},"reveal_policy":{"PUBLIC_VISIBLE":{"cap":4,"rules":"Listing-detail chips. High or medium confidence + public_safe. Rights and safety-posture classes are excluded."},"PUBLIC_VISIBLE_CARD":{"cap":3,"rules":"Catalog cards. Subset of PUBLIC_VISIBLE; same exclusions."},"PUBLIC_SEO":{"cap":8,"rules":"JSON-LD keywords[]. Requires confidence=high + public_safe + seo_safe. Rights and safety-posture classes are excluded."},"AGENT_DISCOVERY":{"cap":32,"rules":"API / search-contract surfaces. Includes all classes (rights and safety-posture appear here, not in SEO)."},"INTERNAL_INFERENCE":{"cap":64,"exposed":false}},"display_limits":{"catalog_card":3,"listing_detail":4,"seo_keywords":8,"agent_response":32,"candidate_tags":24},"canonical_set_versioned_in_decisions_md":"D-220"},"tag_filter_semantics":{"tag_filter_matches":"Persisted `listings.tags[]` array contains the canonical tag (Postgres @> operator over text[], backed by listings_tags_gin_idx).","tag_class_filter_matches":"Persisted `listings.tags[]` array overlaps with the canonical set for the requested class (Postgres && operator over text[], backed by listings_tags_gin_idx). The canonical set per class lives in `tag_taxonomy.classes[<class>].example_tags` is illustrative; the full set is in src/shared/tag-taxonomy.ts CANONICAL_TAGS_BY_CLASS.","derived_taxonomy_is_informational":"Server-derived taxonomy chips on listing summary / detail responses (taxonomy_tags / taxonomy_public_chips / taxonomy_seo_keywords) and the metadata-suggestions preview output (suggested_public_tags / suggested_agent_tags / suggested_seo_tags / candidate_tags) are informational. They do NOT by themselves make a listing reachable by `tag=` / `tag_class=`. The derived set reflects what the listing could declare; it is not a query index.","seller_path_to_make_taxonomy_searchable":"To make a canonical taxonomy tag searchable for a listing, the seller writes it into `listings.tags[]` through the existing seller update path (POST /v1/listings or PATCH /v1/listings/{id}). The metadata-suggestions preview surface returns `candidate_tags` and `suggested_*_tags` precisely so sellers can review and adopt them.","canonicalization_step":"Aliases supplied to `tag=` (e.g., `rag` → `rag-corpus`, `llm-training` → `fine-tuning-dataset`) are rewritten to canonical before the WHERE clause runs. Unknown / non-canonical tokens reject with HTTP 400 — the contract never silently no-ops."},"examples":[{"description":"Free packets only.","url":"/v1/listings?free_only=true","expected_behavior":"Returns active listings with price_cents=0. Sorted by created_at DESC by default.","kind":"free-discovery"},{"description":"Packet-overlay listings with training-allowed rights.","url":"/v1/listings?packet_only=true&rights_training_allowed=true","expected_behavior":"Returns listings carrying a packet manifest whose rights_block declares training_allowed=true.","kind":"rights-aware-discovery"},{"description":"Listings with a signed packet manifest.","url":"/v1/listings?requires_signed_manifest=true","expected_behavior":"Returns listings whose signed_at column is populated (signing-key registry has issued at least one signature).","kind":"integrity-evidence-discovery"},{"description":"Provenance-rich packets with a DOI.","url":"/v1/listings?has_publication_metadata=true&has_doi=true","expected_behavior":"Returns listings with a listing_publication_metadata row whose standard_identifiers.doi is populated.","kind":"provenance-discovery"},{"description":"Recent academic packets (≤ 2 years).","url":"/v1/listings?publication_status=CURRENT&max_publication_date_age_days=730","expected_behavior":"Returns current-status academic packets with a publication_date within the last 730 days.","kind":"freshness-discovery"},{"description":"RAG corpora by canonical taxonomy tag.","url":"/v1/listings?tag=rag-corpus&packet_only=true","expected_behavior":"Returns packet listings whose seller-declared tags include the canonical `rag-corpus` tag.","kind":"taxonomy-tag-discovery"},{"description":"Engineering standards by tag class.","url":"/v1/listings?tag_class=asset-type&tag=engineering-standard","expected_behavior":"Returns listings whose tags include `engineering-standard`. The `tag_class=asset-type` filter is redundant with the explicit `tag=` value but documents the class.","kind":"class-and-tag-discovery"},{"description":"Evaluation packets with low benchmark contamination.","url":"/v1/listings?packet_family=EVALUATION&max_benchmark_overlap_ratio=0.05","expected_behavior":"Returns EVALUATION-family listings whose scanned benchmark-overlap basis points are ≤ 500 (i.e., overlap_ratio ≤ 0.05). Listings without a scanned benchmark-overlap disclosure are excluded.","kind":"scanner-disclosure-discovery"},{"description":"Multi-asset bundle listings with ≥ 2 assets.","url":"/v1/listings?has_bundle_assets=true&min_bundle_asset_count=2","expected_behavior":"Returns bundle-backed listings whose packet_bundle_revision.asset_count is ≥ 2.","kind":"bundle-structure-discovery"},{"description":"Agent-accessible packets with training-allowed rights.","url":"/v1/listings?rights_passport_agent_access_allowed=true&rights_training_allowed=true","expected_behavior":"Returns listings whose rights_passport.agent_access_allowed=true AND rights_block.training_allowed=true.","kind":"agent-policy-discovery"},{"description":"Materials-science packets with evaluated evidence.","url":"/v1/listings?tag=materials-science&has_evaluated_evidence=true","expected_behavior":"Returns listings with the canonical `materials-science` domain tag and a populated packet_manifest.evidence_refs object.","kind":"domain-and-evidence-discovery"},{"description":"Subtitle-corpus packets (media / film domain).","url":"/v1/listings?tag=subtitle-corpus","expected_behavior":"Returns listings with the canonical `subtitle-corpus` tag. The `tag` filter is single-value at v0; combine with other hard filters for narrower queries.","kind":"media-domain-discovery"}],"unsupported_filters":[{"name":"verified_quality","reason":"Graunt does not compute a `verified_quality` filter. Quality is described as `evaluated`, not `verified`. Use evaluation-class tags (`tag_class=evaluation`) or `has_evaluated_evidence=true` to filter by declared evidence."},{"name":"quality_score","reason":"No composite quality score is computed or displayed (D-132). The `quality_composite_score` column on listing detail is preserved for display compatibility only and is never a ranking input."},{"name":"min_quality","reason":"Removed at P3-5 (D-162). The legacy composite quality filter is intentionally absent; the new filter set predicates on declared rights, evidence, manifest, and publication metadata."},{"name":"seller_prestige","reason":"Seller verification is exposed via `min_seller_tier` as a filter / disclosure only. Verification tier never enters rank multiplication (D-147)."},{"name":"agent_reputation","reason":"Agent reputation is not a ranking input (D-189 §L2). Compensated-recommendation surfaces use the disclosure model (D-171), not a reputation multiplier."},{"name":"composite_trust_score","reason":"Deprecated by D-132. No composite trust score is computed."},{"name":"has_rights_passport","reason":"Every listing carries a default rights_passport row. Use `rights_passport_access_mode=`, `rights_passport_delivery_mode=`, or `rights_passport_agent_access_allowed=` to filter declarative posture instead."},{"name":"training_safe","reason":"Use `rights_training_allowed=true` (declarative). Graunt does not certify training safety; the rights field is a seller declaration only."},{"name":"guaranteed_clean","reason":"Graunt does not issue clean-bill-of-rights or content guarantees. Use scanner-disclosure filters (`llm_origin_signals_present=`, `max_benchmark_overlap_ratio=`, `max_intra_packet_duplicate_ratio=`) for disclosure-only signals."},{"name":"has_prompt_injection_signal","reason":"The prompt-injection-signal scanner is SUBSTRATE_ONLY_DEFAULT_OFF in production (D-185, D-218). A filter would return zero rows in prod and advertise non-live capability."},{"name":"has_secret_leak_signal","reason":"The secret-leak-signal scanner is SUBSTRATE_ONLY_DEFAULT_OFF in production (D-185, D-218). A filter would return zero rows in prod and advertise non-live capability."}],"unsupported_tag_claims":[{"claim":"verified-quality","reason":"Quality is evaluated, not verified. Use evaluation-class tags (`evaluated-corpus`, `validation-report-included`, etc.)."},{"claim":"guaranteed-safe","reason":"Graunt does not issue safety guarantees."},{"claim":"certified-clean","reason":"Graunt does not issue clean-bill-of-content certifications."},{"claim":"ai-marketplace","reason":"Graunt is the marketplace for agent-ready data, not a generic AI marketplace. `ai-marketplace` is not a canonical taxonomy tag."},{"claim":"training-safe","reason":"Use the canonical rights-class tag `training-allowed` (echoes rights_block.training_allowed). Graunt does not certify training safety; rights tags are seller declarations only."}],"sort_modes":[{"mode":"relevance","description":"Default when `q` is present. ORDER BY final_relevance_score DESC, then manifest_completeness DESC tiebreaker, then created_at DESC. Without `q`, falls back to created_at DESC (manifest_completeness NOT applied so the catalog never silently reorders around packet content)."},{"mode":"newest","description":"ORDER BY listings.created_at DESC, listings.id ASC."},{"mode":"price_asc","description":"ORDER BY listings.price_cents ASC, listings.id ASC (deterministic id tiebreaker)."},{"mode":"price_desc","description":"ORDER BY listings.price_cents DESC, listings.id ASC (deterministic id tiebreaker)."}],"seller_discoverability_guidance":"Sellers can broaden agent / buyer reach by declaring: rights_passport (powers RIGHTS_AND_LICENSING filters), listing_publication_metadata (powers PROVENANCE_AND_PUBLICATION filters), packet_manifest with populated evidence_refs (powers MANIFEST_AND_INTEGRITY filters), packet bundles with ≥ 2 assets (powers PACKET_STRUCTURE filters), and canonical taxonomy tags written into listings.tags[] (powers TAXONOMY_TAGGING filters). Use POST /v1/listings/metadata-suggestions/preview to preview deterministic taxonomy suggestions before publishing — sellers must explicitly write canonical taxonomy tags into the listing for `tag=` / `tag_class=` filters to match. Graunt never certifies quality or safety — public surfaces use `evaluated` language only.","metadata_suggestions_endpoint":"POST /v1/listings/metadata-suggestions/preview","facet_aggregation":{"available":false,"reason":"Dynamic facet counts deferred. The static filter_groups + tag_taxonomy.classes + examples blocks cover agent-readable discovery at schema_version 2. A future slice may introduce a /v1/listings/facets endpoint or a `facet_aggregation.counts` block on this response."}}}