{
    "openapi": "3.0.3",
    "info": {
        "title": "JCP channel directory",
        "version": "0.1.0",
        "description": "Auto-generated from the JCP registry. Draft channels are not callable until verified and active."
    },
    "servers": [
        {
            "url": "https://jcp.reversal.org"
        }
    ],
    "paths": {
        "/v1/channels/backout.checkout.status/invoke": {
            "post": {
                "operationId": "backout_checkout_status",
                "summary": "Checkout status",
                "description": "Read checkout / payment status for a structure (source-verify before publish).",
                "tags": [
                    "backout"
                ],
                "x-jcp-publication-status": "draft",
                "x-jcp-upstream-method": "GET",
                "x-jcp-upstream-route": "/api/v1/checkout/{id}/status",
                "x-jcp-schema-sha256": "8de788d695528e3fb4b938422d9c320882cd81d9cf42031e310cd21dcb2f2db3",
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Channel result (active channels only)"
                    },
                    "401": {
                        "description": "Missing or invalid credential"
                    },
                    "403": {
                        "description": "Channel not active / scope denied"
                    },
                    "404": {
                        "description": "Unknown channel"
                    }
                }
            }
        },
        "/v1/channels/backout.structures.list/invoke": {
            "post": {
                "operationId": "backout_structures_list",
                "summary": "List structures",
                "description": "List payment structures for the authenticated venture.",
                "tags": [
                    "backout"
                ],
                "x-jcp-publication-status": "draft",
                "x-jcp-upstream-method": "GET",
                "x-jcp-upstream-route": "/api/v1/structures",
                "x-jcp-schema-sha256": "de8252870fdc9eb4a5118202e0a10d9a58ef730d2e7b87d712913f930441ea10",
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Channel result (active channels only)"
                    },
                    "401": {
                        "description": "Missing or invalid credential"
                    },
                    "403": {
                        "description": "Channel not active / scope denied"
                    },
                    "404": {
                        "description": "Unknown channel"
                    }
                }
            }
        },
        "/v1/channels/compacter.sites.list/invoke": {
            "post": {
                "operationId": "compacter_sites_list",
                "summary": "List sites",
                "description": "Site list for authenticated Compacter tenant (verify path before publish).",
                "tags": [
                    "compacter"
                ],
                "x-jcp-publication-status": "draft",
                "x-jcp-upstream-method": "GET",
                "x-jcp-upstream-route": "/api/v1/sites/",
                "x-jcp-schema-sha256": "33aa7b6eb408aafc763680f30dac8f905bc7f62dff354c763064f8f8ad84b97f",
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Channel result (active channels only)"
                    },
                    "401": {
                        "description": "Missing or invalid credential"
                    },
                    "403": {
                        "description": "Channel not active / scope denied"
                    },
                    "404": {
                        "description": "Unknown channel"
                    }
                }
            }
        },
        "/v1/channels/eefinancial.symbol.get/invoke": {
            "post": {
                "operationId": "eefinancial_symbol_get",
                "summary": "Symbol quote",
                "description": "Symbol data endpoint (API key). Entitlements apply upstream.",
                "tags": [
                    "eefinance"
                ],
                "x-jcp-publication-status": "draft",
                "x-jcp-upstream-method": "GET",
                "x-jcp-upstream-route": "/api/v1/symbol/{symbol}",
                "x-jcp-schema-sha256": "228dace8633a0fd90b252e25ee2792aad9d21b13c9bfb740ebdbb4142ff6c4bf",
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Channel result (active channels only)"
                    },
                    "401": {
                        "description": "Missing or invalid credential"
                    },
                    "403": {
                        "description": "Channel not active / scope denied"
                    },
                    "404": {
                        "description": "Unknown channel"
                    }
                }
            }
        },
        "/v1/channels/eeh.products.catalog/invoke": {
            "post": {
                "operationId": "eeh_products_catalog",
                "summary": "Products catalog",
                "description": "Public / keyed product catalog from Holdings.",
                "tags": [
                    "eeholdings"
                ],
                "x-jcp-publication-status": "draft",
                "x-jcp-upstream-method": "GET",
                "x-jcp-upstream-route": "/api/products?action=catalog",
                "x-jcp-schema-sha256": "f9d00fb7865df55ae96e0d62cabf50b7af7da3575ade77a58ffd76292bacc347",
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Channel result (active channels only)"
                    },
                    "401": {
                        "description": "Missing or invalid credential"
                    },
                    "403": {
                        "description": "Channel not active / scope denied"
                    },
                    "404": {
                        "description": "Unknown channel"
                    }
                }
            }
        },
        "/v1/channels/labored.images.list/invoke": {
            "post": {
                "operationId": "labored_images_list",
                "summary": "List images",
                "description": "Image metadata, venture-scoped. Route template must be verified in repo audit.",
                "tags": [
                    "labored"
                ],
                "x-jcp-publication-status": "draft",
                "x-jcp-upstream-method": "GET",
                "x-jcp-upstream-route": "UNVERIFIED_REPLACE_AFTER_AUDIT",
                "x-jcp-schema-sha256": "363a7566bdcd5df342a124e26eaae120dbcf51f0fb9d27b709e582ba97e2cddd",
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Channel result (active channels only)"
                    },
                    "401": {
                        "description": "Missing or invalid credential"
                    },
                    "403": {
                        "description": "Channel not active / scope denied"
                    },
                    "404": {
                        "description": "Unknown channel"
                    }
                }
            }
        },
        "/v1/channels/ledger.accounts.list/invoke": {
            "post": {
                "operationId": "ledger_accounts_list",
                "summary": "List accounts",
                "description": "Chart accounts read (financial integrity; verify before publish).",
                "tags": [
                    "ledgeradvanced"
                ],
                "x-jcp-publication-status": "draft",
                "x-jcp-upstream-method": "GET",
                "x-jcp-upstream-route": "/api/v1/accounts/",
                "x-jcp-schema-sha256": "ee1d84aefc729375aad823d4d79391ffffa81341a4beab955a8c19cd542ca372",
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Channel result (active channels only)"
                    },
                    "401": {
                        "description": "Missing or invalid credential"
                    },
                    "403": {
                        "description": "Channel not active / scope denied"
                    },
                    "404": {
                        "description": "Unknown channel"
                    }
                }
            }
        },
        "/v1/channels/marvis.ship.export/invoke": {
            "post": {
                "operationId": "marvis_ship_export",
                "summary": "Ship log export",
                "description": "Export Marvis ship-log queue (session).",
                "tags": [
                    "marvis"
                ],
                "x-jcp-publication-status": "draft",
                "x-jcp-upstream-method": "GET",
                "x-jcp-upstream-route": "/ship/export/",
                "x-jcp-schema-sha256": "60d3fdb012b9701dce958911d9a3ee40cbf7ee9a4abaf0d818e5e263c0d673d5",
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Channel result (active channels only)"
                    },
                    "401": {
                        "description": "Missing or invalid credential"
                    },
                    "403": {
                        "description": "Channel not active / scope denied"
                    },
                    "404": {
                        "description": "Unknown channel"
                    }
                }
            }
        },
        "/v1/channels/command.changelog.list/invoke": {
            "post": {
                "operationId": "command_changelog_list",
                "summary": "List changelog",
                "description": "Ship log entries for a Command project.",
                "tags": [
                    "commandprojects"
                ],
                "x-jcp-publication-status": "draft",
                "x-jcp-upstream-method": "GET",
                "x-jcp-upstream-route": "/api/v1/changelog/",
                "x-jcp-schema-sha256": "889646460e32f6ec936b32d934ec5d7ce3d7b7162f3f02b027e86b54447bb9a5",
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Channel result (active channels only)"
                    },
                    "401": {
                        "description": "Missing or invalid credential"
                    },
                    "403": {
                        "description": "Channel not active / scope denied"
                    },
                    "404": {
                        "description": "Unknown channel"
                    }
                }
            }
        },
        "/v1/channels/command.health/invoke": {
            "post": {
                "operationId": "command_health",
                "summary": "Command health",
                "description": "Minimal health signal for Project Command.",
                "tags": [
                    "commandprojects"
                ],
                "x-jcp-publication-status": "draft",
                "x-jcp-upstream-method": "GET",
                "x-jcp-upstream-route": "/api/v1/health/",
                "x-jcp-schema-sha256": "11b39fa13d49944747c83d795f0519bc17c1ea57e49b61d79b3f7a5df050397b",
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Channel result (active channels only)"
                    },
                    "401": {
                        "description": "Missing or invalid credential"
                    },
                    "403": {
                        "description": "Channel not active / scope denied"
                    },
                    "404": {
                        "description": "Unknown channel"
                    }
                }
            }
        }
    },
    "components": {
        "securitySchemes": {
            "bearerAuth": {
                "type": "http",
                "scheme": "bearer"
            }
        }
    }
}
