naftiko: "1.0.0-alpha2" info: label: "jService Trivia API — Categories" description: >- Categories — Jeopardy! category collections. 2 operations. Lead operation: List Categories. Self-contained Naftiko capability covering one jService business surface (category browsing and drill-down on the open-source jService Rails API). tags: - Jservice - Trivia - Categories created: "2026-05-30" modified: "2026-05-30" binds: - namespace: env keys: JSERVICE_BASE_URL: JSERVICE_BASE_URL capability: consumes: - type: http namespace: "jservice-categories" baseUri: "{{env.JSERVICE_BASE_URL}}" description: "jService Trivia API — Categories business capability. Self-contained, no shared references." resources: - name: "categories" path: "/api/categories" operations: - name: "listCategories" method: GET description: "List categories (default 1, max 100) with offset pagination." inputParameters: - name: "count" in: query type: integer required: false description: "Number of categories to return (1-100)." - name: "offset" in: query type: integer required: false description: "Pagination offset." outputRawFormat: json outputParameters: - name: result type: object value: "$." - name: "category" path: "/api/category" operations: - name: "getCategory" method: GET description: "Get one category by ID, including its clues." inputParameters: - name: "id" in: query type: integer required: true description: "Category ID." outputRawFormat: json outputParameters: - name: result type: object value: "$." exposes: - type: rest namespace: "jservice-categories-rest" port: 8080 description: "REST adapter for jService — Categories. One Spectral-compliant resource per consumed operation, prefixed with /v1." resources: - path: "/v1/categories" name: "categories" description: "REST surface for category browsing." operations: - method: GET name: "listCategories" description: "List categories with pagination." call: "jservice-categories.listCategories" with: "count": "rest.count" "offset": "rest.offset" outputParameters: - type: object mapping: "$." - path: "/v1/category" name: "category" description: "REST surface for single-category lookup including clues." operations: - method: GET name: "getCategory" description: "Get a single category and its clues." call: "jservice-categories.getCategory" with: "id": "rest.id" outputParameters: - type: object mapping: "$." - type: mcp namespace: "jservice-categories-mcp" port: 9090 transport: http description: "MCP adapter for jService — Categories. One tool per consumed operation, routed inline through this capability's consumes block." tools: - name: "list-categories" description: "List Jeopardy! categories with pagination." hints: readOnly: true destructive: false idempotent: true call: "jservice-categories.listCategories" with: "count": "tools.count" "offset": "tools.offset" outputParameters: - type: object mapping: "$." - name: "get-category" description: "Get a single Jeopardy! category by ID, including its clues." hints: readOnly: true destructive: false idempotent: true call: "jservice-categories.getCategory" with: "id": "tools.id" outputParameters: - type: object mapping: "$."