naftiko: 1.0.0-alpha2 info: label: SWAPI — People description: >- SWAPI People. 2 operations (list + get). Lead operation: List All People. Characters in the Star Wars universe. Self-contained Naftiko capability covering one SWAPI business surface. tags: - SWAPI - Star Wars - People created: '2026-05-29' modified: '2026-05-29' binds: - namespace: env keys: {} capability: consumes: - type: http namespace: swapi-people baseUri: https://swapi.dev/api description: SWAPI — People business capability. Self-contained, no shared references. resources: - name: people path: /people/ operations: - name: listPeople method: GET description: List All People inputParameters: - name: search in: query type: string required: false description: Case-insensitive partial match against the character name. - name: page in: query type: integer required: false description: One-based page number for paginated list responses. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: getPerson method: GET description: Get Person By Id inputParameters: - name: id in: path type: integer required: true description: Numeric SWAPI identifier for the person. outputRawFormat: json outputParameters: - name: result type: object value: $. exposes: - type: rest namespace: swapi-people-rest port: 8080 description: REST adapter for SWAPI — People. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/people name: people description: REST surface for People. operations: - method: GET name: listPeople description: List All People call: swapi-people.listPeople with: search: rest.search page: rest.page outputParameters: - type: object mapping: $. - path: /v1/people/{id} name: people-by-id description: REST surface for a single Person. operations: - method: GET name: getPerson description: Get Person By Id call: swapi-people.getPerson with: id: rest.id outputParameters: - type: object mapping: $. - type: mcp namespace: swapi-people-mcp port: 9090 transport: http description: MCP adapter for SWAPI — People. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-people description: List All People hints: readOnly: true destructive: false idempotent: true call: swapi-people.listPeople with: search: tools.search page: tools.page outputParameters: - type: object mapping: $. - name: get-person description: Get Person By Id hints: readOnly: true destructive: false idempotent: true call: swapi-people.getPerson with: id: tools.id outputParameters: - type: object mapping: $.