naftiko: 1.0.0-alpha2 info: label: Dog API — Breeds description: 'Dog API — Breeds. 9 operations. Lead operation: List All Breeds. Self-contained Naftiko capability covering one Dog API business surface.' tags: - Dog API - Breeds created: '2026-05-30' modified: '2026-05-30' binds: [] capability: consumes: - type: http namespace: dog-api-breeds baseUri: https://dog.ceo/api description: Dog API — Breeds business capability. Self-contained, no shared references. resources: - name: breeds-list-all path: /breeds/list/all operations: - name: listAllBreeds method: GET description: List All Breeds outputRawFormat: json outputParameters: - name: result type: object value: $. - name: breeds-list-all-random path: /breeds/list/all/random operations: - name: randomBreedEntry method: GET description: Random Breed Entry outputRawFormat: json outputParameters: - name: result type: object value: $. - name: breeds-list-all-random-amount path: /breeds/list/all/random/{amount} operations: - name: randomBreedEntries method: GET description: Multiple Random Breed Entries outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: amount in: path type: integer required: true description: Number of random breed entries to return. - name: breeds-list path: /breeds/list operations: - name: listTopLevelBreeds method: GET description: List Top-Level Breeds outputRawFormat: json outputParameters: - name: result type: object value: $. - name: breeds-list-random path: /breeds/list/random operations: - name: randomTopLevelBreed method: GET description: Random Top-Level Breed outputRawFormat: json outputParameters: - name: result type: object value: $. - name: breeds-list-random-amount path: /breeds/list/random/{amount} operations: - name: randomTopLevelBreeds method: GET description: Multiple Random Top-Level Breeds outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: amount in: path type: integer required: true description: Number of random top-level breed names to return. - name: breed-breed-list path: /breed/{breed}/list operations: - name: listSubBreeds method: GET description: List Sub-Breeds outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: breed in: path type: string required: true description: Master breed name (e.g., hound, retriever, spaniel). - name: breed-breed-list-random path: /breed/{breed}/list/random operations: - name: randomSubBreed method: GET description: Random Sub-Breed outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: breed in: path type: string required: true description: Master breed name. - name: breed-breed-list-random-amount path: /breed/{breed}/list/random/{amount} operations: - name: randomSubBreeds method: GET description: Multiple Random Sub-Breeds outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: breed in: path type: string required: true description: Master breed name. - name: amount in: path type: integer required: true description: Number of random sub-breeds to return. exposes: - type: rest namespace: dog-api-breeds-rest port: 8080 description: REST adapter for Dog API — Breeds. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/breeds/list/all name: v1-breeds-list-all description: REST surface for breeds-list-all. operations: - method: GET name: listAllBreeds description: List All Breeds call: dog-api-breeds.listAllBreeds outputParameters: - type: object mapping: $. - path: /v1/breeds/list/all/random name: v1-breeds-list-all-random description: REST surface for breeds-list-all-random. operations: - method: GET name: randomBreedEntry description: Random Breed Entry call: dog-api-breeds.randomBreedEntry outputParameters: - type: object mapping: $. - path: /v1/breeds/list/all/random/{amount} name: v1-breeds-list-all-random-amount description: REST surface for breeds-list-all-random-amount. operations: - method: GET name: randomBreedEntries description: Multiple Random Breed Entries call: dog-api-breeds.randomBreedEntries with: amount: rest.amount outputParameters: - type: object mapping: $. - path: /v1/breeds/list name: v1-breeds-list description: REST surface for breeds-list. operations: - method: GET name: listTopLevelBreeds description: List Top-Level Breeds call: dog-api-breeds.listTopLevelBreeds outputParameters: - type: object mapping: $. - path: /v1/breeds/list/random name: v1-breeds-list-random description: REST surface for breeds-list-random. operations: - method: GET name: randomTopLevelBreed description: Random Top-Level Breed call: dog-api-breeds.randomTopLevelBreed outputParameters: - type: object mapping: $. - path: /v1/breeds/list/random/{amount} name: v1-breeds-list-random-amount description: REST surface for breeds-list-random-amount. operations: - method: GET name: randomTopLevelBreeds description: Multiple Random Top-Level Breeds call: dog-api-breeds.randomTopLevelBreeds with: amount: rest.amount outputParameters: - type: object mapping: $. - path: /v1/breed/{breed}/list name: v1-breed-breed-list description: REST surface for breed-breed-list. operations: - method: GET name: listSubBreeds description: List Sub-Breeds call: dog-api-breeds.listSubBreeds with: breed: rest.breed outputParameters: - type: object mapping: $. - path: /v1/breed/{breed}/list/random name: v1-breed-breed-list-random description: REST surface for breed-breed-list-random. operations: - method: GET name: randomSubBreed description: Random Sub-Breed call: dog-api-breeds.randomSubBreed with: breed: rest.breed outputParameters: - type: object mapping: $. - path: /v1/breed/{breed}/list/random/{amount} name: v1-breed-breed-list-random-amount description: REST surface for breed-breed-list-random-amount. operations: - method: GET name: randomSubBreeds description: Multiple Random Sub-Breeds call: dog-api-breeds.randomSubBreeds with: breed: rest.breed amount: rest.amount outputParameters: - type: object mapping: $. - type: mcp namespace: dog-api-breeds-mcp port: 9090 transport: http description: MCP adapter for Dog API — Breeds. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-all-breeds description: List All Breeds hints: readOnly: true destructive: false idempotent: true call: dog-api-breeds.listAllBreeds outputParameters: - type: object mapping: $. - name: random-breed-entry description: Random Breed Entry hints: readOnly: true destructive: false idempotent: true call: dog-api-breeds.randomBreedEntry outputParameters: - type: object mapping: $. - name: multiple-random-breed-entries description: Multiple Random Breed Entries hints: readOnly: true destructive: false idempotent: true call: dog-api-breeds.randomBreedEntries with: amount: tools.amount outputParameters: - type: object mapping: $. - name: list-top-level-breeds description: List Top-Level Breeds hints: readOnly: true destructive: false idempotent: true call: dog-api-breeds.listTopLevelBreeds outputParameters: - type: object mapping: $. - name: random-top-level-breed description: Random Top-Level Breed hints: readOnly: true destructive: false idempotent: true call: dog-api-breeds.randomTopLevelBreed outputParameters: - type: object mapping: $. - name: multiple-random-top-level-breeds description: Multiple Random Top-Level Breeds hints: readOnly: true destructive: false idempotent: true call: dog-api-breeds.randomTopLevelBreeds with: amount: tools.amount outputParameters: - type: object mapping: $. - name: list-sub-breeds description: List Sub-Breeds hints: readOnly: true destructive: false idempotent: true call: dog-api-breeds.listSubBreeds with: breed: tools.breed outputParameters: - type: object mapping: $. - name: random-sub-breed description: Random Sub-Breed hints: readOnly: true destructive: false idempotent: true call: dog-api-breeds.randomSubBreed with: breed: tools.breed outputParameters: - type: object mapping: $. - name: multiple-random-sub-breeds description: Multiple Random Sub-Breeds hints: readOnly: true destructive: false idempotent: true call: dog-api-breeds.randomSubBreeds with: breed: tools.breed amount: tools.amount outputParameters: - type: object mapping: $.