jService · Capability

jService Trivia API — Moderation

Moderation — user-driven reporting of bad clues. 1 operation. Lead operation: Mark Clue Invalid. Self-contained Naftiko capability covering one jService business surface (community moderation of trivia content).

Run with Naftiko JserviceTriviaModeration

What You Can Do

POST
Markclueinvalid — Mark a clue as invalid.
/v1/invalid-clues

MCP Tools

mark-clue-invalid

Flag a Jeopardy! clue as invalid by incrementing its invalid_count.

Capability Spec

jservice-moderation.yaml Raw ↑
naftiko: "1.0.0-alpha2"

info:
  label: "jService Trivia API — Moderation"
  description: >-
    Moderation — user-driven reporting of bad clues. 1 operation. Lead operation:
    Mark Clue Invalid. Self-contained Naftiko capability covering one jService
    business surface (community moderation of trivia content).
  tags:
    - Jservice
    - Trivia
    - Moderation
  created: "2026-05-30"
  modified: "2026-05-30"

binds:
  - namespace: env
    keys:
      JSERVICE_BASE_URL: JSERVICE_BASE_URL

capability:

  consumes:
    - type: http
      namespace: "jservice-moderation"
      baseUri: "{{env.JSERVICE_BASE_URL}}"
      description: "jService Trivia API — Moderation business capability. Self-contained, no shared references."
      resources:
        - name: "invalid"
          path: "/api/invalid"
          operations:
            - name: "markClueInvalid"
              method: POST
              description: "Increment a clue's invalid_count to flag bad questions/answers."
              inputParameters:
                - name: "id"
                  in: query
                  type: integer
                  required: true
                  description: "Clue ID to flag as invalid."
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."

  exposes:
    - type: rest
      namespace: "jservice-moderation-rest"
      port: 8080
      description: "REST adapter for jService — Moderation. One Spectral-compliant resource per consumed operation, prefixed with /v1."
      resources:
        - path: "/v1/invalid-clues"
          name: "invalid-clues"
          description: "REST surface for flagging invalid clues."
          operations:
            - method: POST
              name: "markClueInvalid"
              description: "Mark a clue as invalid."
              call: "jservice-moderation.markClueInvalid"
              with:
                "id": "rest.id"
              outputParameters:
                - type: object
                  mapping: "$."

    - type: mcp
      namespace: "jservice-moderation-mcp"
      port: 9090
      transport: http
      description: "MCP adapter for jService — Moderation. One tool per consumed operation, routed inline through this capability's consumes block."
      tools:
        - name: "mark-clue-invalid"
          description: "Flag a Jeopardy! clue as invalid by incrementing its invalid_count."
          hints:
            readOnly: false
            destructive: false
            idempotent: false
          call: "jservice-moderation.markClueInvalid"
          with:
            "id": "tools.id"
          outputParameters:
            - type: object
              mapping: "$."