{
    "meta": {
        "path": "experimental/marketplace-manifest.php",
        "ts": "2026-05-27T16:34:50+00:00",
        "status": "ok",
        "mode": "manifest",
        "manifest_version": "2026-03-22-phase27-step1",
        "scope": "experimental_marketplace",
        "links": {
            "self_url": "/topos/api/experimental/marketplace-manifest.php",
            "manifest_url": "/topos/api/experimental/marketplace-manifest.php",
            "catalog_url": "/topos/marketplace-catalog",
            "about_url": "/topos/marketplace-about",
            "for_agents_url": "/topos/for-agents",
            "external_integrator_guide_en_url": "/topos/docs/MARKETPLACE_EXTERNAL_INTEGRATOR_GUIDE_EN.md",
            "api_integration_examples_en_url": "/topos/docs/MARKETPLACE_API_INTEGRATION_EXAMPLES_EN.md",
            "graduation_checklist_en_url": "/topos/docs/MARKETPLACE_EXPERIMENTAL_TO_STABLE_CHECKLIST_EN.md",
            "stable_alias_policy_en_url": "/topos/docs/MARKETPLACE_STABLE_ALIAS_POLICY_EN.md",
            "agent_guide_url": "/topos/docs/MARKETPLACE_AGENT_ENTRY_GUIDE_RU.md",
            "system_overview_url": "/topos/docs/MARKETPLACE_SYSTEM_OVERVIEW_RU.md",
            "control_plane_audit_url": "/topos/api/experimental/marketplace-control-plane-audit.php",
            "listings_url": "/topos/api/experimental/marketplace-listings.php",
            "read_models_url": "/topos/api/experimental/marketplace-read-models.php",
            "stable_canary_readiness_url": "/topos/api/experimental/marketplace-stable-canary-readiness.php",
            "stable_promotion_dry_run_url": "/topos/api/experimental/marketplace-stable-promotion-dry-run.php",
            "experimental_fallback_policy_url": "/topos/api/experimental/marketplace-experimental-fallback-policy.php",
            "deprecation_guardrails_url": "/topos/api/experimental/marketplace-deprecation-guardrails.php",
            "sunset_pilot_url": "/topos/api/experimental/marketplace-sunset-pilot.php",
            "sunset_pilot_validation_url": "/topos/api/experimental/marketplace-sunset-pilot-validation.php",
            "sunset_pilot_exit_readiness_url": "/topos/api/experimental/marketplace-sunset-pilot-exit-readiness.php",
            "sunset_pilot_exit_execution_url": "/topos/api/experimental/marketplace-sunset-pilot-exit-execution.php",
            "sunset_post_exit_enforcement_url": "/topos/api/experimental/marketplace-sunset-post-exit-enforcement.php",
            "sunset_stable_observability_url": "/topos/api/experimental/marketplace-sunset-stable-observability.php",
            "sunset_retirement_dry_run_url": "/topos/api/experimental/marketplace-sunset-retirement-dry-run.php",
            "sunset_retirement_canary_url": "/topos/api/experimental/marketplace-sunset-retirement-canary.php",
            "sunset_hard_cutover_url": "/topos/api/experimental/marketplace-sunset-hard-cutover.php",
            "sunset_wave_dry_run_url": "/topos/api/experimental/marketplace-sunset-wave-dry-run.php",
            "stable_listings_url": "/topos/api/v1/marketplace/listings",
            "stable_read_models_url": "/topos/api/v1/marketplace/read-models",
            "stable_route_resolve_url": "/topos/api/v1/marketplace/routes/resolve",
            "stable_job_run_url": "/topos/api/v1/marketplace/jobs/run",
            "stable_jobs_url": "/topos/api/v1/marketplace/jobs",
            "stable_job_status_url": "/topos/api/v1/marketplace/jobs/status",
            "graduation_checklist_url": "/topos/api/experimental/marketplace-graduation-checklist.php",
            "stable_manifest_url": "/topos/api/v1/marketplace/manifest",
            "stable_graduation_checklist_url": "/topos/api/v1/marketplace/ops/graduation-checklist",
            "stable_aliases_url": "/topos/api/experimental/marketplace-stable-aliases.php",
            "preflight_url": "/topos/api/experimental/marketplace-preflight.php"
        }
    },
    "data": {
        "system": {
            "name": "TOPOS Marketplace",
            "summary": "Agent runtime and control-plane layer for internal agents, partner agents, private templates, event automation, billing, and operator-facing browser surfaces.",
            "current_stage": "experimental_but_working",
            "phase_status": {
                "foundation": "done",
                "controlled_orchestration": "done",
                "event_system": "done",
                "marketplace": "done",
                "trust_and_access": "done",
                "partner_runtime_sandbox": "done",
                "billing_enforcement": "done",
                "reliability_and_ops": "done",
                "marketplace_control_plane": "done",
                "marketplace_ui": "done",
                "discovery_and_dx": "done",
                "control_plane_auth_hardening": "done",
                "unified_read_models": "done",
                "operator_clarity": "in_progress"
            }
        },
        "entrypoints": {
            "machine": {
                "manifest": "https://shipinfo.net/topos/api/experimental/marketplace-manifest.php",
                "preflight": "https://shipinfo.net/topos/api/experimental/marketplace-preflight.php",
                "stable_aliases": "https://shipinfo.net/topos/api/experimental/marketplace-stable-aliases.php",
                "stable_canary_readiness": "https://shipinfo.net/topos/api/experimental/marketplace-stable-canary-readiness.php",
                "stable_promotion_dry_run": "https://shipinfo.net/topos/api/experimental/marketplace-stable-promotion-dry-run.php",
                "experimental_fallback_policy": "https://shipinfo.net/topos/api/experimental/marketplace-experimental-fallback-policy.php",
                "deprecation_guardrails": "https://shipinfo.net/topos/api/experimental/marketplace-deprecation-guardrails.php",
                "sunset_pilot": "https://shipinfo.net/topos/api/experimental/marketplace-sunset-pilot.php",
                "sunset_pilot_validation": "https://shipinfo.net/topos/api/experimental/marketplace-sunset-pilot-validation.php",
                "sunset_pilot_exit_readiness": "https://shipinfo.net/topos/api/experimental/marketplace-sunset-pilot-exit-readiness.php",
                "sunset_pilot_exit_execution": "https://shipinfo.net/topos/api/experimental/marketplace-sunset-pilot-exit-execution.php",
                "sunset_post_exit_enforcement": "https://shipinfo.net/topos/api/experimental/marketplace-sunset-post-exit-enforcement.php",
                "sunset_stable_observability": "https://shipinfo.net/topos/api/experimental/marketplace-sunset-stable-observability.php",
                "sunset_retirement_dry_run": "https://shipinfo.net/topos/api/experimental/marketplace-sunset-retirement-dry-run.php",
                "sunset_retirement_canary": "https://shipinfo.net/topos/api/experimental/marketplace-sunset-retirement-canary.php",
                "sunset_hard_cutover": "https://shipinfo.net/topos/api/experimental/marketplace-sunset-hard-cutover.php",
                "sunset_wave_dry_run": "https://shipinfo.net/topos/api/experimental/marketplace-sunset-wave-dry-run.php",
                "stable_manifest": "https://shipinfo.net/topos/api/v1/marketplace/manifest",
                "stable_listings": "https://shipinfo.net/topos/api/v1/marketplace/listings",
                "stable_read_models": "https://shipinfo.net/topos/api/v1/marketplace/read-models",
                "stable_route_resolve": "https://shipinfo.net/topos/api/v1/marketplace/routes/resolve",
                "stable_job_run": "https://shipinfo.net/topos/api/v1/marketplace/jobs/run",
                "stable_jobs": "https://shipinfo.net/topos/api/v1/marketplace/jobs",
                "stable_job_status": "https://shipinfo.net/topos/api/v1/marketplace/jobs/status",
                "stable_partner_agents": "https://shipinfo.net/topos/api/v1/marketplace/partner/agents",
                "stable_event_triggers": "https://shipinfo.net/topos/api/v1/marketplace/events/triggers",
                "stable_event_workflows": "https://shipinfo.net/topos/api/v1/marketplace/events/workflows",
                "stable_event_runbook": "https://shipinfo.net/topos/api/v1/marketplace/events/runbook",
                "stable_wallet_balance": "https://shipinfo.net/topos/api/v1/marketplace/ops/wallet-balance",
                "stable_billing_summary": "https://shipinfo.net/topos/api/v1/marketplace/ops/billing-summary",
                "stable_graduation_checklist": "https://shipinfo.net/topos/api/v1/marketplace/ops/graduation-checklist",
                "stable_canary_hint": "append ?canary=1 or send X-Marketplace-Canary: 1 during pilot rollout",
                "catalog": "https://shipinfo.net/topos/api/experimental/marketplace-read-models.php",
                "listings": "https://shipinfo.net/topos/api/experimental/marketplace-listings.php"
            },
            "human": {
                "catalog_page": "https://shipinfo.net/topos/marketplace-catalog",
                "about_page": "https://shipinfo.net/topos/marketplace-about",
                "external_integrator_guide_en": "https://shipinfo.net/topos/docs/MARKETPLACE_EXTERNAL_INTEGRATOR_GUIDE_EN.md",
                "api_integration_examples_en": "https://shipinfo.net/topos/docs/MARKETPLACE_API_INTEGRATION_EXAMPLES_EN.md",
                "experimental_to_stable_checklist_en": "https://shipinfo.net/topos/docs/MARKETPLACE_EXPERIMENTAL_TO_STABLE_CHECKLIST_EN.md",
                "stable_alias_policy_en": "https://shipinfo.net/topos/docs/MARKETPLACE_STABLE_ALIAS_POLICY_EN.md",
                "system_overview_ru": "https://shipinfo.net/topos/docs/MARKETPLACE_SYSTEM_OVERVIEW_RU.md",
                "agent_entry_guide_ru": "https://shipinfo.net/topos/docs/MARKETPLACE_AGENT_ENTRY_GUIDE_RU.md",
                "for_agents": "https://shipinfo.net/topos/for-agents"
            }
        },
        "auth_models": [
            {
                "auth_mode": "public_none",
                "label": "No explicit marketplace auth",
                "transport": "none",
                "used_for": [
                    "public catalog reads",
                    "status and diagnostics reads"
                ]
            },
            {
                "auth_mode": "agent_api_key",
                "label": "Bearer API key",
                "transport": "Authorization: Bearer <API_KEY>",
                "used_for": [
                    "agent identity",
                    "owner token issuance",
                    "partner and event control-plane mutations",
                    "normal marketplace runtime calls when caller identity matters"
                ],
                "bootstrap": "https://shipinfo.net/topos/api/v1/agents/register"
            },
            {
                "auth_mode": "owner_token",
                "label": "Marketplace owner token",
                "transport": "X-Marketplace-Owner-Token: <OWNER_TOKEN>",
                "used_for": [
                    "private template create/read/list",
                    "template audit",
                    "template-backed runs"
                ]
            },
            {
                "auth_mode": "partner_adapter_key",
                "label": "Partner adapter key",
                "transport": "X-Partner-Adapter-Key: <ADAPTER_KEY>",
                "used_for": [
                    "direct partner external runtime adapter calls"
                ]
            }
        ],
        "auth_explainer": {
            "summary": "Marketplace auth is currently split across public experimental reads, optional agent identity for direct runtime, registered-agent API keys for owner, partner, event, and control-plane audit surfaces, owner tokens for private templates, and partner adapter keys for direct adapter runtime.",
            "contracts": {
                "public_read_experimental": {
                    "label": "Public read in experimental slice",
                    "current_status": "active_experimental",
                    "actor_type": "public_reader",
                    "required_headers": [],
                    "optional_headers": [],
                    "required_scopes": [],
                    "used_for": [
                        "catalog discovery",
                        "job status readback",
                        "ops and diagnostics reads",
                        "event observability reads"
                    ],
                    "failure_modes": [
                        "method_not_allowed",
                        "resource_not_found"
                    ],
                    "notes": [
                        "No explicit marketplace auth is required for current read-only discovery and diagnostics surfaces.",
                        "This is expected to stay looser than mutation paths even after Phase 12 hardening."
                    ]
                },
                "direct_runtime_experimental_public": {
                    "label": "Direct runtime in experimental slice",
                    "current_status": "active_experimental",
                    "actor_type": "public_or_agent",
                    "required_headers": [],
                    "optional_headers": [
                        "Authorization: Bearer <API_KEY>",
                        "X-API-Key: <API_KEY>"
                    ],
                    "required_scopes": [],
                    "used_for": [
                        "route resolve",
                        "direct job run without template"
                    ],
                    "failure_modes": [
                        "unsupported_execution_mode",
                        "max_depth_exceeds_current_slice",
                        "route_not_resolvable"
                    ],
                    "notes": [
                        "Direct runtime still accepts unauthenticated calls in the current experimental slice.",
                        "Bearer API key is recommended as caller identity, but not yet required for direct internal runtime."
                    ]
                },
                "agent_api_key_owner_token_issuer": {
                    "label": "Agent API key for owner token issuance and lifecycle",
                    "current_status": "active",
                    "actor_type": "registered_agent",
                    "required_headers": [
                        "Authorization: Bearer <API_KEY> or X-API-Key: <API_KEY>"
                    ],
                    "optional_headers": [],
                    "required_scopes": [],
                    "used_for": [
                        "issue owner tokens",
                        "read owner tokens",
                        "revoke owner tokens",
                        "rotate owner tokens"
                    ],
                    "failure_modes": [
                        "auth_required",
                        "owner_token_not_found",
                        "owner_token_not_active"
                    ],
                    "notes": [
                        "This is the bootstrap auth layer for private template management.",
                        "Owner token secrets are returned only on issue and rotate replacement."
                    ]
                },
                "owner_token_template_manage": {
                    "label": "Owner token for template management",
                    "current_status": "active",
                    "actor_type": "owner_token_holder",
                    "required_headers": [
                        "X-Marketplace-Owner-Token: <OWNER_TOKEN>"
                    ],
                    "optional_headers": [],
                    "required_scopes": [
                        "template:manage"
                    ],
                    "used_for": [
                        "create templates",
                        "read templates",
                        "list templates",
                        "template audit"
                    ],
                    "failure_modes": [
                        "owner_token_required",
                        "owner_token_invalid",
                        "owner_token_revoked",
                        "owner_token_expired",
                        "owner_token_scope_missing"
                    ],
                    "notes": [
                        "Manage scope is intentionally separate from template execution."
                    ]
                },
                "owner_token_template_run": {
                    "label": "Owner token for template execution",
                    "current_status": "active",
                    "actor_type": "owner_token_holder",
                    "required_headers": [
                        "X-Marketplace-Owner-Token: <OWNER_TOKEN>"
                    ],
                    "optional_headers": [],
                    "required_scopes": [
                        "template:run"
                    ],
                    "used_for": [
                        "template-backed marketplace-job-run calls"
                    ],
                    "failure_modes": [
                        "owner_token_required",
                        "owner_token_invalid",
                        "owner_token_revoked",
                        "owner_token_expired",
                        "owner_token_scope_missing"
                    ],
                    "notes": [
                        "Template-backed runs require run scope even if the same owner also has manage scope elsewhere."
                    ]
                },
                "owner_token_self_introspection": {
                    "label": "Owner token self introspection",
                    "current_status": "active",
                    "actor_type": "owner_token_holder",
                    "required_headers": [
                        "X-Marketplace-Owner-Token: <OWNER_TOKEN>"
                    ],
                    "optional_headers": [],
                    "required_scopes": [],
                    "used_for": [
                        "inspect current owner token status",
                        "inspect token scopes and expiry",
                        "check whether one required scope is currently usable"
                    ],
                    "failure_modes": [
                        "owner_token_required",
                        "owner_token_invalid",
                        "unsupported_owner_scope"
                    ],
                    "notes": [
                        "Introspection is keyed by the raw owner token itself and does not require template:manage or template:run.",
                        "Revoked or expired tokens can still be introspected when the raw token matches a stored hash."
                    ]
                },
                "partner_adapter_runtime_key": {
                    "label": "Partner adapter runtime key",
                    "current_status": "active_limited",
                    "actor_type": "partner_adapter",
                    "required_headers": [
                        "X-Partner-Adapter-Key: <ADAPTER_KEY>"
                    ],
                    "optional_headers": [],
                    "required_scopes": [],
                    "used_for": [
                        "direct partner external runtime adapter calls"
                    ],
                    "failure_modes": [
                        "partner_external_auth_invalid",
                        "partner_external_auth_key_revoked",
                        "partner_external_circuit_open",
                        "partner_external_implementation_invalid",
                        "partner_external_partner_only"
                    ],
                    "notes": [
                        "Current adapter runtime is loopback/local HTTP only, not arbitrary outbound execution.",
                        "Runtime errors now include normalized taxonomy fields (code/category/source/retryable/http_status)."
                    ]
                },
                "control_plane_agent_api_key_required": {
                    "label": "Agent API key required for control-plane mutation",
                    "current_status": "active_for_partner_and_event_control_plane_phase12",
                    "actor_type": "registered_agent",
                    "required_headers": [
                        "Authorization: Bearer <API_KEY> or X-API-Key: <API_KEY>"
                    ],
                    "optional_headers": [],
                    "required_scopes": [],
                    "used_for": [
                        "partner control-plane mutations",
                        "event trigger mutations",
                        "event subscription mutations",
                        "manual event dispatch mutations"
                    ],
                    "failure_modes": [
                        "auth_required",
                        "auth_invalid"
                    ],
                    "notes": [
                        "This is now the codified target contract for control-plane mutation in Phase 12.",
                        "Phase 12 Step 2 now enforces this contract for partner mutation surfaces.",
                        "Phase 12 Step 3 now enforces the same contract for event mutation surfaces.",
                        "Role or ownership refinement can be layered on top after the initial API-key gate lands."
                    ]
                },
                "control_plane_audit_agent_api_key_read": {
                    "label": "Agent API key for control-plane audit readback",
                    "current_status": "active",
                    "actor_type": "registered_agent",
                    "required_headers": [
                        "Authorization: Bearer <API_KEY> or X-API-Key: <API_KEY>"
                    ],
                    "optional_headers": [],
                    "required_scopes": [],
                    "used_for": [
                        "read control-plane mutation audit events",
                        "list audit events by endpoint, actor, or target"
                    ],
                    "failure_modes": [
                        "auth_required",
                        "control_plane_audit_event_not_found"
                    ],
                    "notes": [
                        "This read surface exists to inspect protected partner, owner, and event mutations after Phase 12 Step 4.",
                        "Audit payloads are redacted for secrets before persistence and readback."
                    ]
                },
                "experimental_control_plane_public_write": {
                    "label": "Unauthenticated mutation in current experimental control plane",
                    "current_status": "historical_gap_closed_phase12",
                    "actor_type": "historical_reference",
                    "required_headers": [],
                    "optional_headers": [],
                    "required_scopes": [],
                    "used_for": [],
                    "failure_modes": [
                        "validation_error",
                        "resource_not_found"
                    ],
                    "notes": [
                        "This contract is kept only as a historical reference for the experimental pre-hardening slice.",
                        "Partner and event control-plane mutations no longer rely on this public-write contract after Phase 12 Steps 2-3."
                    ]
                }
            },
            "use_cases": [
                {
                    "use_case": "public_catalog_reader",
                    "label": "Public catalog reader",
                    "summary": "Browse marketplace catalog, detail models, worker status, and manifest without explicit marketplace auth.",
                    "contract_keys": [
                        "public_read_experimental"
                    ],
                    "entrypoints": [
                        "https://shipinfo.net/topos/api/experimental/marketplace-manifest.php",
                        "https://shipinfo.net/topos/api/experimental/marketplace-preflight.php",
                        "https://shipinfo.net/topos/api/experimental/marketplace-stable-aliases.php",
                        "https://shipinfo.net/topos/api/experimental/marketplace-stable-canary-readiness.php",
                        "https://shipinfo.net/topos/api/experimental/marketplace-stable-promotion-dry-run.php",
                        "https://shipinfo.net/topos/api/experimental/marketplace-experimental-fallback-policy.php",
                        "https://shipinfo.net/topos/api/experimental/marketplace-deprecation-guardrails.php",
                        "https://shipinfo.net/topos/api/experimental/marketplace-sunset-pilot.php",
                        "https://shipinfo.net/topos/api/experimental/marketplace-sunset-pilot-validation.php",
                        "https://shipinfo.net/topos/api/experimental/marketplace-sunset-pilot-exit-readiness.php",
                        "https://shipinfo.net/topos/api/experimental/marketplace-sunset-pilot-exit-execution.php",
                        "https://shipinfo.net/topos/api/experimental/marketplace-sunset-post-exit-enforcement.php",
                        "https://shipinfo.net/topos/api/experimental/marketplace-sunset-stable-observability.php",
                        "https://shipinfo.net/topos/api/experimental/marketplace-sunset-retirement-dry-run.php",
                        "https://shipinfo.net/topos/api/experimental/marketplace-sunset-retirement-canary.php",
                        "https://shipinfo.net/topos/api/experimental/marketplace-sunset-hard-cutover.php",
                        "https://shipinfo.net/topos/api/experimental/marketplace-sunset-wave-dry-run.php",
                        "https://shipinfo.net/topos/api/experimental/marketplace-listings.php",
                        "https://shipinfo.net/topos/api/experimental/marketplace-read-models.php",
                        "https://shipinfo.net/topos/api/experimental/marketplace-worker-status.php",
                        "https://shipinfo.net/topos/api/experimental/marketplace-billing-summary.php",
                        "https://shipinfo.net/topos/api/experimental/marketplace-usage-rollups.php",
                        "https://shipinfo.net/topos/api/experimental/marketplace-budget-policy-profiles.php",
                        "https://shipinfo.net/topos/api/experimental/marketplace-wallet-balance.php",
                        "https://shipinfo.net/topos/api/experimental/marketplace-graduation-checklist.php"
                    ]
                },
                {
                    "use_case": "event_workflow_reader",
                    "label": "Event workflow reader",
                    "summary": "Read combined trigger, subscription, dispatch, cooldown, retry, and next-action posture from unified event workflow surfaces.",
                    "contract_keys": [
                        "public_read_experimental"
                    ],
                    "entrypoints": [
                        "https://shipinfo.net/topos/api/experimental/marketplace-event-workflows.php",
                        "https://shipinfo.net/topos/api/experimental/marketplace-event-sla-metrics.php",
                        "https://shipinfo.net/topos/api/experimental/marketplace-event-runbook.php",
                        "https://shipinfo.net/topos/api/experimental/marketplace-event-readiness-guide.php",
                        "https://shipinfo.net/topos/api/experimental/marketplace-event-subscription-observability.php"
                    ]
                },
                {
                    "use_case": "direct_job_caller",
                    "label": "Direct job caller",
                    "summary": "Resolve and run internal marketplace jobs directly, optionally supplying agent identity through API key.",
                    "contract_keys": [
                        "direct_runtime_experimental_public"
                    ],
                    "entrypoints": [
                        "https://shipinfo.net/topos/api/experimental/marketplace-route-resolve.php",
                        "https://shipinfo.net/topos/api/experimental/marketplace-job-run.php",
                        "https://shipinfo.net/topos/api/experimental/marketplace-jobs.php",
                        "https://shipinfo.net/topos/api/experimental/marketplace-job-status.php"
                    ]
                },
                {
                    "use_case": "owner_template_manager",
                    "label": "Owner template manager",
                    "summary": "Issue owner token via API key, then manage private templates, catalog summaries, and audit history via owner token.",
                    "contract_keys": [
                        "agent_api_key_owner_token_issuer",
                        "owner_token_template_manage"
                    ],
                    "entrypoints": [
                        "https://shipinfo.net/topos/api/experimental/marketplace-owner-auth.php",
                        "https://shipinfo.net/topos/api/experimental/marketplace-owner-token-introspect.php",
                        "https://shipinfo.net/topos/api/experimental/marketplace-user-agent-templates.php",
                        "https://shipinfo.net/topos/api/experimental/marketplace-user-agent-template-catalog.php",
                        "https://shipinfo.net/topos/api/experimental/marketplace-user-agent-template-audit.php"
                    ]
                },
                {
                    "use_case": "owner_token_self_reader",
                    "label": "Owner token self reader",
                    "summary": "Inspect the current owner token lifecycle, scopes, and expiry using the token itself.",
                    "contract_keys": [
                        "owner_token_self_introspection"
                    ],
                    "entrypoints": [
                        "https://shipinfo.net/topos/api/experimental/marketplace-owner-token-introspect.php"
                    ]
                },
                {
                    "use_case": "owner_template_catalog_reader",
                    "label": "Owner template catalog reader",
                    "summary": "Read compact template catalog rows with latest audit and runtime posture for one private owner namespace.",
                    "contract_keys": [
                        "owner_token_template_manage"
                    ],
                    "entrypoints": [
                        "https://shipinfo.net/topos/api/experimental/marketplace-user-agent-template-catalog.php",
                        "https://shipinfo.net/topos/api/experimental/marketplace-user-agent-template-audit.php"
                    ]
                },
                {
                    "use_case": "owner_template_runner",
                    "label": "Owner template runner",
                    "summary": "Execute a template-backed job with a dedicated owner run token.",
                    "contract_keys": [
                        "owner_token_template_run"
                    ],
                    "entrypoints": [
                        "https://shipinfo.net/topos/api/experimental/marketplace-job-run.php",
                        "https://shipinfo.net/topos/api/experimental/marketplace-job-status.php"
                    ]
                },
                {
                    "use_case": "partner_adapter_runtime",
                    "label": "Partner adapter runtime",
                    "summary": "Call the dedicated external adapter runtime using the partner adapter key.",
                    "contract_keys": [
                        "partner_adapter_runtime_key"
                    ],
                    "entrypoints": [
                        "https://shipinfo.net/topos/api/experimental/marketplace-partner-external-runtime.php"
                    ]
                },
                {
                    "use_case": "partner_control_plane_operator",
                    "label": "Partner control-plane operator",
                    "summary": "Mutate partner control-plane surfaces with a registered agent API key.",
                    "contract_keys": [
                        "control_plane_agent_api_key_required"
                    ],
                    "entrypoints": [
                        "https://shipinfo.net/topos/api/experimental/marketplace-partner-agents.php",
                        "https://shipinfo.net/topos/api/experimental/marketplace-agent-pricing.php",
                        "https://shipinfo.net/topos/api/experimental/marketplace-agent-trust.php",
                        "https://shipinfo.net/topos/api/experimental/marketplace-agent-execution-policy.php",
                        "https://shipinfo.net/topos/api/experimental/marketplace-partner-runtime-controls.php",
                        "https://shipinfo.net/topos/api/experimental/marketplace-partner-adapter-keys.php",
                        "https://shipinfo.net/topos/api/experimental/marketplace-budget-policy-profiles.php",
                        "https://shipinfo.net/topos/api/experimental/marketplace-partner-lifecycle.php"
                    ]
                },
                {
                    "use_case": "partner_readiness_reader",
                    "label": "Partner readiness reader",
                    "summary": "Read compact partner runtime-readiness posture without full lifecycle payloads.",
                    "contract_keys": [
                        "public_read_experimental"
                    ],
                    "entrypoints": [
                        "https://shipinfo.net/topos/api/experimental/marketplace-partner-readiness.php",
                        "https://shipinfo.net/topos/api/experimental/marketplace-partner-onboarding-checklist.php",
                        "https://shipinfo.net/topos/api/experimental/marketplace-partner-lifecycle.php"
                    ]
                },
                {
                    "use_case": "event_control_plane_operator",
                    "label": "Event control-plane operator",
                    "summary": "Mutate event triggers, subscriptions, and manual dispatch with a registered agent API key.",
                    "contract_keys": [
                        "control_plane_agent_api_key_required"
                    ],
                    "entrypoints": [
                        "https://shipinfo.net/topos/api/experimental/marketplace-event-triggers.php",
                        "https://shipinfo.net/topos/api/experimental/marketplace-event-subscriptions.php",
                        "https://shipinfo.net/topos/api/experimental/marketplace-event-dispatch.php",
                        "https://shipinfo.net/topos/api/experimental/marketplace-event-replay-controls.php"
                    ]
                },
                {
                    "use_case": "control_plane_audit_reader",
                    "label": "Control-plane audit reader",
                    "summary": "Read mutation audit events for owner, partner, and event control-plane writes with a registered agent API key.",
                    "contract_keys": [
                        "control_plane_audit_agent_api_key_read"
                    ],
                    "entrypoints": [
                        "https://shipinfo.net/topos/api/experimental/marketplace-control-plane-audit.php"
                    ]
                }
            ],
            "policy_matrix": [
                {
                    "policy_key": "owner_token_issuer_write",
                    "endpoint_id": "marketplace_owner_auth",
                    "method": "POST",
                    "family": "owner_templates",
                    "enforcement_state": "enforced",
                    "current_contract_keys": [
                        "agent_api_key_owner_token_issuer"
                    ],
                    "target_contract_keys": [
                        "agent_api_key_owner_token_issuer"
                    ],
                    "target_actor_type": "registered_agent",
                    "required_headers": [
                        "Authorization: Bearer <API_KEY> or X-API-Key: <API_KEY>"
                    ],
                    "notes": [
                        "Already enforced through agent API key authentication."
                    ]
                },
                {
                    "policy_key": "owner_template_manage_write",
                    "endpoint_id": "marketplace_user_agent_templates",
                    "method": "POST",
                    "family": "owner_templates",
                    "enforcement_state": "enforced",
                    "current_contract_keys": [
                        "owner_token_template_manage"
                    ],
                    "target_contract_keys": [
                        "owner_token_template_manage"
                    ],
                    "target_actor_type": "owner_token_holder",
                    "required_headers": [
                        "X-Marketplace-Owner-Token: <OWNER_TOKEN>"
                    ],
                    "notes": [
                        "Already enforced for template create and update."
                    ]
                },
                {
                    "policy_key": "job_run_write",
                    "endpoint_id": "marketplace_job_run",
                    "method": "POST",
                    "family": "runtime",
                    "enforcement_state": "mixed_experimental",
                    "current_contract_keys": [
                        "direct_runtime_experimental_public",
                        "owner_token_template_run"
                    ],
                    "target_contract_keys": [
                        "direct_runtime_experimental_public",
                        "owner_token_template_run"
                    ],
                    "target_actor_type": "public_or_owner_token",
                    "required_headers": [
                        "X-Marketplace-Owner-Token: <OWNER_TOKEN> for template-backed runs"
                    ],
                    "notes": [
                        "Template-backed runs are already enforced.",
                        "Direct internal runtime still remains public in the experimental slice."
                    ]
                },
                {
                    "policy_key": "partner_agent_register_write",
                    "endpoint_id": "marketplace_partner_agents",
                    "method": "POST",
                    "family": "partner_control_plane",
                    "enforcement_state": "enforced",
                    "current_contract_keys": [
                        "control_plane_agent_api_key_required"
                    ],
                    "target_contract_keys": [
                        "control_plane_agent_api_key_required"
                    ],
                    "target_actor_type": "registered_agent",
                    "required_headers": [
                        "Authorization: Bearer <API_KEY> or X-API-Key: <API_KEY>"
                    ],
                    "notes": [
                        "Phase 12 Step 2 now enforces agent API key authentication for partner agent registration."
                    ]
                },
                {
                    "policy_key": "partner_pricing_write",
                    "endpoint_id": "marketplace_agent_pricing",
                    "method": "POST",
                    "family": "partner_control_plane",
                    "enforcement_state": "enforced",
                    "current_contract_keys": [
                        "control_plane_agent_api_key_required"
                    ],
                    "target_contract_keys": [
                        "control_plane_agent_api_key_required"
                    ],
                    "target_actor_type": "registered_agent",
                    "required_headers": [
                        "Authorization: Bearer <API_KEY> or X-API-Key: <API_KEY>"
                    ],
                    "notes": [
                        "Phase 12 Step 2 now enforces agent API key authentication for partner pricing metadata mutation."
                    ]
                },
                {
                    "policy_key": "partner_trust_write",
                    "endpoint_id": "marketplace_agent_trust",
                    "method": "POST",
                    "family": "partner_control_plane",
                    "enforcement_state": "enforced",
                    "current_contract_keys": [
                        "control_plane_agent_api_key_required"
                    ],
                    "target_contract_keys": [
                        "control_plane_agent_api_key_required"
                    ],
                    "target_actor_type": "registered_agent",
                    "required_headers": [
                        "Authorization: Bearer <API_KEY> or X-API-Key: <API_KEY>"
                    ],
                    "notes": [
                        "Phase 12 Step 2 now enforces agent API key authentication for partner trust mutation."
                    ]
                },
                {
                    "policy_key": "partner_execution_policy_write",
                    "endpoint_id": "marketplace_agent_execution_policy",
                    "method": "POST",
                    "family": "partner_control_plane",
                    "enforcement_state": "enforced",
                    "current_contract_keys": [
                        "control_plane_agent_api_key_required"
                    ],
                    "target_contract_keys": [
                        "control_plane_agent_api_key_required"
                    ],
                    "target_actor_type": "registered_agent",
                    "required_headers": [
                        "Authorization: Bearer <API_KEY> or X-API-Key: <API_KEY>"
                    ],
                    "notes": [
                        "Phase 12 Step 2 now enforces agent API key authentication for partner execution policy mutation."
                    ]
                },
                {
                    "policy_key": "partner_runtime_controls_write",
                    "endpoint_id": "marketplace_partner_runtime_controls",
                    "method": "POST",
                    "family": "partner_control_plane",
                    "enforcement_state": "enforced",
                    "current_contract_keys": [
                        "control_plane_agent_api_key_required"
                    ],
                    "target_contract_keys": [
                        "control_plane_agent_api_key_required"
                    ],
                    "target_actor_type": "registered_agent",
                    "required_headers": [
                        "Authorization: Bearer <API_KEY> or X-API-Key: <API_KEY>"
                    ],
                    "notes": [
                        "Phase 12 Step 2 now enforces agent API key authentication for partner runtime-control mutation."
                    ]
                },
                {
                    "policy_key": "partner_lifecycle_write",
                    "endpoint_id": "marketplace_partner_lifecycle",
                    "method": "POST",
                    "family": "partner_control_plane",
                    "enforcement_state": "enforced",
                    "current_contract_keys": [
                        "control_plane_agent_api_key_required"
                    ],
                    "target_contract_keys": [
                        "control_plane_agent_api_key_required"
                    ],
                    "target_actor_type": "registered_agent",
                    "required_headers": [
                        "Authorization: Bearer <API_KEY> or X-API-Key: <API_KEY>"
                    ],
                    "notes": [
                        "Phase 12 Step 2 now enforces agent API key authentication for consolidated partner lifecycle mutation."
                    ]
                },
                {
                    "policy_key": "partner_adapter_key_read",
                    "endpoint_id": "marketplace_partner_adapter_keys",
                    "method": "GET",
                    "family": "partner_control_plane",
                    "enforcement_state": "enforced",
                    "current_contract_keys": [
                        "control_plane_agent_api_key_required"
                    ],
                    "target_contract_keys": [
                        "control_plane_agent_api_key_required"
                    ],
                    "target_actor_type": "registered_agent",
                    "required_headers": [
                        "Authorization: Bearer <API_KEY> or X-API-Key: <API_KEY>"
                    ],
                    "notes": [
                        "Partner adapter key state read is protected by agent API key authentication."
                    ]
                },
                {
                    "policy_key": "partner_adapter_key_write",
                    "endpoint_id": "marketplace_partner_adapter_keys",
                    "method": "POST",
                    "family": "partner_control_plane",
                    "enforcement_state": "enforced",
                    "current_contract_keys": [
                        "control_plane_agent_api_key_required"
                    ],
                    "target_contract_keys": [
                        "control_plane_agent_api_key_required"
                    ],
                    "target_actor_type": "registered_agent",
                    "required_headers": [
                        "Authorization: Bearer <API_KEY> or X-API-Key: <API_KEY>"
                    ],
                    "notes": [
                        "Partner adapter key rotation and revocation are protected by agent API key authentication."
                    ]
                },
                {
                    "policy_key": "partner_external_runtime_write",
                    "endpoint_id": "marketplace_partner_external_runtime",
                    "method": "POST",
                    "family": "partner_runtime",
                    "enforcement_state": "enforced",
                    "current_contract_keys": [
                        "partner_adapter_runtime_key"
                    ],
                    "target_contract_keys": [
                        "partner_adapter_runtime_key"
                    ],
                    "target_actor_type": "partner_adapter",
                    "required_headers": [
                        "X-Partner-Adapter-Key: <ADAPTER_KEY>"
                    ],
                    "notes": [
                        "Already enforced through partner adapter key verification."
                    ]
                },
                {
                    "policy_key": "budget_policy_profile_write",
                    "endpoint_id": "marketplace_budget_policy_profiles",
                    "method": "POST",
                    "family": "billing_control_plane",
                    "enforcement_state": "enforced",
                    "current_contract_keys": [
                        "control_plane_agent_api_key_required"
                    ],
                    "target_contract_keys": [
                        "control_plane_agent_api_key_required"
                    ],
                    "target_actor_type": "registered_agent",
                    "required_headers": [
                        "Authorization: Bearer <API_KEY> or X-API-Key: <API_KEY>"
                    ],
                    "notes": [
                        "Budget policy profile mutations are protected by agent API key authentication."
                    ]
                },
                {
                    "policy_key": "sunset_pilot_write",
                    "endpoint_id": "marketplace_sunset_pilot",
                    "method": "POST",
                    "family": "sunset_control_plane",
                    "enforcement_state": "enforced",
                    "current_contract_keys": [
                        "control_plane_agent_api_key_required"
                    ],
                    "target_contract_keys": [
                        "control_plane_agent_api_key_required"
                    ],
                    "target_actor_type": "registered_agent",
                    "required_headers": [
                        "Authorization: Bearer <API_KEY> or X-API-Key: <API_KEY>"
                    ],
                    "notes": [
                        "Sunset pilot execution controls are protected by agent API key authentication."
                    ]
                },
                {
                    "policy_key": "sunset_pilot_validation_write",
                    "endpoint_id": "marketplace_sunset_pilot_validation",
                    "method": "POST",
                    "family": "sunset_control_plane",
                    "enforcement_state": "enforced",
                    "current_contract_keys": [
                        "control_plane_agent_api_key_required"
                    ],
                    "target_contract_keys": [
                        "control_plane_agent_api_key_required"
                    ],
                    "target_actor_type": "registered_agent",
                    "required_headers": [
                        "Authorization: Bearer <API_KEY> or X-API-Key: <API_KEY>"
                    ],
                    "notes": [
                        "Sunset pilot rollback action is protected by agent API key authentication."
                    ]
                },
                {
                    "policy_key": "sunset_pilot_exit_readiness_write",
                    "endpoint_id": "marketplace_sunset_pilot_exit_readiness",
                    "method": "POST",
                    "family": "sunset_control_plane",
                    "enforcement_state": "enforced",
                    "current_contract_keys": [
                        "control_plane_agent_api_key_required"
                    ],
                    "target_contract_keys": [
                        "control_plane_agent_api_key_required"
                    ],
                    "target_actor_type": "registered_agent",
                    "required_headers": [
                        "Authorization: Bearer <API_KEY> or X-API-Key: <API_KEY>"
                    ],
                    "notes": [
                        "Sunset pilot exit-readiness ramp advancement is protected by agent API key authentication."
                    ]
                },
                {
                    "policy_key": "sunset_pilot_exit_execution_write",
                    "endpoint_id": "marketplace_sunset_pilot_exit_execution",
                    "method": "POST",
                    "family": "sunset_control_plane",
                    "enforcement_state": "enforced",
                    "current_contract_keys": [
                        "control_plane_agent_api_key_required"
                    ],
                    "target_contract_keys": [
                        "control_plane_agent_api_key_required"
                    ],
                    "target_actor_type": "registered_agent",
                    "required_headers": [
                        "Authorization: Bearer <API_KEY> or X-API-Key: <API_KEY>"
                    ],
                    "notes": [
                        "Sunset pilot exit execution is protected by agent API key authentication."
                    ]
                },
                {
                    "policy_key": "sunset_post_exit_enforcement_write",
                    "endpoint_id": "marketplace_sunset_post_exit_enforcement",
                    "method": "POST",
                    "family": "sunset_control_plane",
                    "enforcement_state": "enforced",
                    "current_contract_keys": [
                        "control_plane_agent_api_key_required"
                    ],
                    "target_contract_keys": [
                        "control_plane_agent_api_key_required"
                    ],
                    "target_actor_type": "registered_agent",
                    "required_headers": [
                        "Authorization: Bearer <API_KEY> or X-API-Key: <API_KEY>"
                    ],
                    "notes": [
                        "Sunset post-exit enforcement and rollback-window controls are protected by agent API key authentication."
                    ]
                },
                {
                    "policy_key": "sunset_retirement_canary_write",
                    "endpoint_id": "marketplace_sunset_retirement_canary",
                    "method": "POST",
                    "family": "sunset_control_plane",
                    "enforcement_state": "enforced",
                    "current_contract_keys": [
                        "control_plane_agent_api_key_required"
                    ],
                    "target_contract_keys": [
                        "control_plane_agent_api_key_required"
                    ],
                    "target_actor_type": "registered_agent",
                    "required_headers": [
                        "Authorization: Bearer <API_KEY> or X-API-Key: <API_KEY>"
                    ],
                    "notes": [
                        "Sunset retirement canary controls are protected by agent API key authentication."
                    ]
                },
                {
                    "policy_key": "sunset_hard_cutover_write",
                    "endpoint_id": "marketplace_sunset_hard_cutover",
                    "method": "POST",
                    "family": "sunset_control_plane",
                    "enforcement_state": "enforced",
                    "current_contract_keys": [
                        "control_plane_agent_api_key_required"
                    ],
                    "target_contract_keys": [
                        "control_plane_agent_api_key_required"
                    ],
                    "target_actor_type": "registered_agent",
                    "required_headers": [
                        "Authorization: Bearer <API_KEY> or X-API-Key: <API_KEY>"
                    ],
                    "notes": [
                        "Sunset hard-cutover controls are protected by agent API key authentication."
                    ]
                },
                {
                    "policy_key": "event_trigger_write",
                    "endpoint_id": "marketplace_event_triggers",
                    "method": "POST",
                    "family": "events",
                    "enforcement_state": "enforced",
                    "current_contract_keys": [
                        "control_plane_agent_api_key_required"
                    ],
                    "target_contract_keys": [
                        "control_plane_agent_api_key_required"
                    ],
                    "target_actor_type": "registered_agent",
                    "required_headers": [
                        "Authorization: Bearer <API_KEY> or X-API-Key: <API_KEY>"
                    ],
                    "notes": [
                        "Phase 12 Step 3 now enforces agent API key authentication for event trigger mutation."
                    ]
                },
                {
                    "policy_key": "event_subscription_write",
                    "endpoint_id": "marketplace_event_subscriptions",
                    "method": "POST",
                    "family": "events",
                    "enforcement_state": "enforced",
                    "current_contract_keys": [
                        "control_plane_agent_api_key_required"
                    ],
                    "target_contract_keys": [
                        "control_plane_agent_api_key_required"
                    ],
                    "target_actor_type": "registered_agent",
                    "required_headers": [
                        "Authorization: Bearer <API_KEY> or X-API-Key: <API_KEY>"
                    ],
                    "notes": [
                        "Phase 12 Step 3 now enforces agent API key authentication for event subscription mutation."
                    ]
                },
                {
                    "policy_key": "event_dispatch_write",
                    "endpoint_id": "marketplace_event_dispatch",
                    "method": "POST",
                    "family": "events",
                    "enforcement_state": "enforced",
                    "current_contract_keys": [
                        "control_plane_agent_api_key_required"
                    ],
                    "target_contract_keys": [
                        "control_plane_agent_api_key_required"
                    ],
                    "target_actor_type": "registered_agent",
                    "required_headers": [
                        "Authorization: Bearer <API_KEY> or X-API-Key: <API_KEY>"
                    ],
                    "notes": [
                        "Phase 12 Step 3 now enforces agent API key authentication for manual event dispatch."
                    ]
                },
                {
                    "policy_key": "event_replay_controls_write",
                    "endpoint_id": "marketplace_event_replay_controls",
                    "method": "POST",
                    "family": "events",
                    "enforcement_state": "enforced",
                    "current_contract_keys": [
                        "control_plane_agent_api_key_required"
                    ],
                    "target_contract_keys": [
                        "control_plane_agent_api_key_required"
                    ],
                    "target_actor_type": "registered_agent",
                    "required_headers": [
                        "Authorization: Bearer <API_KEY> or X-API-Key: <API_KEY>"
                    ],
                    "notes": [
                        "Event replay and re-dispatch controls are protected by agent API key authentication."
                    ]
                }
            ],
            "current_gaps": [
                "Direct internal runtime still allows unauthenticated calls, although API key identity is recommended."
            ],
            "phase12_target": {
                "label": "Control Plane Auth Hardening",
                "completed_steps": [
                    "auth policy matrix",
                    "protect partner mutation surfaces",
                    "protect event mutation surfaces",
                    "mutation audit trail for control-plane writes"
                ],
                "planned_steps": []
            }
        },
        "families": [
            {
                "family": "discovery",
                "label": "Discovery",
                "description": "Entry surfaces that explain what the marketplace is and where to go next."
            },
            {
                "family": "catalog",
                "label": "Catalog and read models",
                "description": "Public marketplace catalog, grouped read models, and browser-facing payloads."
            },
            {
                "family": "runtime",
                "label": "Jobs and runtime",
                "description": "Route resolution, job execution, and persisted job status."
            },
            {
                "family": "owner_templates",
                "label": "Owner templates",
                "description": "Owner token issuance and private template CRUD/audit/run flows."
            },
            {
                "family": "partner_control_plane",
                "label": "Partner control plane",
                "description": "Partner registry, pricing, trust, execution policy, runtime controls, and consolidated lifecycle."
            },
            {
                "family": "partner_runtime",
                "label": "Partner runtime",
                "description": "Direct runtime adapter surface for eligible partner agents."
            },
            {
                "family": "events",
                "label": "Event automation",
                "description": "Event triggers, subscriptions, dispatch, and observability."
            },
            {
                "family": "ops",
                "label": "Ops and diagnostics",
                "description": "Worker posture, billing posture, dead letters, and event ops snapshots."
            }
        ],
        "endpoints": [
            {
                "id": "marketplace_manifest",
                "family": "discovery",
                "path": "https://shipinfo.net/topos/api/experimental/marketplace-manifest.php",
                "stable_path": "https://shipinfo.net/topos/api/v1/marketplace/manifest",
                "stable_rollout": {
                    "status": "pilot",
                    "canary_percent": 20,
                    "activation": "query:canary=1 or header:X-Marketplace-Canary:1"
                },
                "methods": [
                    "GET"
                ],
                "auth_mode": "public_none",
                "purpose": "Machine-readable marketplace discovery entrypoint with endpoint families, auth models, and canonical flows.",
                "auth_contract_keys": [
                    "public_read_experimental"
                ]
            },
            {
                "id": "marketplace_preflight",
                "family": "discovery",
                "path": "https://shipinfo.net/topos/api/experimental/marketplace-preflight.php",
                "methods": [
                    "GET"
                ],
                "auth_mode": "public_none",
                "purpose": "Read endpoint-level preflight requirements: auth contracts, required fields, and current request blockers.",
                "request_schema_key": "preflight_query",
                "example_keys": [
                    "preflight_job_status"
                ],
                "auth_contract_keys": [
                    "public_read_experimental"
                ]
            },
            {
                "id": "marketplace_listings",
                "family": "catalog",
                "path": "https://shipinfo.net/topos/api/experimental/marketplace-listings.php",
                "stable_path": "https://shipinfo.net/topos/api/v1/marketplace/listings",
                "stable_rollout": {
                    "status": "pilot",
                    "canary_percent": 20,
                    "activation": "query:canary=1 or header:X-Marketplace-Canary:1"
                },
                "methods": [
                    "GET"
                ],
                "auth_mode": "public_none",
                "purpose": "Lightweight public marketplace catalog and single-listing reads.",
                "auth_contract_keys": [
                    "public_read_experimental"
                ]
            },
            {
                "id": "marketplace_read_models",
                "family": "catalog",
                "path": "https://shipinfo.net/topos/api/experimental/marketplace-read-models.php",
                "stable_path": "https://shipinfo.net/topos/api/v1/marketplace/read-models",
                "stable_rollout": {
                    "status": "pilot",
                    "canary_percent": 20,
                    "activation": "query:canary=1 or header:X-Marketplace-Canary:1"
                },
                "methods": [
                    "GET"
                ],
                "auth_mode": "public_none",
                "purpose": "UI-oriented catalog and detail payloads for marketplace browser surfaces.",
                "auth_contract_keys": [
                    "public_read_experimental"
                ]
            },
            {
                "id": "marketplace_stable_aliases",
                "family": "discovery",
                "path": "https://shipinfo.net/topos/api/experimental/marketplace-stable-aliases.php",
                "methods": [
                    "GET"
                ],
                "auth_mode": "public_none",
                "purpose": "Stable alias map and deprecation policy for experimental marketplace endpoint migration.",
                "request_schema_key": "stable_aliases_query",
                "example_keys": [
                    "stable_aliases_default"
                ],
                "auth_contract_keys": [
                    "public_read_experimental"
                ]
            },
            {
                "id": "marketplace_stable_canary_readiness",
                "family": "ops",
                "path": "https://shipinfo.net/topos/api/experimental/marketplace-stable-canary-readiness.php",
                "methods": [
                    "GET"
                ],
                "auth_mode": "public_none",
                "purpose": "Read canary telemetry readiness gates and promotion posture for stable shim endpoints.",
                "request_schema_key": "stable_canary_readiness_query",
                "example_keys": [
                    "stable_canary_readiness_default"
                ],
                "auth_contract_keys": [
                    "public_read_experimental"
                ]
            },
            {
                "id": "marketplace_stable_promotion_dry_run",
                "family": "ops",
                "path": "https://shipinfo.net/topos/api/experimental/marketplace-stable-promotion-dry-run.php",
                "methods": [
                    "GET"
                ],
                "auth_mode": "public_none",
                "purpose": "Read dry-run promotion proposal from canary readiness and stable alias rollout state.",
                "request_schema_key": "stable_promotion_dry_run_query",
                "example_keys": [
                    "stable_promotion_dry_run_default"
                ],
                "auth_contract_keys": [
                    "public_read_experimental"
                ]
            },
            {
                "id": "marketplace_experimental_fallback_policy",
                "family": "ops",
                "path": "https://shipinfo.net/topos/api/experimental/marketplace-experimental-fallback-policy.php",
                "methods": [
                    "GET"
                ],
                "auth_mode": "public_none",
                "purpose": "Read endpoint-level fallback policy and sunset readiness plan for experimental route deprecation execution.",
                "request_schema_key": "experimental_fallback_policy_query",
                "example_keys": [
                    "experimental_fallback_policy_default"
                ],
                "auth_contract_keys": [
                    "public_read_experimental"
                ]
            },
            {
                "id": "marketplace_deprecation_guardrails",
                "family": "ops",
                "path": "https://shipinfo.net/topos/api/experimental/marketplace-deprecation-guardrails.php",
                "methods": [
                    "GET"
                ],
                "auth_mode": "public_none",
                "purpose": "Read deprecation notice and execution guardrail posture for experimental endpoint sunset transitions.",
                "request_schema_key": "deprecation_guardrails_query",
                "example_keys": [
                    "deprecation_guardrails_default"
                ],
                "auth_contract_keys": [
                    "public_read_experimental"
                ]
            },
            {
                "id": "marketplace_sunset_pilot",
                "family": "ops",
                "path": "https://shipinfo.net/topos/api/experimental/marketplace-sunset-pilot.php",
                "methods": [
                    "GET",
                    "POST"
                ],
                "auth_mode": "mixed",
                "purpose": "Read and control sunset pilot execution mode for ready discovery/runtime endpoint enforcement.",
                "notes": [
                    "GET is public for observability.",
                    "POST requires registered agent API key."
                ],
                "request_schema_key": "sunset_pilot_query",
                "request_schema_post_key": "sunset_pilot_action",
                "example_keys": [
                    "sunset_pilot_read",
                    "sunset_pilot_enable_header",
                    "sunset_pilot_set_ramp_policy",
                    "sunset_pilot_ramp_once"
                ],
                "auth_contract_keys": [
                    "public_read_experimental",
                    "control_plane_agent_api_key_required"
                ],
                "auth_policy_key": "sunset_pilot_write",
                "auth_policy_method": "POST",
                "auth_policy_state": "enforced",
                "auth_target_contract_keys": [
                    "control_plane_agent_api_key_required"
                ]
            },
            {
                "id": "marketplace_sunset_pilot_validation",
                "family": "ops",
                "path": "https://shipinfo.net/topos/api/experimental/marketplace-sunset-pilot-validation.php",
                "methods": [
                    "GET",
                    "POST"
                ],
                "auth_mode": "mixed",
                "purpose": "Read pilot validation gates and trigger authenticated rollback action when thresholds are exceeded.",
                "notes": [
                    "GET is public for observability.",
                    "POST requires registered agent API key."
                ],
                "request_schema_key": "sunset_pilot_validation_query",
                "request_schema_post_key": "sunset_pilot_validation_action",
                "example_keys": [
                    "sunset_pilot_validation_read",
                    "sunset_pilot_validation_rollback",
                    "sunset_pilot_validation_drill"
                ],
                "auth_contract_keys": [
                    "public_read_experimental",
                    "control_plane_agent_api_key_required"
                ],
                "auth_policy_key": "sunset_pilot_validation_write",
                "auth_policy_method": "POST",
                "auth_policy_state": "enforced",
                "auth_target_contract_keys": [
                    "control_plane_agent_api_key_required"
                ]
            },
            {
                "id": "marketplace_sunset_pilot_exit_readiness",
                "family": "ops",
                "path": "https://shipinfo.net/topos/api/experimental/marketplace-sunset-pilot-exit-readiness.php",
                "methods": [
                    "GET",
                    "POST"
                ],
                "auth_mode": "mixed",
                "purpose": "Read pilot exit-readiness gates and trigger authenticated cohort ramp advancement when readiness checks pass.",
                "notes": [
                    "GET is public for observability.",
                    "POST requires registered agent API key."
                ],
                "request_schema_key": "sunset_pilot_exit_readiness_query",
                "request_schema_post_key": "sunset_pilot_exit_readiness_action",
                "example_keys": [
                    "sunset_pilot_exit_readiness_read",
                    "sunset_pilot_exit_readiness_advance"
                ],
                "auth_contract_keys": [
                    "public_read_experimental",
                    "control_plane_agent_api_key_required"
                ],
                "auth_policy_key": "sunset_pilot_exit_readiness_write",
                "auth_policy_method": "POST",
                "auth_policy_state": "enforced",
                "auth_target_contract_keys": [
                    "control_plane_agent_api_key_required"
                ]
            },
            {
                "id": "marketplace_sunset_pilot_exit_execution",
                "family": "ops",
                "path": "https://shipinfo.net/topos/api/experimental/marketplace-sunset-pilot-exit-execution.php",
                "methods": [
                    "GET",
                    "POST"
                ],
                "auth_mode": "mixed",
                "purpose": "Read controlled pilot-exit execution gates and trigger authenticated exit execution when gates are satisfied.",
                "notes": [
                    "GET is public for observability.",
                    "POST requires registered agent API key."
                ],
                "request_schema_key": "sunset_pilot_exit_execution_query",
                "request_schema_post_key": "sunset_pilot_exit_execution_action",
                "example_keys": [
                    "sunset_pilot_exit_execution_read",
                    "sunset_pilot_exit_execution_execute"
                ],
                "auth_contract_keys": [
                    "public_read_experimental",
                    "control_plane_agent_api_key_required"
                ],
                "auth_policy_key": "sunset_pilot_exit_execution_write",
                "auth_policy_method": "POST",
                "auth_policy_state": "enforced",
                "auth_target_contract_keys": [
                    "control_plane_agent_api_key_required"
                ]
            },
            {
                "id": "marketplace_sunset_post_exit_enforcement",
                "family": "ops",
                "path": "https://shipinfo.net/topos/api/experimental/marketplace-sunset-post-exit-enforcement.php",
                "methods": [
                    "GET",
                    "POST"
                ],
                "auth_mode": "mixed",
                "purpose": "Read and control post-exit enforcement posture, including rollback-window activation for ready discovery/runtime endpoints.",
                "notes": [
                    "GET is public for observability.",
                    "POST requires registered agent API key."
                ],
                "request_schema_key": "sunset_post_exit_enforcement_query",
                "request_schema_post_key": "sunset_post_exit_enforcement_action",
                "example_keys": [
                    "sunset_post_exit_enforcement_read",
                    "sunset_post_exit_enforcement_open_window"
                ],
                "auth_contract_keys": [
                    "public_read_experimental",
                    "control_plane_agent_api_key_required"
                ],
                "auth_policy_key": "sunset_post_exit_enforcement_write",
                "auth_policy_method": "POST",
                "auth_policy_state": "enforced",
                "auth_target_contract_keys": [
                    "control_plane_agent_api_key_required"
                ]
            },
            {
                "id": "marketplace_sunset_stable_observability",
                "family": "ops",
                "path": "https://shipinfo.net/topos/api/experimental/marketplace-sunset-stable-observability.php",
                "methods": [
                    "GET"
                ],
                "auth_mode": "public_none",
                "purpose": "Read stable-only enforcement observability metrics and cleanup recommendations for ready experimental endpoints.",
                "request_schema_key": "sunset_stable_observability_query",
                "example_keys": [
                    "sunset_stable_observability_default"
                ],
                "auth_contract_keys": [
                    "public_read_experimental"
                ]
            },
            {
                "id": "marketplace_sunset_retirement_dry_run",
                "family": "ops",
                "path": "https://shipinfo.net/topos/api/experimental/marketplace-sunset-retirement-dry-run.php",
                "methods": [
                    "GET"
                ],
                "auth_mode": "public_none",
                "purpose": "Read experimental retirement dry-run candidate list and operator runbook for controlled retirement waves.",
                "request_schema_key": "sunset_retirement_dry_run_query",
                "example_keys": [
                    "sunset_retirement_dry_run_default"
                ],
                "auth_contract_keys": [
                    "public_read_experimental"
                ]
            },
            {
                "id": "marketplace_sunset_retirement_canary",
                "family": "ops",
                "path": "https://shipinfo.net/topos/api/experimental/marketplace-sunset-retirement-canary.php",
                "methods": [
                    "GET",
                    "POST"
                ],
                "auth_mode": "mixed",
                "purpose": "Read and control retirement canary execution for ready discovery/runtime endpoints selected from dry-run candidates.",
                "notes": [
                    "GET is public for observability.",
                    "POST requires registered agent API key."
                ],
                "request_schema_key": "sunset_retirement_canary_query",
                "request_schema_post_key": "sunset_retirement_canary_action",
                "example_keys": [
                    "sunset_retirement_canary_read",
                    "sunset_retirement_canary_set",
                    "sunset_retirement_canary_from_dry_run"
                ],
                "auth_contract_keys": [
                    "public_read_experimental",
                    "control_plane_agent_api_key_required"
                ],
                "auth_policy_key": "sunset_retirement_canary_write",
                "auth_policy_method": "POST",
                "auth_policy_state": "enforced",
                "auth_target_contract_keys": [
                    "control_plane_agent_api_key_required"
                ]
            },
            {
                "id": "marketplace_sunset_hard_cutover",
                "family": "ops",
                "path": "https://shipinfo.net/topos/api/experimental/marketplace-sunset-hard-cutover.php",
                "methods": [
                    "GET",
                    "POST"
                ],
                "auth_mode": "mixed",
                "purpose": "Read and execute full hard-cutover retirement for ready discovery/runtime experimental endpoints.",
                "notes": [
                    "GET is public for observability.",
                    "POST requires registered agent API key."
                ],
                "request_schema_key": "sunset_hard_cutover_query",
                "request_schema_post_key": "sunset_hard_cutover_action",
                "example_keys": [
                    "sunset_hard_cutover_read",
                    "sunset_hard_cutover_execute",
                    "sunset_hard_cutover_from_dry_run"
                ],
                "auth_contract_keys": [
                    "public_read_experimental",
                    "control_plane_agent_api_key_required"
                ],
                "auth_policy_key": "sunset_hard_cutover_write",
                "auth_policy_method": "POST",
                "auth_policy_state": "enforced",
                "auth_target_contract_keys": [
                    "control_plane_agent_api_key_required"
                ]
            },
            {
                "id": "marketplace_sunset_wave_dry_run",
                "family": "ops",
                "path": "https://shipinfo.net/topos/api/experimental/marketplace-sunset-wave-dry-run.php",
                "methods": [
                    "GET"
                ],
                "auth_mode": "public_none",
                "purpose": "Read dry-run candidate list and risk tiers for the first sunset wave over ready discovery/runtime endpoints.",
                "request_schema_key": "sunset_wave_dry_run_query",
                "example_keys": [
                    "sunset_wave_dry_run_default"
                ],
                "auth_contract_keys": [
                    "public_read_experimental"
                ]
            },
            {
                "id": "marketplace_route_resolve",
                "family": "runtime",
                "path": "https://shipinfo.net/topos/api/experimental/marketplace-route-resolve.php",
                "stable_path": "https://shipinfo.net/topos/api/v1/marketplace/routes/resolve",
                "stable_rollout": {
                    "status": "pilot",
                    "canary_percent": 20,
                    "activation": "query:canary=1 or header:X-Marketplace-Canary:1"
                },
                "methods": [
                    "POST"
                ],
                "auth_mode": "public_none",
                "purpose": "Resolve routable agent/capability and return current route snapshot inputs.",
                "request_schema_key": "route_resolve_request",
                "example_keys": [
                    "route_resolve_lookup"
                ],
                "auth_contract_keys": [
                    "direct_runtime_experimental_public"
                ]
            },
            {
                "id": "marketplace_job_run",
                "family": "runtime",
                "path": "https://shipinfo.net/topos/api/experimental/marketplace-job-run.php",
                "stable_path": "https://shipinfo.net/topos/api/v1/marketplace/jobs/run",
                "stable_rollout": {
                    "status": "pilot",
                    "canary_percent": 20,
                    "activation": "query:canary=1 or header:X-Marketplace-Canary:1"
                },
                "methods": [
                    "POST"
                ],
                "auth_mode": "mixed",
                "purpose": "Run direct, async, template-backed, and partner-backed marketplace jobs.",
                "notes": [
                    "direct jobs can run without explicit marketplace auth in the current experimental slice",
                    "template-backed jobs require owner token with scope template:run"
                ],
                "request_schema_key": "job_run_request",
                "example_keys": [
                    "job_run_lookup_sync"
                ],
                "auth_contract_keys": [
                    "direct_runtime_experimental_public",
                    "owner_token_template_run"
                ],
                "auth_policy_key": "job_run_write",
                "auth_policy_method": "POST",
                "auth_policy_state": "mixed_experimental",
                "auth_target_contract_keys": [
                    "direct_runtime_experimental_public",
                    "owner_token_template_run"
                ]
            },
            {
                "id": "marketplace_job_status",
                "family": "runtime",
                "path": "https://shipinfo.net/topos/api/experimental/marketplace-job-status.php",
                "stable_path": "https://shipinfo.net/topos/api/v1/marketplace/jobs/status",
                "stable_rollout": {
                    "status": "pilot",
                    "canary_percent": 20,
                    "activation": "query:canary=1 or header:X-Marketplace-Canary:1"
                },
                "methods": [
                    "GET"
                ],
                "auth_mode": "public_none",
                "purpose": "Read full persisted job snapshot including route, artifacts, costs, ledger, billing, retry, and dead-letter state.",
                "auth_contract_keys": [
                    "public_read_experimental"
                ]
            },
            {
                "id": "marketplace_jobs",
                "family": "runtime",
                "path": "https://shipinfo.net/topos/api/experimental/marketplace-jobs.php",
                "stable_path": "https://shipinfo.net/topos/api/v1/marketplace/jobs",
                "stable_rollout": {
                    "status": "pilot",
                    "canary_percent": 20,
                    "activation": "query:canary=1 or header:X-Marketplace-Canary:1"
                },
                "methods": [
                    "GET"
                ],
                "auth_mode": "public_none",
                "purpose": "Unified jobs read/list surface with compact filters for status, agent, owner template context, job type, and created-after.",
                "auth_contract_keys": [
                    "public_read_experimental"
                ]
            },
            {
                "id": "marketplace_owner_auth",
                "family": "owner_templates",
                "path": "https://shipinfo.net/topos/api/experimental/marketplace-owner-auth.php",
                "methods": [
                    "GET",
                    "POST"
                ],
                "auth_mode": "agent_api_key",
                "purpose": "Issue, read, revoke, and rotate owner access tokens.",
                "request_schema_key": "owner_token_issue_request",
                "example_keys": [
                    "owner_token_issue_template_manage"
                ],
                "auth_contract_keys": [
                    "agent_api_key_owner_token_issuer"
                ],
                "auth_policy_key": "owner_token_issuer_write",
                "auth_policy_method": "POST",
                "auth_policy_state": "enforced",
                "auth_target_contract_keys": [
                    "agent_api_key_owner_token_issuer"
                ]
            },
            {
                "id": "marketplace_owner_token_introspect",
                "family": "owner_templates",
                "path": "https://shipinfo.net/topos/api/experimental/marketplace-owner-token-introspect.php",
                "methods": [
                    "GET"
                ],
                "auth_mode": "owner_token",
                "purpose": "Inspect the current owner token lifecycle, scopes, expiry, and optional required-scope posture.",
                "request_schema_key": "owner_token_introspection_query",
                "example_keys": [
                    "owner_token_introspection_run_scope"
                ],
                "auth_contract_keys": [
                    "owner_token_self_introspection"
                ]
            },
            {
                "id": "marketplace_user_agent_templates",
                "family": "owner_templates",
                "path": "https://shipinfo.net/topos/api/experimental/marketplace-user-agent-templates.php",
                "methods": [
                    "GET",
                    "POST"
                ],
                "auth_mode": "owner_token",
                "purpose": "Create, update, read, and list private user templates.",
                "request_schema_key": "user_template_definition",
                "example_keys": [
                    "user_template_create_search"
                ],
                "auth_contract_keys": [
                    "owner_token_template_manage"
                ],
                "auth_policy_key": "owner_template_manage_write",
                "auth_policy_method": "POST",
                "auth_policy_state": "enforced",
                "auth_target_contract_keys": [
                    "owner_token_template_manage"
                ]
            },
            {
                "id": "marketplace_user_agent_template_catalog",
                "family": "owner_templates",
                "path": "https://shipinfo.net/topos/api/experimental/marketplace-user-agent-template-catalog.php",
                "methods": [
                    "GET"
                ],
                "auth_mode": "owner_token",
                "purpose": "Read compact private template catalog rows with latest audit and runtime posture.",
                "request_schema_key": "user_template_catalog_query",
                "example_keys": [
                    "user_template_catalog_active"
                ],
                "auth_contract_keys": [
                    "owner_token_template_manage"
                ]
            },
            {
                "id": "marketplace_user_agent_template_audit",
                "family": "owner_templates",
                "path": "https://shipinfo.net/topos/api/experimental/marketplace-user-agent-template-audit.php",
                "methods": [
                    "GET"
                ],
                "auth_mode": "owner_token",
                "purpose": "Read template audit history for private user templates.",
                "auth_contract_keys": [
                    "owner_token_template_manage"
                ]
            },
            {
                "id": "marketplace_partner_agents",
                "family": "partner_control_plane",
                "path": "https://shipinfo.net/topos/api/experimental/marketplace-partner-agents.php",
                "stable_path": "https://shipinfo.net/topos/api/v1/marketplace/partner/agents",
                "stable_rollout": {
                    "status": "pilot",
                    "canary_percent": 20,
                    "activation": "query:canary=1 or header:X-Marketplace-Canary:1"
                },
                "methods": [
                    "GET",
                    "POST"
                ],
                "auth_mode": "mixed",
                "purpose": "Register and read/list partner agents.",
                "notes": [
                    "GET remains public in the experimental slice",
                    "POST now requires registered agent API key"
                ],
                "auth_contract_keys": [
                    "control_plane_agent_api_key_required"
                ],
                "auth_policy_key": "partner_agent_register_write",
                "auth_policy_method": "POST",
                "auth_policy_state": "enforced",
                "auth_target_contract_keys": [
                    "control_plane_agent_api_key_required"
                ]
            },
            {
                "id": "marketplace_agent_pricing",
                "family": "partner_control_plane",
                "path": "https://shipinfo.net/topos/api/experimental/marketplace-agent-pricing.php",
                "methods": [
                    "GET",
                    "POST"
                ],
                "auth_mode": "mixed",
                "purpose": "Manage advisory pricing metadata attached to marketplace agents.",
                "notes": [
                    "GET remains public in the experimental slice",
                    "POST now requires registered agent API key"
                ],
                "auth_contract_keys": [
                    "control_plane_agent_api_key_required"
                ],
                "auth_policy_key": "partner_pricing_write",
                "auth_policy_method": "POST",
                "auth_policy_state": "enforced",
                "auth_target_contract_keys": [
                    "control_plane_agent_api_key_required"
                ]
            },
            {
                "id": "marketplace_agent_trust",
                "family": "partner_control_plane",
                "path": "https://shipinfo.net/topos/api/experimental/marketplace-agent-trust.php",
                "methods": [
                    "GET",
                    "POST"
                ],
                "auth_mode": "mixed",
                "purpose": "Manage partner trust profiles for listing/readiness surfaces.",
                "notes": [
                    "GET remains public in the experimental slice",
                    "POST now requires registered agent API key"
                ],
                "auth_contract_keys": [
                    "control_plane_agent_api_key_required"
                ],
                "auth_policy_key": "partner_trust_write",
                "auth_policy_method": "POST",
                "auth_policy_state": "enforced",
                "auth_target_contract_keys": [
                    "control_plane_agent_api_key_required"
                ]
            },
            {
                "id": "marketplace_agent_execution_policy",
                "family": "partner_control_plane",
                "path": "https://shipinfo.net/topos/api/experimental/marketplace-agent-execution-policy.php",
                "methods": [
                    "GET",
                    "POST"
                ],
                "auth_mode": "mixed",
                "purpose": "Manage execution approval and runtime mode policy for partner agents.",
                "notes": [
                    "GET remains public in the experimental slice",
                    "POST now requires registered agent API key"
                ],
                "auth_contract_keys": [
                    "control_plane_agent_api_key_required"
                ],
                "auth_policy_key": "partner_execution_policy_write",
                "auth_policy_method": "POST",
                "auth_policy_state": "enforced",
                "auth_target_contract_keys": [
                    "control_plane_agent_api_key_required"
                ]
            },
            {
                "id": "marketplace_partner_runtime_controls",
                "family": "partner_control_plane",
                "path": "https://shipinfo.net/topos/api/experimental/marketplace-partner-runtime-controls.php",
                "methods": [
                    "GET",
                    "POST"
                ],
                "auth_mode": "mixed",
                "purpose": "Manage allowlist, lifecycle, and runtime-mode operational controls for partner runtime.",
                "notes": [
                    "GET remains public in the experimental slice",
                    "POST now requires registered agent API key"
                ],
                "auth_contract_keys": [
                    "control_plane_agent_api_key_required"
                ],
                "auth_policy_key": "partner_runtime_controls_write",
                "auth_policy_method": "POST",
                "auth_policy_state": "enforced",
                "auth_target_contract_keys": [
                    "control_plane_agent_api_key_required"
                ]
            },
            {
                "id": "marketplace_partner_adapter_keys",
                "family": "partner_control_plane",
                "path": "https://shipinfo.net/topos/api/experimental/marketplace-partner-adapter-keys.php",
                "methods": [
                    "GET",
                    "POST"
                ],
                "auth_mode": "agent_api_key",
                "purpose": "Read, rotate, and revoke partner external adapter keys.",
                "notes": [
                    "GET and POST require registered agent API key",
                    "POST action supports rotate and revoke"
                ],
                "request_schema_key": "partner_adapter_key_action",
                "example_keys": [
                    "partner_adapter_key_rotate"
                ],
                "auth_contract_keys": [
                    "control_plane_agent_api_key_required"
                ],
                "auth_policy_key": "partner_adapter_key_write",
                "auth_policy_method": "POST",
                "auth_policy_state": "enforced",
                "auth_target_contract_keys": [
                    "control_plane_agent_api_key_required"
                ]
            },
            {
                "id": "marketplace_partner_lifecycle",
                "family": "partner_control_plane",
                "path": "https://shipinfo.net/topos/api/experimental/marketplace-partner-lifecycle.php",
                "methods": [
                    "GET",
                    "POST"
                ],
                "auth_mode": "mixed",
                "purpose": "Consolidated partner lifecycle read/write surface across trust, policy, and runtime control.",
                "notes": [
                    "GET remains public in the experimental slice",
                    "POST now requires registered agent API key"
                ],
                "request_schema_key": "partner_lifecycle_upsert",
                "example_keys": [
                    "partner_lifecycle_enable_stub"
                ],
                "auth_contract_keys": [
                    "control_plane_agent_api_key_required"
                ],
                "auth_policy_key": "partner_lifecycle_write",
                "auth_policy_method": "POST",
                "auth_policy_state": "enforced",
                "auth_target_contract_keys": [
                    "control_plane_agent_api_key_required"
                ]
            },
            {
                "id": "marketplace_partner_readiness",
                "family": "partner_control_plane",
                "path": "https://shipinfo.net/topos/api/experimental/marketplace-partner-readiness.php",
                "methods": [
                    "GET"
                ],
                "auth_mode": "public_none",
                "purpose": "Compact partner readiness read model with eligibility, next gate, missing controls, and runtime mode.",
                "request_schema_key": "partner_readiness_query",
                "example_keys": [
                    "partner_readiness_filter_ready"
                ],
                "auth_contract_keys": [
                    "public_read_experimental"
                ]
            },
            {
                "id": "marketplace_partner_onboarding_checklist",
                "family": "partner_control_plane",
                "path": "https://shipinfo.net/topos/api/experimental/marketplace-partner-onboarding-checklist.php",
                "methods": [
                    "GET"
                ],
                "auth_mode": "public_none",
                "purpose": "Step-by-step partner onboarding checklist with setup status, blocking gates, and next actions.",
                "request_schema_key": "partner_onboarding_checklist_query",
                "example_keys": [
                    "partner_onboarding_checklist_ready"
                ],
                "auth_contract_keys": [
                    "public_read_experimental"
                ]
            },
            {
                "id": "marketplace_partner_external_runtime",
                "family": "partner_runtime",
                "path": "https://shipinfo.net/topos/api/experimental/marketplace-partner-external-runtime.php",
                "methods": [
                    "POST"
                ],
                "auth_mode": "partner_adapter_key",
                "purpose": "Direct external adapter runtime endpoint for partner agents using loopback/local HTTP contract.",
                "auth_contract_keys": [
                    "partner_adapter_runtime_key"
                ],
                "auth_policy_key": "partner_external_runtime_write",
                "auth_policy_method": "POST",
                "auth_policy_state": "enforced",
                "auth_target_contract_keys": [
                    "partner_adapter_runtime_key"
                ]
            },
            {
                "id": "marketplace_event_triggers",
                "family": "events",
                "path": "https://shipinfo.net/topos/api/experimental/marketplace-event-triggers.php",
                "stable_path": "https://shipinfo.net/topos/api/v1/marketplace/events/triggers",
                "stable_rollout": {
                    "status": "pilot",
                    "canary_percent": 20,
                    "activation": "query:canary=1 or header:X-Marketplace-Canary:1"
                },
                "methods": [
                    "GET",
                    "POST"
                ],
                "auth_mode": "mixed",
                "purpose": "Create and read/list event triggers.",
                "notes": [
                    "GET remains public in the experimental slice",
                    "POST now requires registered agent API key"
                ],
                "request_schema_key": "event_trigger_definition",
                "example_keys": [
                    "event_trigger_create_job_template"
                ],
                "auth_contract_keys": [
                    "control_plane_agent_api_key_required"
                ],
                "auth_policy_key": "event_trigger_write",
                "auth_policy_method": "POST",
                "auth_policy_state": "enforced",
                "auth_target_contract_keys": [
                    "control_plane_agent_api_key_required"
                ]
            },
            {
                "id": "marketplace_event_subscriptions",
                "family": "events",
                "path": "https://shipinfo.net/topos/api/experimental/marketplace-event-subscriptions.php",
                "methods": [
                    "GET",
                    "POST"
                ],
                "auth_mode": "mixed",
                "purpose": "Create and read/list event subscriptions.",
                "notes": [
                    "GET remains public in the experimental slice",
                    "POST now requires registered agent API key"
                ],
                "request_schema_key": "event_subscription_definition",
                "example_keys": [
                    "event_subscription_create_async"
                ],
                "auth_contract_keys": [
                    "control_plane_agent_api_key_required"
                ],
                "auth_policy_key": "event_subscription_write",
                "auth_policy_method": "POST",
                "auth_policy_state": "enforced",
                "auth_target_contract_keys": [
                    "control_plane_agent_api_key_required"
                ]
            },
            {
                "id": "marketplace_event_dispatch",
                "family": "events",
                "path": "https://shipinfo.net/topos/api/experimental/marketplace-event-dispatch.php",
                "methods": [
                    "POST"
                ],
                "auth_mode": "agent_api_key",
                "purpose": "Dispatch an event through stored triggers/subscriptions into marketplace jobs.",
                "notes": [
                    "POST requires registered agent API key"
                ],
                "request_schema_key": "event_dispatch_request",
                "example_keys": [
                    "event_dispatch_manual_payload"
                ],
                "auth_contract_keys": [
                    "control_plane_agent_api_key_required"
                ],
                "auth_policy_key": "event_dispatch_write",
                "auth_policy_method": "POST",
                "auth_policy_state": "enforced",
                "auth_target_contract_keys": [
                    "control_plane_agent_api_key_required"
                ]
            },
            {
                "id": "marketplace_event_replay_controls",
                "family": "events",
                "path": "https://shipinfo.net/topos/api/experimental/marketplace-event-replay-controls.php",
                "methods": [
                    "POST"
                ],
                "auth_mode": "agent_api_key",
                "purpose": "Re-dispatch or replay subscription runs, including dead-letter requeue for event-created jobs.",
                "notes": [
                    "POST requires registered agent API key"
                ],
                "request_schema_key": "event_replay_control_request",
                "example_keys": [
                    "event_replay_run_payload",
                    "event_requeue_dead_letter_payload"
                ],
                "auth_contract_keys": [
                    "control_plane_agent_api_key_required"
                ],
                "auth_policy_key": "event_replay_controls_write",
                "auth_policy_method": "POST",
                "auth_policy_state": "enforced",
                "auth_target_contract_keys": [
                    "control_plane_agent_api_key_required"
                ]
            },
            {
                "id": "marketplace_event_workflows",
                "family": "events",
                "path": "https://shipinfo.net/topos/api/experimental/marketplace-event-workflows.php",
                "stable_path": "https://shipinfo.net/topos/api/v1/marketplace/events/workflows",
                "stable_rollout": {
                    "status": "pilot",
                    "canary_percent": 20,
                    "activation": "query:canary=1 or header:X-Marketplace-Canary:1"
                },
                "methods": [
                    "GET"
                ],
                "auth_mode": "public_none",
                "purpose": "Unified event workflow read model that combines trigger, subscriptions, cooldown, retry, and recent run posture.",
                "request_schema_key": "event_workflow_query",
                "example_keys": [
                    "event_workflow_read_cooldown"
                ],
                "auth_contract_keys": [
                    "public_read_experimental"
                ]
            },
            {
                "id": "marketplace_event_sla_metrics",
                "family": "events",
                "path": "https://shipinfo.net/topos/api/experimental/marketplace-event-sla-metrics.php",
                "methods": [
                    "GET"
                ],
                "auth_mode": "public_none",
                "purpose": "Read event automation SLA-style metrics over recent subscription run history.",
                "request_schema_key": "event_sla_metrics_query",
                "example_keys": [
                    "event_sla_metrics_default"
                ],
                "auth_contract_keys": [
                    "public_read_experimental"
                ]
            },
            {
                "id": "marketplace_event_runbook",
                "family": "events",
                "path": "https://shipinfo.net/topos/api/experimental/marketplace-event-runbook.php",
                "stable_path": "https://shipinfo.net/topos/api/v1/marketplace/events/runbook",
                "stable_rollout": {
                    "status": "pilot",
                    "canary_percent": 20,
                    "activation": "query:canary=1 or header:X-Marketplace-Canary:1"
                },
                "methods": [
                    "GET"
                ],
                "auth_mode": "public_none",
                "purpose": "Read operator-focused event runbook steps and next actions derived from workflow, SLA, and dead-letter posture.",
                "request_schema_key": "event_runbook_query",
                "example_keys": [
                    "event_runbook_default"
                ],
                "auth_contract_keys": [
                    "public_read_experimental"
                ]
            },
            {
                "id": "marketplace_event_readiness_guide",
                "family": "events",
                "path": "https://shipinfo.net/topos/api/experimental/marketplace-event-readiness-guide.php",
                "methods": [
                    "GET"
                ],
                "auth_mode": "public_none",
                "purpose": "Derived event readiness guide with setup steps, next actions, canonical examples, and recommended next endpoint.",
                "request_schema_key": "event_readiness_guide_query",
                "example_keys": [
                    "event_readiness_guide_completed_jobs"
                ],
                "auth_contract_keys": [
                    "public_read_experimental"
                ]
            },
            {
                "id": "marketplace_event_subscription_observability",
                "family": "events",
                "path": "https://shipinfo.net/topos/api/experimental/marketplace-event-subscription-observability.php",
                "methods": [
                    "GET"
                ],
                "auth_mode": "public_none",
                "purpose": "Observe subscription runs, cooldown, retry hints, and ops-level event automation posture.",
                "auth_contract_keys": [
                    "public_read_experimental"
                ]
            },
            {
                "id": "marketplace_worker_status",
                "family": "ops",
                "path": "https://shipinfo.net/topos/api/experimental/marketplace-worker-status.php",
                "methods": [
                    "GET"
                ],
                "auth_mode": "public_none",
                "purpose": "Read worker heartbeat, queue, billing, dead-letter, and event subscription ops snapshots.",
                "auth_contract_keys": [
                    "public_read_experimental"
                ]
            },
            {
                "id": "marketplace_billing_summary",
                "family": "ops",
                "path": "https://shipinfo.net/topos/api/experimental/marketplace-billing-summary.php",
                "stable_path": "https://shipinfo.net/topos/api/v1/marketplace/ops/billing-summary",
                "stable_rollout": {
                    "status": "pilot",
                    "canary_percent": 20,
                    "activation": "query:canary=1 or header:X-Marketplace-Canary:1"
                },
                "methods": [
                    "GET"
                ],
                "auth_mode": "public_none",
                "purpose": "Read reservation and settlement operator summary with wallet reconciliation checks.",
                "request_schema_key": "billing_summary_query",
                "example_keys": [
                    "billing_summary_platform_shadow"
                ],
                "auth_contract_keys": [
                    "public_read_experimental"
                ]
            },
            {
                "id": "marketplace_usage_rollups",
                "family": "ops",
                "path": "https://shipinfo.net/topos/api/experimental/marketplace-usage-rollups.php",
                "methods": [
                    "GET"
                ],
                "auth_mode": "public_none",
                "purpose": "Read per-owner and per-agent usage rollups for billing operations.",
                "request_schema_key": "usage_rollups_query",
                "example_keys": [
                    "usage_rollups_platform_shadow"
                ],
                "auth_contract_keys": [
                    "public_read_experimental"
                ]
            },
            {
                "id": "marketplace_budget_policy_profiles",
                "family": "ops",
                "path": "https://shipinfo.net/topos/api/experimental/marketplace-budget-policy-profiles.php",
                "methods": [
                    "GET",
                    "POST"
                ],
                "auth_mode": "mixed",
                "purpose": "Read and mutate budget policy profiles used as runtime presets for marketplace jobs.",
                "notes": [
                    "GET remains public in the experimental slice",
                    "POST requires registered agent API key"
                ],
                "request_schema_key": "budget_policy_profiles_query",
                "request_schema_post_key": "budget_policy_profile_definition",
                "example_keys": [
                    "budget_policy_profiles_list",
                    "budget_policy_profile_upsert"
                ],
                "auth_contract_keys": [
                    "public_read_experimental",
                    "control_plane_agent_api_key_required"
                ],
                "auth_policy_key": "budget_policy_profile_write",
                "auth_policy_method": "POST",
                "auth_policy_state": "enforced",
                "auth_target_contract_keys": [
                    "control_plane_agent_api_key_required"
                ]
            },
            {
                "id": "marketplace_wallet_balance",
                "family": "ops",
                "path": "https://shipinfo.net/topos/api/experimental/marketplace-wallet-balance.php",
                "stable_path": "https://shipinfo.net/topos/api/v1/marketplace/ops/wallet-balance",
                "stable_rollout": {
                    "status": "pilot",
                    "canary_percent": 20,
                    "activation": "query:canary=1 or header:X-Marketplace-Canary:1"
                },
                "methods": [
                    "GET"
                ],
                "auth_mode": "public_none",
                "purpose": "Read wallet balance, ledger aggregates, and recent ledger entries for one owner wallet.",
                "request_schema_key": "wallet_balance_query",
                "example_keys": [
                    "wallet_balance_platform_shadow"
                ],
                "auth_contract_keys": [
                    "public_read_experimental"
                ]
            },
            {
                "id": "marketplace_dead_letters",
                "family": "ops",
                "path": "https://shipinfo.net/topos/api/experimental/marketplace-dead-letters.php",
                "methods": [
                    "GET"
                ],
                "auth_mode": "public_none",
                "purpose": "Read terminal failed marketplace jobs persisted as dead letters.",
                "auth_contract_keys": [
                    "public_read_experimental"
                ]
            },
            {
                "id": "marketplace_control_plane_audit",
                "family": "ops",
                "path": "https://shipinfo.net/topos/api/experimental/marketplace-control-plane-audit.php",
                "methods": [
                    "GET"
                ],
                "auth_mode": "agent_api_key",
                "purpose": "Read audit rows for protected owner, partner, and event control-plane mutations.",
                "auth_contract_keys": [
                    "control_plane_audit_agent_api_key_read"
                ]
            },
            {
                "id": "marketplace_graduation_checklist",
                "family": "ops",
                "path": "https://shipinfo.net/topos/api/experimental/marketplace-graduation-checklist.php",
                "stable_path": "https://shipinfo.net/topos/api/v1/marketplace/ops/graduation-checklist",
                "stable_rollout": {
                    "status": "pilot",
                    "canary_percent": 20,
                    "activation": "query:canary=1 or header:X-Marketplace-Canary:1"
                },
                "methods": [
                    "GET"
                ],
                "auth_mode": "public_none",
                "purpose": "Read machine-checkable experimental-to-stable graduation checklist with evidence links.",
                "request_schema_key": "graduation_checklist_query",
                "example_keys": [
                    "graduation_checklist_default"
                ],
                "auth_contract_keys": [
                    "public_read_experimental"
                ]
            }
        ],
        "canonical_flows": [
            {
                "flow_id": "catalog_read",
                "label": "Public catalog read",
                "steps": [
                    {
                        "id": "marketplace_manifest",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-manifest.php",
                        "methods": [
                            "GET"
                        ],
                        "auth_mode": "public_none"
                    },
                    {
                        "id": "marketplace_preflight",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-preflight.php",
                        "methods": [
                            "GET"
                        ],
                        "auth_mode": "public_none"
                    },
                    {
                        "id": "marketplace_stable_aliases",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-stable-aliases.php",
                        "methods": [
                            "GET"
                        ],
                        "auth_mode": "public_none"
                    },
                    {
                        "id": "marketplace_stable_canary_readiness",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-stable-canary-readiness.php",
                        "methods": [
                            "GET"
                        ],
                        "auth_mode": "public_none"
                    },
                    {
                        "id": "marketplace_stable_promotion_dry_run",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-stable-promotion-dry-run.php",
                        "methods": [
                            "GET"
                        ],
                        "auth_mode": "public_none"
                    },
                    {
                        "id": "marketplace_experimental_fallback_policy",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-experimental-fallback-policy.php",
                        "methods": [
                            "GET"
                        ],
                        "auth_mode": "public_none"
                    },
                    {
                        "id": "marketplace_deprecation_guardrails",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-deprecation-guardrails.php",
                        "methods": [
                            "GET"
                        ],
                        "auth_mode": "public_none"
                    },
                    {
                        "id": "marketplace_sunset_pilot",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-sunset-pilot.php",
                        "methods": [
                            "GET",
                            "POST"
                        ],
                        "auth_mode": "mixed"
                    },
                    {
                        "id": "marketplace_sunset_pilot_validation",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-sunset-pilot-validation.php",
                        "methods": [
                            "GET",
                            "POST"
                        ],
                        "auth_mode": "mixed"
                    },
                    {
                        "id": "marketplace_sunset_pilot_exit_readiness",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-sunset-pilot-exit-readiness.php",
                        "methods": [
                            "GET",
                            "POST"
                        ],
                        "auth_mode": "mixed"
                    },
                    {
                        "id": "marketplace_sunset_pilot_exit_execution",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-sunset-pilot-exit-execution.php",
                        "methods": [
                            "GET",
                            "POST"
                        ],
                        "auth_mode": "mixed"
                    },
                    {
                        "id": "marketplace_sunset_post_exit_enforcement",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-sunset-post-exit-enforcement.php",
                        "methods": [
                            "GET",
                            "POST"
                        ],
                        "auth_mode": "mixed"
                    },
                    {
                        "id": "marketplace_sunset_stable_observability",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-sunset-stable-observability.php",
                        "methods": [
                            "GET"
                        ],
                        "auth_mode": "public_none"
                    },
                    {
                        "id": "marketplace_sunset_retirement_dry_run",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-sunset-retirement-dry-run.php",
                        "methods": [
                            "GET"
                        ],
                        "auth_mode": "public_none"
                    },
                    {
                        "id": "marketplace_sunset_retirement_canary",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-sunset-retirement-canary.php",
                        "methods": [
                            "GET",
                            "POST"
                        ],
                        "auth_mode": "mixed"
                    },
                    {
                        "id": "marketplace_sunset_hard_cutover",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-sunset-hard-cutover.php",
                        "methods": [
                            "GET",
                            "POST"
                        ],
                        "auth_mode": "mixed"
                    },
                    {
                        "id": "marketplace_sunset_wave_dry_run",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-sunset-wave-dry-run.php",
                        "methods": [
                            "GET"
                        ],
                        "auth_mode": "public_none"
                    },
                    {
                        "id": "marketplace_listings",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-listings.php",
                        "methods": [
                            "GET"
                        ],
                        "auth_mode": "public_none"
                    },
                    {
                        "id": "marketplace_read_models",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-read-models.php",
                        "methods": [
                            "GET"
                        ],
                        "auth_mode": "public_none"
                    },
                    {
                        "id": "marketplace_worker_status",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-worker-status.php",
                        "methods": [
                            "GET"
                        ],
                        "auth_mode": "public_none"
                    },
                    {
                        "id": "marketplace_billing_summary",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-billing-summary.php",
                        "methods": [
                            "GET"
                        ],
                        "auth_mode": "public_none"
                    },
                    {
                        "id": "marketplace_usage_rollups",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-usage-rollups.php",
                        "methods": [
                            "GET"
                        ],
                        "auth_mode": "public_none"
                    },
                    {
                        "id": "marketplace_budget_policy_profiles",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-budget-policy-profiles.php",
                        "methods": [
                            "GET",
                            "POST"
                        ],
                        "auth_mode": "mixed"
                    },
                    {
                        "id": "marketplace_wallet_balance",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-wallet-balance.php",
                        "methods": [
                            "GET"
                        ],
                        "auth_mode": "public_none"
                    },
                    {
                        "id": "marketplace_graduation_checklist",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-graduation-checklist.php",
                        "methods": [
                            "GET"
                        ],
                        "auth_mode": "public_none"
                    }
                ]
            },
            {
                "flow_id": "direct_job_runtime",
                "label": "Direct job runtime",
                "steps": [
                    {
                        "id": "marketplace_route_resolve",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-route-resolve.php",
                        "methods": [
                            "POST"
                        ],
                        "auth_mode": "public_none"
                    },
                    {
                        "id": "marketplace_job_run",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-job-run.php",
                        "methods": [
                            "POST"
                        ],
                        "auth_mode": "mixed"
                    },
                    {
                        "id": "marketplace_jobs",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-jobs.php",
                        "methods": [
                            "GET"
                        ],
                        "auth_mode": "public_none"
                    },
                    {
                        "id": "marketplace_job_status",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-job-status.php",
                        "methods": [
                            "GET"
                        ],
                        "auth_mode": "public_none"
                    }
                ]
            },
            {
                "flow_id": "owner_template_runtime",
                "label": "Private owner template flow",
                "steps": [
                    {
                        "id": "marketplace_owner_auth",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-owner-auth.php",
                        "methods": [
                            "GET",
                            "POST"
                        ],
                        "auth_mode": "agent_api_key"
                    },
                    {
                        "id": "marketplace_owner_token_introspect",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-owner-token-introspect.php",
                        "methods": [
                            "GET"
                        ],
                        "auth_mode": "owner_token"
                    },
                    {
                        "id": "marketplace_user_agent_templates",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-user-agent-templates.php",
                        "methods": [
                            "GET",
                            "POST"
                        ],
                        "auth_mode": "owner_token"
                    },
                    {
                        "id": "marketplace_user_agent_template_catalog",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-user-agent-template-catalog.php",
                        "methods": [
                            "GET"
                        ],
                        "auth_mode": "owner_token"
                    },
                    {
                        "id": "marketplace_job_run",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-job-run.php",
                        "methods": [
                            "POST"
                        ],
                        "auth_mode": "mixed"
                    },
                    {
                        "id": "marketplace_user_agent_template_audit",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-user-agent-template-audit.php",
                        "methods": [
                            "GET"
                        ],
                        "auth_mode": "owner_token"
                    }
                ]
            },
            {
                "flow_id": "partner_onboarding",
                "label": "Partner onboarding and runtime readiness",
                "steps": [
                    {
                        "id": "marketplace_partner_agents",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-partner-agents.php",
                        "methods": [
                            "GET",
                            "POST"
                        ],
                        "auth_mode": "mixed"
                    },
                    {
                        "id": "marketplace_agent_pricing",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-agent-pricing.php",
                        "methods": [
                            "GET",
                            "POST"
                        ],
                        "auth_mode": "mixed"
                    },
                    {
                        "id": "marketplace_agent_trust",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-agent-trust.php",
                        "methods": [
                            "GET",
                            "POST"
                        ],
                        "auth_mode": "mixed"
                    },
                    {
                        "id": "marketplace_agent_execution_policy",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-agent-execution-policy.php",
                        "methods": [
                            "GET",
                            "POST"
                        ],
                        "auth_mode": "mixed"
                    },
                    {
                        "id": "marketplace_partner_runtime_controls",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-partner-runtime-controls.php",
                        "methods": [
                            "GET",
                            "POST"
                        ],
                        "auth_mode": "mixed"
                    },
                    {
                        "id": "marketplace_partner_adapter_keys",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-partner-adapter-keys.php",
                        "methods": [
                            "GET",
                            "POST"
                        ],
                        "auth_mode": "agent_api_key"
                    },
                    {
                        "id": "marketplace_partner_lifecycle",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-partner-lifecycle.php",
                        "methods": [
                            "GET",
                            "POST"
                        ],
                        "auth_mode": "mixed"
                    },
                    {
                        "id": "marketplace_partner_readiness",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-partner-readiness.php",
                        "methods": [
                            "GET"
                        ],
                        "auth_mode": "public_none"
                    },
                    {
                        "id": "marketplace_partner_onboarding_checklist",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-partner-onboarding-checklist.php",
                        "methods": [
                            "GET"
                        ],
                        "auth_mode": "public_none"
                    },
                    {
                        "id": "marketplace_listings",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-listings.php",
                        "methods": [
                            "GET"
                        ],
                        "auth_mode": "public_none"
                    },
                    {
                        "id": "marketplace_route_resolve",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-route-resolve.php",
                        "methods": [
                            "POST"
                        ],
                        "auth_mode": "public_none"
                    }
                ]
            },
            {
                "flow_id": "event_automation",
                "label": "Event automation",
                "steps": [
                    {
                        "id": "marketplace_event_triggers",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-event-triggers.php",
                        "methods": [
                            "GET",
                            "POST"
                        ],
                        "auth_mode": "mixed"
                    },
                    {
                        "id": "marketplace_event_subscriptions",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-event-subscriptions.php",
                        "methods": [
                            "GET",
                            "POST"
                        ],
                        "auth_mode": "mixed"
                    },
                    {
                        "id": "marketplace_event_dispatch",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-event-dispatch.php",
                        "methods": [
                            "POST"
                        ],
                        "auth_mode": "agent_api_key"
                    },
                    {
                        "id": "marketplace_event_replay_controls",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-event-replay-controls.php",
                        "methods": [
                            "POST"
                        ],
                        "auth_mode": "agent_api_key"
                    },
                    {
                        "id": "marketplace_event_workflows",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-event-workflows.php",
                        "methods": [
                            "GET"
                        ],
                        "auth_mode": "public_none"
                    },
                    {
                        "id": "marketplace_event_sla_metrics",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-event-sla-metrics.php",
                        "methods": [
                            "GET"
                        ],
                        "auth_mode": "public_none"
                    },
                    {
                        "id": "marketplace_event_runbook",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-event-runbook.php",
                        "methods": [
                            "GET"
                        ],
                        "auth_mode": "public_none"
                    },
                    {
                        "id": "marketplace_event_readiness_guide",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-event-readiness-guide.php",
                        "methods": [
                            "GET"
                        ],
                        "auth_mode": "public_none"
                    },
                    {
                        "id": "marketplace_event_subscription_observability",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-event-subscription-observability.php",
                        "methods": [
                            "GET"
                        ],
                        "auth_mode": "public_none"
                    },
                    {
                        "id": "marketplace_worker_status",
                        "path": "https://shipinfo.net/topos/api/experimental/marketplace-worker-status.php",
                        "methods": [
                            "GET"
                        ],
                        "auth_mode": "public_none"
                    }
                ]
            }
        ],
        "schema_hints": {
            "route_resolve_request": {
                "label": "Route resolve request",
                "transport": "json_body",
                "required_one_of": [
                    "agent_slug",
                    "capability"
                ],
                "optional_fields": [
                    "allowed_agent_slugs",
                    "allow_downstream_calls",
                    "max_depth",
                    "soft_throttle",
                    "route_cache"
                ],
                "field_hints": {
                    "agent_slug": "Directly targets a specific registered agent.",
                    "capability": "Lets the router choose a matching agent.",
                    "allowed_agent_slugs": "Optional allowlist guard for capability-based routing.",
                    "max_depth": "Current slice expects max_depth <= 1.",
                    "route_cache": "Use mode bypass|prefer|refresh for route-base cache behavior."
                }
            },
            "preflight_query": {
                "label": "Preflight query",
                "transport": "query_string",
                "required_fields": [
                    "endpoint_id"
                ],
                "optional_fields": [
                    "target_method"
                ],
                "field_hints": {
                    "endpoint_id": "Manifest endpoint id, for example marketplace_job_status.",
                    "target_method": "GET or POST; default GET."
                }
            },
            "stable_aliases_query": {
                "label": "Stable aliases query",
                "transport": "query_string",
                "required_fields": [],
                "optional_fields": [
                    "status",
                    "family",
                    "include_policy"
                ],
                "field_hints": {
                    "status": "Filter alias rows by rollout status planned, pilot, or ready.",
                    "family": "Filter alias rows by marketplace family such as discovery, runtime, events, or ops.",
                    "include_policy": "Set 0 for compact alias rows only; default includes full deprecation policy."
                }
            },
            "stable_canary_readiness_query": {
                "label": "Stable canary readiness query",
                "transport": "query_string",
                "required_fields": [],
                "optional_fields": [
                    "window_hours",
                    "endpoint_id"
                ],
                "field_hints": {
                    "window_hours": "Telemetry lookback window in hours (1..168).",
                    "endpoint_id": "Optional endpoint-level readiness filter."
                }
            },
            "stable_promotion_dry_run_query": {
                "label": "Stable promotion dry-run query",
                "transport": "query_string",
                "required_fields": [],
                "optional_fields": [
                    "window_hours"
                ],
                "field_hints": {
                    "window_hours": "Telemetry/readiness lookback window in hours (1..168)."
                }
            },
            "experimental_fallback_policy_query": {
                "label": "Experimental fallback policy query",
                "transport": "query_string",
                "required_fields": [],
                "optional_fields": [
                    "status",
                    "family",
                    "include_endpoints",
                    "include_readiness"
                ],
                "field_hints": {
                    "status": "Optional rollout status filter: planned, pilot, or ready.",
                    "family": "Optional endpoint family filter such as discovery, runtime, events, or ops.",
                    "include_endpoints": "Set 0 to omit per-endpoint rows; default 1.",
                    "include_readiness": "Set 0 to omit readiness gate block; default 1."
                }
            },
            "deprecation_guardrails_query": {
                "label": "Deprecation guardrails query",
                "transport": "query_string",
                "required_fields": [],
                "optional_fields": [
                    "status",
                    "family",
                    "include_items"
                ],
                "field_hints": {
                    "status": "Optional rollout status filter: planned, pilot, or ready.",
                    "family": "Optional endpoint family filter such as discovery, runtime, events, or ops.",
                    "include_items": "Set 0 to omit per-endpoint rows; default 1."
                }
            },
            "sunset_wave_dry_run_query": {
                "label": "Sunset wave dry-run query",
                "transport": "query_string",
                "required_fields": [],
                "optional_fields": [
                    "window_hours",
                    "family",
                    "include_candidates"
                ],
                "field_hints": {
                    "window_hours": "Telemetry lookback window in hours (1..168).",
                    "family": "Optional family filter (discovery, runtime, or all).",
                    "include_candidates": "Set 0 to omit candidate rows; default 1."
                }
            },
            "sunset_pilot_query": {
                "label": "Sunset pilot query",
                "transport": "query_string",
                "required_fields": [],
                "optional_fields": [],
                "field_hints": [
                    "GET reads current sunset pilot state and scope."
                ]
            },
            "sunset_pilot_action": {
                "label": "Sunset pilot action",
                "transport": "json_body",
                "required_fields": [
                    "action"
                ],
                "optional_fields": [
                    "cohort_percent",
                    "endpoint_ids",
                    "enabled",
                    "step_percent",
                    "max_percent",
                    "min_interval_minutes",
                    "cooldown_after_rollback_minutes"
                ],
                "field_hints": {
                    "action": "Supported actions: enable_header_pilot, enable_cohort_pilot, disable_pilot, set_ramp_policy, ramp_cohort_once.",
                    "cohort_percent": "Required only for enable_cohort_pilot; range 1..100.",
                    "endpoint_ids": "Optional explicit endpoint scope override.",
                    "step_percent": "Ramp increment size for ramp_cohort_once (1..50).",
                    "max_percent": "Upper bound for ramp_cohort_once (1..100).",
                    "min_interval_minutes": "Minimum delay between ramp steps.",
                    "cooldown_after_rollback_minutes": "Pause window after rollback before next ramp."
                }
            },
            "sunset_pilot_validation_query": {
                "label": "Sunset pilot validation query",
                "transport": "query_string",
                "required_fields": [],
                "optional_fields": [
                    "window_hours",
                    "enforced_share_threshold",
                    "recent_limit"
                ],
                "field_hints": {
                    "window_hours": "Telemetry lookback window in hours (1..168).",
                    "enforced_share_threshold": "Rollback gate threshold for enforced share (0..1).",
                    "recent_limit": "Optional cap for latest telemetry rows used in validation."
                }
            },
            "sunset_pilot_validation_action": {
                "label": "Sunset pilot validation action",
                "transport": "json_body",
                "required_fields": [
                    "action"
                ],
                "optional_fields": [
                    "window_hours",
                    "enforced_share_threshold",
                    "recent_limit",
                    "restore_pilot"
                ],
                "field_hints": {
                    "action": "Supported actions: rollback_if_needed, rollback_drill.",
                    "window_hours": "Telemetry lookback window in hours (1..168).",
                    "enforced_share_threshold": "Rollback gate threshold for enforced share (0..1).",
                    "recent_limit": "Optional cap for latest telemetry rows used in validation.",
                    "restore_pilot": "rollback_drill only: restore pilot state after drill (default true)."
                }
            },
            "sunset_pilot_exit_readiness_query": {
                "label": "Sunset pilot exit-readiness query",
                "transport": "query_string",
                "required_fields": [],
                "optional_fields": [
                    "window_hours",
                    "enforced_share_threshold",
                    "recent_limit",
                    "target_cohort_percent"
                ],
                "field_hints": {
                    "window_hours": "Telemetry lookback window in hours (1..168).",
                    "enforced_share_threshold": "Validation threshold forwarded into rollback gate evaluation.",
                    "recent_limit": "Optional cap for latest telemetry rows used in validation.",
                    "target_cohort_percent": "Target cohort percentage required for pilot exit readiness."
                }
            },
            "sunset_pilot_exit_readiness_action": {
                "label": "Sunset pilot exit-readiness action",
                "transport": "json_body",
                "required_fields": [
                    "action"
                ],
                "optional_fields": [
                    "window_hours",
                    "enforced_share_threshold",
                    "recent_limit",
                    "target_cohort_percent"
                ],
                "field_hints": {
                    "action": "Supported action: advance_if_ready.",
                    "window_hours": "Telemetry lookback window in hours (1..168).",
                    "enforced_share_threshold": "Validation threshold forwarded into rollback gate evaluation.",
                    "recent_limit": "Optional cap for latest telemetry rows used in validation.",
                    "target_cohort_percent": "Target cohort percentage required for pilot exit readiness."
                }
            },
            "sunset_pilot_exit_execution_query": {
                "label": "Sunset pilot exit-execution query",
                "transport": "query_string",
                "required_fields": [],
                "optional_fields": [
                    "window_hours",
                    "enforced_share_threshold",
                    "recent_limit",
                    "target_cohort_percent"
                ],
                "field_hints": {
                    "window_hours": "Telemetry lookback window in hours (1..168).",
                    "enforced_share_threshold": "Validation threshold forwarded into readiness gates.",
                    "recent_limit": "Optional cap for latest telemetry rows used in validation.",
                    "target_cohort_percent": "Target cohort percentage required before exit execution can proceed."
                }
            },
            "sunset_pilot_exit_execution_action": {
                "label": "Sunset pilot exit-execution action",
                "transport": "json_body",
                "required_fields": [
                    "action"
                ],
                "optional_fields": [
                    "window_hours",
                    "enforced_share_threshold",
                    "recent_limit",
                    "target_cohort_percent"
                ],
                "field_hints": {
                    "action": "Supported actions: execute_exit_if_ready, reset_execution_state.",
                    "window_hours": "Telemetry lookback window in hours (1..168).",
                    "enforced_share_threshold": "Validation threshold forwarded into readiness gates.",
                    "recent_limit": "Optional cap for latest telemetry rows used in validation.",
                    "target_cohort_percent": "Target cohort percentage required before exit execution can proceed."
                }
            },
            "sunset_post_exit_enforcement_query": {
                "label": "Sunset post-exit enforcement query",
                "transport": "query_string",
                "required_fields": [],
                "optional_fields": [],
                "field_hints": [
                    "GET reads post-exit enforcement and rollback-window state."
                ]
            },
            "sunset_post_exit_enforcement_action": {
                "label": "Sunset post-exit enforcement action",
                "transport": "json_body",
                "required_fields": [
                    "action"
                ],
                "optional_fields": [
                    "rollback_window_minutes"
                ],
                "field_hints": {
                    "action": "Supported actions: activate_enforcement_if_exit_executed, open_rollback_window, close_rollback_window, disable_enforcement.",
                    "rollback_window_minutes": "Used by open_rollback_window; range 1..1440."
                }
            },
            "sunset_stable_observability_query": {
                "label": "Sunset stable-only observability query",
                "transport": "query_string",
                "required_fields": [],
                "optional_fields": [
                    "window_hours",
                    "recent_limit"
                ],
                "field_hints": {
                    "window_hours": "Telemetry lookback window in hours (1..168).",
                    "recent_limit": "Optional cap for latest telemetry rows used in observability summary."
                }
            },
            "sunset_retirement_dry_run_query": {
                "label": "Sunset retirement dry-run query",
                "transport": "query_string",
                "required_fields": [],
                "optional_fields": [
                    "window_hours",
                    "recent_limit",
                    "min_retire_idle_hits"
                ],
                "field_hints": {
                    "window_hours": "Telemetry lookback window in hours (1..336).",
                    "recent_limit": "Optional cap for latest telemetry rows used in dry-run summary.",
                    "min_retire_idle_hits": "Minimum hits threshold for candidate exclusion (default 1)."
                }
            },
            "sunset_retirement_canary_query": {
                "label": "Sunset retirement canary query",
                "transport": "query_string",
                "required_fields": [],
                "optional_fields": [],
                "field_hints": [
                    "GET reads current retirement canary state and scope."
                ]
            },
            "sunset_retirement_canary_action": {
                "label": "Sunset retirement canary action",
                "transport": "json_body",
                "required_fields": [
                    "action"
                ],
                "optional_fields": [
                    "canary_percent",
                    "endpoint_ids",
                    "window_hours",
                    "recent_limit",
                    "min_retire_idle_hits",
                    "max_candidates"
                ],
                "field_hints": {
                    "action": "Supported actions: disable_canary, set_canary, enable_canary_from_dry_run.",
                    "canary_percent": "Canary cohort share for immediate retirement enforcement; range 1..100.",
                    "endpoint_ids": "Explicit endpoint scope used by set_canary.",
                    "window_hours": "Dry-run lookback window in hours for enable_canary_from_dry_run.",
                    "recent_limit": "Optional telemetry cap used in dry-run candidate selection.",
                    "min_retire_idle_hits": "Minimum hits threshold for dry-run candidate exclusion.",
                    "max_candidates": "Maximum candidate endpoints imported from dry-run (1..50)."
                }
            },
            "sunset_hard_cutover_query": {
                "label": "Sunset hard cutover query",
                "transport": "query_string",
                "required_fields": [],
                "optional_fields": [],
                "field_hints": [
                    "GET reads current hard-cutover state and retired endpoint scope."
                ]
            },
            "sunset_hard_cutover_action": {
                "label": "Sunset hard cutover action",
                "transport": "json_body",
                "required_fields": [
                    "action"
                ],
                "optional_fields": [
                    "endpoint_ids",
                    "window_hours",
                    "recent_limit",
                    "min_retire_idle_hits",
                    "max_candidates"
                ],
                "field_hints": {
                    "action": "Supported actions: execute_cutover, execute_cutover_from_dry_run, disable_cutover.",
                    "endpoint_ids": "Explicit endpoint scope for execute_cutover.",
                    "window_hours": "Dry-run lookback window in hours for execute_cutover_from_dry_run.",
                    "recent_limit": "Optional telemetry cap used in dry-run candidate selection.",
                    "min_retire_idle_hits": "Minimum hits threshold for dry-run candidate exclusion.",
                    "max_candidates": "Maximum candidate endpoints imported from dry-run (1..100)."
                }
            },
            "job_run_request": {
                "label": "Marketplace job run request",
                "transport": "json_body",
                "required_one_of": [
                    "agent_slug",
                    "capability",
                    "template_id",
                    "template_uuid"
                ],
                "optional_fields": [
                    "input",
                    "options",
                    "execution_mode",
                    "allowed_agent_slugs",
                    "soft_throttle",
                    "route_cache",
                    "budget_policy_profile"
                ],
                "field_hints": {
                    "input": "Agent or template input object. For vessel lookup the common field is lookup_id.",
                    "options": "Execution and routing modifiers. execution_mode can also be supplied here.",
                    "execution_mode": "sync executes immediately, async returns 202 accepted and queues the job.",
                    "template_uuid": "Template-backed execution requires X-Marketplace-Owner-Token with scope template:run.",
                    "budget_policy_profile": "Optional budget preset key; explicit options still override profile defaults."
                }
            },
            "owner_token_issue_request": {
                "label": "Owner token issue request",
                "transport": "json_body",
                "required_fields": [
                    "action",
                    "owner_type",
                    "owner_ref",
                    "scopes"
                ],
                "optional_fields": [
                    "expires_in_seconds",
                    "description"
                ],
                "field_hints": {
                    "action": "Use issue for new token creation.",
                    "owner_type": "Current private-template owner type is user.",
                    "owner_ref": "Namespace for template ownership, commonly agent:<agent_id> or agent:<agent_id>:subspace.",
                    "scopes": "Supported scopes are template:manage and template:run."
                }
            },
            "owner_token_introspection_query": {
                "label": "Owner token introspection query",
                "transport": "query_string",
                "required_fields": [],
                "optional_fields": [
                    "required_scope"
                ],
                "field_hints": {
                    "required_scope": "Optional scope check such as template:run or template:manage."
                }
            },
            "user_template_definition": {
                "label": "Private user template definition",
                "transport": "json_body",
                "required_fields": [
                    "owner_ref",
                    "name",
                    "target_type"
                ],
                "optional_fields": [
                    "description",
                    "status",
                    "target",
                    "input_defaults",
                    "option_defaults"
                ],
                "field_hints": {
                    "target_type": "Use capability or agent_slug.",
                    "target": "Object describing the concrete capability or agent slug target.",
                    "input_defaults": "Default input payload merged with run-time overrides.",
                    "option_defaults": "Default execution/routing options merged with run-time overrides."
                }
            },
            "user_template_catalog_query": {
                "label": "Private user template catalog query",
                "transport": "query_string",
                "required_one_of": [
                    "template_id",
                    "template_uuid",
                    "owner_ref"
                ],
                "optional_fields": [
                    "status",
                    "target_type",
                    "limit",
                    "recent_limit"
                ],
                "field_hints": {
                    "template_uuid": "Read one compact template catalog row including latest audit and run posture.",
                    "owner_ref": "List compact template catalog rows for one private owner namespace.",
                    "status": "Filter template catalog rows by draft, active, or paused.",
                    "target_type": "Filter between capability and agent_slug targets.",
                    "recent_limit": "Read mode only: controls how many compact recent audit events are returned."
                }
            },
            "partner_lifecycle_upsert": {
                "label": "Partner lifecycle upsert payload",
                "transport": "json_body",
                "required_fields": [
                    "agent_slug"
                ],
                "optional_fields": [
                    "trust_profile",
                    "execution_policy",
                    "runtime_control"
                ],
                "field_hints": {
                    "trust_profile": "Public/private review posture for listings and readiness.",
                    "execution_policy": "Approval state and allowed execution mode like sandbox_partner_stub.",
                    "runtime_control": "Allowlist, lifecycle state, and runtime mode such as sync_only or async_worker_safe."
                }
            },
            "partner_external_adapter_runtime_config": {
                "label": "Partner external adapter runtime config",
                "transport": "json_body",
                "required_fields": [
                    "endpoint_url",
                    "outbound_allowlist",
                    "adapter_key"
                ],
                "optional_fields": [
                    "host_header",
                    "insecure",
                    "connect_timeout_seconds",
                    "timeout_seconds",
                    "timeout_policy",
                    "circuit_breaker"
                ],
                "field_hints": {
                    "endpoint_url": "Current hardening slice allows local loopback endpoint only.",
                    "outbound_allowlist": "Explicit list of allowed outbound adapter endpoints; endpoint_url must be included.",
                    "connect_timeout_seconds": "Connection timeout in seconds, must be <= timeout_seconds.",
                    "timeout_policy": "Defines allowed timeout range via min_seconds and max_seconds.",
                    "circuit_breaker": "Failure-threshold and cooldown policy for transport/5xx/408/429 failures."
                }
            },
            "partner_adapter_key_action": {
                "label": "Partner adapter key rotation/revocation action",
                "transport": "json_body",
                "required_fields": [
                    "agent_slug",
                    "action"
                ],
                "optional_fields": [
                    "reason"
                ],
                "field_hints": {
                    "action": "Supported actions are rotate and revoke.",
                    "reason": "Optional operator reason stored in key lifecycle history."
                }
            },
            "partner_readiness_query": {
                "label": "Partner readiness query",
                "transport": "query_string",
                "required_one_of": [
                    "agent_slug",
                    "owner_id"
                ],
                "optional_fields": [
                    "visibility",
                    "status",
                    "eligible_now",
                    "next_gate",
                    "runtime_mode",
                    "limit"
                ],
                "field_hints": {
                    "agent_slug": "Read one partner readiness row by agent slug.",
                    "owner_id": "List partner readiness rows for one owner or onboarding batch.",
                    "eligible_now": "Filter compact readiness rows by current route eligibility.",
                    "next_gate": "Filter by the next blocking readiness gate.",
                    "runtime_mode": "Filter by compact runtime mode such as sync_only or async_worker_safe."
                }
            },
            "partner_onboarding_checklist_query": {
                "label": "Partner onboarding checklist query",
                "transport": "query_string",
                "required_one_of": [
                    "agent_slug",
                    "owner_id"
                ],
                "optional_fields": [
                    "visibility",
                    "status",
                    "eligible_now",
                    "next_gate",
                    "runtime_mode",
                    "checklist_status",
                    "limit"
                ],
                "field_hints": {
                    "agent_slug": "Read one partner onboarding checklist row by agent slug.",
                    "owner_id": "List onboarding checklist rows for one partner owner or setup batch.",
                    "checklist_status": "Filter by setup_required, runtime_ready_catalog_gap, or runtime_ready.",
                    "eligible_now": "Reuse readiness semantics for current route eligibility."
                }
            },
            "event_trigger_definition": {
                "label": "Event trigger definition",
                "transport": "json_body",
                "required_fields": [
                    "event_key",
                    "name",
                    "job_template"
                ],
                "optional_fields": [
                    "status",
                    "owner_type",
                    "owner_ref",
                    "match_filters",
                    "policy"
                ],
                "field_hints": {
                    "match_filters": "Static key/value checks over dispatched event payloads.",
                    "job_template": "Defines the downstream marketplace run request materialized from event payload values.",
                    "policy": "Holds dedupe_key and cooldown_seconds behavior."
                }
            },
            "event_subscription_definition": {
                "label": "Event subscription definition",
                "transport": "json_body",
                "required_fields": [
                    "trigger_id",
                    "name"
                ],
                "optional_fields": [
                    "status",
                    "owner_type",
                    "owner_ref",
                    "delivery_mode",
                    "execution_mode",
                    "runtime_overrides"
                ],
                "field_hints": {
                    "trigger_id": "Must point to an existing trigger.",
                    "delivery_mode": "Current marketplace slice uses submit_job.",
                    "execution_mode": "sync or async for downstream job execution.",
                    "runtime_overrides": "Merged into the downstream job request options."
                }
            },
            "event_dispatch_request": {
                "label": "Event dispatch request",
                "transport": "json_body",
                "required_fields": [
                    "event_key",
                    "payload"
                ],
                "optional_fields": [
                    "source"
                ],
                "field_hints": {
                    "event_key": "Must match active triggers.",
                    "payload": "Event payload used by trigger filters and job-template variable materialization.",
                    "source": "Optional source label for audit and observability."
                }
            },
            "event_replay_control_request": {
                "label": "Event replay control request",
                "transport": "json_body",
                "required_fields": [
                    "action"
                ],
                "optional_fields": [
                    "subscription_run_id",
                    "subscription_id",
                    "subscription_uuid",
                    "dead_letter_id",
                    "job_id",
                    "event_key",
                    "payload",
                    "source",
                    "ignore_cooldown",
                    "ignore_dedupe",
                    "execution_mode_override"
                ],
                "field_hints": {
                    "action": "Supported actions are replay_run, redispatch_subscription, and requeue_dead_letter.",
                    "subscription_run_id": "Required for replay_run.",
                    "subscription_id/subscription_uuid": "Required for redispatch_subscription.",
                    "dead_letter_id/job_id": "Reference required for requeue_dead_letter.",
                    "payload": "Optional for replay_run if stored in source run; required for redispatch_subscription.",
                    "ignore_cooldown/ignore_dedupe": "Bypass runtime guards for controlled replay.",
                    "execution_mode_override": "Optional sync|async override for replay execution."
                }
            },
            "event_workflow_query": {
                "label": "Event workflow read query",
                "transport": "query_string",
                "required_one_of": [
                    "trigger_id",
                    "trigger_uuid",
                    "event_key"
                ],
                "optional_fields": [
                    "status",
                    "owner_type",
                    "owner_ref",
                    "recent_limit",
                    "limit"
                ],
                "field_hints": {
                    "trigger_id": "Read one workflow by numeric trigger identifier.",
                    "trigger_uuid": "Read one workflow by stable trigger UUID.",
                    "event_key": "List workflows for one event class such as marketplace.job.completed.",
                    "recent_limit": "Controls how many workflow runs are returned in read mode."
                }
            },
            "event_sla_metrics_query": {
                "label": "Event SLA metrics query",
                "transport": "query_string",
                "required_fields": [],
                "optional_fields": [
                    "window_hours",
                    "event_key",
                    "owner_type",
                    "owner_ref",
                    "per_event_limit",
                    "recent_limit"
                ],
                "field_hints": {
                    "window_hours": "Lookback window in hours; defaults to 24.",
                    "event_key": "Optional filter for one event class such as marketplace.job.completed.",
                    "owner_type/owner_ref": "Optional trigger-owner scope filters.",
                    "per_event_limit": "Max rows in grouped per-event breakdown.",
                    "recent_limit": "Max rows in recent failed runs list."
                }
            },
            "event_runbook_query": {
                "label": "Event runbook query",
                "transport": "query_string",
                "required_fields": [],
                "optional_fields": [
                    "trigger_id",
                    "trigger_uuid",
                    "status",
                    "event_key",
                    "owner_type",
                    "owner_ref",
                    "runbook_status",
                    "limit",
                    "recent_limit"
                ],
                "field_hints": {
                    "trigger_id/trigger_uuid": "Use for one runbook read mode.",
                    "runbook_status": "Filter list mode by setup_required, incident_response, cooldown_tuning, steady_state, or trigger_inactive.",
                    "recent_limit": "Controls how many recent runs feed derived runbook context."
                }
            },
            "event_readiness_guide_query": {
                "label": "Event readiness guide query",
                "transport": "query_string",
                "required_one_of": [
                    "trigger_id",
                    "trigger_uuid",
                    "event_key",
                    "owner_ref"
                ],
                "optional_fields": [
                    "status",
                    "owner_type",
                    "guide_status",
                    "recent_limit",
                    "limit"
                ],
                "field_hints": {
                    "trigger_uuid": "Read one readiness guide by stable trigger UUID.",
                    "event_key": "List readiness guides for one event class such as marketplace.job.completed.",
                    "guide_status": "Filter by setup_required, ready_idle, dispatching, cooldown_active, failure_observed, or trigger_inactive.",
                    "owner_ref": "List one owner namespace across multiple event automation guides.",
                    "recent_limit": "Controls how many recent runs feed the derived readiness summary."
                }
            },
            "wallet_balance_query": {
                "label": "Wallet balance query",
                "transport": "query_string",
                "required_fields": [],
                "optional_fields": [
                    "owner_type",
                    "owner_ref",
                    "currency",
                    "recent_limit"
                ],
                "field_hints": {
                    "owner_type": "Defaults to platform.",
                    "owner_ref": "Defaults to marketplace_shadow.",
                    "currency": "Defaults to USD.",
                    "recent_limit": "Controls number of recent ledger entries returned."
                }
            },
            "billing_summary_query": {
                "label": "Billing summary query",
                "transport": "query_string",
                "required_fields": [],
                "optional_fields": [
                    "owner_type",
                    "owner_ref",
                    "currency",
                    "recent_limit",
                    "wallet_recent_limit"
                ],
                "field_hints": {
                    "owner_type": "Wallet owner type used for reconciliation view; defaults to platform.",
                    "owner_ref": "Wallet owner ref used for reconciliation view; defaults to marketplace_shadow.",
                    "currency": "Wallet currency for reconciliation; defaults to USD.",
                    "recent_limit": "Controls number of recent billing jobs in summary.",
                    "wallet_recent_limit": "Controls number of recent wallet ledger entries included in summary."
                }
            },
            "usage_rollups_query": {
                "label": "Usage rollups query",
                "transport": "query_string",
                "required_fields": [],
                "optional_fields": [
                    "owner_type",
                    "owner_ref",
                    "currency",
                    "agent_slug",
                    "limit"
                ],
                "field_hints": {
                    "owner_type": "Optional owner-type filter for owner rollups.",
                    "owner_ref": "Optional owner-ref filter for owner rollups.",
                    "currency": "Owner rollup wallet currency filter; defaults to USD.",
                    "agent_slug": "Optional agent filter for agent rollups.",
                    "limit": "Max rows per rollup section (owner and agent)."
                }
            },
            "budget_policy_profiles_query": {
                "label": "Budget policy profiles query",
                "transport": "query_string",
                "required_fields": [],
                "optional_fields": [
                    "profile_key",
                    "status"
                ],
                "field_hints": {
                    "profile_key": "Read one preset by key.",
                    "status": "List presets filtered by active or paused."
                }
            },
            "budget_policy_profile_definition": {
                "label": "Budget policy profile definition",
                "transport": "json_body",
                "required_fields": [
                    "profile_key",
                    "label",
                    "options"
                ],
                "optional_fields": [
                    "status",
                    "notes"
                ],
                "field_hints": {
                    "profile_key": "Lowercase identifier used in marketplace-job-run budget_policy_profile.",
                    "options": "Preset runtime options (budget_total_usd, max_steps, max_depth, retry_limit, execution_mode).",
                    "status": "Use active or paused to control profile availability."
                }
            },
            "graduation_checklist_query": {
                "label": "Graduation checklist query",
                "transport": "query_string",
                "required_fields": [],
                "optional_fields": [
                    "status",
                    "include_evidence"
                ],
                "field_hints": {
                    "status": "Optional filter by ready, partial, or blocked check rows.",
                    "include_evidence": "Set 0 to return compact checklist rows without evidence references."
                }
            }
        },
        "example_payloads": {
            "route_resolve_lookup": {
                "label": "Resolve a direct internal lookup route",
                "endpoint_id": "marketplace_route_resolve",
                "method": "POST",
                "payload": {
                    "agent_slug": "vessel_lookup_agent",
                    "max_depth": 1
                }
            },
            "stable_aliases_default": {
                "label": "Read stable alias map and policy snapshot",
                "endpoint_id": "marketplace_stable_aliases",
                "method": "GET",
                "query": {
                    "status": "planned",
                    "family": "runtime",
                    "include_policy": 1
                }
            },
            "stable_canary_readiness_default": {
                "label": "Read stable canary readiness gates",
                "endpoint_id": "marketplace_stable_canary_readiness",
                "method": "GET",
                "query": {
                    "window_hours": 24
                }
            },
            "stable_promotion_dry_run_default": {
                "label": "Read stable promotion dry-run proposal",
                "endpoint_id": "marketplace_stable_promotion_dry_run",
                "method": "GET",
                "query": {
                    "window_hours": 24
                }
            },
            "experimental_fallback_policy_default": {
                "label": "Read fallback policy and sunset readiness plan",
                "endpoint_id": "marketplace_experimental_fallback_policy",
                "method": "GET",
                "query": {
                    "include_endpoints": 1,
                    "include_readiness": 1
                }
            },
            "deprecation_guardrails_default": {
                "label": "Read deprecation notices and sunset execution guardrails",
                "endpoint_id": "marketplace_deprecation_guardrails",
                "method": "GET",
                "query": {
                    "include_items": 1
                }
            },
            "sunset_wave_dry_run_default": {
                "label": "Read sunset wave dry-run candidates",
                "endpoint_id": "marketplace_sunset_wave_dry_run",
                "method": "GET",
                "query": {
                    "window_hours": 24,
                    "family": "all",
                    "include_candidates": 1
                }
            },
            "preflight_job_status": {
                "label": "Preflight job status endpoint requirements",
                "endpoint_id": "marketplace_preflight",
                "method": "GET",
                "query": {
                    "endpoint_id": "marketplace_job_status",
                    "target_method": "GET"
                }
            },
            "sunset_pilot_read": {
                "label": "Read sunset pilot execution state",
                "endpoint_id": "marketplace_sunset_pilot",
                "method": "GET",
                "query": []
            },
            "sunset_pilot_enable_header": {
                "label": "Enable header-driven sunset pilot",
                "endpoint_id": "marketplace_sunset_pilot",
                "method": "POST",
                "payload": {
                    "action": "enable_header_pilot",
                    "endpoint_ids": [
                        "marketplace_manifest",
                        "marketplace_listings"
                    ]
                }
            },
            "sunset_pilot_set_ramp_policy": {
                "label": "Configure cohort ramp policy",
                "endpoint_id": "marketplace_sunset_pilot",
                "method": "POST",
                "payload": {
                    "action": "set_ramp_policy",
                    "enabled": true,
                    "step_percent": 10,
                    "max_percent": 50,
                    "min_interval_minutes": 60,
                    "cooldown_after_rollback_minutes": 30
                }
            },
            "sunset_pilot_ramp_once": {
                "label": "Apply one cohort ramp step",
                "endpoint_id": "marketplace_sunset_pilot",
                "method": "POST",
                "payload": {
                    "action": "ramp_cohort_once"
                }
            },
            "sunset_pilot_validation_read": {
                "label": "Read sunset pilot validation gates",
                "endpoint_id": "marketplace_sunset_pilot_validation",
                "method": "GET",
                "query": {
                    "window_hours": 24,
                    "enforced_share_threshold": 0.75,
                    "recent_limit": 50
                }
            },
            "sunset_pilot_validation_rollback": {
                "label": "Run rollback-if-needed action",
                "endpoint_id": "marketplace_sunset_pilot_validation",
                "method": "POST",
                "payload": {
                    "action": "rollback_if_needed",
                    "window_hours": 24,
                    "enforced_share_threshold": 0.75,
                    "recent_limit": 50
                }
            },
            "sunset_pilot_validation_drill": {
                "label": "Run rollback drill and restore pilot state",
                "endpoint_id": "marketplace_sunset_pilot_validation",
                "method": "POST",
                "payload": {
                    "action": "rollback_drill",
                    "window_hours": 24,
                    "enforced_share_threshold": 0.75,
                    "recent_limit": 50,
                    "restore_pilot": true
                }
            },
            "sunset_pilot_exit_readiness_read": {
                "label": "Read sunset pilot exit readiness",
                "endpoint_id": "marketplace_sunset_pilot_exit_readiness",
                "method": "GET",
                "query": {
                    "window_hours": 24,
                    "enforced_share_threshold": 0.75,
                    "recent_limit": 50,
                    "target_cohort_percent": 100
                }
            },
            "sunset_pilot_exit_readiness_advance": {
                "label": "Advance cohort by one step when readiness gates are green",
                "endpoint_id": "marketplace_sunset_pilot_exit_readiness",
                "method": "POST",
                "payload": {
                    "action": "advance_if_ready",
                    "window_hours": 24,
                    "enforced_share_threshold": 0.75,
                    "recent_limit": 50,
                    "target_cohort_percent": 100
                }
            },
            "sunset_pilot_exit_execution_read": {
                "label": "Read sunset pilot exit execution gates",
                "endpoint_id": "marketplace_sunset_pilot_exit_execution",
                "method": "GET",
                "query": {
                    "window_hours": 24,
                    "enforced_share_threshold": 0.75,
                    "recent_limit": 50,
                    "target_cohort_percent": 100
                }
            },
            "sunset_pilot_exit_execution_execute": {
                "label": "Execute pilot exit when execution gates are green",
                "endpoint_id": "marketplace_sunset_pilot_exit_execution",
                "method": "POST",
                "payload": {
                    "action": "execute_exit_if_ready",
                    "window_hours": 24,
                    "enforced_share_threshold": 0.75,
                    "recent_limit": 50,
                    "target_cohort_percent": 100
                }
            },
            "sunset_post_exit_enforcement_read": {
                "label": "Read post-exit enforcement state",
                "endpoint_id": "marketplace_sunset_post_exit_enforcement",
                "method": "GET",
                "query": []
            },
            "sunset_post_exit_enforcement_open_window": {
                "label": "Open rollback window after post-exit enforcement activation",
                "endpoint_id": "marketplace_sunset_post_exit_enforcement",
                "method": "POST",
                "payload": {
                    "action": "open_rollback_window",
                    "rollback_window_minutes": 30
                }
            },
            "sunset_stable_observability_default": {
                "label": "Read stable-only enforcement observability and cleanup recommendations",
                "endpoint_id": "marketplace_sunset_stable_observability",
                "method": "GET",
                "query": {
                    "window_hours": 24,
                    "recent_limit": 200
                }
            },
            "sunset_retirement_dry_run_default": {
                "label": "Read retirement dry-run candidate list and runbook",
                "endpoint_id": "marketplace_sunset_retirement_dry_run",
                "method": "GET",
                "query": {
                    "window_hours": 72,
                    "recent_limit": 500,
                    "min_retire_idle_hits": 1
                }
            },
            "sunset_retirement_canary_read": {
                "label": "Read retirement canary state",
                "endpoint_id": "marketplace_sunset_retirement_canary",
                "method": "GET",
                "query": []
            },
            "sunset_retirement_canary_set": {
                "label": "Enable retirement canary with explicit endpoint scope",
                "endpoint_id": "marketplace_sunset_retirement_canary",
                "method": "POST",
                "payload": {
                    "action": "set_canary",
                    "canary_percent": 10,
                    "endpoint_ids": [
                        "marketplace_jobs"
                    ]
                }
            },
            "sunset_retirement_canary_from_dry_run": {
                "label": "Enable retirement canary from dry-run candidates",
                "endpoint_id": "marketplace_sunset_retirement_canary",
                "method": "POST",
                "payload": {
                    "action": "enable_canary_from_dry_run",
                    "canary_percent": 10,
                    "window_hours": 72,
                    "recent_limit": 500,
                    "min_retire_idle_hits": 1,
                    "max_candidates": 3
                }
            },
            "sunset_hard_cutover_read": {
                "label": "Read hard-cutover state",
                "endpoint_id": "marketplace_sunset_hard_cutover",
                "method": "GET",
                "query": []
            },
            "sunset_hard_cutover_execute": {
                "label": "Execute hard cutover with explicit endpoint scope",
                "endpoint_id": "marketplace_sunset_hard_cutover",
                "method": "POST",
                "payload": {
                    "action": "execute_cutover",
                    "endpoint_ids": [
                        "marketplace_jobs"
                    ]
                }
            },
            "sunset_hard_cutover_from_dry_run": {
                "label": "Execute hard cutover from dry-run candidates",
                "endpoint_id": "marketplace_sunset_hard_cutover",
                "method": "POST",
                "payload": {
                    "action": "execute_cutover_from_dry_run",
                    "window_hours": 72,
                    "recent_limit": 500,
                    "min_retire_idle_hits": 1,
                    "max_candidates": 10
                }
            },
            "job_run_lookup_sync": {
                "label": "Run a synchronous vessel lookup job",
                "endpoint_id": "marketplace_job_run",
                "method": "POST",
                "payload": {
                    "agent_slug": "vessel_lookup_agent",
                    "lookup_id": "IMO:9811000",
                    "execution_mode": "sync"
                }
            },
            "owner_token_issue_template_manage": {
                "label": "Issue an owner token for template management",
                "endpoint_id": "marketplace_owner_auth",
                "method": "POST",
                "payload": {
                    "action": "issue",
                    "owner_type": "user",
                    "owner_ref": "agent:12345",
                    "scopes": [
                        "template:manage"
                    ],
                    "description": "Manage private marketplace templates",
                    "expires_in_seconds": 86400
                }
            },
            "owner_token_introspection_run_scope": {
                "label": "Inspect one owner token against template:run scope",
                "endpoint_id": "marketplace_owner_token_introspect",
                "method": "GET",
                "query": {
                    "required_scope": "template:run"
                }
            },
            "user_template_create_search": {
                "label": "Create a private template for vessel search",
                "endpoint_id": "marketplace_user_agent_templates",
                "method": "POST",
                "payload": {
                    "owner_ref": "agent:12345",
                    "name": "Ever Given search template",
                    "description": "Private template for repeated vessel search runs",
                    "status": "active",
                    "target_type": "agent_slug",
                    "target": {
                        "agent_slug": "vessel_search_agent"
                    },
                    "input_defaults": {
                        "query": "EVER GIVEN"
                    },
                    "option_defaults": {
                        "execution_mode": "sync"
                    }
                }
            },
            "user_template_catalog_active": {
                "label": "List active private template catalog rows for one owner",
                "endpoint_id": "marketplace_user_agent_template_catalog",
                "method": "GET",
                "query": {
                    "owner_ref": "agent:12345",
                    "status": "active",
                    "target_type": "capability",
                    "limit": 10
                }
            },
            "partner_lifecycle_enable_stub": {
                "label": "Enable a partner agent for sandbox stub runtime",
                "endpoint_id": "marketplace_partner_lifecycle",
                "method": "POST",
                "payload": {
                    "agent_slug": "partner_stub_demo",
                    "trust_profile": {
                        "status": "active",
                        "visibility": "public",
                        "trust_level": "reviewed"
                    },
                    "execution_policy": {
                        "status": "active",
                        "visibility": "public",
                        "approval_status": "approved",
                        "execution_mode": "sandbox_partner_stub"
                    },
                    "runtime_control": {
                        "allowlist_status": "allowlisted",
                        "lifecycle_state": "active",
                        "runtime_mode": "sync_only"
                    }
                }
            },
            "partner_readiness_filter_ready": {
                "label": "List partner readiness rows that are already runnable",
                "endpoint_id": "marketplace_partner_readiness",
                "method": "GET",
                "query": {
                    "visibility": "public",
                    "eligible_now": "true",
                    "limit": 10
                }
            },
            "partner_register_external_adapter": {
                "label": "Register a partner agent with external adapter runtime config",
                "endpoint_id": "marketplace_partner_agents",
                "method": "POST",
                "payload": {
                    "slug": "partner_external_demo",
                    "name": "Partner External Demo",
                    "vendor": "Partner Demo Co",
                    "contact": "ops@partner-demo.example",
                    "owner_id": "partner-demo-owner",
                    "visibility": "public",
                    "status": "draft",
                    "default_pricing_mode": "partner_metered",
                    "agent_class": "analysis",
                    "domain": "maritime",
                    "implementation_key": "partner:http_json_adapter",
                    "runtime_config": {
                        "external_adapter": {
                            "endpoint_url": "https://127.0.0.1/topos/api/experimental/marketplace-partner-external-runtime.php",
                            "outbound_allowlist": [
                                "https://127.0.0.1/topos/api/experimental/marketplace-partner-external-runtime.php"
                            ],
                            "host_header": "shipinfo.net",
                            "insecure": true,
                            "connect_timeout_seconds": 5,
                            "timeout_seconds": 20,
                            "timeout_policy": {
                                "min_seconds": 2,
                                "max_seconds": 30
                            },
                            "circuit_breaker": {
                                "enabled": true,
                                "failure_threshold": 3,
                                "cooldown_seconds": 120
                            },
                            "adapter_key": "adapter-demo-key"
                        }
                    }
                }
            },
            "partner_adapter_key_rotate": {
                "label": "Rotate partner adapter key for one external runtime agent",
                "endpoint_id": "marketplace_partner_adapter_keys",
                "method": "POST",
                "payload": {
                    "agent_slug": "partner_external_demo",
                    "action": "rotate",
                    "reason": "scheduled key rotation"
                }
            },
            "partner_onboarding_checklist_ready": {
                "label": "List partner onboarding rows that are already runtime-ready",
                "endpoint_id": "marketplace_partner_onboarding_checklist",
                "method": "GET",
                "query": {
                    "owner_id": "partner-owner-123",
                    "checklist_status": "runtime_ready",
                    "limit": 10
                }
            },
            "event_trigger_create_job_template": {
                "label": "Create an event trigger that calls vessel search",
                "endpoint_id": "marketplace_event_triggers",
                "method": "POST",
                "payload": {
                    "event_key": "marketplace.job.completed",
                    "name": "Search on completed jobs",
                    "status": "active",
                    "owner_type": "platform",
                    "owner_ref": "topos:ops",
                    "match_filters": {
                        "job_type": "vessel_lookup"
                    },
                    "policy": {
                        "cooldown_seconds": 300,
                        "dedupe_key": "job_uuid"
                    },
                    "job_template": {
                        "agent_slug": "vessel_search_agent",
                        "input": {
                            "query": "{{payload.summary}}"
                        },
                        "options": {
                            "execution_mode": "async"
                        }
                    }
                }
            },
            "event_subscription_create_async": {
                "label": "Create an async event subscription",
                "endpoint_id": "marketplace_event_subscriptions",
                "method": "POST",
                "payload": {
                    "trigger_id": 1001,
                    "name": "Async follow-up job subscription",
                    "status": "active",
                    "owner_type": "platform",
                    "owner_ref": "topos:ops",
                    "delivery_mode": "submit_job",
                    "execution_mode": "async",
                    "runtime_overrides": {
                        "route_cache": {
                            "mode": "prefer"
                        }
                    }
                }
            },
            "event_dispatch_manual_payload": {
                "label": "Dispatch an event manually into marketplace automation",
                "endpoint_id": "marketplace_event_dispatch",
                "method": "POST",
                "payload": {
                    "event_key": "marketplace.job.completed",
                    "source": "manual",
                    "payload": {
                        "job_type": "vessel_lookup",
                        "summary": "EVER GIVEN",
                        "job_uuid": "demo-job-uuid"
                    }
                }
            },
            "event_replay_run_payload": {
                "label": "Replay one subscription run with control flags",
                "endpoint_id": "marketplace_event_replay_controls",
                "method": "POST",
                "payload": {
                    "action": "replay_run",
                    "subscription_run_id": 123,
                    "ignore_cooldown": true,
                    "ignore_dedupe": true,
                    "execution_mode_override": "async"
                }
            },
            "event_requeue_dead_letter_payload": {
                "label": "Requeue open dead letter from event-created job",
                "endpoint_id": "marketplace_event_replay_controls",
                "method": "POST",
                "payload": {
                    "action": "requeue_dead_letter",
                    "dead_letter_id": 42,
                    "ignore_cooldown": true,
                    "ignore_dedupe": true,
                    "execution_mode_override": "async"
                }
            },
            "event_workflow_read_cooldown": {
                "label": "Read workflows for completed-job automation",
                "endpoint_id": "marketplace_event_workflows",
                "method": "GET",
                "query": {
                    "event_key": "marketplace.job.completed",
                    "status": "active",
                    "recent_limit": 5,
                    "limit": 10
                }
            },
            "event_sla_metrics_default": {
                "label": "Read event automation SLA metrics",
                "endpoint_id": "marketplace_event_sla_metrics",
                "method": "GET",
                "query": {
                    "window_hours": 24,
                    "event_key": "marketplace.job.completed",
                    "owner_type": "platform",
                    "owner_ref": "topos:ops",
                    "per_event_limit": 10,
                    "recent_limit": 5
                }
            },
            "event_runbook_default": {
                "label": "Read event automation operator runbook",
                "endpoint_id": "marketplace_event_runbook",
                "method": "GET",
                "query": {
                    "event_key": "marketplace.job.completed",
                    "owner_type": "platform",
                    "owner_ref": "topos:ops",
                    "runbook_status": "incident_response",
                    "limit": 10,
                    "recent_limit": 5
                }
            },
            "event_readiness_guide_completed_jobs": {
                "label": "Read readiness guide for completed-job automation",
                "endpoint_id": "marketplace_event_readiness_guide",
                "method": "GET",
                "query": {
                    "event_key": "marketplace.job.completed",
                    "guide_status": "ready_idle",
                    "recent_limit": 5,
                    "limit": 10
                }
            },
            "wallet_balance_platform_shadow": {
                "label": "Read platform shadow wallet balance and recent ledger entries",
                "endpoint_id": "marketplace_wallet_balance",
                "method": "GET",
                "query": {
                    "owner_type": "platform",
                    "owner_ref": "marketplace_shadow",
                    "currency": "USD",
                    "recent_limit": 5
                }
            },
            "billing_summary_platform_shadow": {
                "label": "Read reservation and settlement summary with wallet reconciliation",
                "endpoint_id": "marketplace_billing_summary",
                "method": "GET",
                "query": {
                    "owner_type": "platform",
                    "owner_ref": "marketplace_shadow",
                    "currency": "USD",
                    "recent_limit": 5,
                    "wallet_recent_limit": 5
                }
            },
            "usage_rollups_platform_shadow": {
                "label": "Read owner and agent usage rollups",
                "endpoint_id": "marketplace_usage_rollups",
                "method": "GET",
                "query": {
                    "owner_type": "platform",
                    "owner_ref": "marketplace_shadow",
                    "currency": "USD",
                    "limit": 10
                }
            },
            "budget_policy_profiles_list": {
                "label": "List budget policy profiles",
                "endpoint_id": "marketplace_budget_policy_profiles",
                "method": "GET",
                "query": {
                    "status": "active"
                }
            },
            "budget_policy_profile_upsert": {
                "label": "Create or update budget policy profile",
                "endpoint_id": "marketplace_budget_policy_profiles",
                "method": "POST",
                "payload": {
                    "profile_key": "ops_default_sync",
                    "label": "Ops Default Sync",
                    "status": "active",
                    "notes": "Default sync preset for operator-led runs.",
                    "options": {
                        "budget_total_usd": 4,
                        "max_steps": 4,
                        "max_depth": 1,
                        "retry_limit": 2,
                        "execution_mode": "sync"
                    }
                }
            },
            "graduation_checklist_default": {
                "label": "Read experimental-to-stable graduation checklist",
                "endpoint_id": "marketplace_graduation_checklist",
                "method": "GET",
                "query": {
                    "status": "ready",
                    "include_evidence": 1
                }
            }
        },
        "stable_namespace": {
            "base_path": "https://shipinfo.net/topos/api/v1/marketplace",
            "stage": "pilot_canary",
            "canary": {
                "enabled_by_default_percent": 20,
                "override_query_param": "canary=1",
                "override_header": "X-Marketplace-Canary: 1",
                "cohort_header": "X-Marketplace-Canary-Key"
            },
            "pilot_endpoints": [
                "https://shipinfo.net/topos/api/v1/marketplace/manifest",
                "https://shipinfo.net/topos/api/v1/marketplace/listings",
                "https://shipinfo.net/topos/api/v1/marketplace/read-models",
                "https://shipinfo.net/topos/api/v1/marketplace/routes/resolve",
                "https://shipinfo.net/topos/api/v1/marketplace/jobs/run",
                "https://shipinfo.net/topos/api/v1/marketplace/jobs",
                "https://shipinfo.net/topos/api/v1/marketplace/jobs/status",
                "https://shipinfo.net/topos/api/v1/marketplace/partner/agents",
                "https://shipinfo.net/topos/api/v1/marketplace/events/triggers",
                "https://shipinfo.net/topos/api/v1/marketplace/events/workflows",
                "https://shipinfo.net/topos/api/v1/marketplace/events/runbook",
                "https://shipinfo.net/topos/api/v1/marketplace/ops/wallet-balance",
                "https://shipinfo.net/topos/api/v1/marketplace/ops/billing-summary",
                "https://shipinfo.net/topos/api/v1/marketplace/ops/graduation-checklist"
            ]
        },
        "known_gaps": [],
        "next_step": {
            "phase": "Completed — Marketplace MVP",
            "step": "All planned phases closed; continue operational monitoring"
        },
        "navigation": {
            "next": {
                "browse_catalog_url": "/topos/marketplace-catalog",
                "catalog_api_url": "/topos/api/experimental/marketplace-read-models.php",
                "stable_aliases_url": "/topos/api/experimental/marketplace-stable-aliases.php",
                "direct_job_run_url": "/topos/api/experimental/marketplace-job-run.php",
                "jobs_url": "/topos/api/experimental/marketplace-jobs.php",
                "template_owner_auth_url": "/topos/api/experimental/marketplace-owner-auth.php",
                "owner_token_introspect_url": "/topos/api/experimental/marketplace-owner-token-introspect.php",
                "template_catalog_url": "/topos/api/experimental/marketplace-user-agent-template-catalog.php",
                "partner_lifecycle_url": "/topos/api/experimental/marketplace-partner-lifecycle.php",
                "partner_adapter_keys_url": "/topos/api/experimental/marketplace-partner-adapter-keys.php",
                "budget_policy_profiles_url": "/topos/api/experimental/marketplace-budget-policy-profiles.php",
                "partner_readiness_url": "/topos/api/experimental/marketplace-partner-readiness.php",
                "partner_onboarding_checklist_url": "/topos/api/experimental/marketplace-partner-onboarding-checklist.php",
                "event_triggers_url": "/topos/api/experimental/marketplace-event-triggers.php",
                "event_replay_controls_url": "/topos/api/experimental/marketplace-event-replay-controls.php",
                "event_workflows_url": "/topos/api/experimental/marketplace-event-workflows.php",
                "event_sla_metrics_url": "/topos/api/experimental/marketplace-event-sla-metrics.php",
                "event_runbook_url": "/topos/api/experimental/marketplace-event-runbook.php",
                "event_readiness_guide_url": "/topos/api/experimental/marketplace-event-readiness-guide.php",
                "worker_status_url": "/topos/api/experimental/marketplace-worker-status.php",
                "billing_summary_url": "/topos/api/experimental/marketplace-billing-summary.php",
                "usage_rollups_url": "/topos/api/experimental/marketplace-usage-rollups.php",
                "wallet_balance_url": "/topos/api/experimental/marketplace-wallet-balance.php",
                "graduation_checklist_url": "/topos/api/experimental/marketplace-graduation-checklist.php",
                "control_plane_audit_url": "/topos/api/experimental/marketplace-control-plane-audit.php"
            },
            "related": {
                "about_url": "/topos/marketplace-about",
                "for_agents_url": "/topos/for-agents",
                "stable_alias_policy_en_url": "/topos/docs/MARKETPLACE_STABLE_ALIAS_POLICY_EN.md",
                "agent_guide_url": "/topos/docs/MARKETPLACE_AGENT_ENTRY_GUIDE_RU.md",
                "system_overview_url": "/topos/docs/MARKETPLACE_SYSTEM_OVERVIEW_RU.md"
            }
        }
    },
    "errors": []
}