{
  "openapi": "3.1.0",
  "info": {
    "title": "NEXO JSON Normalizer",
    "version": "1.0.0",
    "description": "Valida y normaliza un valor JSON con orden estable de claves. El endpoint está protegido por x402 y liquida USDC en Base mainnet."
  },
  "servers": [
    {
      "url": "https://nexo-sistema-comercial.alexisgamarraneri2l.chatgpt.site"
    }
  ],
  "paths": {
    "/api/x402-json": {
      "get": {
        "summary": "Normaliza un valor JSON",
        "description": "Envía el JSON URL-encoded en `json`. El primer intento devuelve HTTP 402 con los requisitos x402; una solicitud pagada devuelve el resultado.",
        "parameters": [
          {
            "name": "json",
            "in": "query",
            "required": true,
            "description": "Valor JSON URL-encoded.",
            "schema": {
              "type": "string",
              "default": "{}"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "JSON validado y normalizado.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NormalizedJson"
                }
              }
            }
          },
          "400": {
            "description": "El parámetro no contiene JSON válido."
          },
          "402": {
            "description": "Pago x402 requerido."
          },
          "413": {
            "description": "El valor supera 512 KB."
          }
        }
    },
    "/api/product-delivery": {
      "get": {
        "summary": "Entrega un producto comprado",
        "description": "Devuelve enlaces de descarga de un producto NEXO. Úsalo desde la oferta de marketplace correspondiente.",
        "parameters": [
          {
            "name": "product",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "enum": ["workbook", "implementation"]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Metadatos y archivos del producto.",
            "content": {
              "application/json": {
                "schema": { "type": "object" }
              }
            }
          },
          "400": {
            "description": "Producto no reconocido."
          }
        }
      }
    },
    "/api/x402-workbook": {
      "get": {
        "summary": "Comprar workbook NEXO",
        "description": "Endpoint x402 en Base mainnet. Precio: US$79.",
        "parameters": [{ "name": "product", "in": "query", "required": false, "schema": { "type": "string", "const": "workbook" } }],
        "responses": { "200": { "description": "Enlaces de descarga después del pago." }, "402": { "description": "Pago x402 requerido." } }
      }
    },
    "/api/x402-implementation": {
      "get": {
        "summary": "Comprar Implementation Pack NEXO",
        "description": "Endpoint x402 en Base mainnet. Precio: US$149.",
        "parameters": [{ "name": "product", "in": "query", "required": false, "schema": { "type": "string", "const": "implementation" } }],
        "responses": { "200": { "description": "Enlaces de descarga después del pago." }, "402": { "description": "Pago x402 requerido." } }
      }
    }
  },
  "components": {
    "schemas": {
      "NormalizedJson": {
        "type": "object",
        "required": ["valid", "bytes", "type", "normalized"],
        "properties": {
          "valid": { "type": "boolean" },
          "bytes": { "type": "integer" },
          "type": { "type": "string" },
          "normalized": {}
        }
      }
    }
  }
}
