{
  "schema_version": "riido-public-api-contract.v1",
  "generated_at": "2026-07-13T00:00:00Z",
  "service": {
    "id": "riido-work-service",
    "name": "Riido Work Service",
    "owner": "work-domain",
    "summary": "Work의 인정부터 기준, 참여, 기여, 결과, 판단, 완료와 관계 사실을 소유하는 서비스"
  },
  "release": {
    "version": "v-0.1.0",
    "published_at": "2026-07-13T00:00:00Z",
    "status": "current",
    "title": "Initial executable Work API baseline",
    "summary": "GraphQL command/query와 cursor 기반 SSE의 최초 공개 승인 계약 스냅샷",
    "source_repository": "teamswyg/riido-work-service",
    "source_revision": "bb09bab8f1e69ee6b05cd214cc43d3c4387290bb",
    "promotion_status": "contract-approved-runtime-not-admitted",
    "previous_release": null
  },
  "runtime": {
    "id": "production",
    "label": "Production",
    "graphql_url": "https://work.riido.io/graphql",
    "events_url": "https://work.riido.io/api/v1/events",
    "availability": "runtime-not-admitted"
  },
  "localization": {
    "documentation_default": "ko-KR",
    "documentation_supported": [
      "ko-KR",
      "en-US"
    ],
    "api_message_locale": "en-US",
    "accept_language_negotiation": false
  },
  "auth": {
    "scheme": "Bearer",
    "query_permission": "work:read",
    "mutation_permission": "work:write",
    "sse_permission": "work:read",
    "public_paths": [
      "/healthz",
      "/readyz",
      "/.well-known/riido-service"
    ]
  },
  "errors": [
    {
      "http_status": 400,
      "code": "invalid_request",
      "message": "Invalid HTTP, GraphQL, or Last-Event-ID request",
      "surface": "rest-or-transport"
    },
    {
      "http_status": 401,
      "code": "unauthorized",
      "message": "unauthorized",
      "surface": "graphql-and-rest"
    },
    {
      "http_status": 403,
      "code": "forbidden",
      "message": "Forbidden",
      "surface": "sse-rest"
    },
    {
      "http_status": 200,
      "code": "graphql_error",
      "message": "Inspect GraphQL errors[].message; extensions.code is not guaranteed",
      "surface": "graphql"
    },
    {
      "http_status": 503,
      "code": "not_ready",
      "message": "not ready or production runtime not admitted",
      "surface": "readiness-or-production"
    }
  ],
  "graphql": {
    "endpoint_path": "/graphql",
    "schema_sha256": "e6388ff243f734a523a2699e64fd5075c3f4bc1026c48d118f9391af01b6f2a6",
    "operation_count": 33,
    "query_count": 5,
    "mutation_count": 28,
    "operations": [
      {
        "kind": "query",
        "name": "work",
        "arguments": [
          {
            "name": "id",
            "type": "ID!"
          }
        ],
        "return_type": "Work",
        "domain": "work",
        "bounded_context": "lifecycle",
        "aggregate": "work",
        "permission": "work:read",
        "request_body_type": {
          "envelope": "GraphQLRequest",
          "inputs": [
            "ID"
          ],
          "definitions": [
            "ID"
          ]
        },
        "response_type": {
          "envelope": "GraphQLResponse<Data>",
          "name": "Work",
          "definition": "type Work {\n  id: ID!\n  version: Int!\n  state: String!\n  intentRef: ID!\n  criteriaRef: ID!\n  criteriaVersion: Int!\n  criteriaEvidenceHash: String!\n  authorityNamespace: String!\n  authorityRef: ID!\n  recognitionGrantRef: ID!\n  projectionCursor: Int!\n  contributionCount: Int!\n  outcomeCount: Int!\n  decisionCount: Int!\n  completionCount: Int!\n  closureInvalidationCount: Int!\n  cancellationCount: Int!\n  expirationCount: Int!\n  supersessionCount: Int!\n  criteriaRevisionCount: Int!\n  participationCount: Int!\n  unendedParticipationCount: Int!\n  participationWithdrawalCount: Int!\n  participationRevocationCount: Int!\n  successorCount: Int!\n  outgoingRelationCount: Int!\n  incomingRelationCount: Int!\n  subjectLinkCount: Int!\n  activeSubjectLinkCount: Int!\n  responsibilityAssignmentCount: Int!\n  activeResponsibilityAssignmentCount: Int!\n  workSurfaceClaimCount: Int!\n  activeWorkSurfaceClaimCount: Int!\n  recognizedAt: String!\n}"
        },
        "request_example": "query work($id: ID!) {\n  work(id: $id) {\n    __typename\n  }\n}",
        "variables_example": {
          "id": "replace-with-id"
        },
        "change": "insert"
      },
      {
        "kind": "query",
        "name": "workRelation",
        "arguments": [
          {
            "name": "id",
            "type": "ID!"
          }
        ],
        "return_type": "WorkRelation",
        "domain": "work",
        "bounded_context": "relations",
        "aggregate": "work-relation",
        "permission": "work:read",
        "request_body_type": {
          "envelope": "GraphQLRequest",
          "inputs": [
            "ID"
          ],
          "definitions": [
            "ID"
          ]
        },
        "response_type": {
          "envelope": "GraphQLResponse<Data>",
          "name": "WorkRelation",
          "definition": "type WorkRelation {\n  id: ID!\n  version: Int!\n  graphPartitionKey: ID!\n  graphVersion: Int!\n  state: String!\n  fromWorkId: ID!\n  toWorkId: ID!\n  kind: String!\n  provenanceRef: ID!\n  policyRef: ID!\n  policyVersion: Int!\n  authorityEvidenceRef: ID!\n  establishedAt: String!\n  active: Boolean!\n  projectionCursor: Int!\n}"
        },
        "request_example": "query workRelation($id: ID!) {\n  workRelation(id: $id) {\n    __typename\n  }\n}",
        "variables_example": {
          "id": "replace-with-id"
        },
        "change": "insert"
      },
      {
        "kind": "query",
        "name": "subjectLink",
        "arguments": [
          {
            "name": "id",
            "type": "ID!"
          }
        ],
        "return_type": "WorkSubjectLink",
        "domain": "work",
        "bounded_context": "subject-link",
        "aggregate": "work-subject-link",
        "permission": "work:read",
        "request_body_type": {
          "envelope": "GraphQLRequest",
          "inputs": [
            "ID"
          ],
          "definitions": [
            "ID"
          ]
        },
        "response_type": {
          "envelope": "GraphQLResponse<Data>",
          "name": "WorkSubjectLink",
          "definition": "type WorkSubjectLink {\n  id: ID!\n  version: Int!\n  state: String!\n  definition: SubjectLinkDefinition!\n  projectionCursor: Int!\n}"
        },
        "request_example": "query subjectLink($id: ID!) {\n  subjectLink(id: $id) {\n    __typename\n  }\n}",
        "variables_example": {
          "id": "replace-with-id"
        },
        "change": "insert"
      },
      {
        "kind": "query",
        "name": "responsibilityAssignment",
        "arguments": [
          {
            "name": "id",
            "type": "ID!"
          }
        ],
        "return_type": "ResponsibilityAssignment",
        "domain": "work",
        "bounded_context": "responsibility",
        "aggregate": "responsibility-assignment",
        "permission": "work:read",
        "request_body_type": {
          "envelope": "GraphQLRequest",
          "inputs": [
            "ID"
          ],
          "definitions": [
            "ID"
          ]
        },
        "response_type": {
          "envelope": "GraphQLResponse<Data>",
          "name": "ResponsibilityAssignment",
          "definition": "type ResponsibilityAssignment {\n  id: ID!\n  version: Int!\n  state: String!\n  workId: ID!\n  responsibilityScope: String!\n  currentCommitmentId: ID!\n  projectionCursor: Int!\n}"
        },
        "request_example": "query responsibilityAssignment($id: ID!) {\n  responsibilityAssignment(id: $id) {\n    __typename\n  }\n}",
        "variables_example": {
          "id": "replace-with-id"
        },
        "change": "insert"
      },
      {
        "kind": "query",
        "name": "workSurfaceClaim",
        "arguments": [
          {
            "name": "id",
            "type": "ID!"
          }
        ],
        "return_type": "WorkSurfaceClaim",
        "domain": "work",
        "bounded_context": "surface-claim",
        "aggregate": "work-surface-claim",
        "permission": "work:read",
        "request_body_type": {
          "envelope": "GraphQLRequest",
          "inputs": [
            "ID"
          ],
          "definitions": [
            "ID"
          ]
        },
        "response_type": {
          "envelope": "GraphQLResponse<Data>",
          "name": "WorkSurfaceClaim",
          "definition": "type WorkSurfaceClaim {\n  id: ID!\n  version: Int!\n  state: String!\n  workId: ID!\n  currentCommitmentId: ID!\n  surface: SurfaceReference!\n  collisionScope: CollisionScopeReference!\n  leaseRef: ID!\n  leaseExpiresAt: String!\n  waitingCount: Int!\n  projectionCursor: Int!\n}"
        },
        "request_example": "query workSurfaceClaim($id: ID!) {\n  workSurfaceClaim(id: $id) {\n    __typename\n  }\n}",
        "variables_example": {
          "id": "replace-with-id"
        },
        "change": "insert"
      },
      {
        "kind": "mutation",
        "name": "recognizeWork",
        "arguments": [
          {
            "name": "input",
            "type": "RecognizeWorkCommandInput!"
          }
        ],
        "return_type": "RecognizeWorkPayload!",
        "domain": "work",
        "bounded_context": "lifecycle",
        "aggregate": "work",
        "permission": "work:write",
        "request_body_type": {
          "envelope": "GraphQLRequest",
          "inputs": [
            "RecognizeWorkCommandInput"
          ],
          "definitions": [
            "input RecognizeWorkCommandInput {\n  commandId: ID!\n  recognitionGrantRef: ID!\n}"
          ]
        },
        "response_type": {
          "envelope": "GraphQLResponse<Data>",
          "name": "RecognizeWorkPayload",
          "definition": "type RecognizeWorkPayload {\n  work: RecognizedWork!\n  replayed: Boolean!\n  consistency: ConsistencyReceipt!\n}"
        },
        "request_example": "mutation recognizeWork($input: RecognizeWorkCommandInput!) {\n  recognizeWork(input: $input) {\n    __typename\n  }\n}",
        "variables_example": {
          "input": null
        },
        "change": "insert"
      },
      {
        "kind": "mutation",
        "name": "reviseWorkCriteria",
        "arguments": [
          {
            "name": "input",
            "type": "ReviseWorkCriteriaCommandInput!"
          }
        ],
        "return_type": "ReviseWorkCriteriaPayload!",
        "domain": "work",
        "bounded_context": "criteria",
        "aggregate": "work-criteria",
        "permission": "work:write",
        "request_body_type": {
          "envelope": "GraphQLRequest",
          "inputs": [
            "ReviseWorkCriteriaCommandInput"
          ],
          "definitions": [
            "input ReviseWorkCriteriaCommandInput {\n  commandId: ID!\n  criteriaRevisionGrantRef: ID!\n}"
          ]
        },
        "response_type": {
          "envelope": "GraphQLResponse<Data>",
          "name": "ReviseWorkCriteriaPayload",
          "definition": "type ReviseWorkCriteriaPayload {\n  revised: WorkCriteriaRevised!\n  replayed: Boolean!\n  consistency: ConsistencyReceipt!\n}"
        },
        "request_example": "mutation reviseWorkCriteria($input: ReviseWorkCriteriaCommandInput!) {\n  reviseWorkCriteria(input: $input) {\n    __typename\n  }\n}",
        "variables_example": {
          "input": null
        },
        "change": "insert"
      },
      {
        "kind": "mutation",
        "name": "commitParticipation",
        "arguments": [
          {
            "name": "input",
            "type": "CommitParticipationCommandInput!"
          }
        ],
        "return_type": "CommitParticipationPayload!",
        "domain": "work",
        "bounded_context": "participation",
        "aggregate": "participation-commitment",
        "permission": "work:write",
        "request_body_type": {
          "envelope": "GraphQLRequest",
          "inputs": [
            "CommitParticipationCommandInput"
          ],
          "definitions": [
            "input CommitParticipationCommandInput {\n  commandId: ID!\n  participationAcceptanceGrantRef: ID!\n}"
          ]
        },
        "response_type": {
          "envelope": "GraphQLResponse<Data>",
          "name": "CommitParticipationPayload",
          "definition": "type CommitParticipationPayload {\n  committed: ParticipationCommitted!\n  replayed: Boolean!\n  consistency: ConsistencyReceipt!\n}"
        },
        "request_example": "mutation commitParticipation($input: CommitParticipationCommandInput!) {\n  commitParticipation(input: $input) {\n    __typename\n  }\n}",
        "variables_example": {
          "input": null
        },
        "change": "insert"
      },
      {
        "kind": "mutation",
        "name": "withdrawParticipation",
        "arguments": [
          {
            "name": "input",
            "type": "WithdrawParticipationCommandInput!"
          }
        ],
        "return_type": "WithdrawParticipationPayload!",
        "domain": "work",
        "bounded_context": "participation",
        "aggregate": "participation-commitment",
        "permission": "work:write",
        "request_body_type": {
          "envelope": "GraphQLRequest",
          "inputs": [
            "WithdrawParticipationCommandInput"
          ],
          "definitions": [
            "input WithdrawParticipationCommandInput {\n  commandId: ID!\n  participationWithdrawalGrantRef: ID!\n}"
          ]
        },
        "response_type": {
          "envelope": "GraphQLResponse<Data>",
          "name": "WithdrawParticipationPayload",
          "definition": "type WithdrawParticipationPayload {\n  withdrawn: ParticipationWithdrawn!\n  replayed: Boolean!\n  consistency: ConsistencyReceipt!\n}"
        },
        "request_example": "mutation withdrawParticipation($input: WithdrawParticipationCommandInput!) {\n  withdrawParticipation(input: $input) {\n    __typename\n  }\n}",
        "variables_example": {
          "input": null
        },
        "change": "insert"
      },
      {
        "kind": "mutation",
        "name": "revokeParticipation",
        "arguments": [
          {
            "name": "input",
            "type": "RevokeParticipationCommandInput!"
          }
        ],
        "return_type": "RevokeParticipationPayload!",
        "domain": "work",
        "bounded_context": "participation",
        "aggregate": "participation-commitment",
        "permission": "work:write",
        "request_body_type": {
          "envelope": "GraphQLRequest",
          "inputs": [
            "RevokeParticipationCommandInput"
          ],
          "definitions": [
            "input RevokeParticipationCommandInput {\n  commandId: ID!\n  participationRevocationGrantRef: ID!\n}"
          ]
        },
        "response_type": {
          "envelope": "GraphQLResponse<Data>",
          "name": "RevokeParticipationPayload",
          "definition": "type RevokeParticipationPayload {\n  revoked: ParticipationRevoked!\n  replayed: Boolean!\n  consistency: ConsistencyReceipt!\n}"
        },
        "request_example": "mutation revokeParticipation($input: RevokeParticipationCommandInput!) {\n  revokeParticipation(input: $input) {\n    __typename\n  }\n}",
        "variables_example": {
          "input": null
        },
        "change": "insert"
      },
      {
        "kind": "mutation",
        "name": "submitContribution",
        "arguments": [
          {
            "name": "input",
            "type": "SubmitContributionCommandInput!"
          }
        ],
        "return_type": "SubmitContributionPayload!",
        "domain": "work",
        "bounded_context": "outcome",
        "aggregate": "contribution-outcome-decision",
        "permission": "work:write",
        "request_body_type": {
          "envelope": "GraphQLRequest",
          "inputs": [
            "SubmitContributionCommandInput"
          ],
          "definitions": [
            "input SubmitContributionCommandInput {\n  commandId: ID!\n  contributionGrantRef: ID!\n}"
          ]
        },
        "response_type": {
          "envelope": "GraphQLResponse<Data>",
          "name": "SubmitContributionPayload",
          "definition": "type SubmitContributionPayload {\n  contribution: Contribution!\n  replayed: Boolean!\n  consistency: ConsistencyReceipt!\n}"
        },
        "request_example": "mutation submitContribution($input: SubmitContributionCommandInput!) {\n  submitContribution(input: $input) {\n    __typename\n  }\n}",
        "variables_example": {
          "input": null
        },
        "change": "insert"
      },
      {
        "kind": "mutation",
        "name": "submitOutcomeRevision",
        "arguments": [
          {
            "name": "input",
            "type": "SubmitOutcomeRevisionCommandInput!"
          }
        ],
        "return_type": "SubmitOutcomeRevisionPayload!",
        "domain": "work",
        "bounded_context": "outcome",
        "aggregate": "contribution-outcome-decision",
        "permission": "work:write",
        "request_body_type": {
          "envelope": "GraphQLRequest",
          "inputs": [
            "SubmitOutcomeRevisionCommandInput"
          ],
          "definitions": [
            "input SubmitOutcomeRevisionCommandInput {\n  commandId: ID!\n  outcomeRevisionGrantRef: ID!\n}"
          ]
        },
        "response_type": {
          "envelope": "GraphQLResponse<Data>",
          "name": "SubmitOutcomeRevisionPayload",
          "definition": "type SubmitOutcomeRevisionPayload {\n  outcome: OutcomeRevision!\n  replayed: Boolean!\n  consistency: ConsistencyReceipt!\n}"
        },
        "request_example": "mutation submitOutcomeRevision($input: SubmitOutcomeRevisionCommandInput!) {\n  submitOutcomeRevision(input: $input) {\n    __typename\n  }\n}",
        "variables_example": {
          "input": null
        },
        "change": "insert"
      },
      {
        "kind": "mutation",
        "name": "recordDecision",
        "arguments": [
          {
            "name": "input",
            "type": "RecordDecisionCommandInput!"
          }
        ],
        "return_type": "RecordDecisionPayload!",
        "domain": "work",
        "bounded_context": "outcome",
        "aggregate": "contribution-outcome-decision",
        "permission": "work:write",
        "request_body_type": {
          "envelope": "GraphQLRequest",
          "inputs": [
            "RecordDecisionCommandInput"
          ],
          "definitions": [
            "input RecordDecisionCommandInput {\n  commandId: ID!\n  outcomeDecisionGrantRef: ID!\n}"
          ]
        },
        "response_type": {
          "envelope": "GraphQLResponse<Data>",
          "name": "RecordDecisionPayload",
          "definition": "type RecordDecisionPayload {\n  decision: DecisionRecord!\n  replayed: Boolean!\n  consistency: ConsistencyReceipt!\n}"
        },
        "request_example": "mutation recordDecision($input: RecordDecisionCommandInput!) {\n  recordDecision(input: $input) {\n    __typename\n  }\n}",
        "variables_example": {
          "input": null
        },
        "change": "insert"
      },
      {
        "kind": "mutation",
        "name": "completeWork",
        "arguments": [
          {
            "name": "input",
            "type": "CompleteWorkCommandInput!"
          }
        ],
        "return_type": "CompleteWorkPayload!",
        "domain": "work",
        "bounded_context": "lifecycle",
        "aggregate": "work",
        "permission": "work:write",
        "request_body_type": {
          "envelope": "GraphQLRequest",
          "inputs": [
            "CompleteWorkCommandInput"
          ],
          "definitions": [
            "input CompleteWorkCommandInput {\n  commandId: ID!\n  completionAuthorityRef: ID!\n}"
          ]
        },
        "response_type": {
          "envelope": "GraphQLResponse<Data>",
          "name": "CompleteWorkPayload",
          "definition": "type CompleteWorkPayload {\n  completed: WorkCompleted!\n  replayed: Boolean!\n  consistency: ConsistencyReceipt!\n}"
        },
        "request_example": "mutation completeWork($input: CompleteWorkCommandInput!) {\n  completeWork(input: $input) {\n    __typename\n  }\n}",
        "variables_example": {
          "input": null
        },
        "change": "insert"
      },
      {
        "kind": "mutation",
        "name": "invalidateWorkClosure",
        "arguments": [
          {
            "name": "input",
            "type": "InvalidateWorkClosureCommandInput!"
          }
        ],
        "return_type": "InvalidateWorkClosurePayload!",
        "domain": "work",
        "bounded_context": "lifecycle",
        "aggregate": "work",
        "permission": "work:write",
        "request_body_type": {
          "envelope": "GraphQLRequest",
          "inputs": [
            "InvalidateWorkClosureCommandInput"
          ],
          "definitions": [
            "input InvalidateWorkClosureCommandInput {\n  commandId: ID!\n  closureInvalidationGrantRef: ID!\n}"
          ]
        },
        "response_type": {
          "envelope": "GraphQLResponse<Data>",
          "name": "InvalidateWorkClosurePayload",
          "definition": "type InvalidateWorkClosurePayload {\n  invalidated: WorkClosureInvalidated!\n  replayed: Boolean!\n  consistency: ConsistencyReceipt!\n}"
        },
        "request_example": "mutation invalidateWorkClosure($input: InvalidateWorkClosureCommandInput!) {\n  invalidateWorkClosure(input: $input) {\n    __typename\n  }\n}",
        "variables_example": {
          "input": null
        },
        "change": "insert"
      },
      {
        "kind": "mutation",
        "name": "cancelWork",
        "arguments": [
          {
            "name": "input",
            "type": "CancelWorkCommandInput!"
          }
        ],
        "return_type": "CancelWorkPayload!",
        "domain": "work",
        "bounded_context": "lifecycle",
        "aggregate": "work",
        "permission": "work:write",
        "request_body_type": {
          "envelope": "GraphQLRequest",
          "inputs": [
            "CancelWorkCommandInput"
          ],
          "definitions": [
            "input CancelWorkCommandInput {\n  commandId: ID!\n  workCancellationGrantRef: ID!\n}"
          ]
        },
        "response_type": {
          "envelope": "GraphQLResponse<Data>",
          "name": "CancelWorkPayload",
          "definition": "type CancelWorkPayload {\n  cancelled: WorkCancelled!\n  replayed: Boolean!\n  consistency: ConsistencyReceipt!\n}"
        },
        "request_example": "mutation cancelWork($input: CancelWorkCommandInput!) {\n  cancelWork(input: $input) {\n    __typename\n  }\n}",
        "variables_example": {
          "input": null
        },
        "change": "insert"
      },
      {
        "kind": "mutation",
        "name": "expireWork",
        "arguments": [
          {
            "name": "input",
            "type": "ExpireWorkCommandInput!"
          }
        ],
        "return_type": "ExpireWorkPayload!",
        "domain": "work",
        "bounded_context": "lifecycle",
        "aggregate": "work",
        "permission": "work:write",
        "request_body_type": {
          "envelope": "GraphQLRequest",
          "inputs": [
            "ExpireWorkCommandInput"
          ],
          "definitions": [
            "input ExpireWorkCommandInput {\n  commandId: ID!\n  workExpirationGrantRef: ID!\n}"
          ]
        },
        "response_type": {
          "envelope": "GraphQLResponse<Data>",
          "name": "ExpireWorkPayload",
          "definition": "type ExpireWorkPayload {\n  expired: WorkExpired!\n  replayed: Boolean!\n  consistency: ConsistencyReceipt!\n}"
        },
        "request_example": "mutation expireWork($input: ExpireWorkCommandInput!) {\n  expireWork(input: $input) {\n    __typename\n  }\n}",
        "variables_example": {
          "input": null
        },
        "change": "insert"
      },
      {
        "kind": "mutation",
        "name": "supersedeWork",
        "arguments": [
          {
            "name": "input",
            "type": "SupersedeWorkCommandInput!"
          }
        ],
        "return_type": "SupersedeWorkPayload!",
        "domain": "work",
        "bounded_context": "lifecycle",
        "aggregate": "work",
        "permission": "work:write",
        "request_body_type": {
          "envelope": "GraphQLRequest",
          "inputs": [
            "SupersedeWorkCommandInput"
          ],
          "definitions": [
            "input SupersedeWorkCommandInput {\n  commandId: ID!\n  workReplacementGrantRef: ID!\n}"
          ]
        },
        "response_type": {
          "envelope": "GraphQLResponse<Data>",
          "name": "SupersedeWorkPayload",
          "definition": "type SupersedeWorkPayload {\n  superseded: WorkSuperseded!\n  replayed: Boolean!\n  consistency: ConsistencyReceipt!\n}"
        },
        "request_example": "mutation supersedeWork($input: SupersedeWorkCommandInput!) {\n  supersedeWork(input: $input) {\n    __typename\n  }\n}",
        "variables_example": {
          "input": null
        },
        "change": "insert"
      },
      {
        "kind": "mutation",
        "name": "establishSuccessorRelation",
        "arguments": [
          {
            "name": "input",
            "type": "EstablishSuccessorRelationCommandInput!"
          }
        ],
        "return_type": "EstablishSuccessorRelationPayload!",
        "domain": "work",
        "bounded_context": "relations",
        "aggregate": "work-relation",
        "permission": "work:write",
        "request_body_type": {
          "envelope": "GraphQLRequest",
          "inputs": [
            "EstablishSuccessorRelationCommandInput"
          ],
          "definitions": [
            "input EstablishSuccessorRelationCommandInput {\n  commandId: ID!\n  successorRelationGrantRef: ID!\n}"
          ]
        },
        "response_type": {
          "envelope": "GraphQLResponse<Data>",
          "name": "EstablishSuccessorRelationPayload",
          "definition": "type EstablishSuccessorRelationPayload {\n  established: SuccessorRelationEstablished!\n  replayed: Boolean!\n  consistency: ConsistencyReceipt!\n}"
        },
        "request_example": "mutation establishSuccessorRelation($input: EstablishSuccessorRelationCommandInput!) {\n  establishSuccessorRelation(input: $input) {\n    __typename\n  }\n}",
        "variables_example": {
          "input": null
        },
        "change": "insert"
      },
      {
        "kind": "mutation",
        "name": "establishWorkRelation",
        "arguments": [
          {
            "name": "input",
            "type": "EstablishWorkRelationCommandInput!"
          }
        ],
        "return_type": "EstablishWorkRelationPayload!",
        "domain": "work",
        "bounded_context": "relations",
        "aggregate": "work-relation",
        "permission": "work:write",
        "request_body_type": {
          "envelope": "GraphQLRequest",
          "inputs": [
            "EstablishWorkRelationCommandInput"
          ],
          "definitions": [
            "input EstablishWorkRelationCommandInput {\n  commandId: ID!\n  workRelationGrantRef: ID!\n}"
          ]
        },
        "response_type": {
          "envelope": "GraphQLResponse<Data>",
          "name": "EstablishWorkRelationPayload",
          "definition": "type EstablishWorkRelationPayload {\n  established: WorkRelationEstablished!\n  replayed: Boolean!\n  consistency: ConsistencyReceipt!\n}"
        },
        "request_example": "mutation establishWorkRelation($input: EstablishWorkRelationCommandInput!) {\n  establishWorkRelation(input: $input) {\n    __typename\n  }\n}",
        "variables_example": {
          "input": null
        },
        "change": "insert"
      },
      {
        "kind": "mutation",
        "name": "establishSubjectLink",
        "arguments": [
          {
            "name": "input",
            "type": "EstablishSubjectLinkCommandInput!"
          }
        ],
        "return_type": "EstablishSubjectLinkPayload!",
        "domain": "work",
        "bounded_context": "subject-link",
        "aggregate": "work-subject-link",
        "permission": "work:write",
        "request_body_type": {
          "envelope": "GraphQLRequest",
          "inputs": [
            "EstablishSubjectLinkCommandInput"
          ],
          "definitions": [
            "input EstablishSubjectLinkCommandInput { commandId: ID!, subjectLinkEstablishmentGrantRef: ID! }"
          ]
        },
        "response_type": {
          "envelope": "GraphQLResponse<Data>",
          "name": "EstablishSubjectLinkPayload",
          "definition": "type EstablishSubjectLinkPayload { linked: WorkSubjectLinked!, replayed: Boolean!, consistency: ConsistencyReceipt! }"
        },
        "request_example": "mutation establishSubjectLink($input: EstablishSubjectLinkCommandInput!) {\n  establishSubjectLink(input: $input) {\n    __typename\n  }\n}",
        "variables_example": {
          "input": null
        },
        "change": "insert"
      },
      {
        "kind": "mutation",
        "name": "supersedeSubjectLink",
        "arguments": [
          {
            "name": "input",
            "type": "SupersedeSubjectLinkCommandInput!"
          }
        ],
        "return_type": "SupersedeSubjectLinkPayload!",
        "domain": "work",
        "bounded_context": "subject-link",
        "aggregate": "work-subject-link",
        "permission": "work:write",
        "request_body_type": {
          "envelope": "GraphQLRequest",
          "inputs": [
            "SupersedeSubjectLinkCommandInput"
          ],
          "definitions": [
            "input SupersedeSubjectLinkCommandInput { commandId: ID!, subjectLinkSupersessionGrantRef: ID! }"
          ]
        },
        "response_type": {
          "envelope": "GraphQLResponse<Data>",
          "name": "SupersedeSubjectLinkPayload",
          "definition": "type SupersedeSubjectLinkPayload { superseded: WorkSubjectLinkSuperseded!, replayed: Boolean!, consistency: ConsistencyReceipt! }"
        },
        "request_example": "mutation supersedeSubjectLink($input: SupersedeSubjectLinkCommandInput!) {\n  supersedeSubjectLink(input: $input) {\n    __typename\n  }\n}",
        "variables_example": {
          "input": null
        },
        "change": "insert"
      },
      {
        "kind": "mutation",
        "name": "expireSubjectLink",
        "arguments": [
          {
            "name": "input",
            "type": "ExpireSubjectLinkCommandInput!"
          }
        ],
        "return_type": "ExpireSubjectLinkPayload!",
        "domain": "work",
        "bounded_context": "subject-link",
        "aggregate": "work-subject-link",
        "permission": "work:write",
        "request_body_type": {
          "envelope": "GraphQLRequest",
          "inputs": [
            "ExpireSubjectLinkCommandInput"
          ],
          "definitions": [
            "input ExpireSubjectLinkCommandInput { commandId: ID!, subjectLinkExpirationGrantRef: ID! }"
          ]
        },
        "response_type": {
          "envelope": "GraphQLResponse<Data>",
          "name": "ExpireSubjectLinkPayload",
          "definition": "type ExpireSubjectLinkPayload { expired: WorkSubjectLinkExpired!, replayed: Boolean!, consistency: ConsistencyReceipt! }"
        },
        "request_example": "mutation expireSubjectLink($input: ExpireSubjectLinkCommandInput!) {\n  expireSubjectLink(input: $input) {\n    __typename\n  }\n}",
        "variables_example": {
          "input": null
        },
        "change": "insert"
      },
      {
        "kind": "mutation",
        "name": "assignResponsibility",
        "arguments": [
          {
            "name": "input",
            "type": "AssignResponsibilityCommandInput!"
          }
        ],
        "return_type": "AssignResponsibilityPayload!",
        "domain": "work",
        "bounded_context": "responsibility",
        "aggregate": "responsibility-assignment",
        "permission": "work:write",
        "request_body_type": {
          "envelope": "GraphQLRequest",
          "inputs": [
            "AssignResponsibilityCommandInput"
          ],
          "definitions": [
            "input AssignResponsibilityCommandInput { commandId: ID!, responsibilityAssignmentGrantRef: ID! }"
          ]
        },
        "response_type": {
          "envelope": "GraphQLResponse<Data>",
          "name": "AssignResponsibilityPayload",
          "definition": "type AssignResponsibilityPayload { assigned: ExclusiveResponsibilityAssigned!, replayed: Boolean!, consistency: ConsistencyReceipt! }"
        },
        "request_example": "mutation assignResponsibility($input: AssignResponsibilityCommandInput!) {\n  assignResponsibility(input: $input) {\n    __typename\n  }\n}",
        "variables_example": {
          "input": null
        },
        "change": "insert"
      },
      {
        "kind": "mutation",
        "name": "reassignResponsibility",
        "arguments": [
          {
            "name": "input",
            "type": "ReassignResponsibilityCommandInput!"
          }
        ],
        "return_type": "ReassignResponsibilityPayload!",
        "domain": "work",
        "bounded_context": "responsibility",
        "aggregate": "responsibility-assignment",
        "permission": "work:write",
        "request_body_type": {
          "envelope": "GraphQLRequest",
          "inputs": [
            "ReassignResponsibilityCommandInput"
          ],
          "definitions": [
            "input ReassignResponsibilityCommandInput { commandId: ID!, responsibilityReassignmentGrantRef: ID! }"
          ]
        },
        "response_type": {
          "envelope": "GraphQLResponse<Data>",
          "name": "ReassignResponsibilityPayload",
          "definition": "type ReassignResponsibilityPayload { reassigned: ExclusiveResponsibilityReassigned!, replayed: Boolean!, consistency: ConsistencyReceipt! }"
        },
        "request_example": "mutation reassignResponsibility($input: ReassignResponsibilityCommandInput!) {\n  reassignResponsibility(input: $input) {\n    __typename\n  }\n}",
        "variables_example": {
          "input": null
        },
        "change": "insert"
      },
      {
        "kind": "mutation",
        "name": "releaseResponsibility",
        "arguments": [
          {
            "name": "input",
            "type": "ReleaseResponsibilityCommandInput!"
          }
        ],
        "return_type": "ReleaseResponsibilityPayload!",
        "domain": "work",
        "bounded_context": "responsibility",
        "aggregate": "responsibility-assignment",
        "permission": "work:write",
        "request_body_type": {
          "envelope": "GraphQLRequest",
          "inputs": [
            "ReleaseResponsibilityCommandInput"
          ],
          "definitions": [
            "input ReleaseResponsibilityCommandInput { commandId: ID!, responsibilityReleaseGrantRef: ID! }"
          ]
        },
        "response_type": {
          "envelope": "GraphQLResponse<Data>",
          "name": "ReleaseResponsibilityPayload",
          "definition": "type ReleaseResponsibilityPayload { released: ExclusiveResponsibilityReleased!, replayed: Boolean!, consistency: ConsistencyReceipt! }"
        },
        "request_example": "mutation releaseResponsibility($input: ReleaseResponsibilityCommandInput!) {\n  releaseResponsibility(input: $input) {\n    __typename\n  }\n}",
        "variables_example": {
          "input": null
        },
        "change": "insert"
      },
      {
        "kind": "mutation",
        "name": "establishWorkSurfaceClaim",
        "arguments": [
          {
            "name": "input",
            "type": "EstablishWorkSurfaceClaimCommandInput!"
          }
        ],
        "return_type": "EstablishWorkSurfaceClaimPayload!",
        "domain": "work",
        "bounded_context": "surface-claim",
        "aggregate": "work-surface-claim",
        "permission": "work:write",
        "request_body_type": {
          "envelope": "GraphQLRequest",
          "inputs": [
            "EstablishWorkSurfaceClaimCommandInput"
          ],
          "definitions": [
            "input EstablishWorkSurfaceClaimCommandInput { commandId: ID!, surfaceClaimRequestGrantRef: ID! }"
          ]
        },
        "response_type": {
          "envelope": "GraphQLResponse<Data>",
          "name": "EstablishWorkSurfaceClaimPayload",
          "definition": "type EstablishWorkSurfaceClaimPayload { granted: WorkSurfaceClaimGranted!, replayed: Boolean!, consistency: ConsistencyReceipt! }"
        },
        "request_example": "mutation establishWorkSurfaceClaim($input: EstablishWorkSurfaceClaimCommandInput!) {\n  establishWorkSurfaceClaim(input: $input) {\n    __typename\n  }\n}",
        "variables_example": {
          "input": null
        },
        "change": "insert"
      },
      {
        "kind": "mutation",
        "name": "renewWorkSurfaceClaim",
        "arguments": [
          {
            "name": "input",
            "type": "RenewWorkSurfaceClaimCommandInput!"
          }
        ],
        "return_type": "RenewWorkSurfaceClaimPayload!",
        "domain": "work",
        "bounded_context": "surface-claim",
        "aggregate": "work-surface-claim",
        "permission": "work:write",
        "request_body_type": {
          "envelope": "GraphQLRequest",
          "inputs": [
            "RenewWorkSurfaceClaimCommandInput"
          ],
          "definitions": [
            "input RenewWorkSurfaceClaimCommandInput { commandId: ID!, surfaceClaimRequestGrantRef: ID! }"
          ]
        },
        "response_type": {
          "envelope": "GraphQLResponse<Data>",
          "name": "RenewWorkSurfaceClaimPayload",
          "definition": "type RenewWorkSurfaceClaimPayload { renewed: WorkSurfaceClaimRenewed!, replayed: Boolean!, consistency: ConsistencyReceipt! }"
        },
        "request_example": "mutation renewWorkSurfaceClaim($input: RenewWorkSurfaceClaimCommandInput!) {\n  renewWorkSurfaceClaim(input: $input) {\n    __typename\n  }\n}",
        "variables_example": {
          "input": null
        },
        "change": "insert"
      },
      {
        "kind": "mutation",
        "name": "requestWorkSurfaceClaim",
        "arguments": [
          {
            "name": "input",
            "type": "RequestWorkSurfaceClaimCommandInput!"
          }
        ],
        "return_type": "RequestWorkSurfaceClaimPayload!",
        "domain": "work",
        "bounded_context": "surface-claim",
        "aggregate": "work-surface-claim",
        "permission": "work:write",
        "request_body_type": {
          "envelope": "GraphQLRequest",
          "inputs": [
            "RequestWorkSurfaceClaimCommandInput"
          ],
          "definitions": [
            "input RequestWorkSurfaceClaimCommandInput { commandId: ID!, surfaceClaimRequestGrantRef: ID! }"
          ]
        },
        "response_type": {
          "envelope": "GraphQLResponse<Data>",
          "name": "RequestWorkSurfaceClaimPayload",
          "definition": "type RequestWorkSurfaceClaimPayload { queued: WorkSurfaceClaimQueued!, replayed: Boolean!, consistency: ConsistencyReceipt! }"
        },
        "request_example": "mutation requestWorkSurfaceClaim($input: RequestWorkSurfaceClaimCommandInput!) {\n  requestWorkSurfaceClaim(input: $input) {\n    __typename\n  }\n}",
        "variables_example": {
          "input": null
        },
        "change": "insert"
      },
      {
        "kind": "mutation",
        "name": "transferWorkSurfaceClaim",
        "arguments": [
          {
            "name": "input",
            "type": "TransferWorkSurfaceClaimCommandInput!"
          }
        ],
        "return_type": "TransferWorkSurfaceClaimPayload!",
        "domain": "work",
        "bounded_context": "surface-claim",
        "aggregate": "work-surface-claim",
        "permission": "work:write",
        "request_body_type": {
          "envelope": "GraphQLRequest",
          "inputs": [
            "TransferWorkSurfaceClaimCommandInput"
          ],
          "definitions": [
            "input TransferWorkSurfaceClaimCommandInput { commandId: ID!, surfaceClaimTransferGrantRef: ID! }"
          ]
        },
        "response_type": {
          "envelope": "GraphQLResponse<Data>",
          "name": "TransferWorkSurfaceClaimPayload",
          "definition": "type TransferWorkSurfaceClaimPayload { transferred: WorkSurfaceClaimTransferred!, replayed: Boolean!, consistency: ConsistencyReceipt! }"
        },
        "request_example": "mutation transferWorkSurfaceClaim($input: TransferWorkSurfaceClaimCommandInput!) {\n  transferWorkSurfaceClaim(input: $input) {\n    __typename\n  }\n}",
        "variables_example": {
          "input": null
        },
        "change": "insert"
      },
      {
        "kind": "mutation",
        "name": "withdrawWorkSurfaceClaimRequest",
        "arguments": [
          {
            "name": "input",
            "type": "WithdrawWorkSurfaceClaimRequestCommandInput!"
          }
        ],
        "return_type": "WithdrawWorkSurfaceClaimRequestPayload!",
        "domain": "work",
        "bounded_context": "surface-claim",
        "aggregate": "work-surface-claim",
        "permission": "work:write",
        "request_body_type": {
          "envelope": "GraphQLRequest",
          "inputs": [
            "WithdrawWorkSurfaceClaimRequestCommandInput"
          ],
          "definitions": [
            "input WithdrawWorkSurfaceClaimRequestCommandInput { commandId: ID!, surfaceClaimRequestWithdrawalGrantRef: ID! }"
          ]
        },
        "response_type": {
          "envelope": "GraphQLResponse<Data>",
          "name": "WithdrawWorkSurfaceClaimRequestPayload",
          "definition": "type WithdrawWorkSurfaceClaimRequestPayload { withdrawn: WorkSurfaceClaimRequestWithdrawn!, replayed: Boolean!, consistency: ConsistencyReceipt! }"
        },
        "request_example": "mutation withdrawWorkSurfaceClaimRequest($input: WithdrawWorkSurfaceClaimRequestCommandInput!) {\n  withdrawWorkSurfaceClaimRequest(input: $input) {\n    __typename\n  }\n}",
        "variables_example": {
          "input": null
        },
        "change": "insert"
      },
      {
        "kind": "mutation",
        "name": "releaseWorkSurfaceClaim",
        "arguments": [
          {
            "name": "input",
            "type": "ReleaseWorkSurfaceClaimCommandInput!"
          }
        ],
        "return_type": "ReleaseWorkSurfaceClaimPayload!",
        "domain": "work",
        "bounded_context": "surface-claim",
        "aggregate": "work-surface-claim",
        "permission": "work:write",
        "request_body_type": {
          "envelope": "GraphQLRequest",
          "inputs": [
            "ReleaseWorkSurfaceClaimCommandInput"
          ],
          "definitions": [
            "input ReleaseWorkSurfaceClaimCommandInput { commandId: ID!, surfaceClaimReleaseGrantRef: ID! }"
          ]
        },
        "response_type": {
          "envelope": "GraphQLResponse<Data>",
          "name": "ReleaseWorkSurfaceClaimPayload",
          "definition": "type ReleaseWorkSurfaceClaimPayload { released: WorkSurfaceClaimReleased!, replayed: Boolean!, consistency: ConsistencyReceipt! }"
        },
        "request_example": "mutation releaseWorkSurfaceClaim($input: ReleaseWorkSurfaceClaimCommandInput!) {\n  releaseWorkSurfaceClaim(input: $input) {\n    __typename\n  }\n}",
        "variables_example": {
          "input": null
        },
        "change": "insert"
      },
      {
        "kind": "mutation",
        "name": "expireWorkSurfaceClaim",
        "arguments": [
          {
            "name": "input",
            "type": "ExpireWorkSurfaceClaimCommandInput!"
          }
        ],
        "return_type": "ExpireWorkSurfaceClaimPayload!",
        "domain": "work",
        "bounded_context": "surface-claim",
        "aggregate": "work-surface-claim",
        "permission": "work:write",
        "request_body_type": {
          "envelope": "GraphQLRequest",
          "inputs": [
            "ExpireWorkSurfaceClaimCommandInput"
          ],
          "definitions": [
            "input ExpireWorkSurfaceClaimCommandInput { commandId: ID!, surfaceClaimExpiryGrantRef: ID! }"
          ]
        },
        "response_type": {
          "envelope": "GraphQLResponse<Data>",
          "name": "ExpireWorkSurfaceClaimPayload",
          "definition": "type ExpireWorkSurfaceClaimPayload { expired: WorkSurfaceClaimExpired!, replayed: Boolean!, consistency: ConsistencyReceipt! }"
        },
        "request_example": "mutation expireWorkSurfaceClaim($input: ExpireWorkSurfaceClaimCommandInput!) {\n  expireWorkSurfaceClaim(input: $input) {\n    __typename\n  }\n}",
        "variables_example": {
          "input": null
        },
        "change": "insert"
      }
    ]
  },
  "rest": [
    {
      "method": "GET",
      "path": "/healthz",
      "response_type": "empty 204",
      "auth": "public",
      "change": "insert"
    },
    {
      "method": "GET",
      "path": "/readyz",
      "response_type": "empty 204 or text 503",
      "auth": "public",
      "change": "insert"
    },
    {
      "method": "GET",
      "path": "/.well-known/riido-service",
      "response_type": "riido-service-discovery.v1 JSON",
      "auth": "public",
      "change": "insert"
    },
    {
      "method": "POST",
      "path": "/graphql",
      "response_type": "GraphQLResponse<Data>",
      "auth": "Bearer + work:read|work:write",
      "change": "insert"
    },
    {
      "method": "GET",
      "path": "/api/v1/events",
      "response_type": "text/event-stream",
      "auth": "Bearer + work:read",
      "change": "insert"
    }
  ],
  "publication": {
    "visibility": "public-read-only",
    "execution": "disabled",
    "source_system": "riido-interaction-approved-projection",
    "source_repository": "teamswyg/riido-work-service"
  }
}
