naftiko: 1.0.0-alpha2 info: label: Trip Planner API — Planner description: 'Trip Planner API — Planner. 8 operations. Lead operation: Planner. Self-contained Naftiko capability covering one Metro Transit business surface.' tags: - Metro Transit - Planner created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: METRO_TRANSIT_API_KEY: METRO_TRANSIT_API_KEY capability: consumes: - type: http namespace: tripplanner-planner baseUri: '' description: Trip Planner API — Planner business capability. Self-contained, no shared references. resources: - name: tripplanner-findaddress-magicKey-geolocator path: /tripplanner/findaddress/{magicKey}/{geolocator} operations: - name: get method: GET description: '' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: magicKey in: path type: string required: true - name: geolocator in: path type: integer required: true - name: tripplanner-moreinfo path: /tripplanner/moreinfo operations: - name: post method: POST description: '' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: moreInfo in: query type: string - name: tripplanner-nearestlandmark path: /tripplanner/nearestlandmark operations: - name: post method: POST description: '' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: tripplanner-nearestparkandrides path: /tripplanner/nearestparkandrides operations: - name: post method: POST description: '' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: tripplanner-plantrip path: /tripplanner/plantrip operations: - name: post method: POST description: '' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: tripplanner-routelandmarks path: /tripplanner/routelandmarks operations: - name: post method: POST description: '' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: tripplanner-servicenearby path: /tripplanner/servicenearby operations: - name: post method: POST description: '' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: tripplanner-suggest-text-location path: /tripplanner/suggest/{text}/{location} operations: - name: get method: GET description: '' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: text in: path type: string required: true - name: location in: path type: string required: true exposes: - type: rest namespace: tripplanner-planner-rest port: 8080 description: REST adapter for Trip Planner API — Planner. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/tripplanner/findaddress/{magickey}/{geolocator} name: tripplanner-findaddress-magickey-geolocator description: REST surface for tripplanner-findaddress-magicKey-geolocator. operations: - method: GET name: get description: get call: tripplanner-planner.get with: magicKey: rest.magicKey geolocator: rest.geolocator outputParameters: - type: object mapping: $. - path: /v1/tripplanner/moreinfo name: tripplanner-moreinfo description: REST surface for tripplanner-moreinfo. operations: - method: POST name: post description: post call: tripplanner-planner.post with: moreInfo: rest.moreInfo outputParameters: - type: object mapping: $. - path: /v1/tripplanner/nearestlandmark name: tripplanner-nearestlandmark description: REST surface for tripplanner-nearestlandmark. operations: - method: POST name: post description: post call: tripplanner-planner.post with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/tripplanner/nearestparkandrides name: tripplanner-nearestparkandrides description: REST surface for tripplanner-nearestparkandrides. operations: - method: POST name: post description: post call: tripplanner-planner.post with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/tripplanner/plantrip name: tripplanner-plantrip description: REST surface for tripplanner-plantrip. operations: - method: POST name: post description: post call: tripplanner-planner.post with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/tripplanner/routelandmarks name: tripplanner-routelandmarks description: REST surface for tripplanner-routelandmarks. operations: - method: POST name: post description: post call: tripplanner-planner.post with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/tripplanner/servicenearby name: tripplanner-servicenearby description: REST surface for tripplanner-servicenearby. operations: - method: POST name: post description: post call: tripplanner-planner.post with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/tripplanner/suggest/{text}/{location} name: tripplanner-suggest-text-location description: REST surface for tripplanner-suggest-text-location. operations: - method: GET name: get description: get call: tripplanner-planner.get with: text: rest.text location: rest.location outputParameters: - type: object mapping: $. - type: mcp namespace: tripplanner-planner-mcp port: 9090 transport: http description: MCP adapter for Trip Planner API — Planner. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: get description: get hints: readOnly: true destructive: false idempotent: true call: tripplanner-planner.get with: magicKey: tools.magicKey geolocator: tools.geolocator outputParameters: - type: object mapping: $. - name: post description: post hints: readOnly: false destructive: false idempotent: false call: tripplanner-planner.post with: moreInfo: tools.moreInfo outputParameters: - type: object mapping: $. - name: post-2 description: post hints: readOnly: false destructive: false idempotent: false call: tripplanner-planner.post with: body: tools.body outputParameters: - type: object mapping: $. - name: post-3 description: post hints: readOnly: false destructive: false idempotent: false call: tripplanner-planner.post with: body: tools.body outputParameters: - type: object mapping: $. - name: post-4 description: post hints: readOnly: false destructive: false idempotent: false call: tripplanner-planner.post with: body: tools.body outputParameters: - type: object mapping: $. - name: post-5 description: post hints: readOnly: false destructive: false idempotent: false call: tripplanner-planner.post with: body: tools.body outputParameters: - type: object mapping: $. - name: post-6 description: post hints: readOnly: false destructive: false idempotent: false call: tripplanner-planner.post with: body: tools.body outputParameters: - type: object mapping: $. - name: get-2 description: get hints: readOnly: true destructive: false idempotent: true call: tripplanner-planner.get with: text: tools.text location: tools.location outputParameters: - type: object mapping: $.