{"openapi":"3.1.0","jsonSchemaDialect":"https://json-schema.org/draft/2020-12/schema","info":{"title":"Knowledgeworker Practice REST API","version":"0.7.0","description":"API for acquisition, trial provisioning, billing transparency, consented website onboarding, authenticated authoring, learning delivery and external integrations."},"servers":[{"url":"/","description":"Current Knowledgeworker Practice installation"}],"tags":[{"name":"Platform"},{"name":"Platform Operations"},{"name":"Experiences"},{"name":"Response Library"},{"name":"Learning Runtime"},{"name":"Media Assets"},{"name":"AI Providers"},{"name":"AI Budgets"},{"name":"Context Connectors"},{"name":"Context"},{"name":"Jobs"},{"name":"Learning Groups"},{"name":"Learning Audiences"},{"name":"Learning Programs"},{"name":"Learning Assignments"},{"name":"Learning Enrollments"},{"name":"Skills"},{"name":"Qualification Profiles"},{"name":"Qualifications"},{"name":"Learning Results"},{"name":"Certificates"},{"name":"Mentor Reviews"},{"name":"Learning Analytics"},{"name":"External Delivery"},{"name":"Commercial Plans"},{"name":"Trial Onboarding"},{"name":"Billing & AI Costs"},{"name":"Website Onboarding"},{"name":"Commands"},{"name":"License Management Integration"}],"paths":{"/api/v1/health":{"get":{"operationId":"getHealth","summary":"Minimal public liveness or readiness decision","tags":["Platform"],"security":[],"parameters":[{"name":"probe","in":"query","required":false,"schema":{"type":"string","enum":["liveness","readiness"],"default":"readiness"}}],"responses":{"200":{"description":"The public probe is not failed.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicHealth"}}}},"503":{"description":"The service is live but not ready for traffic.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicHealth"}}}}}}},"/api/v1/license-management/events":{"post":{"operationId":"receiveLicenseManagementEvent","summary":"Receive a signed commercial-state invalidation event","description":"Accepts a strictly versioned chemmedia licence event. Exact replays are idempotent; stale revisions are audited without advancing the tenant cache generation.","tags":["License Management Integration"],"security":[{"licenseEventHmac":[]}],"parameters":[{"name":"x-chemmedia-event-id","in":"header","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LicenseManagementEvent"}}}},"responses":{"200":{"description":"Exact duplicate or stale event recorded without another invalidation.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LicenseManagementEventReceipt"}}}},"202":{"description":"Event accepted and cache generation advanced.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LicenseManagementEventReceipt"}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-idempotency-source":"signed_event_id"}},"/api/v1/operations/health":{"get":{"operationId":"getOperationalHealth","summary":"Detailed platform dependency, queue and reconciliation health","tags":["Platform Operations"],"security":[{"operationsBearerAuth":[]}],"responses":{"200":{"description":"Detailed operational health is available to the platform operator.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Health"}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"The service is not ready, or the isolated operations credential is not configured.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Health"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-operator-boundary":"platform-only"}},"/api/v1/session":{"get":{"operationId":"getCurrentSession","summary":"Return the authenticated identity context","tags":["Platform"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Authenticated tenant, workspaces, roles, scopes and purposes.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"$ref":"#/components/schemas/IdentityContext"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/api/v1/capabilities":{"get":{"operationId":"listCapabilities","summary":"List the UI, REST and MCP capability manifest","tags":["Platform"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Capability manifest and parity metadata.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/CapabilityDefinition"}},"meta":{"type":"object","additionalProperties":false,"required":["version","parityRule","count"],"properties":{"version":{"type":"integer","const":1},"parityRule":{"type":"string"},"count":{"type":"integer","minimum":0}}}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/api/v1/experiences":{"get":{"operationId":"listExperiences","summary":"List visible practice experiences","tags":["Experiences"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"workspaceId","in":"query","required":false,"description":"Defaults to the identity's first authorized workspace.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Visible experiences in the selected workspace.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","page"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PracticeExperience"}},"page":{"type":"object","additionalProperties":false,"required":["hasMore"],"properties":{"hasMore":{"type":"boolean","const":false}}}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}},"post":{"operationId":"createExperience","summary":"Create a practice experience draft","tags":["Experiences"],"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateExperienceInput"}}}},"responses":{"201":{"description":"Experience created.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}},"ETag":{"$ref":"#/components/headers/ETag"},"Location":{"description":"Canonical URL of the created experience.","schema":{"type":"string","format":"uri-reference"}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"$ref":"#/components/schemas/PracticeExperience"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/api/v1/experiences/{experienceId}":{"parameters":[{"$ref":"#/components/parameters/ExperienceId"}],"get":{"operationId":"getExperience","summary":"Read a practice experience","tags":["Experiences"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Experience found.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}},"ETag":{"$ref":"#/components/headers/ETag"}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"$ref":"#/components/schemas/PracticeExperience"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}},"patch":{"operationId":"updateExperience","summary":"Update a practice experience draft","description":"Concurrency protection requires either an If-Match header or expectedRevision in the request body.","tags":["Experiences"],"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"},{"$ref":"#/components/parameters/IfMatch"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateExperienceInput"}}}},"responses":{"200":{"description":"Experience updated.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}},"ETag":{"$ref":"#/components/headers/ETag"}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"$ref":"#/components/schemas/PracticeExperience"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/api/v1/experiences/{experienceId}/authoring-spec":{"parameters":[{"$ref":"#/components/parameters/ExperienceId"}],"get":{"operationId":"getExperienceAuthoringSpec","summary":"Read the versioned authoring specification","tags":["Experiences"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Current authoring graph, rubric, guidance and translations.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}},"ETag":{"$ref":"#/components/headers/ETag"}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"$ref":"#/components/schemas/AuthoringSpecEnvelope"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"experience.authoring_read","x-required-scopes":["experience:read"],"x-policy-checks":["workspace_membership","authoring_content_visibility","field_read_policy"],"x-mcp-tool":"practice.experiences.authoring.read","x-mcp-resource-template":"practice://experiences/{experienceId}/authoring-spec"},"patch":{"operationId":"updateExperienceAuthoringSpec","summary":"Replace and version the authoring specification","tags":["Experiences"],"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"},{"$ref":"#/components/parameters/IfMatch"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAuthoringSpecInput"}}}},"responses":{"200":{"description":"A new append-only draft version was stored.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}},"ETag":{"$ref":"#/components/headers/ETag"}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"$ref":"#/components/schemas/AuthoringSpecEnvelope"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"experience.authoring_update","x-required-scopes":["experience:write"],"x-policy-checks":["workspace_membership","draft_write_policy","field_write_policy","authoring_contract_validation","reaction_library_reference_resolution"],"x-mcp-tool":"practice.experiences.authoring.update"},"put":{"operationId":"replaceExperienceAuthoringSpec","summary":"Replace the specification with its raw contract document","tags":["Experiences"],"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"},{"$ref":"#/components/parameters/IfMatch"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperienceAuthoringSpec"}}}},"responses":{"200":{"description":"A new append-only draft version was stored.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}},"ETag":{"$ref":"#/components/headers/ETag"}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"$ref":"#/components/schemas/AuthoringSpecEnvelope"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"experience.authoring_update","x-required-scopes":["experience:write"],"x-policy-checks":["workspace_membership","draft_write_policy","field_write_policy","authoring_contract_validation","reaction_library_reference_resolution"],"x-mcp-tool":"practice.experiences.authoring.update"}},"/api/v1/experiences/{experienceId}:validate":{"parameters":[{"$ref":"#/components/parameters/ExperienceId"}],"post":{"operationId":"validateExperienceAuthoringSpec","summary":"Validate a draft for authoring, review or publishing","tags":["Experiences"],"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"},{"$ref":"#/components/parameters/IfMatch"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidateAuthoringSpecInput"}}}},"responses":{"200":{"description":"Immutable validation result for the exact content hash.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}},"ETag":{"$ref":"#/components/headers/ETag"}},"content":{"application/json":{"schema":{"type":"object","required":["data","experience"],"properties":{"data":{"$ref":"#/components/schemas/DraftValidationResult"},"experience":{"$ref":"#/components/schemas/PracticeExperience"},"review":{"$ref":"#/components/schemas/ExperienceReview"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/api/v1/experiences/{experienceId}:submit-review":{"parameters":[{"$ref":"#/components/parameters/ExperienceId"}],"post":{"operationId":"submitExperienceReview","summary":"Validate and submit the exact draft revision for review","tags":["Experiences"],"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"},{"$ref":"#/components/parameters/IfMatch"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"expectedRevision":{"type":"integer","minimum":1},"submissionNote":{"type":"string","minLength":1,"maxLength":4000}}}}}},"responses":{"201":{"description":"Review-ready validation result and in-review experience.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}},"ETag":{"$ref":"#/components/headers/ETag"}},"content":{"application/json":{"schema":{"type":"object","required":["data","experience","review"],"properties":{"data":{"$ref":"#/components/schemas/DraftValidationResult"},"experience":{"$ref":"#/components/schemas/PracticeExperience"},"review":{"$ref":"#/components/schemas/ExperienceReview"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/api/v1/experiences/{experienceId}/translations":{"parameters":[{"$ref":"#/components/parameters/ExperienceId"}],"get":{"operationId":"listExperienceTranslations","summary":"List object translations without duplicating the scenario","tags":["Experiences"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"locale","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Object translations.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"type":"object"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/api/v1/experiences/{experienceId}/translations/{locale}":{"parameters":[{"$ref":"#/components/parameters/ExperienceId"},{"name":"locale","in":"path","required":true,"schema":{"type":"string"}}],"put":{"operationId":"updateExperienceTranslations","summary":"Upsert translations for one locale","tags":["Experiences"],"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"},{"$ref":"#/components/parameters/IfMatch"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTranslationsInput"}}}},"responses":{"200":{"description":"Translations stored as a new draft version.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}},"ETag":{"$ref":"#/components/headers/ETag"}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"$ref":"#/components/schemas/AuthoringSpecEnvelope"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/api/v1/experiences/{experienceId}:publish":{"parameters":[{"$ref":"#/components/parameters/ExperienceId"}],"post":{"operationId":"publishExperienceRelease","summary":"Publish an immutable release from a validated review draft","tags":["Experiences"],"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"},{"$ref":"#/components/parameters/IfMatch"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublishExperienceInput"}}}},"responses":{"201":{"description":"Immutable release created.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}},"ETag":{"$ref":"#/components/headers/ETag"}},"content":{"application/json":{"schema":{"type":"object","required":["data","experience"],"properties":{"data":{"$ref":"#/components/schemas/ExperienceRelease"},"experience":{"$ref":"#/components/schemas/PracticeExperience"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/api/v1/experiences/{experienceId}/releases":{"parameters":[{"$ref":"#/components/parameters/ExperienceId"}],"get":{"operationId":"listExperienceReleases","summary":"List immutable releases","tags":["Experiences"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Immutable releases.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data","page"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ExperienceRelease"}},"page":{"type":"object","properties":{"hasMore":{"type":"boolean","const":false}}}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"experience.release_list","x-required-scopes":["experience:read"],"x-policy-checks":["workspace_membership","release_snapshot_visibility","field_read_policy"],"x-mcp-tool":"practice.experiences.releases.list","x-mcp-resource-template":"practice://experiences/{experienceId}/releases"}},"/api/v1/experiences/{experienceId}/releases/{releaseId}":{"parameters":[{"$ref":"#/components/parameters/ExperienceId"},{"name":"releaseId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"get":{"operationId":"getExperienceRelease","summary":"Read an immutable release snapshot","tags":["Experiences"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Immutable release.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"$ref":"#/components/schemas/ExperienceRelease"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"experience.release_read","x-required-scopes":["experience:read"],"x-policy-checks":["workspace_membership","release_snapshot_visibility","field_read_policy"],"x-mcp-tool":"practice.experiences.releases.read","x-mcp-resource-template":"practice://experiences/{experienceId}/releases/{releaseId}"}},"/api/v1/learner/releases":{"get":{"operationId":"listLearnerReleases","summary":"List the newest released version of every visible experience","tags":["Learning Runtime"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"locale","in":"query","description":"Preferred learner locale. Incomplete or unreleased translations fall back to the immutable source locale.","schema":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"}}],"responses":{"200":{"description":"Release catalog with the authoritative privacy notice.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data","page"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/LearnerReleaseCatalogEntry"}},"page":{"type":"object","required":["hasMore"],"properties":{"hasMore":{"const":false}}}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/api/v1/attempts":{"get":{"operationId":"listAttempts","summary":"List visible attempts without raw turn content","tags":["Learning Runtime"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"releaseId","in":"query","schema":{"type":"string","format":"uuid"}},{"name":"status","in":"query","schema":{"type":"string","enum":["in_progress","paused","submitted","evaluating","completed","abandoned","expired"]}}],"responses":{"200":{"description":"Ownership- or review-filtered attempt summaries.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data","page"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ExperienceAttempt"}},"page":{"type":"object","required":["hasMore"],"properties":{"hasMore":{"const":false}}}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}},"post":{"operationId":"startAttempt","summary":"Start an attempt on an immutable release","tags":["Learning Runtime"],"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartAttemptInput"}}}},"responses":{"201":{"description":"Attempt and first active session created.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}},"ETag":{"$ref":"#/components/headers/ETag"}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"$ref":"#/components/schemas/RuntimeView"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/api/v1/attempts/{attemptId}":{"get":{"operationId":"getAttempt","summary":"Read a visible attempt runtime view","tags":["Learning Runtime"],"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/AttemptId"}],"responses":{"200":{"description":"Runtime state, evidence, evaluation and allowed feedback; no raw transcript for reviewers.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}},"ETag":{"$ref":"#/components/headers/ETag"}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"$ref":"#/components/schemas/RuntimeView"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/api/v1/attempts/{attemptId}:resume":{"post":{"operationId":"resumeAttempt","summary":"Resume from a same-release checkpoint in a new session","tags":["Learning Runtime"],"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/AttemptId"},{"$ref":"#/components/parameters/IdempotencyKey"},{"$ref":"#/components/parameters/IfMatch"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResumeAttemptInput"}}}},"responses":{"201":{"description":"Attempt resumed.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"$ref":"#/components/schemas/RuntimeView"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/api/v1/attempts/{attemptId}/turns":{"post":{"operationId":"submitAttemptTurn","summary":"Append a conversation turn","tags":["Learning Runtime"],"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/AttemptId"},{"$ref":"#/components/parameters/IdempotencyKey"},{"$ref":"#/components/parameters/IfMatch"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmitTurnInput"}}}},"responses":{"201":{"description":"Turn, observation, evidence and formative feedback appended atomically.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"$ref":"#/components/schemas/RuntimeView"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/api/v1/attempts/{attemptId}/actions":{"post":{"operationId":"submitAttemptAction","summary":"Append a technical action through the safety gate","tags":["Learning Runtime"],"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/AttemptId"},{"$ref":"#/components/parameters/IdempotencyKey"},{"$ref":"#/components/parameters/IfMatch"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmitActionInput"}}}},"responses":{"201":{"description":"Action, observation, evidence and formative feedback appended atomically.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"$ref":"#/components/schemas/RuntimeView"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/api/v1/attempts/{attemptId}/checkpoints":{"post":{"operationId":"saveAttemptCheckpoint","summary":"Save a server-authoritative checkpoint and pause","tags":["Learning Runtime"],"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/AttemptId"},{"$ref":"#/components/parameters/IdempotencyKey"},{"$ref":"#/components/parameters/IfMatch"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveCheckpointInput"}}}},"responses":{"201":{"description":"Immutable checkpoint saved and session ended.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"$ref":"#/components/schemas/RuntimeView"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/api/v1/attempts/{attemptId}:complete":{"post":{"operationId":"completeAttempt","summary":"Complete and deterministically evaluate a terminal attempt","tags":["Learning Runtime"],"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/AttemptId"},{"$ref":"#/components/parameters/IdempotencyKey"},{"$ref":"#/components/parameters/IfMatch"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteAttemptInput"}}}},"responses":{"202":{"description":"Final rule evaluation and feedback persisted.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"$ref":"#/components/schemas/RuntimeView"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/api/v1/attempts/{attemptId}:abandon":{"post":{"operationId":"abandonAttempt","summary":"Abandon an open attempt","tags":["Learning Runtime"],"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/AttemptId"},{"$ref":"#/components/parameters/IdempotencyKey"},{"$ref":"#/components/parameters/IfMatch"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AbandonAttemptInput"}}}},"responses":{"200":{"description":"Attempt abandoned.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"$ref":"#/components/schemas/RuntimeView"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/api/v1/attempts/{attemptId}:withdraw-consent":{"post":{"operationId":"withdrawAttemptConsent","summary":"Append a consent withdrawal and stop processing","tags":["Learning Runtime"],"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/AttemptId"},{"$ref":"#/components/parameters/IdempotencyKey"},{"$ref":"#/components/parameters/IfMatch"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WithdrawConsentInput"}}}},"responses":{"200":{"description":"Withdrawal receipt appended and attempt stopped.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"$ref":"#/components/schemas/RuntimeView"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/api/v1/attempts/{attemptId}/sessions/{sessionId}":{"get":{"operationId":"getAttemptSession","summary":"Read a visible attempt session","tags":["Learning Runtime"],"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/AttemptId"},{"$ref":"#/components/parameters/SessionId"}],"responses":{"200":{"description":"Session metadata without turn content.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"$ref":"#/components/schemas/AttemptSession"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/api/v1/commands:preview":{"post":{"operationId":"previewCommand","summary":"Authorize and preview a command without mutation","tags":["Commands"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommandEnvelope"}}}},"responses":{"200":{"description":"Command impact and approval requirements.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"$ref":"#/components/schemas/CommandPreview"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/api/v1/commands":{"post":{"operationId":"executeCommand","summary":"Execute a schema-validated headless command","description":"Executes implemented authoring and attempt commands through the same application services and policies as direct REST and MCP tools.","tags":["Commands"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommandEnvelope"}}}},"responses":{"202":{"description":"Command accepted and represented by a receipt.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"$ref":"#/components/schemas/CommandReceipt"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"501":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/api/v1/experiences/{experienceId}/reviews/{reviewId}:approve":{"post":{"operationId":"approveExperienceReview","summary":"Approve the reviewed authoring revision","description":"Gibt exakt die geprüfte Entwurfsrevision zur Veröffentlichung frei.","tags":["Experiences"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"experienceId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"reviewId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"},{"$ref":"#/components/parameters/IfMatch"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApproveExperienceReviewInput"}}}},"responses":{"200":{"description":"Approve the reviewed authoring revision succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}},"ETag":{"$ref":"#/components/headers/ETag"}},"content":{"application/json":{"schema":{"type":"object","required":["data","experience"],"properties":{"data":{"$ref":"#/components/schemas/ExperienceReview"},"experience":{"$ref":"#/components/schemas/PracticeExperience"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"412":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"experience.review_approve","x-required-scopes":["experience:review"],"x-policy-checks":["workspace_membership","reviewer_separation_of_duties","draft_revision_match"],"x-mcp-tool":"practice.experiences.review.approve"}},"/api/v1/experiences/{experienceId}/reviews/{reviewId}:reject":{"post":{"operationId":"rejectExperienceReview","summary":"Reject the reviewed authoring revision","description":"Weist die geprüfte Entwurfsrevision mit konkreten Änderungsanforderungen zurück.","tags":["Experiences"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"experienceId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"reviewId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"},{"$ref":"#/components/parameters/IfMatch"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RejectExperienceReviewInput"}}}},"responses":{"200":{"description":"Reject the reviewed authoring revision succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}},"ETag":{"$ref":"#/components/headers/ETag"}},"content":{"application/json":{"schema":{"type":"object","required":["data","experience"],"properties":{"data":{"$ref":"#/components/schemas/ExperienceReview"},"experience":{"$ref":"#/components/schemas/PracticeExperience"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"412":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"experience.review_reject","x-required-scopes":["experience:review"],"x-policy-checks":["workspace_membership","reviewer_separation_of_duties","draft_revision_match"],"x-mcp-tool":"practice.experiences.review.reject"}},"/api/v1/assets":{"get":{"operationId":"listMediaAssets","summary":"Medien auflisten","description":"Listet sichtbare Medienobjekte mit Rechte-, Einwilligungs- und Prüfstatus.","tags":["Media Assets"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"workspaceId","in":"query","required":false,"description":"Optional workspace filter; otherwise the first authorized workspace is used.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Medien auflisten succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability asset.list."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"asset.list","x-required-scopes":["asset:read"],"x-policy-checks":["workspace_membership"],"x-mcp-tool":"practice.assets.list","x-mcp-resource-template":"practice://assets"},"post":{"operationId":"createMediaAsset","summary":"Medium anlegen","description":"Legt ein lokalisiertes Medienobjekt an.","tags":["Media Assets"],"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["workspaceId","key","kind","title","defaultLocale"],"properties":{"workspaceId":{"type":"string","format":"uuid"},"key":{"type":"string","pattern":"^[a-z][a-z0-9._-]{1,127}$"},"kind":{"type":"string","enum":["image","video","audio","model_3d","document","subtitle","avatar_scene","scene_360"]},"title":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"values":{"type":"object","minProperties":1,"additionalProperties":{"type":"string"}}}},"description":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"values":{"type":"object","minProperties":1,"additionalProperties":{"type":"string"}}}},"defaultLocale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"tags":{"type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":2048}}}}}}},"responses":{"201":{"description":"Medium anlegen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability asset.create."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"asset.create","x-required-scopes":["asset:write"],"x-policy-checks":["workspace_membership"],"x-mcp-tool":"practice.assets.create"}},"/api/v1/assets/{assetId}":{"get":{"operationId":"getMediaAsset","summary":"Medium lesen","description":"Liest ein Medienobjekt und seine versionierte Provenienz ohne signierte Upload-URL.","tags":["Media Assets"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"assetId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Medium lesen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability asset.read."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"asset.read","x-required-scopes":["asset:read"],"x-policy-checks":["workspace_membership","media_field_policy"],"x-mcp-tool":"practice.assets.read","x-mcp-resource-template":"practice://assets/{assetId}"}},"/api/v1/assets/{assetId}/versions/{assetVersionId}":{"get":{"operationId":"getMediaAssetVersion","summary":"Medienversion lesen","description":"Liest die unveränderliche Version einschließlich Herkunftsnachweis, Rechten, Einwilligung und Prüfstatus.","tags":["Media Assets"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"assetId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"assetVersionId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Medienversion lesen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability asset.version_read."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"asset.version_read","x-required-scopes":["asset:read"],"x-policy-checks":["workspace_membership"],"x-mcp-tool":"practice.assets.versions.read","x-mcp-resource-template":"practice://assets/{assetId}/versions/{assetVersionId}"}},"/api/v1/assets/{assetId}/uploads":{"post":{"operationId":"prepareMediaUpload","summary":"Upload vorbereiten","description":"Erzeugt eine kurzlebige Upload-Sitzung mit Bindung an Dateigröße, Medientyp und Prüfsumme.","tags":["Media Assets"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"assetId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["assetId","locale","mimeType","byteSize"],"properties":{"assetId":{"type":"string","format":"uuid"},"locale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"mimeType":{"type":"string","minLength":3,"maxLength":255},"byteSize":{"type":"integer","minimum":1},"sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"rights":{"type":"object","propertyNames":{"pattern":"^(?!.*(?:api[_-]?key|access[_-]?token|refresh[_-]?token|password|secret(?:value)?|credential)).+$"}},"consent":{"type":"object","propertyNames":{"pattern":"^(?!.*(?:api[_-]?key|access[_-]?token|refresh[_-]?token|password|secret(?:value)?|credential)).+$"}},"provenance":{"type":"object","propertyNames":{"pattern":"^(?!.*(?:api[_-]?key|access[_-]?token|refresh[_-]?token|password|secret(?:value)?|credential)).+$"}}}}}}},"responses":{"201":{"description":"Upload vorbereiten succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability asset.upload_prepare."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"asset.upload_prepare","x-required-scopes":["asset:write"],"x-policy-checks":["workspace_membership","mime_allowlist","upload_quota"],"x-mcp-tool":"practice.assets.uploads.prepare"}},"/api/v1/assets/{assetId}/versions":{"post":{"operationId":"registerMediaAssetVersion","summary":"Medienversion registrieren","description":"Prüft Binärinhalt, Herkunftsnachweis, Rechte und Einwilligung vor der unveränderlichen Registrierung.","tags":["Media Assets"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"assetId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["assetId","locale","mimeType","byteSize","sha256","rights","consent"],"properties":{"assetId":{"type":"string","format":"uuid"},"uploadSessionId":{"type":"string","format":"uuid"},"locale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"mimeType":{"type":"string","minLength":3,"maxLength":255},"byteSize":{"type":"integer","minimum":1},"sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"storageObjectKey":{"type":"string","minLength":1,"maxLength":1024},"sourceAssetVersionIds":{"type":"array","uniqueItems":true,"items":{"type":"string","format":"uuid"}},"providerJobId":{"type":"string","format":"uuid"},"contextSnapshotIds":{"type":"array","uniqueItems":true,"items":{"type":"string","format":"uuid"}},"rights":{"type":"object","additionalProperties":false,"required":["basis","allowedPurposes","territories","evidenceHash"],"properties":{"basis":{"type":"string","enum":["tenant_owned","licensed","public_domain","provider_terms","subject_consent"]},"allowedPurposes":{"type":"array","uniqueItems":true,"items":{"type":"string","enum":["platform_administration","experience_authoring","learning_delivery","learning_evaluation","human_review","tenant_analytics","billing","connector_synchronization","compliance_review"]}},"territories":{"type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":2048}},"validUntil":{"type":"string","format":"date-time"},"evidenceHash":{"type":"string","pattern":"^[0-9a-f]{64}$"}}},"consent":{"type":"object","additionalProperties":false,"required":["decision","purposes"],"properties":{"decision":{"type":"string","enum":["not_required","granted"]},"purposes":{"type":"array","uniqueItems":true,"items":{"type":"string","enum":["platform_administration","experience_authoring","learning_delivery","learning_evaluation","human_review","tenant_analytics","billing","connector_synchronization","compliance_review"]}},"noticeVersion":{"type":"string","minLength":1,"maxLength":100},"evidenceHash":{"type":"string","pattern":"^[0-9a-f]{64}$"}}}}}}}},"responses":{"202":{"description":"Medienversion registrieren succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability asset.version_register."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"asset.version_register","x-required-scopes":["asset:write"],"x-policy-checks":["workspace_membership","upload_verified","rights_valid","consent_valid","provenance_complete"],"x-mcp-tool":"practice.assets.versions.register"}},"/api/v1/experiences/{experienceId}/media-slots/{slotKey}":{"put":{"operationId":"bindMediaSlot","summary":"Medium zuweisen","description":"Bindet eine freigegebene Medienversion an einen versionierten Autorenslot.","tags":["Media Assets"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"experienceId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"slotKey","in":"path","required":true,"schema":{"type":"string","minLength":1}},{"$ref":"#/components/parameters/IdempotencyKey"},{"$ref":"#/components/parameters/IfMatch"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["workspaceId","experienceId","experienceVersionId","ownerType","ownerId","slotKey","purpose","assetId","assetVersionId","altText","expectedRevision"],"properties":{"workspaceId":{"type":"string","format":"uuid"},"experienceId":{"type":"string","format":"uuid"},"experienceVersionId":{"type":"string","format":"uuid"},"ownerType":{"type":"string","enum":["experience","entity","phase","node"]},"ownerId":{"type":"string","format":"uuid"},"slotKey":{"type":"string","minLength":1,"maxLength":128},"purpose":{"type":"string","enum":["hero","counterpart","environment","device","instruction","feedback","voice","subtitle"]},"locale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"selector":{"type":"object","additionalProperties":false,"required":[],"properties":{"locale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"state":{"type":"object","maxProperties":20,"propertyNames":{"pattern":"^(?!.*(?:[Aa][Pp][Ii][_-]?[Kk][Ee][Yy]|[Aa][Cc][Cc][Ee][Ss][Ss][_-]?[Tt][Oo][Kk][Ee][Nn]|[Rr][Ee][Ff][Rr][Ee][Ss][Hh][_-]?[Tt][Oo][Kk][Ee][Nn]|[Pp][Aa][Ss][Ss][Ww][Oo][Rr][Dd]|[Ss][Ee][Cc][Rr][Ee][Tt]|[Cc][Rr][Ee][Dd][Ee][Nn][Tt][Ii][Aa][Ll]))[A-Za-z][A-Za-z0-9_.-]{0,127}$"},"additionalProperties":{"type":["string","number","boolean","null"]}}}},"assetId":{"type":"string","format":"uuid"},"assetVersionId":{"type":"string","format":"uuid"},"altText":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"values":{"type":"object","minProperties":1,"additionalProperties":{"type":"string"}}}},"presentation":{"type":"object","propertyNames":{"pattern":"^(?!.*(?:api[_-]?key|access[_-]?token|refresh[_-]?token|password|secret(?:value)?|credential)).+$"}},"expectedRevision":{"type":"integer","minimum":0}}}}}},"responses":{"200":{"description":"Medium zuweisen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}},"ETag":{"$ref":"#/components/headers/ETag"}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability asset.slot_bind."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"asset.slot_bind","x-required-scopes":["asset:write"],"x-policy-checks":["workspace_membership","draft_mutable","asset_version_approved","rights_valid","consent_valid","locale_available"],"x-mcp-tool":"practice.assets.slots.bind"}},"/api/v1/assets/{assetId}/versions/{assetVersionId}:submit-review":{"post":{"operationId":"submitMediaReview","summary":"Medienprüfung anfordern","description":"Reicht eine unveränderliche Medienversion zur fachlichen Prüfung ein.","tags":["Media Assets"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"assetId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"assetVersionId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["assetId","assetVersionId","checklist"],"properties":{"assetId":{"type":"string","format":"uuid"},"assetVersionId":{"type":"string","format":"uuid"},"checklist":{"type":"object","minProperties":1,"additionalProperties":{"type":"boolean"}},"comment":{"type":"string","minLength":1,"maxLength":4000}}}}}},"responses":{"200":{"description":"Medienprüfung anfordern succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability asset.review_submit."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"asset.review_submit","x-required-scopes":["asset:review"],"x-policy-checks":["workspace_membership","rights_valid","consent_valid","provenance_complete"],"x-mcp-tool":"practice.assets.review.submit"}},"/api/v1/assets/{assetId}/versions/{assetVersionId}:decide-review":{"post":{"operationId":"decideMediaReview","summary":"Medienprüfung entscheiden","description":"Gibt die geprüfte Version frei oder weist sie begründet zurück.","tags":["Media Assets"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"assetId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"assetVersionId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["assetId","assetVersionId","decision","checklist"],"properties":{"assetId":{"type":"string","format":"uuid"},"assetVersionId":{"type":"string","format":"uuid"},"decision":{"type":"string","enum":["approved","rejected"]},"checklist":{"type":"object","minProperties":1,"additionalProperties":{"type":"boolean"}},"comment":{"type":"string","minLength":1,"maxLength":4000}}}}}},"responses":{"200":{"description":"Medienprüfung entscheiden succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability asset.review_decide."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"asset.review_decide","x-required-scopes":["asset:review"],"x-policy-checks":["workspace_membership","reviewer_separation_of_duties","version_immutable"],"x-mcp-tool":"practice.assets.review.decide"}},"/api/v1/provider-profiles":{"get":{"operationId":"listProviderProfiles","summary":"Anbieterkatalog lesen","description":"Listet Anbieterprofile ohne Zugangsdaten sowie deren Datenschutzmerkmale.","tags":["AI Providers"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Anbieterkatalog lesen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability provider.profile_list."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"provider.profile_list","x-required-scopes":["provider:read"],"x-policy-checks":[],"x-mcp-tool":"practice.providers.profiles.list","x-mcp-resource-template":"practice://provider-profiles"}},"/api/v1/provider-connections":{"get":{"operationId":"listProviderConnections","summary":"Anbieterverbindungen auflisten","description":"Listet Verbindungen ausschließlich mit Referenzen auf sicher gespeicherte Zugangsdaten.","tags":["AI Providers"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"workspaceId","in":"query","required":false,"description":"Optional workspace filter; otherwise the first authorized workspace is used.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Anbieterverbindungen auflisten succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability provider.connection_list."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"provider.connection_list","x-required-scopes":["provider:read"],"x-policy-checks":["workspace_membership"],"x-mcp-tool":"practice.providers.connections.list","x-mcp-resource-template":"practice://provider-connections"},"post":{"operationId":"createProviderConnection","summary":"Anbieter anbinden","description":"Legt eine EU-gebundene Verbindung über eine Referenz auf sicher gespeicherte Zugangsdaten an.","tags":["AI Providers"],"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["profileId","displayName","dataRegion","secretRef","zeroRetentionRequired","allowedDataClasses","allowedPurposes"],"properties":{"profileId":{"type":"string","format":"uuid"},"displayName":{"type":"string","minLength":1,"maxLength":255},"dataRegion":{"type":"string","minLength":2},"secretRef":{"type":"string","minLength":8,"maxLength":1024},"zeroRetentionRequired":{"type":"boolean"},"allowedDataClasses":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"string","enum":["public","internal","confidential","personal","special_category","secret"]}},"allowedPurposes":{"type":"array","uniqueItems":true,"items":{"type":"string","enum":["platform_administration","experience_authoring","learning_delivery","learning_evaluation","human_review","tenant_analytics","billing","connector_synchronization","compliance_review"]}},"configuration":{"type":"object","propertyNames":{"pattern":"^(?!.*(?:api[_-]?key|access[_-]?token|refresh[_-]?token|password|secret(?:value)?|credential)).+$"}}}}}}},"responses":{"201":{"description":"Anbieter anbinden succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability provider.connection_create."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"provider.connection_create","x-required-scopes":["provider:write"],"x-policy-checks":["workspace_membership","eu_region","secret_reference_only","data_processing_agreement"],"x-mcp-tool":"practice.providers.connections.create"}},"/api/v1/provider-connections/{connectionId}":{"get":{"operationId":"getProviderConnection","summary":"Anbieterverbindung lesen","description":"Liest Schutzrichtlinie und Teststatus, jedoch keine Zugangsdatenwerte.","tags":["AI Providers"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"connectionId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Anbieterverbindung lesen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability provider.connection_read."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"provider.connection_read","x-required-scopes":["provider:read"],"x-policy-checks":["workspace_membership","secret_reference_only"],"x-mcp-tool":"practice.providers.connections.read","x-mcp-resource-template":"practice://provider-connections/{connectionId}"},"patch":{"operationId":"updateProviderConnection","summary":"Anbieterverbindung ändern","description":"Ändert Datenschutzrichtlinie, Region und Zugangsdatenreferenz revisionssicher.","tags":["AI Providers"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"connectionId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"},{"$ref":"#/components/parameters/IfMatch"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["connectionId","expectedRevision","patch"],"properties":{"connectionId":{"type":"string","format":"uuid"},"expectedRevision":{"type":"integer","minimum":0},"patch":{"type":"object","propertyNames":{"pattern":"^(?!.*(?:api[_-]?key|access[_-]?token|refresh[_-]?token|password|secret(?:value)?|credential)).+$"},"minProperties":1}}}}}},"responses":{"200":{"description":"Anbieterverbindung ändern succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}},"ETag":{"$ref":"#/components/headers/ETag"}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability provider.connection_update."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"provider.connection_update","x-required-scopes":["provider:write"],"x-policy-checks":["workspace_membership","eu_region","secret_reference_only","field_write_policy"],"x-mcp-tool":"practice.providers.connections.update"}},"/api/v1/provider-capabilities":{"get":{"operationId":"listProviderCapabilities","summary":"Anbieterfähigkeiten lesen","description":"Listet Modelle, Formate, Regionen, Grenzen und Einkaufspreise.","tags":["AI Providers"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Anbieterfähigkeiten lesen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability provider.capability_list."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"provider.capability_list","x-required-scopes":["provider:read"],"x-policy-checks":[],"x-mcp-tool":"practice.providers.capabilities.list","x-mcp-resource-template":"practice://provider-capabilities"}},"/api/v1/provider-routing-plans":{"get":{"operationId":"listProviderRoutingPlans","summary":"Anbieterrouting auflisten","description":"Listet richtliniengebundene Primär- und Ausweichrouten.","tags":["AI Providers"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"workspaceId","in":"query","required":false,"description":"Optional workspace filter; otherwise the first authorized workspace is used.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Anbieterrouting auflisten succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability provider.routing_list."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"provider.routing_list","x-required-scopes":["provider:read"],"x-policy-checks":["workspace_membership"],"x-mcp-tool":"practice.providers.routing.list","x-mcp-resource-template":"practice://provider-routing-plans"}},"/api/v1/provider-connections/{connectionId}:test":{"post":{"operationId":"testProviderConnection","summary":"Anbieter testen","description":"Prüft Verbindung und Fähigkeiten ohne Fach- oder Personaldaten.","tags":["AI Providers"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"connectionId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["connectionId"],"properties":{"connectionId":{"type":"string","format":"uuid"}}}}}},"responses":{"202":{"description":"Anbieter testen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability provider.connection_test."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"provider.connection_test","x-required-scopes":["provider:test"],"x-policy-checks":["workspace_membership","synthetic_probe_only"],"x-mcp-tool":"practice.providers.connections.test"}},"/api/v1/provider-routing-plans/{routingPlanId}":{"put":{"operationId":"upsertProviderRoutingPlan","summary":"Anbieterrouting speichern","description":"Speichert Primär- und Ausweichanbieter unter derselben Datenschutzrichtlinie.","tags":["AI Providers"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"routingPlanId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"},{"$ref":"#/components/parameters/IfMatch"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["key","capabilityKind","dataRegion","allowedDataClasses","steps","active"],"properties":{"routingPlanId":{"type":"string","format":"uuid"},"workspaceId":{"type":"string","format":"uuid"},"expectedRevision":{"type":"integer","minimum":0},"key":{"type":"string","minLength":2,"maxLength":128},"capabilityKind":{"type":"string","enum":["text.generate","image.generate","image.edit","video.generate","audio.synthesize","audio.transcribe","avatar.generate","translation.translate","scene_360.generate","model_3d.generate","document.generate","embedding.create","moderation.classify"]},"dataRegion":{"type":"string","minLength":2},"allowedDataClasses":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"string","enum":["public","internal","confidential","personal","special_category","secret"]}},"steps":{"type":"array","minItems":1,"maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["sequence","providerConnectionId","capabilityId","fallbackOn"],"properties":{"sequence":{"type":"integer","minimum":1},"providerConnectionId":{"type":"string","format":"uuid"},"capabilityId":{"type":"string","format":"uuid"},"condition":{"type":"object","propertyNames":{"pattern":"^(?!.*(?:api[_-]?key|access[_-]?token|refresh[_-]?token|password|secret(?:value)?|credential)).+$"}},"fallbackOn":{"type":"array","uniqueItems":true,"items":{"type":"string","enum":["rate_limited","timeout","policy_denied","provider_error"]}}}}},"active":{"type":"boolean"}}}}}},"responses":{"200":{"description":"Anbieterrouting speichern succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}},"ETag":{"$ref":"#/components/headers/ETag"}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability provider.routing_upsert."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"provider.routing_upsert","x-required-scopes":["provider:write"],"x-policy-checks":["workspace_membership","route_capability_match","eu_region","data_class_policy"],"x-mcp-tool":"practice.providers.routing.upsert"}},"/api/v1/provider-cost-estimates":{"post":{"operationId":"estimateProviderCost","summary":"KI-Kosten schätzen","description":"Liefert Einkaufspreis, Aufschlag und Endpreis vor der Ausführung.","tags":["AI Providers"],"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["capabilityKind","outputLocale","routingPlanId","prompt","parameters","sourceAssetVersionIds","contextSnapshotIds","dataClass","budgetAccountId"],"properties":{"workspaceId":{"type":"string","format":"uuid"},"assetId":{"type":"string","format":"uuid"},"capabilityKind":{"type":"string","enum":["text.generate","image.generate","image.edit","video.generate","audio.synthesize","audio.transcribe","avatar.generate","translation.translate","scene_360.generate","model_3d.generate","document.generate","embedding.create","moderation.classify"]},"outputLocale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"routingPlanId":{"type":"string","format":"uuid"},"prompt":{"type":"string","minLength":1,"maxLength":200000},"parameters":{"type":"object","propertyNames":{"pattern":"^(?!.*(?:api[_-]?key|access[_-]?token|refresh[_-]?token|password|secret(?:value)?|credential)).+$"}},"sourceAssetVersionIds":{"type":"array","uniqueItems":true,"items":{"type":"string","format":"uuid"}},"contextSnapshotIds":{"type":"array","uniqueItems":true,"items":{"type":"string","format":"uuid"}},"dataClass":{"type":"string","enum":["public","internal","confidential","personal","special_category","secret"]},"budgetAccountId":{"type":"string","format":"uuid"}}}}}},"responses":{"201":{"description":"KI-Kosten schätzen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability provider.cost_estimate."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"provider.cost_estimate","x-required-scopes":["provider:generate"],"x-policy-checks":["workspace_membership","routing_policy","context_snapshot_access","data_class_policy","budget_visibility"],"x-mcp-tool":"practice.providers.cost.estimate"}},"/api/v1/provider-jobs":{"post":{"operationId":"submitProviderJob","summary":"KI-Auftrag starten","description":"Reserviert Budget und startet denselben Auftrag über UI, API oder MCP.","tags":["AI Providers"],"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["capabilityKind","outputLocale","routingPlanId","prompt","parameters","sourceAssetVersionIds","contextSnapshotIds","dataClass","estimateId","budgetAccountId"],"properties":{"workspaceId":{"type":"string","format":"uuid"},"assetId":{"type":"string","format":"uuid"},"capabilityKind":{"type":"string","enum":["text.generate","image.generate","image.edit","video.generate","audio.synthesize","audio.transcribe","avatar.generate","translation.translate","scene_360.generate","model_3d.generate","document.generate","embedding.create","moderation.classify"]},"outputLocale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"routingPlanId":{"type":"string","format":"uuid"},"prompt":{"type":"string","minLength":1,"maxLength":200000},"parameters":{"type":"object","propertyNames":{"pattern":"^(?!.*(?:api[_-]?key|access[_-]?token|refresh[_-]?token|password|secret(?:value)?|credential)).+$"}},"sourceAssetVersionIds":{"type":"array","uniqueItems":true,"items":{"type":"string","format":"uuid"}},"contextSnapshotIds":{"type":"array","uniqueItems":true,"items":{"type":"string","format":"uuid"}},"dataClass":{"type":"string","enum":["public","internal","confidential","personal","special_category","secret"]},"budgetAccountId":{"type":"string","format":"uuid"},"estimateId":{"type":"string","format":"uuid"},"reservationId":{"type":"string","format":"uuid"}}}}}},"responses":{"202":{"description":"KI-Auftrag starten succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["reservation","job"],"properties":{"reservation":{"type":"object","required":["id","budgetAccountId","estimateId","amountMinor","currency","status"],"properties":{"id":{"type":"string","format":"uuid"},"budgetAccountId":{"type":"string","format":"uuid"},"estimateId":{"type":"string","format":"uuid"},"amountMinor":{"type":"integer","minimum":1},"currency":{"type":"string","pattern":"^[A-Z]{3}$"},"status":{"type":"string","enum":["active"]}}},"job":{"type":"object","required":["id","reservationId","estimateId","status"],"properties":{"id":{"type":"string","format":"uuid"},"reservationId":{"type":"string","format":"uuid"},"estimateId":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["queued","waiting_for_approval"]}}}}}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"provider.job_submit","x-required-scopes":["provider:generate"],"x-policy-checks":["workspace_membership","estimate_current","request_hash_match","budget_atomic_reservation","routing_policy","dlp_policy"],"x-mcp-tool":"practice.providers.jobs.submit"}},"/api/v1/provider-jobs/{jobId}:approve":{"post":{"operationId":"approveProviderJob","summary":"KI-Auftrag freigeben","description":"Gibt einen wartenden Auftrag auf Grundlage der unveränderten Kostenschätzung frei.","tags":["AI Providers"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"jobId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["jobId","approvalId","estimateId","budgetAccountId","rationale"],"properties":{"jobId":{"type":"string","format":"uuid"},"approvalId":{"type":"string","format":"uuid"},"estimateId":{"type":"string","format":"uuid"},"budgetAccountId":{"type":"string","format":"uuid"},"rationale":{"type":"string","minLength":1,"maxLength":4000}}}}}},"responses":{"202":{"description":"KI-Auftrag freigeben succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability provider.job_approve."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"provider.job_approve","x-required-scopes":["provider:approve"],"x-policy-checks":["workspace_membership","human_actor","approval_artifact_binding","approval_assignment","estimate_current","request_hash_match","budget_atomic_reservation"],"x-mcp-tool":"practice.providers.jobs.approve"}},"/api/v1/budget-accounts/{budgetAccountId}":{"get":{"operationId":"getBudgetAccount","summary":"KI-Budget lesen","description":"Liest Limit, Verbrauch, Reservierungen und verfügbaren Betrag.","tags":["AI Budgets"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"budgetAccountId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"KI-Budget lesen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability budget.read."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"budget.read","x-required-scopes":["budget:read"],"x-policy-checks":["workspace_membership"],"x-mcp-tool":"practice.budgets.read","x-mcp-resource-template":"practice://budget-accounts/{budgetAccountId}"}},"/api/v1/budget-reservations":{"get":{"operationId":"listBudgetReservations","summary":"Reservierungen auflisten","description":"Listet aktive und abgeschlossene Budgetreservierungen.","tags":["AI Budgets"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"workspaceId","in":"query","required":false,"description":"Optional workspace filter; otherwise the first authorized workspace is used.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Reservierungen auflisten succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability budget.reservation_list."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"budget.reservation_list","x-required-scopes":["budget:read"],"x-policy-checks":["workspace_membership"],"x-mcp-tool":"practice.budgets.reservations.list","x-mcp-resource-template":"practice://budget-reservations"},"post":{"operationId":"createBudgetReservation","summary":"Budget reservieren","description":"Reserviert einen Betrag transaktionssicher gegen eine gültige Kostenschätzung.","tags":["AI Budgets"],"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["budgetAccountId","estimateId","amountMinor","currency","expiresAt"],"properties":{"budgetAccountId":{"type":"string","format":"uuid"},"estimateId":{"type":"string","format":"uuid"},"amountMinor":{"type":"integer","minimum":1},"currency":{"type":"string","pattern":"^[A-Z]{3}$"},"expiresAt":{"type":"string","format":"date-time"}}}}}},"responses":{"201":{"description":"Budget reservieren succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability budget.reservation_create."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"budget.reservation_create","x-required-scopes":["budget:reserve"],"x-policy-checks":["workspace_membership","estimate_current","currency_match","atomic_budget_limit"],"x-mcp-tool":"practice.budgets.reservations.create"}},"/api/v1/usage-ledger":{"get":{"operationId":"listUsageLedger","summary":"KI-Nutzung auflisten","description":"Listet das unveränderliche Nutzungsprotokoll mit Einkaufspreis, Aufschlag und Endpreis.","tags":["AI Budgets"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"workspaceId","in":"query","required":false,"description":"Optional workspace filter; otherwise the first authorized workspace is used.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"KI-Nutzung auflisten succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability budget.usage_list."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"budget.usage_list","x-required-scopes":["budget:read"],"x-policy-checks":["workspace_membership"],"x-mcp-tool":"practice.budgets.usage.list","x-mcp-resource-template":"practice://usage-ledger"}},"/api/v1/budget-reservations/{reservationId}:release":{"post":{"operationId":"releaseBudgetReservation","summary":"Reservierung freigeben","description":"Gibt ungenutztes Budget wiederholungssicher frei.","tags":["AI Budgets"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"reservationId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["reservationId","reason"],"properties":{"reservationId":{"type":"string","format":"uuid"},"reason":{"type":"string","minLength":1,"maxLength":1000}}}}}},"responses":{"200":{"description":"Reservierung freigeben succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability budget.reservation_release."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"budget.reservation_release","x-required-scopes":["budget:reserve"],"x-policy-checks":["workspace_membership"],"x-mcp-tool":"practice.budgets.reservations.release"}},"/api/v1/connector-definitions":{"get":{"operationId":"listConnectorDefinitions","summary":"Connector-Katalog lesen","description":"Listet Connectorarten, Anmeldeverfahren, Betriebsregionen und verfügbare Zugriffsbereiche.","tags":["Context Connectors"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Connector-Katalog lesen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability connector.registry_list."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"connector.registry_list","x-required-scopes":["connector:read"],"x-policy-checks":[],"x-mcp-tool":"practice.connectors.registry.list","x-mcp-resource-template":"practice://connector-definitions"}},"/api/v1/connector-bindings":{"get":{"operationId":"listConnectorBindings","summary":"Kontextquellen auflisten","description":"Listet angebundene Quellen mit Serverfreigabeliste, Zugriffsbereichen, Verarbeitungszweck, Region und Datenklasse.","tags":["Context Connectors"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"workspaceId","in":"query","required":false,"description":"Optional workspace filter; otherwise the first authorized workspace is used.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Kontextquellen auflisten succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability connector.binding_list."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"connector.binding_list","x-required-scopes":["connector:read"],"x-policy-checks":["workspace_membership"],"x-mcp-tool":"practice.connectors.bindings.list","x-mcp-resource-template":"practice://connector-bindings"},"post":{"operationId":"createConnectorBinding","summary":"Kontextquelle anbinden","description":"Bindet eine Quelle mit festgelegter Serverfreigabeliste, Zugriffsbereichen, Verarbeitungszweck, Region und Datenklasse an.","tags":["Context Connectors"],"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["connectorDefinitionId","displayName","endpointOrigin","dataRegion","allowedHosts","grantedScopes","allowedPurposes","maximumDataClass"],"properties":{"workspaceId":{"type":"string","format":"uuid"},"connectorDefinitionId":{"type":"string","format":"uuid"},"displayName":{"type":"string","minLength":1,"maxLength":255},"endpointOrigin":{"type":"string","format":"uri"},"secretRef":{"type":"string","minLength":8,"maxLength":1024},"dataRegion":{"type":"string","minLength":2},"allowedHosts":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"string","format":"hostname"}},"grantedScopes":{"type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":2048}},"allowedPurposes":{"type":"array","uniqueItems":true,"items":{"type":"string","enum":["platform_administration","experience_authoring","learning_delivery","learning_evaluation","human_review","tenant_analytics","billing","connector_synchronization","compliance_review"]}},"maximumDataClass":{"type":"string","enum":["public","internal","confidential","personal","special_category","secret"]},"configuration":{"type":"object","propertyNames":{"pattern":"^(?!.*(?:api[_-]?key|access[_-]?token|refresh[_-]?token|password|secret(?:value)?|credential)).+$"}}}}}}},"responses":{"201":{"description":"Kontextquelle anbinden succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability connector.binding_create."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"connector.binding_create","x-required-scopes":["connector:write"],"x-policy-checks":["workspace_membership","https_origin","host_allowlist","scope_allowlist","eu_region","secret_reference_only","data_processing_agreement"],"x-mcp-tool":"practice.connectors.bindings.create"}},"/api/v1/connector-bindings/{bindingId}":{"get":{"operationId":"getConnectorBinding","summary":"Kontextquelle lesen","description":"Liest die Konfiguration einer angebundenen Quelle, ohne gespeicherte Zugangsdaten offenzulegen.","tags":["Context Connectors"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"bindingId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Kontextquelle lesen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability connector.binding_read."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"connector.binding_read","x-required-scopes":["connector:read"],"x-policy-checks":["workspace_membership","secret_reference_only"],"x-mcp-tool":"practice.connectors.bindings.read","x-mcp-resource-template":"practice://connector-bindings/{bindingId}"},"patch":{"operationId":"updateConnectorBinding","summary":"Kontextquelle ändern","description":"Ändert Zugriffs- und Datenverarbeitungsrichtlinie revisionssicher.","tags":["Context Connectors"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"bindingId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"},{"$ref":"#/components/parameters/IfMatch"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["bindingId","expectedRevision","patch"],"properties":{"bindingId":{"type":"string","format":"uuid"},"expectedRevision":{"type":"integer","minimum":0},"patch":{"type":"object","propertyNames":{"pattern":"^(?!.*(?:api[_-]?key|access[_-]?token|refresh[_-]?token|password|secret(?:value)?|credential)).+$"},"minProperties":1}}}}}},"responses":{"200":{"description":"Kontextquelle ändern succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}},"ETag":{"$ref":"#/components/headers/ETag"}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability connector.binding_update."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"connector.binding_update","x-required-scopes":["connector:write"],"x-policy-checks":["workspace_membership","https_origin","host_allowlist","scope_allowlist","eu_region","secret_reference_only"],"x-mcp-tool":"practice.connectors.bindings.update"}},"/api/v1/connector-bindings/{bindingId}:test":{"post":{"operationId":"testConnectorBinding","summary":"Kontextquelle testen","description":"Prüft Erreichbarkeit und freigegebene Zugriffsbereiche mit einer synthetischen Anfrage ohne Unternehmensinhalte.","tags":["Context Connectors"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"bindingId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["bindingId"],"properties":{"bindingId":{"type":"string","format":"uuid"}}}}}},"responses":{"202":{"description":"Kontextquelle testen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability connector.binding_test."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"connector.binding_test","x-required-scopes":["connector:test"],"x-policy-checks":["workspace_membership","synthetic_probe_only","host_allowlist"],"x-mcp-tool":"practice.connectors.bindings.test"}},"/api/v1/context-snapshots/{snapshotId}":{"get":{"operationId":"getContextSnapshot","summary":"Gespeicherten Kontextstand lesen","description":"Liest einen unveränderlichen Kontextstand, der vor der Speicherung auf vertrauliche und personenbezogene Daten geprüft wurde.","tags":["Context"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"snapshotId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Gespeicherten Kontextstand lesen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability context.snapshot_read."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"context.snapshot_read","x-required-scopes":["context:read"],"x-policy-checks":["workspace_membership","purpose_match","scope_match","snapshot_not_expired","field_read_policy"],"x-mcp-tool":"practice.context.snapshots.read","x-mcp-resource-template":"practice://context-snapshots/{snapshotId}"}},"/api/v1/context-previews":{"post":{"operationId":"previewContext","summary":"Kontext vorprüfen","description":"Lädt eine begrenzte Vorschau und prüft vertrauliche sowie personenbezogene Daten, bevor Inhalte gespeichert werden.","tags":["Context"],"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["bindingId","policyId","query","locale","purpose","requestedScopes","maxItems"],"properties":{"bindingId":{"type":"string","format":"uuid"},"policyId":{"type":"string","format":"uuid"},"query":{"type":"string","minLength":1,"maxLength":100000},"locale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"purpose":{"type":"string","enum":["platform_administration","experience_authoring","learning_delivery","learning_evaluation","human_review","tenant_analytics","billing","connector_synchronization","compliance_review"]},"requestedScopes":{"type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":2048}},"maxItems":{"type":"integer","minimum":1,"maximum":1000}}}}}},"responses":{"202":{"description":"Kontext vorprüfen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability context.preview."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"context.preview","x-required-scopes":["context:read"],"x-policy-checks":["workspace_membership","binding_active","host_allowlist","scope_match","purpose_match","region_match","data_class_ceiling","dlp_before_persistence"],"x-mcp-tool":"practice.context.preview"}},"/api/v1/context-snapshots":{"post":{"operationId":"createContextSnapshot","summary":"Kontextstand erzeugen","description":"Speichert ausschließlich die freigegebene und auf vertrauliche sowie personenbezogene Daten geprüfte Vorschau unveränderlich.","tags":["Context"],"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["previewId","expectedPreviewHash"],"properties":{"previewId":{"type":"string","format":"uuid"},"expectedPreviewHash":{"type":"string","pattern":"^[0-9a-f]{64}$"}}}}}},"responses":{"201":{"description":"Kontextstand erzeugen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability context.snapshot_create."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"context.snapshot_create","x-required-scopes":["context:write"],"x-policy-checks":["workspace_membership","preview_current","preview_hash_match","dlp_no_block","approval_if_required"],"x-mcp-tool":"practice.context.snapshots.create"}},"/api/v1/context:resolve-live":{"post":{"operationId":"resolveLiveContext","summary":"Aktuellen Kontext laden","description":"Liest den Kontext live und verwendet nur gemäß Freigaberichtlinie den letzten gültigen Kontextstand als Ersatz.","tags":["Context"],"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["bindingId","policyId","query","locale","purpose","requestedScopes","maxItems"],"properties":{"bindingId":{"type":"string","format":"uuid"},"policyId":{"type":"string","format":"uuid"},"query":{"type":"string","minLength":1,"maxLength":100000},"locale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"purpose":{"type":"string","enum":["platform_administration","experience_authoring","learning_delivery","learning_evaluation","human_review","tenant_analytics","billing","connector_synchronization","compliance_review"]},"requestedScopes":{"type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":2048}},"maxItems":{"type":"integer","minimum":1,"maximum":1000},"fallbackSnapshotId":{"type":"string","format":"uuid"}}}}}},"responses":{"202":{"description":"Aktuellen Kontext laden succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability context.live_resolve."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"context.live_resolve","x-required-scopes":["context:read"],"x-policy-checks":["workspace_membership","binding_active","host_allowlist","scope_match","purpose_match","region_match","data_class_ceiling","dlp_before_return","fallback_policy"],"x-mcp-tool":"practice.context.live.resolve"}},"/api/v1/groups":{"get":{"operationId":"listLearningGroups","summary":"Lerngruppen auflisten","description":"Listet Lerngruppen mit Anzahl, aber ohne unnötige Personendaten.","tags":["Learning Groups"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"workspaceId","in":"query","required":false,"description":"Optional workspace filter; otherwise the first authorized workspace is used.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Lerngruppen auflisten succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability group.list."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"group.list","x-required-scopes":["group:read"],"x-policy-checks":["workspace_membership"],"x-mcp-tool":"practice.groups.list","x-mcp-resource-template":"practice://groups"},"post":{"operationId":"createLearningGroup","summary":"Lerngruppe anlegen","description":"Legt eine manuelle oder connectorverwaltete Lerngruppe an.","tags":["Learning Groups"],"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["workspaceId","key","name"],"properties":{"workspaceId":{"type":"string","format":"uuid"},"key":{"type":"string","pattern":"^[a-z][a-z0-9._-]{1,127}$"},"name":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","minLength":2,"maxLength":35},"values":{"type":"object","minProperties":1,"additionalProperties":{"type":"string","minLength":1,"maxLength":4000}}}},"description":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","minLength":2,"maxLength":35},"values":{"type":"object","minProperties":1,"additionalProperties":{"type":"string","minLength":1,"maxLength":4000}}}}}}}}},"responses":{"201":{"description":"Lerngruppe anlegen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability group.create."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"group.create","x-required-scopes":["group:write"],"x-policy-checks":["workspace_membership"],"x-mcp-tool":"practice.groups.create"}},"/api/v1/groups/{groupId}":{"get":{"operationId":"getLearningGroup","summary":"Lerngruppe lesen","description":"Liest eine Lerngruppe im autorisierten Arbeitsbereich.","tags":["Learning Groups"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"groupId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Lerngruppe lesen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability group.read."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"group.read","x-required-scopes":["group:read"],"x-policy-checks":["workspace_membership"],"x-mcp-tool":"practice.groups.read","x-mcp-resource-template":"practice://groups/{groupId}"},"patch":{"operationId":"updateLearningGroup","summary":"Lerngruppe ändern","description":"Ändert Stammdaten revisionsgebunden.","tags":["Learning Groups"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"groupId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"},{"$ref":"#/components/parameters/IfMatch"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["expectedRevision","changeReason"],"properties":{"expectedRevision":{"type":"integer","minimum":1},"name":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","minLength":2,"maxLength":35},"values":{"type":"object","minProperties":1,"additionalProperties":{"type":"string","minLength":1,"maxLength":4000}}}},"description":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","minLength":2,"maxLength":35},"values":{"type":"object","minProperties":1,"additionalProperties":{"type":"string","minLength":1,"maxLength":4000}}}},"status":{"enum":["active","archived"]},"changeReason":{"type":"string"}}}}}},"responses":{"200":{"description":"Lerngruppe ändern succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}},"ETag":{"$ref":"#/components/headers/ETag"}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability group.update."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"group.update","x-required-scopes":["group:write"],"x-policy-checks":["workspace_membership"],"x-mcp-tool":"practice.groups.update"}},"/api/v1/groups/{groupId}/members":{"put":{"operationId":"replaceLearningGroupMembers","summary":"Gruppenmitglieder ersetzen","description":"Ersetzt die Mitgliedschaft transaktionssicher und protokolliert die Änderung.","tags":["Learning Groups"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"groupId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"},{"$ref":"#/components/parameters/IfMatch"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["expectedRevision","userIds","changeReason"],"properties":{"expectedRevision":{"type":"integer","minimum":1},"userIds":{"type":"array","uniqueItems":true,"items":{"type":"string","format":"uuid"}},"changeReason":{"type":"string"}}}}}},"responses":{"200":{"description":"Gruppenmitglieder ersetzen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}},"ETag":{"$ref":"#/components/headers/ETag"}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability group.members_replace."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"group.members_replace","x-required-scopes":["group:write"],"x-policy-checks":["workspace_membership","member_tenant_match","connector_ownership"],"x-mcp-tool":"practice.groups.members.replace"}},"/api/v1/audiences":{"get":{"operationId":"listLearningAudiences","summary":"Zielgruppen auflisten","description":"Listet gespeicherte Zielgruppen und ihre geschätzte Größe.","tags":["Learning Audiences"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"workspaceId","in":"query","required":false,"description":"Optional workspace filter; otherwise the first authorized workspace is used.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Zielgruppen auflisten succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability audience.list."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"audience.list","x-required-scopes":["audience:read"],"x-policy-checks":["workspace_membership"],"x-mcp-tool":"practice.audiences.list","x-mcp-resource-template":"practice://audiences"},"post":{"operationId":"createLearningAudience","summary":"Zielgruppe anlegen","description":"Legt eine deterministisch auflösbare Zielgruppe an.","tags":["Learning Audiences"],"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["workspaceId","key","name","kind"],"properties":{"workspaceId":{"type":"string","format":"uuid"},"key":{"type":"string","pattern":"^[a-z][a-z0-9._-]{1,127}$"},"name":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","minLength":2,"maxLength":35},"values":{"type":"object","minProperties":1,"additionalProperties":{"type":"string","minLength":1,"maxLength":4000}}}},"description":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","minLength":2,"maxLength":35},"values":{"type":"object","minProperties":1,"additionalProperties":{"type":"string","minLength":1,"maxLength":4000}}}},"kind":{"enum":["groups","rules"]},"groupIds":{"type":"array","uniqueItems":true,"items":{"type":"string","format":"uuid"}},"rule":{"type":"object"}}}}}},"responses":{"201":{"description":"Zielgruppe anlegen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability audience.create."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"audience.create","x-required-scopes":["audience:write"],"x-policy-checks":["workspace_membership","rule_allowlist"],"x-mcp-tool":"practice.audiences.create"}},"/api/v1/audiences/{audienceId}":{"get":{"operationId":"getLearningAudience","summary":"Zielgruppe lesen","description":"Liest Gruppen- oder Regeldefinition einer Zielgruppe.","tags":["Learning Audiences"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"audienceId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Zielgruppe lesen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability audience.read."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"audience.read","x-required-scopes":["audience:read"],"x-policy-checks":["workspace_membership"],"x-mcp-tool":"practice.audiences.read","x-mcp-resource-template":"practice://audiences/{audienceId}"},"patch":{"operationId":"updateLearningAudience","summary":"Zielgruppe ändern","description":"Ändert eine Zielgruppe revisionsgebunden.","tags":["Learning Audiences"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"audienceId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"},{"$ref":"#/components/parameters/IfMatch"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["expectedRevision","changeReason"],"properties":{"expectedRevision":{"type":"integer","minimum":1},"name":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","minLength":2,"maxLength":35},"values":{"type":"object","minProperties":1,"additionalProperties":{"type":"string","minLength":1,"maxLength":4000}}}},"description":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","minLength":2,"maxLength":35},"values":{"type":"object","minProperties":1,"additionalProperties":{"type":"string","minLength":1,"maxLength":4000}}}},"groupIds":{"type":"array","uniqueItems":true,"items":{"type":"string","format":"uuid"}},"rule":{"type":"object"},"status":{"enum":["active","archived"]},"changeReason":{"type":"string"}}}}}},"responses":{"200":{"description":"Zielgruppe ändern succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}},"ETag":{"$ref":"#/components/headers/ETag"}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability audience.update."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"audience.update","x-required-scopes":["audience:write"],"x-policy-checks":["workspace_membership","rule_allowlist"],"x-mcp-tool":"practice.audiences.update"}},"/api/v1/audiences/{audienceId}/preview":{"get":{"operationId":"previewLearningAudience","summary":"Zielgruppe vorprüfen","description":"Löst die Zielgruppe aktuell auf; Personensicht bleibt rollenabhängig.","tags":["Learning Audiences"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"audienceId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Zielgruppe vorprüfen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability audience.preview."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"audience.preview","x-required-scopes":["audience:read"],"x-policy-checks":["workspace_membership","pii_field_policy"],"x-mcp-tool":"practice.audiences.preview"}},"/api/v1/programs":{"get":{"operationId":"listLearningPrograms","summary":"Lernprogramme auflisten","description":"Listet Entwicklungspfade, Zertifizierungen und Assessments; Lernende sehen nur zugewiesene Programme.","tags":["Learning Programs"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"workspaceId","in":"query","required":false,"description":"Optional workspace filter; otherwise the first authorized workspace is used.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Lernprogramme auflisten succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability program.list."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"program.list","x-required-scopes":["program:read"],"x-policy-checks":["workspace_membership","assigned_program_only"],"x-mcp-tool":"practice.programs.list","x-mcp-resource-template":"practice://programs"},"post":{"operationId":"createLearningProgram","summary":"Lernprogramm anlegen","description":"Legt einen expliziten Entwicklungs-, Zertifizierungs- oder Assessmentpfad an.","tags":["Learning Programs"],"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["workspaceId","key","title","mode","steps"],"properties":{"workspaceId":{"type":"string","format":"uuid"},"key":{"type":"string","pattern":"^[a-z][a-z0-9._-]{1,127}$"},"title":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","minLength":2,"maxLength":35},"values":{"type":"object","minProperties":1,"additionalProperties":{"type":"string","minLength":1,"maxLength":4000}}}},"description":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","minLength":2,"maxLength":35},"values":{"type":"object","minProperties":1,"additionalProperties":{"type":"string","minLength":1,"maxLength":4000}}}},"mode":{"enum":["development","certification","assessment"]},"steps":{"type":"array","minItems":1,"items":{"type":"object","additionalProperties":false,"required":["id","key","sequence","title","kind","required","skillIds"],"properties":{"id":{"type":"string","format":"uuid"},"key":{"type":"string","pattern":"^[a-z][a-z0-9._-]{1,127}$"},"sequence":{"type":"integer","minimum":1},"title":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","minLength":2,"maxLength":35},"values":{"type":"object","minProperties":1,"additionalProperties":{"type":"string","minLength":1,"maxLength":4000}}}},"kind":{"enum":["experience","checkpoint"]},"required":{"type":"boolean"},"experienceId":{"type":"string","format":"uuid"},"releaseId":{"type":"string","format":"uuid"},"releaseHash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"skillIds":{"type":"array","uniqueItems":true,"items":{"type":"string","format":"uuid"}}}}},"passScore":{"type":"number","minimum":0,"maximum":100},"mentorReviewRequired":{"type":"boolean"},"certificate":{"type":"object"}}}}}},"responses":{"201":{"description":"Lernprogramm anlegen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability program.create."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"program.create","x-required-scopes":["program:write"],"x-policy-checks":["workspace_membership","mode_explicit","step_release_policy"],"x-mcp-tool":"practice.programs.create"}},"/api/v1/programs/{programId}":{"get":{"operationId":"getLearningProgram","summary":"Lernprogramm lesen","description":"Liest den versionierten Lernpfad einschließlich Durchführungsmodus und fest gebundener Inhaltsversionen; Lernende und Mentor:innen nur bei bestehender Zuweisung.","tags":["Learning Programs"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"programId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Lernprogramm lesen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability program.read."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"program.read","x-required-scopes":["program:read"],"x-policy-checks":["workspace_membership","assigned_program_only"],"x-mcp-tool":"practice.programs.read","x-mcp-resource-template":"practice://programs/{programId}"},"patch":{"operationId":"updateLearningProgram","summary":"Lernprogramm ändern","description":"Ändert nur einen Entwurf; veröffentlichte Versionen bleiben unveränderlich.","tags":["Learning Programs"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"programId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"},{"$ref":"#/components/parameters/IfMatch"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["expectedRevision","changeReason"],"properties":{"expectedRevision":{"type":"integer","minimum":1},"title":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","minLength":2,"maxLength":35},"values":{"type":"object","minProperties":1,"additionalProperties":{"type":"string","minLength":1,"maxLength":4000}}}},"description":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","minLength":2,"maxLength":35},"values":{"type":"object","minProperties":1,"additionalProperties":{"type":"string","minLength":1,"maxLength":4000}}}},"steps":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["id","key","sequence","title","kind","required","skillIds"],"properties":{"id":{"type":"string","format":"uuid"},"key":{"type":"string","pattern":"^[a-z][a-z0-9._-]{1,127}$"},"sequence":{"type":"integer","minimum":1},"title":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","minLength":2,"maxLength":35},"values":{"type":"object","minProperties":1,"additionalProperties":{"type":"string","minLength":1,"maxLength":4000}}}},"kind":{"enum":["experience","checkpoint"]},"required":{"type":"boolean"},"experienceId":{"type":"string","format":"uuid"},"releaseId":{"type":"string","format":"uuid"},"releaseHash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"skillIds":{"type":"array","uniqueItems":true,"items":{"type":"string","format":"uuid"}}}}},"passScore":{"type":"number","minimum":0,"maximum":100},"mentorReviewRequired":{"type":"boolean"},"certificate":{"type":"object"},"status":{"enum":["draft","archived"]},"changeReason":{"type":"string"}}}}}},"responses":{"200":{"description":"Lernprogramm ändern succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}},"ETag":{"$ref":"#/components/headers/ETag"}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability program.update."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"program.update","x-required-scopes":["program:write"],"x-policy-checks":["workspace_membership","published_program_immutable","mode_immutable"],"x-mcp-tool":"practice.programs.update"}},"/api/v1/programs/{programId}/publish":{"post":{"operationId":"publishLearningProgram","summary":"Lernprogramm veröffentlichen","description":"Friert Lernpfad, Durchführungsmodus und geltende Richtlinie als verwendbare Version ein.","tags":["Learning Programs"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"programId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"},{"$ref":"#/components/parameters/IfMatch"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["expectedRevision","reason"],"properties":{"expectedRevision":{"type":"integer","minimum":1},"reason":{"type":"string","minLength":3,"maxLength":1000}}}}}},"responses":{"200":{"description":"Lernprogramm veröffentlichen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}},"ETag":{"$ref":"#/components/headers/ETag"}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability program.publish."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"program.publish","x-required-scopes":["program:publish"],"x-policy-checks":["workspace_membership","mode_explicit","all_steps_release_pinned","certificate_mode_policy"],"x-mcp-tool":"practice.programs.publish"}},"/api/v1/assignments":{"get":{"operationId":"listLearningAssignments","summary":"Zuweisungen auflisten","description":"Listet geplante, aktive und abgeschlossene Zuweisungen; Lernende/Mentoren sehen nur eigene oder zu prüfende.","tags":["Learning Assignments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"workspaceId","in":"query","required":false,"description":"Optional workspace filter; otherwise the first authorized workspace is used.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Zuweisungen auflisten succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability assignment.list."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"assignment.list","x-required-scopes":["assignment:read"],"x-policy-checks":["workspace_membership","self_or_review_assignment"],"x-mcp-tool":"practice.assignments.list","x-mcp-resource-template":"practice://assignments"},"post":{"operationId":"createLearningAssignment","summary":"Zuweisung planen","description":"Legt eine noch nicht aktive Zuweisung für eine veröffentlichte Programmversion an.","tags":["Learning Assignments"],"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["workspaceId","programId","audienceId","title","startsAt"],"properties":{"workspaceId":{"type":"string","format":"uuid"},"programId":{"type":"string","format":"uuid"},"audienceId":{"type":"string","format":"uuid"},"title":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","minLength":2,"maxLength":35},"values":{"type":"object","minProperties":1,"additionalProperties":{"type":"string","minLength":1,"maxLength":4000}}}},"startsAt":{"type":"string","format":"date-time"},"dueAt":{"type":"string","format":"date-time"},"notificationMode":{"enum":["none","email"]}}}}}},"responses":{"201":{"description":"Zuweisung planen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability assignment.create."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"assignment.create","x-required-scopes":["assignment:write"],"x-policy-checks":["workspace_membership","program_published","audience_active"],"x-mcp-tool":"practice.assignments.create"}},"/api/v1/assignments/{assignmentId}":{"get":{"operationId":"getLearningAssignment","summary":"Zuweisung lesen","description":"Liest Zielgruppe, Frist und eingefrorene Aktivierungspins.","tags":["Learning Assignments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"assignmentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Zuweisung lesen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability assignment.read."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"assignment.read","x-required-scopes":["assignment:read"],"x-policy-checks":["workspace_membership"],"x-mcp-tool":"practice.assignments.read","x-mcp-resource-template":"practice://assignments/{assignmentId}"}},"/api/v1/assignments/{assignmentId}/activate":{"post":{"operationId":"activateLearningAssignment","summary":"Zuweisung freigeben","description":"Bindet die menschlich freigegebene Zuweisung an Inhaltsversion, Programm-Modus, Richtlinienstand und dokumentierte Zielgruppe und erzeugt die Einschreibungen transaktionssicher.","tags":["Learning Assignments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"assignmentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"},{"$ref":"#/components/parameters/IfMatch"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["expectedRevision","reason"],"properties":{"expectedRevision":{"type":"integer","minimum":1},"reason":{"type":"string","minLength":3,"maxLength":1000}}}}}},"responses":{"200":{"description":"Zuweisung freigeben succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}},"ETag":{"$ref":"#/components/headers/ETag"}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability assignment.activate."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"assignment.activate","x-required-scopes":["assignment:activate"],"x-policy-checks":["workspace_membership","human_actor","release_hash_pin","program_mode_pin","policy_version_pin","audience_snapshot","activation_reason"],"x-mcp-tool":"practice.assignments.activate"}},"/api/v1/assignments/{assignmentId}/cancel":{"post":{"operationId":"cancelLearningAssignment","summary":"Zuweisung abbrechen","description":"Bricht eine Zuweisung begründet ab, ohne vorhandene Ergebnisse zu löschen.","tags":["Learning Assignments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"assignmentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"},{"$ref":"#/components/parameters/IfMatch"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["expectedRevision","reason"],"properties":{"expectedRevision":{"type":"integer","minimum":1},"reason":{"type":"string","minLength":3,"maxLength":1000}}}}}},"responses":{"200":{"description":"Zuweisung abbrechen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}},"ETag":{"$ref":"#/components/headers/ETag"}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability assignment.cancel."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"assignment.cancel","x-required-scopes":["assignment:write"],"x-policy-checks":["workspace_membership","results_retained"],"x-mcp-tool":"practice.assignments.cancel"}},"/api/v1/enrollments":{"get":{"operationId":"listLearningEnrollments","summary":"Einschreibungen auflisten","description":"Lernende sehen nur eigene, Personalentwicklung nur operative Einschreibungen.","tags":["Learning Enrollments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"workspaceId","in":"query","required":false,"description":"Optional workspace filter; otherwise the first authorized workspace is used.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Einschreibungen auflisten succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability enrollment.list."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"enrollment.list","x-required-scopes":["enrollment:read"],"x-policy-checks":["workspace_membership","self_or_learning_admin","pii_field_policy"],"x-mcp-tool":"practice.enrollments.list","x-mcp-resource-template":"practice://enrollments"}},"/api/v1/enrollments/{enrollmentId}":{"get":{"operationId":"getLearningEnrollment","summary":"Einschreibung lesen","description":"Liest eine berechtigte Einschreibung ohne fremde Lerndaten.","tags":["Learning Enrollments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"enrollmentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Einschreibung lesen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability enrollment.read."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"enrollment.read","x-required-scopes":["enrollment:read"],"x-policy-checks":["workspace_membership","self_or_learning_admin"],"x-mcp-tool":"practice.enrollments.read","x-mcp-resource-template":"practice://enrollments/{enrollmentId}"},"patch":{"operationId":"updateLearningEnrollmentStatus","summary":"Einschreibungsstatus aktualisieren","description":"Aktualisiert einen erlaubten Statusübergang; der Abschluss folgt ausschließlich aus Ergebnis und gegebenenfalls Mentorprüfung.","tags":["Learning Enrollments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"enrollmentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"},{"$ref":"#/components/parameters/IfMatch"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["expectedRevision","status"],"properties":{"expectedRevision":{"type":"integer","minimum":1},"status":{"enum":["assigned","in_progress","review_pending","completed","failed","withdrawn"]},"progressPercent":{"type":"number","minimum":0,"maximum":100},"currentStepKey":{"type":"string","pattern":"^[a-z][a-z0-9._-]{1,127}$"},"reason":{"type":"string"}}}}}},"responses":{"200":{"description":"Einschreibungsstatus aktualisieren succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}},"ETag":{"$ref":"#/components/headers/ETag"}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability enrollment.status_update."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"enrollment.status_update","x-required-scopes":["enrollment:write"],"x-policy-checks":["workspace_membership","self_or_learning_admin","status_transition","result_required_for_completion"],"x-mcp-tool":"practice.enrollments.status.update"}},"/api/v1/skills":{"get":{"operationId":"listLearningSkills","summary":"Kompetenzen auflisten","description":"Listet den Kompetenzkatalog im Arbeitsbereich.","tags":["Skills"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"workspaceId","in":"query","required":false,"description":"Optional workspace filter; otherwise the first authorized workspace is used.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Kompetenzen auflisten succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability skill.list."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"skill.list","x-required-scopes":["skill:read"],"x-policy-checks":["workspace_membership"],"x-mcp-tool":"practice.skills.list","x-mcp-resource-template":"practice://skills"},"post":{"operationId":"createLearningSkill","summary":"Kompetenz anlegen","description":"Legt eine mehrsprachige Kompetenz samt Niveaus an.","tags":["Skills"],"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["workspaceId","key","title","levelScale"],"properties":{"workspaceId":{"type":"string","format":"uuid"},"key":{"type":"string","pattern":"^[a-z][a-z0-9._-]{1,127}$"},"title":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","minLength":2,"maxLength":35},"values":{"type":"object","minProperties":1,"additionalProperties":{"type":"string","minLength":1,"maxLength":4000}}}},"description":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","minLength":2,"maxLength":35},"values":{"type":"object","minProperties":1,"additionalProperties":{"type":"string","minLength":1,"maxLength":4000}}}},"levelScale":{"type":"array","minItems":1,"items":{"type":"object"}}}}}}},"responses":{"201":{"description":"Kompetenz anlegen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability skill.create."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"skill.create","x-required-scopes":["skill:write"],"x-policy-checks":["workspace_membership"],"x-mcp-tool":"practice.skills.create"}},"/api/v1/skills/{skillId}":{"get":{"operationId":"getLearningSkill","summary":"Kompetenz lesen","description":"Liest Beschreibung und Niveaustufen.","tags":["Skills"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"skillId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Kompetenz lesen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability skill.read."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"skill.read","x-required-scopes":["skill:read"],"x-policy-checks":["workspace_membership"],"x-mcp-tool":"practice.skills.read","x-mcp-resource-template":"practice://skills/{skillId}"},"patch":{"operationId":"updateLearningSkill","summary":"Kompetenz ändern","description":"Ändert Kompetenz und Niveaustufen revisionsgebunden.","tags":["Skills"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"skillId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"},{"$ref":"#/components/parameters/IfMatch"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["expectedRevision","changeReason"],"properties":{"expectedRevision":{"type":"integer","minimum":1},"title":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","minLength":2,"maxLength":35},"values":{"type":"object","minProperties":1,"additionalProperties":{"type":"string","minLength":1,"maxLength":4000}}}},"description":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","minLength":2,"maxLength":35},"values":{"type":"object","minProperties":1,"additionalProperties":{"type":"string","minLength":1,"maxLength":4000}}}},"levelScale":{"type":"array","items":{"type":"object"}},"status":{"enum":["active","archived"]},"changeReason":{"type":"string"}}}}}},"responses":{"200":{"description":"Kompetenz ändern succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}},"ETag":{"$ref":"#/components/headers/ETag"}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability skill.update."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"skill.update","x-required-scopes":["skill:write"],"x-policy-checks":["workspace_membership"],"x-mcp-tool":"practice.skills.update"}},"/api/v1/role-profiles":{"get":{"operationId":"listQualificationRoleProfiles","summary":"Rollenprofile auflisten","description":"Listet HR-Rollenprofile mit Kompetenz-Sollniveaus.","tags":["Qualification Profiles"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"workspaceId","in":"query","required":false,"description":"Optional workspace filter; otherwise the first authorized workspace is used.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Rollenprofile auflisten succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability role_profile.list."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"role_profile.list","x-required-scopes":["qualification:read"],"x-policy-checks":["workspace_membership"],"x-mcp-tool":"practice.qualifications.role_profiles.list","x-mcp-resource-template":"practice://qualification-role-profiles"}},"/api/v1/role-profiles/{roleProfileId}":{"get":{"operationId":"getQualificationRoleProfile","summary":"Rollenprofil lesen","description":"Liest das Sollprofil einer Funktion.","tags":["Qualification Profiles"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"roleProfileId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Rollenprofil lesen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability role_profile.read."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"role_profile.read","x-required-scopes":["qualification:read"],"x-policy-checks":["workspace_membership"],"x-mcp-tool":"practice.qualifications.role_profiles.read","x-mcp-resource-template":"practice://qualification-role-profiles/{roleProfileId}"},"put":{"operationId":"upsertQualificationRoleProfile","summary":"Rollenprofil speichern","description":"Legt ein Rollenprofil an oder aktualisiert Sollniveaus revisionsgebunden.","tags":["Qualification Profiles"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"roleProfileId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"},{"$ref":"#/components/parameters/IfMatch"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["workspaceId","key","title","requirements","changeReason"],"properties":{"workspaceId":{"type":"string","format":"uuid"},"key":{"type":"string","pattern":"^[a-z][a-z0-9._-]{1,127}$"},"title":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","minLength":2,"maxLength":35},"values":{"type":"object","minProperties":1,"additionalProperties":{"type":"string","minLength":1,"maxLength":4000}}}},"description":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","minLength":2,"maxLength":35},"values":{"type":"object","minProperties":1,"additionalProperties":{"type":"string","minLength":1,"maxLength":4000}}}},"requirements":{"type":"array","items":{"type":"object"}},"expectedRevision":{"type":"integer","minimum":1},"changeReason":{"type":"string"}}}}}},"responses":{"200":{"description":"Rollenprofil speichern succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}},"ETag":{"$ref":"#/components/headers/ETag"}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability role_profile.upsert."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"role_profile.upsert","x-required-scopes":["qualification:write"],"x-policy-checks":["workspace_membership","skill_exists","target_level_valid"],"x-mcp-tool":"practice.qualifications.role_profiles.upsert"}},"/api/v1/qualification-requirements":{"get":{"operationId":"listQualificationRequirements","summary":"Qualifikationsanforderungen auflisten","description":"Listet Sollnachweise, Gültigkeiten und Rezertifizierungsregeln.","tags":["Qualifications"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"workspaceId","in":"query","required":false,"description":"Optional workspace filter; otherwise the first authorized workspace is used.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Qualifikationsanforderungen auflisten succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability qualification.list."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"qualification.list","x-required-scopes":["qualification:read"],"x-policy-checks":["workspace_membership"],"x-mcp-tool":"practice.qualifications.requirements.list","x-mcp-resource-template":"practice://qualification-requirements"}},"/api/v1/qualification-requirements/{requirementId}":{"get":{"operationId":"getQualificationRequirement","summary":"Qualifikationsanforderung lesen","description":"Liest Nachweisart, Sollniveau, Gültigkeit und Rezertifizierung.","tags":["Qualifications"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"requirementId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Qualifikationsanforderung lesen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability qualification.read."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"qualification.read","x-required-scopes":["qualification:read"],"x-policy-checks":["workspace_membership"],"x-mcp-tool":"practice.qualifications.requirements.read","x-mcp-resource-template":"practice://qualification-requirements/{requirementId}"},"put":{"operationId":"upsertQualificationRequirement","summary":"Qualifikationsanforderung speichern","description":"Verknüpft Rollenprofil, Kompetenz, Programm, Nachweis und Rezertifizierung.","tags":["Qualifications"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"requirementId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"},{"$ref":"#/components/parameters/IfMatch"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["workspaceId","key","title","roleProfileId","programId","skillId","targetLevel","evidenceType","recertification","changeReason"],"properties":{"workspaceId":{"type":"string","format":"uuid"},"key":{"type":"string","pattern":"^[a-z][a-z0-9._-]{1,127}$"},"title":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","minLength":2,"maxLength":35},"values":{"type":"object","minProperties":1,"additionalProperties":{"type":"string","minLength":1,"maxLength":4000}}}},"roleProfileId":{"type":"string","format":"uuid"},"programId":{"type":"string","format":"uuid"},"skillId":{"type":"string","format":"uuid"},"targetLevel":{"type":"integer","minimum":1},"evidenceType":{"enum":["program_result","certificate","mentor_approval"]},"validityDays":{"type":"integer","minimum":1},"recertification":{"type":"object"},"expectedRevision":{"type":"integer","minimum":1},"changeReason":{"type":"string"}}}}}},"responses":{"200":{"description":"Qualifikationsanforderung speichern succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}},"ETag":{"$ref":"#/components/headers/ETag"}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability qualification.upsert."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"qualification.upsert","x-required-scopes":["qualification:write"],"x-policy-checks":["workspace_membership","role_profile_exists","skill_exists","program_exists","validity_consistent"],"x-mcp-tool":"practice.qualifications.requirements.upsert"}},"/api/v1/results":{"get":{"operationId":"listLearningResults","summary":"Lernergebnisse auflisten","description":"Listet nur eigene oder operativ erforderliche Ergebnisse; Analytics läuft separat aggregiert.","tags":["Learning Results"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"workspaceId","in":"query","required":false,"description":"Optional workspace filter; otherwise the first authorized workspace is used.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Lernergebnisse auflisten succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability result.list."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"result.list","x-required-scopes":["result:read"],"x-policy-checks":["workspace_membership","self_or_review_assignment","pii_field_policy"],"x-mcp-tool":"practice.results.list","x-mcp-resource-template":"practice://results"},"post":{"operationId":"recordLearningResult","summary":"Lernergebnis festschreiben","description":"Schreibt ein unveränderliches Ergebnis aus einem versionsgebundenen Übungsdurchlauf; Mentor:innen können keine davon abweichenden Ergebnisse erzeugen.","tags":["Learning Results"],"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["workspaceId","enrollmentId","attemptId","score","maxScore"],"properties":{"workspaceId":{"type":"string","format":"uuid"},"enrollmentId":{"type":"string","format":"uuid"},"attemptId":{"type":"string","format":"uuid"},"score":{"type":"number","minimum":0},"maxScore":{"type":"number","exclusiveMinimum":0},"outcome":{"enum":["passed","failed","incomplete"]},"skillEvidence":{"type":"array","items":{"type":"object"}},"formativeFeedback":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","minLength":2,"maxLength":35},"values":{"type":"object","minProperties":1,"additionalProperties":{"type":"string","minLength":1,"maxLength":4000}}}},"evaluator":{"const":"system"}}}}}},"responses":{"201":{"description":"Lernergebnis festschreiben succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability result.record."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"result.record","x-required-scopes":["result:write"],"x-policy-checks":["workspace_membership","mode_consistency","assessment_no_formative_feedback","completed_attempt","attempt_owner","attempt_release_pin","result_immutable","trusted_result_writer","trusted_evaluation_writer","server_derived_skill_evidence"],"x-mcp-tool":"practice.results.record"}},"/api/v1/results/{resultId}":{"get":{"operationId":"getLearningResult","summary":"Lernergebnis lesen","description":"Liest ein freigegebenes Ergebnis zweckgebunden.","tags":["Learning Results"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"resultId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Lernergebnis lesen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability result.read."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"result.read","x-required-scopes":["result:read"],"x-policy-checks":["workspace_membership","self_or_review_assignment","mode_field_policy"],"x-mcp-tool":"practice.results.read","x-mcp-resource-template":"practice://results/{resultId}"}},"/api/v1/certificates":{"get":{"operationId":"listLearningCertificates","summary":"Nachweise auflisten","description":"Listet eigene oder administrativ verwaltete Zertifikate.","tags":["Certificates"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"workspaceId","in":"query","required":false,"description":"Optional workspace filter; otherwise the first authorized workspace is used.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Nachweise auflisten succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability certificate.list."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"certificate.list","x-required-scopes":["certificate:read"],"x-policy-checks":["workspace_membership","self_or_learning_admin"],"x-mcp-tool":"practice.certificates.list","x-mcp-resource-template":"practice://certificates"},"post":{"operationId":"issueLearningCertificate","summary":"Nachweis ausstellen","description":"Stellt nur für bestandene Zertifizierungsprogramme und – falls konfiguriert – nach abschließender Mentorprüfung einen Nachweis aus.","tags":["Certificates"],"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["workspaceId","enrollmentId","resultIds"],"properties":{"workspaceId":{"type":"string","format":"uuid"},"enrollmentId":{"type":"string","format":"uuid"},"resultIds":{"type":"array","uniqueItems":true,"items":{"type":"string","format":"uuid"}}}}}}},"responses":{"201":{"description":"Nachweis ausstellen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability certificate.issue."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"certificate.issue","x-required-scopes":["certificate:write"],"x-policy-checks":["workspace_membership","certification_mode","completion_evidence","passing_result","latest_passing_results","final_review_if_required","evidence_result_match"],"x-mcp-tool":"practice.certificates.issue"}},"/api/v1/certificates/{certificateId}":{"get":{"operationId":"getLearningCertificate","summary":"Nachweis lesen","description":"Liest Gültigkeit und Rezertifizierung eines berechtigten Nachweises.","tags":["Certificates"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"certificateId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Nachweis lesen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability certificate.read."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"certificate.read","x-required-scopes":["certificate:read"],"x-policy-checks":["workspace_membership","self_or_learning_admin"],"x-mcp-tool":"practice.certificates.read","x-mcp-resource-template":"practice://certificates/{certificateId}"}},"/api/v1/recertification-reminders":{"get":{"operationId":"listRecertificationReminders","summary":"Rezertifizierungen vormerken","description":"Listet zweckgebunden fällige und kommende Rezertifizierungen aus Nachweisgültigkeit und Erinnerungsfrist.","tags":["Qualifications"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"workspaceId","in":"query","required":false,"description":"Optional workspace filter; otherwise the first authorized workspace is used.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Rezertifizierungen vormerken succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability qualification.recertification_due."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"qualification.recertification_due","x-required-scopes":["certificate:read"],"x-policy-checks":["workspace_membership","self_or_learning_admin","certificate_validity","reminder_window"],"x-mcp-tool":"practice.qualifications.recertification_due","x-mcp-resource-template":"practice://recertification-reminders"}},"/api/v1/certificates/{certificateId}/revoke":{"post":{"operationId":"revokeLearningCertificate","summary":"Nachweis widerrufen","description":"Widerruft einen Nachweis begründet; der Datensatz bleibt auditierbar.","tags":["Certificates"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"certificateId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"},{"$ref":"#/components/parameters/IfMatch"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["expectedRevision","reason"],"properties":{"expectedRevision":{"type":"integer","minimum":1},"reason":{"type":"string","minLength":3,"maxLength":1000}}}}}},"responses":{"200":{"description":"Nachweis widerrufen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}},"ETag":{"$ref":"#/components/headers/ETag"}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability certificate.revoke."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"certificate.revoke","x-required-scopes":["certificate:write"],"x-policy-checks":["workspace_membership"],"x-mcp-tool":"practice.certificates.revoke"}},"/api/v1/mentor-review-queue":{"get":{"operationId":"listMentorReviewQueue","summary":"Mentorprüfungen auflisten","description":"Mentor:innen sehen offene oder eigene Prüfungen; Lernende ausschließlich eigene Prüfungen zur erneuten Einreichung.","tags":["Mentor Reviews"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"workspaceId","in":"query","required":false,"description":"Optional workspace filter; otherwise the first authorized workspace is used.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Mentorprüfungen auflisten succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability mentor.queue."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"mentor.queue","x-required-scopes":["mentor_review:read"],"x-policy-checks":["workspace_membership","learner_self_or_reviewer_queue"],"x-mcp-tool":"practice.mentor_reviews.queue","x-mcp-resource-template":"practice://mentor-review-queue"}},"/api/v1/mentor-review-queue/{reviewId}":{"get":{"operationId":"getMentorReview","summary":"Mentorprüfung lesen","description":"Liest die zweckgebundene formale Ergebnisprojektion und freigegebene Prüfungskommentare; Rohtranskripte bleiben ausgeschlossen.","tags":["Mentor Reviews"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"reviewId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Mentorprüfung lesen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability mentor.read."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"mentor.read","x-required-scopes":["mentor_review:read"],"x-policy-checks":["workspace_membership","review_assignment_or_self","comment_visibility"],"x-mcp-tool":"practice.mentor_reviews.read","x-mcp-resource-template":"practice://mentor-review-queue/{reviewId}"}},"/api/v1/mentor-review-queue/{reviewId}/claim":{"post":{"operationId":"claimMentorReview","summary":"Mentorprüfung übernehmen","description":"Weist eine offene Prüfung transaktionssicher einer fachlichen Mentorin oder einem fachlichen Mentor zu.","tags":["Mentor Reviews"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"reviewId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"},{"$ref":"#/components/parameters/IfMatch"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["expectedRevision"],"properties":{"expectedRevision":{"type":"integer","minimum":1}}}}}},"responses":{"200":{"description":"Mentorprüfung übernehmen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}},"ETag":{"$ref":"#/components/headers/ETag"}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability mentor.claim."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"mentor.claim","x-required-scopes":["mentor_review:write"],"x-policy-checks":["workspace_membership","review_unclaimed_or_self"],"x-mcp-tool":"practice.mentor_reviews.claim"}},"/api/v1/mentor-review-queue/{reviewId}/comments":{"post":{"operationId":"commentMentorReview","summary":"Prüfungskommentar hinzufügen","description":"Fügt einen unveränderlichen, sichtbarkeitsgebundenen Dialogbeitrag hinzu.","tags":["Mentor Reviews"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"reviewId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"},{"$ref":"#/components/parameters/IfMatch"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["expectedRevision","message","visibility"],"properties":{"expectedRevision":{"type":"integer","minimum":1},"message":{"type":"string","minLength":1,"maxLength":4000},"visibility":{"enum":["learner","reviewers"]},"evidenceRef":{"type":"string","minLength":1,"maxLength":1000},"timeOffsetMs":{"type":"integer","minimum":0}}}}}},"responses":{"200":{"description":"Prüfungskommentar hinzufügen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}},"ETag":{"$ref":"#/components/headers/ETag"}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability mentor.comment."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"mentor.comment","x-required-scopes":["mentor_review:comment"],"x-policy-checks":["workspace_membership","review_assignment_or_self","comment_visibility"],"x-mcp-tool":"practice.mentor_reviews.comment"}},"/api/v1/mentor-review-queue/{reviewId}/decision":{"post":{"operationId":"decideMentorReview","summary":"Mentorprüfung entscheiden","description":"Bestätigt final oder fordert mit Begründung eine neue Antwort an.","tags":["Mentor Reviews"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"reviewId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"},{"$ref":"#/components/parameters/IfMatch"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["expectedRevision","decision","reason"],"properties":{"expectedRevision":{"type":"integer","minimum":1},"decision":{"enum":["approved","changes_requested"]},"reason":{"type":"string","minLength":3},"correctedScorePercent":{"type":"number","minimum":0,"maximum":100}}}}}},"responses":{"200":{"description":"Mentorprüfung entscheiden succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}},"ETag":{"$ref":"#/components/headers/ETag"}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability mentor.decision."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"mentor.decision","x-required-scopes":["mentor_review:write"],"x-policy-checks":["workspace_membership","assigned_reviewer","reviewer_separation_of_duties","final_review_policy"],"x-mcp-tool":"practice.mentor_reviews.decision"}},"/api/v1/mentor-review-queue/{reviewId}/resubmit":{"post":{"operationId":"resubmitMentorReview","summary":"Überarbeitung erneut einreichen","description":"Lernende beantworten eine Änderungsanforderung; eine neue Prüfrunde wird revisionssicher geöffnet.","tags":["Mentor Reviews"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"reviewId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"},{"$ref":"#/components/parameters/IfMatch"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["expectedRevision","response"],"properties":{"expectedRevision":{"type":"integer","minimum":1},"response":{"type":"string","minLength":3},"evidenceRefs":{"type":"array","items":{"type":"string"}}}}}}},"responses":{"200":{"description":"Überarbeitung erneut einreichen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}},"ETag":{"$ref":"#/components/headers/ETag"}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability mentor.resubmit."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"mentor.resubmit","x-required-scopes":["mentor_review:comment"],"x-policy-checks":["workspace_membership","learner_self","changes_requested","new_review_round"],"x-mcp-tool":"practice.mentor_reviews.resubmit"}},"/api/v1/analytics/learning":{"get":{"operationId":"getLearningAnalytics","summary":"Lernübersicht aggregieren","description":"Liefert Content-, Qualitäts-, AI-, Kosten- und Wirkungskennzahlen; Lernerkohorten unter fünf werden serverseitig unterdrückt.","tags":["Learning Analytics"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"workspaceId","in":"query","required":false,"description":"Optional workspace filter; otherwise the first authorized workspace is used.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Lernübersicht aggregieren succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability analytics.overview."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"analytics.overview","x-required-scopes":["analytics:read"],"x-policy-checks":["workspace_membership","minimum_cohort_5","aggregate_only","no_low_performer_ranking","no_direct_identifiers","content_quality_ai_cost_impact_dimensions"],"x-mcp-tool":"practice.analytics.query","x-mcp-resource-template":"practice://analytics/learning"}},"/api/v1/analytics/learning/programs/{programId}":{"get":{"operationId":"getProgramLearningAnalytics","summary":"Programmauswertung aggregieren","description":"Liefert geschützte Programmkennzahlen ohne Personenlisten oder Rangfolgen.","tags":["Learning Analytics"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"programId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Programmauswertung aggregieren succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability analytics.program."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"analytics.program","x-required-scopes":["analytics:read"],"x-policy-checks":["workspace_membership","minimum_cohort_5","aggregate_only","no_low_performer_ranking","no_direct_identifiers"],"x-mcp-tool":"practice.analytics.learning.program","x-mcp-resource-template":"practice://analytics/learning/programs/{programId}"}},"/api/v1/exports":{"post":{"operationId":"createDeliveryExport","summary":"LMS-Export erzeugen","description":"Erzeugt ein unveränderliches SCORM-, xAPI- oder cmi5-Paket aus einer freigegebenen veröffentlichten Inhaltsversion.","tags":["External Delivery"],"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"Capability-specific delivery payload; validated by the shared application service."}}}},"responses":{"201":{"description":"LMS-Export erzeugen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability delivery.export_create."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"delivery.export_create","x-required-scopes":["delivery:write"],"x-policy-checks":["workspace_membership","published_release","release_hash_pin","export_format_policy"],"x-mcp-tool":"practice.delivery.exports.create"},"get":{"operationId":"listDeliveryExports","summary":"LMS-Exporte auflisten","description":"Listet Exporte im autorisierten Arbeitsbereich ohne Download-Geheimnisse.","tags":["External Delivery"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"workspaceId","in":"query","required":false,"description":"Optional workspace filter; otherwise the first authorized workspace is used.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"LMS-Exporte auflisten succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability delivery.export_list."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"delivery.export_list","x-required-scopes":["delivery:read"],"x-policy-checks":["workspace_membership","export_visibility"],"x-mcp-tool":"practice.delivery.exports.list","x-mcp-resource-template":"practice://delivery/exports"}},"/api/v1/exports/{exportId}":{"get":{"operationId":"getDeliveryExport","summary":"LMS-Export lesen","description":"Liest Metadaten und Integritätswerte eines Exports.","tags":["External Delivery"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"exportId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"LMS-Export lesen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability delivery.export_read."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"delivery.export_read","x-required-scopes":["delivery:read"],"x-policy-checks":["workspace_membership","export_visibility"],"x-mcp-tool":"practice.delivery.exports.get","x-mcp-resource-template":"practice://delivery/exports/{exportId}"}},"/api/v1/exports/{exportId}/download":{"get":{"operationId":"downloadDeliveryExport","summary":"LMS-Export herunterladen","description":"Liefert einen kurzlebigen, mandanten- und hashgebundenen Download-Deskriptor.","tags":["External Delivery"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"exportId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"LMS-Export herunterladen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability delivery.export_download."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"delivery.export_download","x-required-scopes":["delivery:read"],"x-policy-checks":["workspace_membership","export_visibility","download_integrity"],"x-mcp-tool":"practice.delivery.exports.download_descriptor"}},"/api/v1/xapi/statements":{"post":{"operationId":"enqueueDeliveryXapiStatement","summary":"xAPI-Statement einreihen","description":"Erzeugt ein datensparsames, signiertes xAPI-Statement aus versionsgebundenen Durchlaufdaten.","tags":["External Delivery"],"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"Capability-specific delivery payload; validated by the shared application service."}}}},"responses":{"202":{"description":"xAPI-Statement einreihen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability delivery.xapi_enqueue."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"delivery.xapi_enqueue","x-required-scopes":["delivery:write"],"x-policy-checks":["workspace_membership","self_or_assigned_review","result_release_pin","pseudonymous_actor","statement_allowlist"],"x-mcp-tool":"practice.delivery.xapi.enqueue"}},"/api/v1/xapi/outbox":{"get":{"operationId":"listDeliveryXapiOutbox","summary":"xAPI-Outbox lesen","description":"Listet den zustellbaren xAPI-Outboxstatus ohne Lerner-Ranglisten.","tags":["External Delivery"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"workspaceId","in":"query","required":false,"description":"Optional workspace filter; otherwise the first authorized workspace is used.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"xAPI-Outbox lesen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability delivery.xapi_outbox_list."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"delivery.xapi_outbox_list","x-required-scopes":["delivery:read"],"x-policy-checks":["workspace_membership","outbox_visibility"],"x-mcp-tool":"practice.delivery.xapi.list_outbox","x-mcp-resource-template":"practice://delivery/xapi/outbox"}},"/api/v1/xapi/outbox:dispatch":{"post":{"operationId":"dispatchDeliveryXapiOutbox","summary":"xAPI-Outbox zustellen","description":"Stellt fällige Statements wiederholbar zu und prüft Signatur und Zielrichtlinie.","tags":["External Delivery"],"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"Capability-specific delivery payload; validated by the shared application service."}}}},"responses":{"202":{"description":"xAPI-Outbox zustellen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability delivery.xapi_dispatch."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"delivery.xapi_dispatch","x-required-scopes":["delivery:write"],"x-policy-checks":["workspace_membership","destination_allowlist","signature_verification","retry_policy"],"x-mcp-tool":"practice.delivery.xapi.dispatch"}},"/api/v1/xapi/dead-letters/{outboxId}/replay":{"post":{"operationId":"replayDeliveryXapiDeadLetter","summary":"Fehlgeschlagenen xAPI-Versand erneut ausführen","description":"Plant einen endgültig fehlgeschlagenen Versand nach administrativer Prüfung kontrolliert erneut ein.","tags":["External Delivery"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"outboxId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"Capability-specific delivery payload; validated by the shared application service."}}}},"responses":{"202":{"description":"Fehlgeschlagenen xAPI-Versand erneut ausführen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability delivery.xapi_dead_letter_replay."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"delivery.xapi_dead_letter_replay","x-required-scopes":["delivery:write"],"x-policy-checks":["workspace_membership","dead_letter_state","destination_allowlist","retry_policy"],"x-mcp-tool":"practice.delivery.xapi.replay_dead_letter"}},"/api/v1/xapi/simulator/statements":{"get":{"operationId":"listDeliveryXapiSimulator","summary":"xAPI-Simulator lesen","description":"Liest lokal empfangene Teststatements für Integrationstests.","tags":["External Delivery"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"workspaceId","in":"query","required":false,"description":"Optional workspace filter; otherwise the first authorized workspace is used.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"xAPI-Simulator lesen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability delivery.xapi_simulator_read."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"delivery.xapi_simulator_read","x-required-scopes":["delivery:read"],"x-policy-checks":["workspace_membership","simulator_only","statement_visibility"],"x-mcp-tool":"practice.delivery.xapi.simulator_list","x-mcp-resource-template":"practice://delivery/xapi/profile"}},"/api/v1/webhook-deliveries":{"post":{"operationId":"sendDeliveryWebhook","summary":"Ergebnis-Webhook senden","description":"Sendet ein signiertes, minimiertes Ergebnisereignis an ein erlaubtes Ziel.","tags":["External Delivery"],"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"Capability-specific delivery payload; validated by the shared application service."}}}},"responses":{"202":{"description":"Ergebnis-Webhook senden succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability delivery.webhook_send."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"delivery.webhook_send","x-required-scopes":["delivery:write"],"x-policy-checks":["workspace_membership","result_release_pin","review_result_match","destination_allowlist","signature_required"],"x-mcp-tool":"practice.delivery.webhooks.send"}},"/api/v1/webhook-deliveries/{deliveryId}":{"get":{"operationId":"getDeliveryWebhook","summary":"Webhook-Zustellung lesen","description":"Liest Zustellstatus und Signaturmetadaten ohne Geheimnisse.","tags":["External Delivery"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"deliveryId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Webhook-Zustellung lesen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability delivery.webhook_read."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"delivery.webhook_read","x-required-scopes":["delivery:read"],"x-policy-checks":["workspace_membership","delivery_visibility"],"x-mcp-tool":"practice.delivery.webhooks.get","x-mcp-resource-template":"practice://delivery/webhooks/{deliveryId}"}},"/api/v1/webhook-receiver/events":{"get":{"operationId":"listDeliveryWebhookReceiver","summary":"Webhook-Testempfänger lesen","description":"Liest Ereignisse des lokalen signaturprüfenden Integrationstestempfängers.","tags":["External Delivery"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"workspaceId","in":"query","required":false,"description":"Optional workspace filter; otherwise the first authorized workspace is used.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Webhook-Testempfänger lesen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability delivery.webhook_receiver_read."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"delivery.webhook_receiver_read","x-required-scopes":["delivery:read"],"x-policy-checks":["workspace_membership","simulator_only","delivery_visibility"],"x-mcp-tool":"practice.delivery.webhooks.receiver_list"}},"/api/v1/commercial/plans":{"get":{"operationId":"listCommercialPlans","summary":"Tarife anzeigen","description":"Liest den stabilen öffentlichen Tarif- und Leistungsumfang.","tags":["Commercial Plans"],"security":[],"responses":{"200":{"description":"Tarife anzeigen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","additionalProperties":false,"required":["plans","versions"],"properties":{"plans":{"type":"array","items":{"type":"object"}},"versions":{"type":"array","items":{"$ref":"#/components/schemas/CommercialPlanVersion"}}}}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"commercial.plan_list","x-required-scopes":["commercial:read"],"x-policy-checks":["public_acquisition_gateway","active_plan_versions_only"],"x-mcp-tool":"practice.commercial.plans.list"}},"/api/v1/commercial/signup-intents":{"post":{"operationId":"createCommercialSignupIntent","summary":"Testzugang anfordern","description":"Legt nach Business-Domain-, Datenschutz- und Missbrauchsprüfung einen kurzlebigen Signup-Vorgang an.","tags":["Trial Onboarding"],"security":[],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSignupIntentInput"}}}},"responses":{"201":{"description":"Testzugang anfordern succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability trial.signup_create."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"trial.signup_create","x-required-scopes":["commercial:signup"],"x-policy-checks":["public_acquisition_gateway","business_email","terms_acceptance","rate_limit","no_email_enumeration"],"x-mcp-tool":"practice.commercial.signup.create"}},"/api/v1/commercial/signup-intents/{signupIntentId}/verify":{"post":{"operationId":"verifyCommercialSignupIntent","summary":"Geschäftliche E-Mail bestätigen","description":"Prüft den kurzlebigen Magic-Code begrenzt und gibt einmalig einen gehashten Provisionierungsnachweis aus.","tags":["Trial Onboarding"],"security":[],"parameters":[{"name":"signupIntentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifySignupIntentInput"}}}},"responses":{"200":{"description":"Geschäftliche E-Mail bestätigen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability trial.signup_verify."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"trial.signup_verify","x-required-scopes":["commercial:signup"],"x-policy-checks":["public_acquisition_gateway","code_possession","attempt_limit","proof_hash_only"],"x-mcp-tool":"practice.commercial.signup.verify"}},"/api/v1/commercial/signup-intents/{signupIntentId}/provision":{"post":{"operationId":"provisionCommercialTrial","summary":"Testmandant bereitstellen","description":"Reserviert die bestätigte Unternehmensdomain und stellt Mandant, Arbeitsbereich, Testzugang, Leistungsrechte und Startguthaben in derselben wiederholungssicheren Transaktion bereit.","tags":["Trial Onboarding"],"security":[],"parameters":[{"name":"signupIntentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProvisionTrialInput"}}}},"responses":{"201":{"description":"Testmandant bereitstellen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/ProvisionedTrial"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"trial.provision","x-required-scopes":["commercial:signup"],"x-policy-checks":["public_acquisition_gateway","provisioning_proof","verified_intent","global_canonical_domain_claim","atomic_tenant_provisioning"],"x-mcp-tool":"practice.commercial.trials.provision"}},"/api/v1/commercial/domain-access-requests":{"post":{"operationId":"requestCommercialDomainAccess","summary":"Einladung zum Unternehmenszugang anfordern","description":"Erfasst nach E-Mail-Besitznachweis und ausdrücklicher menschlicher Bestätigung eine rate-limitierte Zugriffsanfrage, ohne bestehende Mandanten- oder Administratoridentitäten offenzulegen.","tags":["Trial Onboarding"],"security":[],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestDomainAccessInput"}}}},"responses":{"202":{"description":"Einladung zum Unternehmenszugang anfordern succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/DomainAccessRequest"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"trial.domain_access_request","x-required-scopes":["commercial:signup"],"x-policy-checks":["public_acquisition_gateway","provisioning_proof","human_confirmation","claimed_domain_only","rate_limit","no_tenant_enumeration"],"x-mcp-tool":"practice.commercial.domain_access.request"}},"/api/v1/commercial/trial-activations:exchange":{"post":{"operationId":"exchangeCommercialTrialActivation","summary":"Testsitzung aktivieren","description":"Verbraucht einen kurzlebigen signierten Aktivierungsnachweis genau einmal und übergibt eine begrenzte Berechtigung an die serverseitige Sitzung.","tags":["Trial Onboarding"],"security":[],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrialActivationInput"}}}},"responses":{"200":{"description":"Testsitzung aktivieren succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/TrialActivationGrant"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"trial.activation_exchange","x-required-scopes":["commercial:signup"],"x-policy-checks":["public_acquisition_gateway","signed_activation_proof","single_use","short_expiry","server_side_session_only"],"x-mcp-tool":"practice.commercial.trials.activation.exchange"}},"/api/v1/billing/checkout-sessions":{"post":{"operationId":"createCommercialCheckoutSession","summary":"Bestellvorgang starten","description":"Erzeugt im sicheren Testmodus eine an Mandant und Paketversion gebundene Sitzung für den Bestellvorgang.","tags":["Billing & AI Costs"],"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCheckoutSessionInput"}}}},"responses":{"201":{"description":"Bestellvorgang starten succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/CheckoutSession"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"billing.checkout_create","x-required-scopes":["billing:write"],"x-policy-checks":["tenant_billing_boundary","self_service_plan","seat_limit","return_url_allowlist"],"x-mcp-tool":"practice.billing.checkout.create"}},"/api/v1/billing/checkout-sessions/{checkoutSessionId}/return":{"post":{"operationId":"acknowledgeCommercialCheckoutReturn","summary":"Rückkehr aus dem Bestellvorgang bestätigen","description":"Bestätigt nur die Rückkehr des Browsers; als Zahlungsnachweis gilt ausschließlich die signierte Mitteilung des Zahlungsdienstleisters.","tags":["Billing & AI Costs"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"checkoutSessionId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutReturnInput"}}}},"responses":{"200":{"description":"Rückkehr aus dem Bestellvorgang bestätigen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability billing.checkout_return."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"billing.checkout_return","x-required-scopes":["billing:write"],"x-policy-checks":["tenant_billing_boundary","return_state_possession","never_payment_evidence"],"x-mcp-tool":"practice.billing.checkout.return"}},"/api/v1/billing/subscription":{"get":{"operationId":"getCommercialSubscription","summary":"Abo und Leistungsrechte anzeigen","description":"Liest den aktuellen, webhookbestätigten Abo- und Entitlement-Stand des Mandanten.","tags":["Billing & AI Costs"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Abo und Leistungsrechte anzeigen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"anyOf":[{"$ref":"#/components/schemas/CommercialSubscription"},{"type":"null"}]}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"billing.subscription_read","x-required-scopes":["billing:read"],"x-policy-checks":["tenant_billing_boundary","provider_references_redacted"],"x-mcp-tool":"practice.billing.subscription.get"}},"/api/v1/billing/portal-descriptor":{"get":{"operationId":"getCommercialBillingPortalDescriptor","summary":"Abrechnungsverwaltung anzeigen","description":"Liefert einen geheimnisfreien lokalen Portal-Deskriptor und erlaubte Aktionen.","tags":["Billing & AI Costs"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Abrechnungsverwaltung anzeigen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability billing.portal_read."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"billing.portal_read","x-required-scopes":["billing:read"],"x-policy-checks":["tenant_billing_boundary","test_mode_descriptor","provider_references_redacted"],"x-mcp-tool":"practice.billing.portal.get"}},"/api/v1/billing/credits":{"get":{"operationId":"getCommercialCredits","summary":"KI-Guthaben anzeigen","description":"Liest Saldo und append-only Guthabenbewegungen in Cent.","tags":["Billing & AI Costs"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"KI-Guthaben anzeigen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability billing.credit_read."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"billing.credit_read","x-required-scopes":["billing:read"],"x-policy-checks":["tenant_billing_boundary","append_only_ledger"],"x-mcp-tool":"practice.billing.credits.get"}},"/api/v1/billing/usage":{"get":{"operationId":"listCommercialUsage","summary":"KI-Kosten anzeigen","description":"Listet Einkaufspreis, Aufschlag und Kundenpreis je Anbieterleistung transparent.","tags":["Billing & AI Costs"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"KI-Kosten anzeigen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ProviderUsageEntry"}}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"billing.usage_list","x-required-scopes":["billing:read"],"x-policy-checks":["tenant_billing_boundary","transparent_cost_breakdown"],"x-mcp-tool":"practice.billing.usage.list"},"post":{"operationId":"recordCommercialUsage","summary":"KI-Nutzung verbuchen","description":"Verbucht Anbieterkosten unveränderlich; ein negativer Saldo ist ohne gültige ausdrückliche Zustimmung ausgeschlossen.","tags":["Billing & AI Costs"],"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecordProviderUsageInput"}}}},"responses":{"201":{"description":"KI-Nutzung verbuchen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/ProviderUsageEntry"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"billing.usage_record","x-required-scopes":["billing:usage:write"],"x-policy-checks":["tenant_billing_boundary","trusted_usage_writer","cost_arithmetic","credit_or_active_overage_consent"],"x-mcp-tool":"practice.billing.usage.record"}},"/api/v1/billing/overage-consents":{"post":{"operationId":"grantCommercialOverageConsent","summary":"Kostenüberschreitung zustimmen","description":"Erfasst eine befristete und betragsbegrenzte menschliche Zustimmung zu Mehrkosten.","tags":["Billing & AI Costs"],"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrantOverageConsentInput"}}}},"responses":{"201":{"description":"Kostenüberschreitung zustimmen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/OverageConsent"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"billing.overage_grant","x-required-scopes":["billing:write"],"x-policy-checks":["tenant_billing_boundary","human_actor","explicit_terms","bounded_amount","expiry_required"],"x-mcp-tool":"practice.billing.overage.grant"}},"/api/v1/billing/payment-webhooks/{provider}":{"post":{"operationId":"receiveCommercialPaymentWebhook","summary":"Signiertes Zahlungsereignis empfangen","description":"Verarbeitet ausschließlich zeitgebundene, HMAC-signierte Rohereignisse, erkennt bereits verarbeitete Ereigniskennungen und ignoriert veraltete Zustände.","tags":["Billing & AI Costs"],"security":[],"parameters":[{"name":"provider","in":"path","required":true,"schema":{"type":"string","minLength":1}},{"$ref":"#/components/parameters/PaymentWebhookSignature"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentWebhookEnvelope"}}}},"responses":{"200":{"description":"Signiertes Zahlungsereignis empfangen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability billing.payment_webhook_receive."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"billing.payment_webhook_receive","x-required-scopes":["billing:webhook"],"x-policy-checks":["public_acquisition_gateway","exact_raw_body","hmac_signature","signature_timestamp","event_id_dedupe","stale_event_guard","checkout_return_not_evidence"],"x-mcp-tool":"practice.billing.webhooks.receive_signed","x-idempotency-source":"signed_event_id"}},"/api/v1/directory/test-users":{"get":{"operationId":"listTrialTestUsers","summary":"Testteam anzeigen","description":"Listet ausschließlich synthetische Testpersonen, die aktuelle Sitzbelegung und den Status des vorbereiteten Evaluations-Lernprogramms im eigenen aktiven Testzugang.","tags":["Trial Onboarding"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"workspaceId","in":"query","required":true,"description":"Authorized workspace whose scoped records are requested.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Testteam anzeigen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","meta","page"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/TrialTestUser"}},"meta":{"type":"object","additionalProperties":false,"required":["seatUsage"],"properties":{"seatUsage":{"$ref":"#/components/schemas/TrialSeatUsage"},"evaluationPack":{"$ref":"#/components/schemas/TrialEvaluationPack"}}},"page":{"type":"object","additionalProperties":false,"required":["hasMore"],"properties":{"hasMore":{"const":false}}}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"trial.test_user_list","x-required-scopes":["workspace:write"],"x-policy-checks":["workspace_membership","active_trial_required","own_trial_workspace_only","synthetic_identity_only","seat_usage_projection","evaluation_pack_projection"],"x-mcp-tool":"practice.trial.test_users.list","x-mcp-resource-template":"practice://trial/workspaces/{workspaceId}/test-users"},"post":{"operationId":"createTrialTestUser","summary":"Testperson anlegen","description":"Legt eine nicht zustellbare, klar synthetische Testidentität mit einer sicheren Trial-Rolle an und versendet keine Einladung. Lernendenkonten werden der Evaluationszielgruppe zugeordnet; die Zuweisung bleibt bis zur menschlichen Freigabe inaktiv.","tags":["Trial Onboarding"],"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTrialTestUserInput"}}}},"responses":{"201":{"description":"Testperson anlegen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}},"ETag":{"$ref":"#/components/headers/ETag"},"Location":{"description":"Canonical URL of the created synthetic trial test user.","schema":{"type":"string","format":"uri-reference"}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/TrialTestUser"},"meta":{"type":"object","additionalProperties":false,"required":["seatUsage"],"properties":{"seatUsage":{"$ref":"#/components/schemas/TrialSeatUsage"},"evaluationPack":{"$ref":"#/components/schemas/TrialEvaluationPack"}}}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"trial.test_user_create","x-required-scopes":["workspace:write"],"x-policy-checks":["workspace_membership","active_trial_required","own_trial_workspace_only","synthetic_identity_only","safe_role_allowlist","trial_seat_limit","no_delivery","evaluation_audience_sync","no_automatic_assignment_activation"],"x-mcp-tool":"practice.trial.test_users.create"}},"/api/v1/directory/test-users/{testUserId}":{"patch":{"operationId":"updateTrialTestUser","summary":"Testperson ändern","description":"Ändert Rolle oder Aktivstatus einer synthetischen Testperson revisionssicher und gleicht aktive Lernendenkonten mit der Evaluationszielgruppe ab, ohne eine Zuweisung automatisch freizugeben.","tags":["Trial Onboarding"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"testUserId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"},{"$ref":"#/components/parameters/IfMatch"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTrialTestUserInput"}}}},"responses":{"200":{"description":"Testperson ändern succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}},"ETag":{"$ref":"#/components/headers/ETag"}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/TrialTestUser"},"meta":{"type":"object","additionalProperties":false,"required":["seatUsage"],"properties":{"seatUsage":{"$ref":"#/components/schemas/TrialSeatUsage"},"evaluationPack":{"$ref":"#/components/schemas/TrialEvaluationPack"}}}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"trial.test_user_update","x-required-scopes":["workspace:write"],"x-policy-checks":["workspace_membership","active_trial_required","own_trial_workspace_only","synthetic_identity_only","safe_role_allowlist","trial_seat_limit","immutable_trial_scope","evaluation_audience_sync","no_automatic_assignment_activation"],"x-mcp-tool":"practice.trial.test_users.update"}},"/api/v1/directory/evaluation-pack:approve":{"post":{"operationId":"approveTrialEvaluationPack","summary":"Referenzinhalt fachlich freigeben","description":"Bindet die ausdrückliche Entscheidung einer authentifizierten Person an die geprüfte Inhaltsrevision, veröffentlicht daraus das Referenz-Lernprogramm und bereitet eine weiterhin separat freizugebende Zuweisung vor.","tags":["Trial Onboarding"],"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApproveTrialEvaluationPackInput"}}}},"responses":{"200":{"description":"Referenzinhalt fachlich freigeben succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/TrialEvaluationPack"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"trial.evaluation_pack_approve","x-required-scopes":["workspace:write"],"x-policy-checks":["workspace_membership","active_trial_required","own_trial_workspace_only","human_actor","explicit_confirmation","reviewer_separation_of_duties","review_revision_binding","release_hash_pin","no_automatic_assignment_activation"],"x-mcp-tool":"practice.trial.evaluation_pack.approve"}},"/api/v1/website-onboarding/domain-confirmations":{"post":{"operationId":"confirmWebsiteOnboardingDomain","summary":"Geschäftsdomain bestätigen","description":"Bindet eine kanonische Geschäftsdomain an den Mandanten, bevor eine Website verarbeitet werden darf.","tags":["Website Onboarding"],"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfirmBusinessDomainInput"}}}},"responses":{"201":{"description":"Geschäftsdomain bestätigen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability onboarding.domain_confirm."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"onboarding.domain_confirm","x-required-scopes":["onboarding:write"],"x-policy-checks":["workspace_membership","human_actor","business_domain_evidence","public_domain_only"],"x-mcp-tool":"practice.onboarding.domains.confirm"},"get":{"operationId":"listWebsiteOnboardingDomains","summary":"Geschäftsdomains auflisten","description":"Listet bestätigte Geschäftsdomains des autorisierten Arbeitsbereichs.","tags":["Website Onboarding"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"workspaceId","in":"query","required":true,"description":"Authorized workspace whose scoped records are requested.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Geschäftsdomains auflisten succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability onboarding.domain_list."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"onboarding.domain_list","x-required-scopes":["onboarding:read"],"x-policy-checks":["workspace_membership","domain_visibility"],"x-mcp-tool":"practice.onboarding.domains.list","x-mcp-resource-template":"practice://onboarding/domains"}},"/api/v1/website-onboarding/domain-confirmations/{domainConfirmationId}":{"get":{"operationId":"getWebsiteOnboardingDomain","summary":"Geschäftsdomain lesen","description":"Liest den bestätigten Domainnachweis des autorisierten Arbeitsbereichs.","tags":["Website Onboarding"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"domainConfirmationId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"workspaceId","in":"query","required":true,"description":"Authorized workspace whose scoped records are requested.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Geschäftsdomain lesen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability onboarding.domain_read."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"onboarding.domain_read","x-required-scopes":["onboarding:read"],"x-policy-checks":["workspace_membership","domain_visibility"],"x-mcp-tool":"practice.onboarding.domains.get","x-mcp-resource-template":"practice://onboarding/domains/{domainConfirmationId}"}},"/api/v1/website-onboarding/crawl-consents":{"post":{"operationId":"grantWebsiteCrawlConsent","summary":"Website-Analyse erlauben","description":"Dokumentiert eine versionierte, enge Crawl-Erlaubnis für die bestätigte Geschäftsdomain.","tags":["Website Onboarding"],"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrantCrawlConsentInput"}}}},"responses":{"201":{"description":"Website-Analyse erlauben succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability onboarding.consent_grant."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"onboarding.consent_grant","x-required-scopes":["onboarding:write"],"x-policy-checks":["workspace_membership","human_actor","confirmed_business_domain","explicit_crawl_consent","ssrf_policy"],"x-mcp-tool":"practice.onboarding.crawl_consents.grant"},"get":{"operationId":"listWebsiteCrawlConsents","summary":"Website-Erlaubnisse auflisten","description":"Listet die unveränderliche Erteilungs- und Widerrufshistorie.","tags":["Website Onboarding"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"workspaceId","in":"query","required":true,"description":"Authorized workspace whose scoped records are requested.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Website-Erlaubnisse auflisten succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability onboarding.consent_list."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"onboarding.consent_list","x-required-scopes":["onboarding:read"],"x-policy-checks":["workspace_membership","consent_visibility"],"x-mcp-tool":"practice.onboarding.crawl_consents.list","x-mcp-resource-template":"practice://onboarding/crawl-consents"}},"/api/v1/website-onboarding/crawl-consents/{consentId}":{"get":{"operationId":"getWebsiteCrawlConsent","summary":"Website-Erlaubnis lesen","description":"Liest eine einzelne unveränderliche Erteilungs- oder Widerrufsversion.","tags":["Website Onboarding"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"consentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"workspaceId","in":"query","required":true,"description":"Authorized workspace whose scoped records are requested.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Website-Erlaubnis lesen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability onboarding.consent_read."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"onboarding.consent_read","x-required-scopes":["onboarding:read"],"x-policy-checks":["workspace_membership","consent_visibility"],"x-mcp-tool":"practice.onboarding.crawl_consents.get","x-mcp-resource-template":"practice://onboarding/crawl-consents/{consentId}"}},"/api/v1/website-onboarding/crawl-consents/{consentId}:revoke":{"post":{"operationId":"revokeWebsiteCrawlConsent","summary":"Website-Erlaubnis widerrufen","description":"Widerruft eine aktive Crawl-Erlaubnis und invalidiert alle daraus abgeleiteten Fakten und Vorschläge.","tags":["Website Onboarding"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"consentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RevokeCrawlConsentInput"}}}},"responses":{"200":{"description":"Website-Erlaubnis widerrufen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability onboarding.consent_revoke."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"onboarding.consent_revoke","x-required-scopes":["onboarding:write"],"x-policy-checks":["workspace_membership","human_actor","active_consent","derived_artifact_invalidation"],"x-mcp-tool":"practice.onboarding.crawl_consents.revoke"}},"/api/v1/website-onboarding/analyses":{"post":{"operationId":"runWebsiteOnboardingAnalysis","summary":"Übungsvorschläge erzeugen","description":"Analysiert freigegebene Website-Inhalte in einer abgeschotteten Umgebung ohne ausgehende Datenübertragung und erzeugt sechs Vorschläge; Entwürfe entstehen erst nach einer menschlichen Auswahl.","tags":["Website Onboarding"],"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunWebsiteAnalysisInput"}}}},"responses":{"201":{"description":"Übungsvorschläge erzeugen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/WebsiteOnboardingAnalysis"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"onboarding.analysis_run","x-required-scopes":["onboarding:write"],"x-policy-checks":["workspace_membership","active_crawl_consent","ssrf_policy","no_egress_analyzer","untrusted_source_isolation","unpublished_output_only"],"x-mcp-tool":"practice.onboarding.analyses.run"}},"/api/v1/website-onboarding/analyses/{analysisId}":{"get":{"operationId":"getWebsiteOnboardingAnalysis","summary":"Website-Analyse lesen","description":"Liest belegte Unternehmensangaben, den Profilvorschlag und die Übungsvorschläge einschließlich eines möglichen Widerrufsstatus.","tags":["Website Onboarding"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"analysisId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"workspaceId","in":"query","required":true,"description":"Authorized workspace whose scoped records are requested.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Website-Analyse lesen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/WebsiteOnboardingAnalysis"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"onboarding.analysis_read","x-required-scopes":["onboarding:read"],"x-policy-checks":["workspace_membership","analysis_visibility","consent_state_projection"],"x-mcp-tool":"practice.onboarding.analyses.get","x-mcp-resource-template":"practice://onboarding/analyses/{analysisId}"}},"/api/v1/website-onboarding/analyses/{analysisId}/starter-drafts":{"post":{"operationId":"selectWebsiteStarterCandidates","summary":"Übungsvorschläge auswählen","description":"Übernimmt die bewusste menschliche Auswahl von ein bis drei Vorschlägen als spielbare, unveröffentlichte Übungsentwürfe.","tags":["Website Onboarding"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"analysisId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SelectStarterCandidatesInput"}}}},"responses":{"201":{"description":"Übungsvorschläge auswählen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability onboarding.starters_select."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"onboarding.starters_select","x-required-scopes":["onboarding:write"],"x-policy-checks":["workspace_membership","human_actor","active_crawl_consent","candidate_analysis_pin","starter_limit_three","unpublished_output_only"],"x-mcp-tool":"practice.onboarding.analyses.select_starters"}},"/api/v1/website-onboarding/company-profiles/{profileId}:confirm":{"post":{"operationId":"confirmWebsiteCompanyProfile","summary":"Unternehmensprofil bestätigen","description":"Korrigiert bei Bedarf ausschließlich sichtbare Profilfelder und bestätigt den Vorschlag für das Unternehmensprofil revisionssicher durch einen Menschen.","tags":["Website Onboarding"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"profileId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"},{"$ref":"#/components/parameters/IfMatch"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfirmCompanyProfileInput"}}}},"responses":{"200":{"description":"Unternehmensprofil bestätigen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}},"ETag":{"$ref":"#/components/headers/ETag"}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability onboarding.profile_confirm."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"onboarding.profile_confirm","x-required-scopes":["onboarding:write"],"x-policy-checks":["workspace_membership","human_actor","active_crawl_consent","profile_revision","fact_provenance","visible_corrections_only"],"x-mcp-tool":"practice.onboarding.company_profiles.confirm"}},"/api/v1/governance/overview":{"get":{"operationId":"getGovernanceOverview","summary":"Freigabeakte anzeigen","description":"Zeigt Zwecke, Richtlinien, offene Freigaben und Betroffenenanfragen des Arbeitsbereichs ohne Beschäftigtenrohdaten.","tags":["Governance & Co-Determination"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"workspaceId","in":"query","required":true,"description":"Authorized workspace whose scoped records are requested.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Freigabeakte anzeigen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/GovernanceOverview"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"governance.overview","x-required-scopes":["workspace:read"],"x-policy-checks":["workspace_membership","purpose_before_data","no_employee_surveillance","aggregate_only"],"x-mcp-tool":"practice.governance.overview","x-mcp-resource-template":"practice://governance/workspaces/{workspaceId}/overview"}},"/api/v1/processing-purposes":{"get":{"operationId":"listProcessingPurposes","summary":"Verarbeitungszwecke anzeigen","description":"Listet dokumentierte Verarbeitungszwecke und deren Status.","tags":["Governance & Co-Determination"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"workspaceId","in":"query","required":true,"description":"Authorized workspace whose scoped records are requested.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Verarbeitungszwecke anzeigen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","page"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ProcessingPurpose"}},"page":{"type":"object","additionalProperties":false,"required":["hasMore"],"properties":{"hasMore":{"const":false}}}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"governance.processing_purpose_list","x-required-scopes":["workspace:read"],"x-policy-checks":["workspace_membership","purpose_before_data","no_employee_surveillance"],"x-mcp-tool":"practice.governance.purposes.list","x-mcp-resource-template":"practice://governance/workspaces/{workspaceId}/purposes"},"post":{"operationId":"createProcessingPurpose","summary":"Verarbeitungszweck anlegen","description":"Dokumentiert Zweck, Datenkategorien, Empfänger, Aufbewahrung und kundenseitige Rechtsgrundlagenentscheidung.","tags":["Governance & Co-Determination"],"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProcessingPurposeInput"}}}},"responses":{"201":{"description":"Verarbeitungszweck anlegen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/ProcessingPurpose"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"governance.processing_purpose_create","x-required-scopes":["workspace:write"],"x-policy-checks":["workspace_membership","purpose_before_data","no_employee_surveillance","employment_decision_default_denied"],"x-mcp-tool":"practice.governance.purposes.create"}},"/api/v1/processing-purposes/{purposeId}":{"get":{"operationId":"getProcessingPurpose","summary":"Verarbeitungszweck öffnen","description":"Liest einen dokumentierten Zweck revisionsgenau.","tags":["Governance & Co-Determination"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"purposeId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Verarbeitungszweck öffnen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/ProcessingPurpose"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"governance.processing_purpose_read","x-required-scopes":["workspace:read"],"x-policy-checks":["workspace_membership","purpose_before_data","no_employee_surveillance"],"x-mcp-tool":"practice.governance.purposes.get","x-mcp-resource-template":"practice://governance/purposes/{purposeId}"},"patch":{"operationId":"updateProcessingPurpose","summary":"Verarbeitungszweck ändern","description":"Ändert einen Zweck revisionssicher und verlangt einen nachvollziehbaren Änderungsgrund.","tags":["Governance & Co-Determination"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"purposeId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"},{"$ref":"#/components/parameters/IfMatch"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProcessingPurposeInput"}}}},"responses":{"200":{"description":"Verarbeitungszweck ändern succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}},"ETag":{"$ref":"#/components/headers/ETag"}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/ProcessingPurpose"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"governance.processing_purpose_update","x-required-scopes":["workspace:write"],"x-policy-checks":["workspace_membership","purpose_before_data","no_employee_surveillance","reassessment_on_material_change"],"x-mcp-tool":"practice.governance.purposes.update"}},"/api/v1/governance-policies":{"get":{"operationId":"listGovernancePolicies","summary":"Governance-Richtlinien anzeigen","description":"Listet Richtlinien und ihren Freigabestand, nicht individuelle Lernerdaten.","tags":["Governance & Co-Determination"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"workspaceId","in":"query","required":true,"description":"Authorized workspace whose scoped records are requested.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Governance-Richtlinien anzeigen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","page"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/GovernancePolicy"}},"page":{"type":"object","additionalProperties":false,"required":["hasMore"],"properties":{"hasMore":{"const":false}}}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"governance.policy_list","x-required-scopes":["workspace:read"],"x-policy-checks":["workspace_membership","purpose_before_data","no_employee_surveillance"],"x-mcp-tool":"practice.governance.policies.list","x-mcp-resource-template":"practice://governance/workspaces/{workspaceId}/policies"},"post":{"operationId":"createGovernancePolicy","summary":"Governance-Richtlinie anlegen","description":"Erstellt eine versionierte Richtlinie mit verpflichtenden Prüfrollen.","tags":["Governance & Co-Determination"],"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateGovernancePolicyInput"}}}},"responses":{"201":{"description":"Governance-Richtlinie anlegen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/GovernancePolicy"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"governance.policy_create","x-required-scopes":["workspace:write"],"x-policy-checks":["workspace_membership","purpose_before_data","no_employee_surveillance","immutable_policy_version","no_surveillance_defaults"],"x-mcp-tool":"practice.governance.policies.create"}},"/api/v1/governance-policies/{policyId}":{"get":{"operationId":"getGovernancePolicy","summary":"Governance-Richtlinie öffnen","description":"Liest die aktuelle und freigegebene Version einer Richtlinie.","tags":["Governance & Co-Determination"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"policyId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Governance-Richtlinie öffnen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/GovernancePolicy"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"governance.policy_read","x-required-scopes":["workspace:read"],"x-policy-checks":["workspace_membership","purpose_before_data","no_employee_surveillance"],"x-mcp-tool":"practice.governance.policies.get","x-mcp-resource-template":"practice://governance/policies/{policyId}"},"patch":{"operationId":"updateGovernancePolicy","summary":"Governance-Richtlinie ändern","description":"Erzeugt für jede Änderung eine unveränderliche neue Richtlinienversion und setzt erforderliche Prüfungen zurück.","tags":["Governance & Co-Determination"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"policyId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"},{"$ref":"#/components/parameters/IfMatch"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateGovernancePolicyInput"}}}},"responses":{"200":{"description":"Governance-Richtlinie ändern succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}},"ETag":{"$ref":"#/components/headers/ETag"}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/GovernancePolicy"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"governance.policy_update","x-required-scopes":["workspace:write"],"x-policy-checks":["workspace_membership","purpose_before_data","no_employee_surveillance","immutable_policy_version","reassessment_on_material_change"],"x-mcp-tool":"practice.governance.policies.update"}},"/api/v1/governance-approvals":{"get":{"operationId":"listGovernanceApprovals","summary":"Governance-Freigaben anzeigen","description":"Listet Freigaben für exakte Richtlinienversionen.","tags":["Governance & Co-Determination"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"workspaceId","in":"query","required":true,"description":"Authorized workspace whose scoped records are requested.","schema":{"type":"string","format":"uuid"}},{"name":"policyId","in":"query","required":false,"description":"Optional exact policy filter.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Governance-Freigaben anzeigen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","page"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/GovernanceApproval"}},"page":{"type":"object","additionalProperties":false,"required":["hasMore"],"properties":{"hasMore":{"const":false}}}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"governance.approval_list","x-required-scopes":["workspace:read"],"x-policy-checks":["workspace_membership","purpose_before_data","no_employee_surveillance","policy_version_binding"],"x-mcp-tool":"practice.governance.approvals.list","x-mcp-resource-template":"practice://governance/workspaces/{workspaceId}/approvals"},"post":{"operationId":"requestGovernanceApproval","summary":"Governance-Freigabe anfordern","description":"Fordert eine menschliche Datenschutz- oder Betriebsratsprüfung für eine unveränderliche Richtlinienversion an.","tags":["Governance & Co-Determination"],"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestGovernanceApprovalInput"}}}},"responses":{"201":{"description":"Governance-Freigabe anfordern succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/GovernanceApproval"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"governance.approval_request","x-required-scopes":["workspace:write"],"x-policy-checks":["workspace_membership","purpose_before_data","no_employee_surveillance","policy_version_binding","separation_of_duties"],"x-mcp-tool":"practice.governance.approvals.request"}},"/api/v1/governance-approvals/{approvalId}":{"patch":{"operationId":"decideGovernanceApproval","summary":"Governance-Freigabe entscheiden","description":"Erfasst die persönliche Entscheidung der angeforderten Prüfrolle; Selbstfreigabe ist ausgeschlossen.","tags":["Governance & Co-Determination"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"approvalId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"},{"$ref":"#/components/parameters/IfMatch"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DecideGovernanceApprovalInput"}}}},"responses":{"200":{"description":"Governance-Freigabe entscheiden succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}},"ETag":{"$ref":"#/components/headers/ETag"}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/GovernanceApproval"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"governance.approval_decide","x-required-scopes":["experience:review"],"x-policy-checks":["workspace_membership","purpose_before_data","no_employee_surveillance","human_actor","reviewer_role_match","no_self_approval","policy_version_binding"],"x-mcp-tool":"practice.governance.approvals.decide"}},"/api/v1/data-subject-requests":{"get":{"operationId":"listDataSubjectRequests","summary":"Betroffenenanfragen anzeigen","description":"Lernende sehen nur eigene, Datenschutzrollen die mandantenweit zulässigen Anfragen.","tags":["Data Subject Rights"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"workspaceId","in":"query","required":true,"description":"Authorized workspace whose scoped records are requested.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Betroffenenanfragen anzeigen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","page"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/DataSubjectRequest"}},"page":{"type":"object","additionalProperties":false,"required":["hasMore"],"properties":{"hasMore":{"const":false}}}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"privacy.data_subject_request_list","x-required-scopes":["workspace:read"],"x-policy-checks":["workspace_membership","purpose_before_data","no_employee_surveillance","subject_self_or_privacy_reviewer","field_minimization"],"x-mcp-tool":"practice.privacy.requests.list","x-mcp-resource-template":"practice://privacy/workspaces/{workspaceId}/requests"},"post":{"operationId":"createDataSubjectRequest","summary":"Betroffenenanfrage anlegen","description":"Legt eine Auskunfts-, Berichtigungs-, Lösch-, Einschränkungs-, Portabilitäts- oder Einspruchsanfrage an.","tags":["Data Subject Rights"],"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDataSubjectRequestInput"}}}},"responses":{"201":{"description":"Betroffenenanfrage anlegen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/DataSubjectRequest"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"privacy.data_subject_request_create","x-required-scopes":["workspace:read"],"x-policy-checks":["workspace_membership","purpose_before_data","no_employee_surveillance","subject_self_or_privacy_reviewer","identity_verification_required"],"x-mcp-tool":"practice.privacy.requests.create"}},"/api/v1/data-subject-requests/{requestId}":{"get":{"operationId":"getDataSubjectRequest","summary":"Betroffenenanfrage öffnen","description":"Liest eine Anfrage unter strikter Selbst- oder Datenschutzrollensicht.","tags":["Data Subject Rights"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"requestId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Betroffenenanfrage öffnen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/DataSubjectRequest"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"privacy.data_subject_request_read","x-required-scopes":["workspace:read"],"x-policy-checks":["workspace_membership","purpose_before_data","no_employee_surveillance","subject_self_or_privacy_reviewer","field_minimization"],"x-mcp-tool":"practice.privacy.requests.get","x-mcp-resource-template":"practice://privacy/requests/{requestId}"},"patch":{"operationId":"updateDataSubjectRequest","summary":"Betroffenenanfrage bearbeiten","description":"Dokumentiert Identitätsprüfung, Bearbeitung und Abschluss revisionssicher.","tags":["Data Subject Rights"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"requestId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"},{"$ref":"#/components/parameters/IfMatch"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDataSubjectRequestInput"}}}},"responses":{"200":{"description":"Betroffenenanfrage bearbeiten succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}},"ETag":{"$ref":"#/components/headers/ETag"}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/DataSubjectRequest"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"privacy.data_subject_request_update","x-required-scopes":["experience:review"],"x-policy-checks":["workspace_membership","purpose_before_data","no_employee_surveillance","human_actor","legal_hold","derived_data_scope","backup_tombstone"],"x-mcp-tool":"practice.privacy.requests.update"}},"/api/v1/enterprise/integrations":{"get":{"operationId":"listEnterpriseIntegrations","summary":"Unternehmensintegrationen anzeigen","description":"Listet OIDC-, SAML- und SCIM-Konfigurationen ohne Secretmaterial.","tags":["Enterprise Identity"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Unternehmensintegrationen anzeigen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","page"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/EnterpriseIntegration"}},"page":{"type":"object","additionalProperties":false,"required":["hasMore"],"properties":{"hasMore":{"const":false}}}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"enterprise.integration_list","x-required-scopes":["connector:read"],"x-policy-checks":["tenant_boundary","secret_ref_only","immutable_integration_version","secret_redaction"],"x-mcp-tool":"practice.enterprise.integrations.list","x-mcp-resource-template":"practice://enterprise/integrations"},"post":{"operationId":"createEnterpriseIntegration","summary":"Unternehmensintegration anlegen","description":"Legt eine versionierte OIDC-, SAML- oder SCIM-Verbindung mit ausschließlich opaker Secretreferenz an.","tags":["Enterprise Identity"],"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEnterpriseIntegrationInput"}}}},"responses":{"201":{"description":"Unternehmensintegration anlegen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/EnterpriseIntegration"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"enterprise.integration_create","x-required-scopes":["connector:write"],"x-policy-checks":["tenant_boundary","secret_ref_only","immutable_integration_version","protocol_allowlist","role_mapping_allowlist"],"x-mcp-tool":"practice.enterprise.integrations.create"}},"/api/v1/enterprise/integrations/{integrationId}":{"get":{"operationId":"getEnterpriseIntegration","summary":"Unternehmensintegration öffnen","description":"Liest eine bereinigte Integrationskonfiguration und ihren Versionsstand.","tags":["Enterprise Identity"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"integrationId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Unternehmensintegration öffnen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/EnterpriseIntegration"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"enterprise.integration_read","x-required-scopes":["connector:read"],"x-policy-checks":["tenant_boundary","secret_ref_only","immutable_integration_version","secret_redaction"],"x-mcp-tool":"practice.enterprise.integrations.get","x-mcp-resource-template":"practice://enterprise/integrations/{integrationId}"},"patch":{"operationId":"updateEnterpriseIntegration","summary":"Unternehmensintegration ändern","description":"Erzeugt eine neue unveränderliche Konfigurationsversion; aktive Konfiguration bleibt bis zur Freigabe unverändert.","tags":["Enterprise Identity"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"integrationId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"},{"$ref":"#/components/parameters/IfMatch"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEnterpriseIntegrationInput"}}}},"responses":{"200":{"description":"Unternehmensintegration ändern succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}},"ETag":{"$ref":"#/components/headers/ETag"}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/EnterpriseIntegration"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"enterprise.integration_update","x-required-scopes":["connector:write"],"x-policy-checks":["tenant_boundary","secret_ref_only","immutable_integration_version","pending_changes","role_mapping_allowlist"],"x-mcp-tool":"practice.enterprise.integrations.update"}},"/api/v1/enterprise/integrations/{integrationId}/versions":{"get":{"operationId":"listEnterpriseIntegrationVersions","summary":"Konfigurationsversionen anzeigen","description":"Listet die unveränderliche, bereinigte Versionshistorie einer Unternehmensintegration ohne Secretmaterial.","tags":["Enterprise Identity"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"integrationId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Konfigurationsversionen anzeigen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","page"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/EnterpriseIntegrationVersion"}},"page":{"type":"object","additionalProperties":false,"required":["hasMore"],"properties":{"hasMore":{"const":false}}}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"enterprise.integration_version_list","x-required-scopes":["connector:read"],"x-policy-checks":["tenant_boundary","secret_ref_only","immutable_integration_version","secret_redaction","append_only_evidence"],"x-mcp-tool":"practice.enterprise.integrations.versions.list","x-mcp-resource-template":"practice://enterprise/integrations/{integrationId}/versions"}},"/api/v1/enterprise/integrations/{integrationId}/test":{"post":{"operationId":"testEnterpriseIntegration","summary":"Unternehmensintegration testen","description":"Prüft Protokoll-, Mapping- und Secretreferenzkonfiguration ohne Benutzer zu provisionieren.","tags":["Enterprise Identity"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"integrationId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestEnterpriseIntegrationInput"}}}},"responses":{"201":{"description":"Unternehmensintegration testen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/EnterpriseIntegrationTestRun"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"enterprise.integration_test","x-required-scopes":["connector:test"],"x-policy-checks":["tenant_boundary","secret_ref_only","immutable_integration_version","no_external_write","deterministic_test"],"x-mcp-tool":"practice.enterprise.integrations.test"}},"/api/v1/enterprise/integrations/{integrationId}/activate":{"post":{"operationId":"activateEnterpriseIntegration","summary":"Unternehmensintegration aktivieren","description":"Aktiviert nur eine erfolgreich geprüfte, unveränderliche Version.","tags":["Enterprise Identity"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"integrationId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateEnterpriseIntegrationInput"}}}},"responses":{"200":{"description":"Unternehmensintegration aktivieren succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/EnterpriseIntegration"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"enterprise.integration_activate","x-required-scopes":["connector:write"],"x-policy-checks":["tenant_boundary","secret_ref_only","immutable_integration_version","latest_test_passed","explicit_human_approval"],"x-mcp-tool":"practice.enterprise.integrations.activate"}},"/api/v1/enterprise/integrations/{integrationId}/deactivate":{"post":{"operationId":"deactivateEnterpriseIntegration","summary":"Unternehmensintegration deaktivieren","description":"Stoppt neue Anmeldungen oder Synchronisationen, ohne Audit- und Zuordnungsnachweise zu löschen.","tags":["Enterprise Identity"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"integrationId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeactivateEnterpriseIntegrationInput"}}}},"responses":{"200":{"description":"Unternehmensintegration deaktivieren succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/EnterpriseIntegration"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"enterprise.integration_deactivate","x-required-scopes":["connector:write"],"x-policy-checks":["tenant_boundary","secret_ref_only","immutable_integration_version","preserve_audit"],"x-mcp-tool":"practice.enterprise.integrations.deactivate"}},"/api/v1/enterprise/integrations/{integrationId}/deprovision-simulations":{"get":{"operationId":"listEnterpriseDeprovisionSimulations","summary":"Deprovisionierungssimulationen anzeigen","description":"Listet nachvollziehbare SCIM-Deprovisionierungsproben ohne echte Benutzeränderung.","tags":["Enterprise Identity"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"integrationId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Deprovisionierungssimulationen anzeigen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","page"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/EnterpriseDeprovisionSimulation"}},"page":{"type":"object","additionalProperties":false,"required":["hasMore"],"properties":{"hasMore":{"const":false}}}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"enterprise.integration_deprovision_list","x-required-scopes":["connector:read"],"x-policy-checks":["tenant_boundary","secret_ref_only","immutable_integration_version","scim_only"],"x-mcp-tool":"practice.enterprise.deprovision.list","x-mcp-resource-template":"practice://enterprise/integrations/{integrationId}/deprovision-simulations"},"post":{"operationId":"createEnterpriseDeprovisionSimulation","summary":"Deprovisionierung simulieren","description":"Zeigt vor einer SCIM-Deprovisionierung die geplanten Sperr-, Sitzungs- und Rollenschritte, ohne sie auszuführen.","tags":["Enterprise Identity"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"integrationId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEnterpriseDeprovisionSimulationInput"}}}},"responses":{"201":{"description":"Deprovisionierung simulieren succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/EnterpriseDeprovisionSimulation"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"enterprise.integration_deprovision_simulate","x-required-scopes":["connector:write"],"x-policy-checks":["tenant_boundary","secret_ref_only","immutable_integration_version","scim_only","dry_run_only","preserve_audit"],"x-mcp-tool":"practice.enterprise.deprovision.simulate"}},"/api/v1/reaction-library":{"get":{"operationId":"listReactionLibraryEntries","summary":"Reaktionsbibliothek durchsuchen","description":"Durchsucht mandantenweite Reaktionsbausteine nach Text, Status, Einsatzbereich, Sprache und Schlagwort.","tags":["Response Library"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"query","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":200}},{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["draft","published","archived"]}},{"name":"responseKind","in":"query","required":false,"schema":{"type":"string","enum":["counterpart","system"]}},{"name":"useCase","in":"query","required":false,"schema":{"type":"string","enum":["conversation","customer_service","leadership","technical_diagnosis"]}},{"name":"locale","in":"query","required":false,"schema":{"type":"string","enum":["de-DE","en-GB"]}},{"name":"tag","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"200":{"description":"Reaktionsbibliothek durchsuchen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","page"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ReactionLibraryEntry"}},"page":{"type":"object","additionalProperties":false,"required":["hasMore"],"properties":{"hasMore":{"const":false}}}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"reaction.list","x-required-scopes":["experience:read"],"x-policy-checks":["tenant_boundary","immutable_reaction_version","search_filter_allowlist"],"x-mcp-tool":"practice.reactionLibrary.list","x-mcp-resource-template":"practice://reaction-library"},"post":{"operationId":"createReactionLibraryEntry","summary":"Reaktionsbaustein anlegen","description":"Legt einen zweisprachigen Reaktionsbaustein als unveränderliche erste Entwurfsversion an.","tags":["Response Library"],"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateReactionLibraryEntryInput"}}}},"responses":{"201":{"description":"Reaktionsbaustein anlegen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/ReactionLibraryEntry"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"reaction.create","x-required-scopes":["experience:write"],"x-policy-checks":["tenant_boundary","immutable_reaction_version","localized_value_validation","entry_key_unique"],"x-mcp-tool":"practice.reactionLibrary.create"}},"/api/v1/reaction-library/{entryId}":{"get":{"operationId":"getReactionLibraryEntry","summary":"Reaktionsbaustein öffnen","description":"Liest Entwurfs-, Veröffentlichungs- und Versionsstand eines Reaktionsbausteins.","tags":["Response Library"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"entryId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Reaktionsbaustein öffnen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/ReactionLibraryEntry"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"reaction.read","x-required-scopes":["experience:read"],"x-policy-checks":["tenant_boundary","immutable_reaction_version"],"x-mcp-tool":"practice.reactionLibrary.get","x-mcp-resource-template":"practice://reaction-library/{entryId}"},"patch":{"operationId":"updateReactionLibraryEntry","summary":"Reaktionsbaustein überarbeiten","description":"Erzeugt revisionsgebunden eine neue unveränderliche Entwurfsversion; die veröffentlichte Version bleibt bestehen.","tags":["Response Library"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"entryId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"},{"$ref":"#/components/parameters/IfMatch"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateReactionLibraryEntryInput"}}}},"responses":{"200":{"description":"Reaktionsbaustein überarbeiten succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}},"ETag":{"$ref":"#/components/headers/ETag"}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/ReactionLibraryEntry"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"reaction.update","x-required-scopes":["experience:write"],"x-policy-checks":["tenant_boundary","immutable_reaction_version","localized_value_validation","archive_write_guard"],"x-mcp-tool":"practice.reactionLibrary.update"}},"/api/v1/reaction-library/{entryId}/versions":{"get":{"operationId":"listReactionLibraryVersions","summary":"Reaktionsversionen anzeigen","description":"Listet die unveränderliche Versionshistorie eines Reaktionsbausteins.","tags":["Response Library"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"entryId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Reaktionsversionen anzeigen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","page"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ReactionLibraryVersion"}},"page":{"type":"object","additionalProperties":false,"required":["hasMore"],"properties":{"hasMore":{"const":false}}}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"reaction.version_list","x-required-scopes":["experience:read"],"x-policy-checks":["tenant_boundary","immutable_reaction_version","append_only_evidence"],"x-mcp-tool":"practice.reactionLibrary.versions.list","x-mcp-resource-template":"practice://reaction-library/{entryId}/versions"}},"/api/v1/reaction-library/{entryId}/publish":{"post":{"operationId":"publishReactionLibraryEntry","summary":"Reaktionsbaustein veröffentlichen","description":"Veröffentlicht exakt die aktuelle unveränderliche Version des Reaktionsbausteins.","tags":["Response Library"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"entryId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"},{"$ref":"#/components/parameters/IfMatch"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReactionLibraryLifecycleInput"}}}},"responses":{"200":{"description":"Reaktionsbaustein veröffentlichen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}},"ETag":{"$ref":"#/components/headers/ETag"}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/ReactionLibraryEntry"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"reaction.publish","x-required-scopes":["experience:publish"],"x-policy-checks":["tenant_boundary","immutable_reaction_version","latest_version_binding","archive_write_guard"],"x-mcp-tool":"practice.reactionLibrary.publish"}},"/api/v1/reaction-library/{entryId}/archive":{"post":{"operationId":"archiveReactionLibraryEntry","summary":"Reaktionsbaustein archivieren","description":"Archiviert den Baustein revisionssicher, ohne Versionen oder Veröffentlichungsnachweise zu löschen.","tags":["Response Library"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"entryId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"},{"$ref":"#/components/parameters/IfMatch"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReactionLibraryLifecycleInput"}}}},"responses":{"200":{"description":"Reaktionsbaustein archivieren succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}},"ETag":{"$ref":"#/components/headers/ETag"}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/ReactionLibraryEntry"}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"reaction.archive","x-required-scopes":["experience:publish"],"x-policy-checks":["tenant_boundary","immutable_reaction_version","preserve_versions","preserve_publications"],"x-mcp-tool":"practice.reactionLibrary.archive"}},"/api/v1/operations/admission":{"get":{"operationId":"getAdmissionOperations","summary":"Auslastungssteuerung anzeigen","description":"Liest Verarbeitungskapazitäten, Warteschlangen, automatische Schutzschaltungen, Notabschaltungen und bereinigte Betriebsereignisse.","tags":["Platform Operations"],"security":[{"operationsBearerAuth":[]}],"parameters":[{"name":"afterSequence","in":"query","required":false,"description":"Return only bounded in-process operational events after this sequence.","schema":{"type":"integer","minimum":0,"default":0}}],"responses":{"200":{"description":"Auslastungssteuerung anzeigen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability operations.admission_read."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"operations.admission_read","x-required-scopes":["operations:read"],"x-policy-checks":["separate_operator_credential","explicit_platform_scope","audit_reason"],"x-mcp-tool":"practice.operations.admission.read","x-operator-boundary":"platform-only"}},"/api/v1/operations/tenant-quotas/{tenantId}":{"put":{"operationId":"configureTenantAdmissionQuota","summary":"Mandantenquote konfigurieren","description":"Setzt faire, workload-spezifische Quoten für einen Mandanten ohne dessen Fachadministratoren globale Rechte zu geben.","tags":["Platform Operations"],"security":[{"operationsBearerAuth":[]}],"parameters":[{"name":"tenantId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlatformTenantQuotaOperation"}}}},"responses":{"200":{"description":"Mandantenquote konfigurieren succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability operations.tenant_quota_configure."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"operations.tenant_quota_configure","x-required-scopes":["operations:write"],"x-policy-checks":["separate_operator_credential","explicit_platform_scope","audit_reason"],"x-mcp-tool":"practice.operations.tenant-quotas.configure","x-operator-boundary":"platform-only"}},"/api/v1/operations/kill-switches":{"post":{"operationId":"setAdmissionKillSwitch","summary":"Notabschaltung aktivieren","description":"Aktiviert oder deaktiviert einen begründeten globalen, workload-, mandanten- oder abhängigkeitsbezogenen Schutzschalter.","tags":["Platform Operations"],"security":[{"operationsBearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlatformKillSwitchOperation"}}}},"responses":{"200":{"description":"Notabschaltung aktivieren succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability operations.kill_switch_set."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"operations.kill_switch_set","x-required-scopes":["operations:write"],"x-policy-checks":["separate_operator_credential","explicit_platform_scope","audit_reason"],"x-mcp-tool":"practice.operations.kill-switches.set","x-operator-boundary":"platform-only"}},"/api/v1/operations/circuits:reset":{"post":{"operationId":"resetAdmissionCircuit","summary":"Automatische Schutzschaltung zurücksetzen","description":"Setzt eine automatische Schutzschaltung nach geprüfter Störungsbehebung kontrolliert zurück.","tags":["Platform Operations"],"security":[{"operationsBearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlatformCircuitResetOperation"}}}},"responses":{"200":{"description":"Automatische Schutzschaltung zurücksetzen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability operations.circuit_reset."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"operations.circuit_reset","x-required-scopes":["operations:write"],"x-policy-checks":["separate_operator_credential","explicit_platform_scope","audit_reason"],"x-mcp-tool":"practice.operations.circuits.reset","x-operator-boundary":"platform-only"}},"/api/v1/jobs":{"get":{"operationId":"listJobs","summary":"Aufträge auflisten","description":"Listet sichtbare asynchrone Aufträge des Mandanten oder Arbeitsbereichs.","tags":["Jobs"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"workspaceId","in":"query","required":false,"description":"Optional workspace filter; otherwise the first authorized workspace is used.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Aufträge auflisten succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability job.list."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"job.list","x-required-scopes":["job:read"],"x-policy-checks":["job_visibility"],"x-mcp-tool":"practice.jobs.list","x-mcp-resource-template":"practice://jobs"}},"/api/v1/jobs/{jobId}":{"get":{"operationId":"getJob","summary":"Auftrag lesen","description":"Liest Status, Fortschritt und sicheres Ergebnis eines Auftrags.","tags":["Jobs"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"jobId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Auftrag lesen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability job.read."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"job.read","x-required-scopes":["job:read"],"x-policy-checks":["job_visibility","field_read_policy"],"x-mcp-tool":"practice.jobs.read","x-mcp-resource-template":"practice://jobs/{jobId}"}},"/api/v1/jobs/{jobId}:cancel":{"post":{"operationId":"cancelJob","summary":"Auftrag abbrechen","description":"Fordert den sicheren Abbruch eines abbrechbaren Auftrags an.","tags":["Jobs"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"jobId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["jobId","reason"],"properties":{"jobId":{"type":"string","format":"uuid"},"reason":{"type":"string","minLength":1,"maxLength":1000}}}}}},"responses":{"202":{"description":"Auftrag abbrechen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability job.cancel."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"job.cancel","x-required-scopes":["job:cancel"],"x-policy-checks":["job_visibility","job_cancellable","cost_impact_policy"],"x-mcp-tool":"practice.jobs.cancel"}},"/api/v1/jobs/{jobId}:retry":{"post":{"operationId":"retryJob","summary":"Auftrag wiederholen","description":"Startet einen wiederholbaren Auftrag mit gleicher sicherer Eingabe neu.","tags":["Jobs"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"jobId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["jobId","reason"],"properties":{"jobId":{"type":"string","format":"uuid"},"reason":{"type":"string","minLength":1,"maxLength":1000}}}}}},"responses":{"202":{"description":"Auftrag wiederholen succeeded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result of capability job.retry."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-capability-id":"job.retry","x-required-scopes":["job:retry"],"x-policy-checks":["job_visibility","job_retryable","budget_policy"],"x-mcp-tool":"practice.jobs.retry"}},"/api/v1/assets/{assetId}/versions/{assetVersionId}/content/{contentHash}":{"get":{"operationId":"getLocalMediaAssetVersionContent","summary":"Read authenticated local preview bytes for one immutable asset version","description":"Binds tenant, workspace, asset, immutable version and SHA-256 before returning bytes. Quarantined uploads are preview-only and remain ineligible for review or slot binding.","tags":["Media Assets"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"assetId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"assetVersionId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"contentHash","in":"path","required":true,"schema":{"type":"string","pattern":"^[0-9a-f]{64}$"}}],"responses":{"200":{"description":"Byte-exact local preview content.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}},"Cache-Control":{"schema":{"type":"string","const":"private, no-store, max-age=0"}},"X-Content-Type-Options":{"schema":{"type":"string","const":"nosniff"}},"X-Practice-Preview-Only":{"schema":{"type":"string","enum":["true","false"]}},"X-Practice-Quarantined":{"schema":{"type":"string","enum":["true","false"]}}},"content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/api/v1/media/dashboard":{"get":{"operationId":"getMediaDashboard","summary":"Load the media, provider, budget, connector and job dashboard","tags":["Media Assets"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"workspaceId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Aggregated authoring dashboard loaded.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result visible to the authenticated caller."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/api/v1/media/uploads:prepare":{"post":{"operationId":"prepareLocalMediaUpload","summary":"Prepare a local signed media upload","description":"UI convenience alias for the canonical asset-scoped prepare endpoint. The returned URL is short-lived and bound to MIME type, size and optional SHA-256.","tags":["Media Assets"],"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["assetId","locale","mimeType","byteSize"],"properties":{"assetId":{"type":"string","format":"uuid"},"locale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"mimeType":{"type":"string","minLength":3,"maxLength":255},"byteSize":{"type":"integer","minimum":1},"sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"rights":{"type":"object","propertyNames":{"pattern":"^(?!.*(?:api[_-]?key|access[_-]?token|refresh[_-]?token|password|secret(?:value)?|credential)).+$"}},"consent":{"type":"object","propertyNames":{"pattern":"^(?!.*(?:api[_-]?key|access[_-]?token|refresh[_-]?token|password|secret(?:value)?|credential)).+$"}},"provenance":{"type":"object","propertyNames":{"pattern":"^(?!.*(?:api[_-]?key|access[_-]?token|refresh[_-]?token|password|secret(?:value)?|credential)).+$"}}}}}}},"responses":{"201":{"description":"Signed upload session prepared.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result visible to the authenticated caller."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/api/v1/media/uploads/{uploadId}":{"put":{"operationId":"putSignedMediaUpload","summary":"Transfer the binary payload for a signed upload session","description":"Public, signature-authorized binary transfer. The signature and expiry are created by the prepare endpoint; no bearer credential is accepted as a substitute.","tags":["Media Assets"],"security":[],"parameters":[{"name":"uploadId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"expires","in":"query","required":true,"schema":{"type":"integer","minimum":0}},{"name":"signature","in":"query","required":true,"schema":{"type":"string","minLength":32}},{"name":"Content-Type","in":"header","required":true,"schema":{"type":"string","minLength":3,"maxLength":255}}],"requestBody":{"required":true,"content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"responses":{"204":{"description":"Binary payload accepted and verified for completion.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"410":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"413":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"415":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/api/v1/media/uploads/{uploadId}:complete":{"post":{"operationId":"completeMediaUpload","summary":"Complete and register a transferred local media upload","tags":["Media Assets"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"uploadId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"reason":{"type":"string","minLength":3,"maxLength":500}}}}}},"responses":{"201":{"description":"Upload completed and immutable version registered.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"description":"Result visible to the authenticated caller."}}}}}},"400":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"428":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"503":{"description":"Request failed. The body follows RFC 9457 with stable product error codes.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/api/v1/openapi":{"get":{"operationId":"getOpenApiDocument","summary":"Return this OpenAPI document","tags":["Platform"],"security":[],"responses":{"200":{"description":"OpenAPI 3.1 document.","headers":{"x-request-id":{"description":"Stable request identifier for support and tracing.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["openapi","info","paths"]}}}}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"Knowledgeworker Practice access token"},"operationsBearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"Separate platform operations token","description":"Dedicated platform credential. Tenant and workspace access tokens are never accepted."},"licenseEventHmac":{"type":"apiKey","in":"header","name":"x-chemmedia-signature","description":"HMAC-SHA256 signature t=<unix-seconds>,v1=<hex> over <timestamp>.<raw-body>."}},"parameters":{"ExperienceId":{"name":"experienceId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},"AttemptId":{"name":"attemptId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},"SessionId":{"name":"sessionId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},"IdempotencyKey":{"name":"Idempotency-Key","in":"header","required":true,"description":"Unique retry key. The same key and payload produce the same result.","schema":{"type":"string","minLength":8,"maxLength":180}},"IfMatch":{"name":"If-Match","in":"header","required":false,"description":"Quoted revision ETag, for example \"3\".","schema":{"type":"string"}},"PaymentWebhookSignature":{"name":"X-Practice-Signature","in":"header","required":true,"description":"Timestamped HMAC signature over the exact, unmodified request bytes.","schema":{"type":"string","pattern":"^t=[0-9]+,v1=[0-9a-f]{64}$"}}},"headers":{"ETag":{"description":"Quoted current resource revision.","schema":{"type":"string"}}},"schemas":{"PlatformTenantWorkloadQuota":{"type":"object","additionalProperties":false,"minProperties":1,"properties":{"maxConcurrent":{"type":"integer","minimum":1},"maxQueued":{"type":"integer","minimum":1},"rateCapacity":{"type":"number","exclusiveMinimum":0},"rateRefillPerSecond":{"type":"number","exclusiveMinimum":0}}},"PlatformTenantQuotaOperation":{"type":"object","additionalProperties":false,"required":["quota","reason","confirmed"],"properties":{"quota":{"type":"object","additionalProperties":false,"minProperties":1,"properties":{"weight":{"type":"number","exclusiveMinimum":0,"maximum":100},"workloads":{"type":"object","additionalProperties":false,"properties":{"runtime":{"$ref":"#/components/schemas/PlatformTenantWorkloadQuota"},"ai":{"$ref":"#/components/schemas/PlatformTenantWorkloadQuota"},"voice_video":{"$ref":"#/components/schemas/PlatformTenantWorkloadQuota"},"mcp":{"$ref":"#/components/schemas/PlatformTenantWorkloadQuota"},"crawl":{"$ref":"#/components/schemas/PlatformTenantWorkloadQuota"},"export":{"$ref":"#/components/schemas/PlatformTenantWorkloadQuota"}}}}},"reason":{"type":"string","minLength":3,"maxLength":500},"confirmed":{"const":true}}},"PlatformKillSwitchOperation":{"oneOf":[{"type":"object","additionalProperties":false,"required":["scope","active","reason","confirmed"],"properties":{"scope":{"const":"global"},"active":{"type":"boolean"},"reason":{"type":"string","minLength":3,"maxLength":500},"abortActive":{"type":"boolean"},"confirmed":{"const":true}}},{"type":"object","additionalProperties":false,"required":["scope","key","active","reason","confirmed"],"properties":{"scope":{"type":"string","enum":["workload","tenant","dependency"]},"key":{"type":"string","minLength":1,"maxLength":255},"active":{"type":"boolean"},"reason":{"type":"string","minLength":3,"maxLength":500},"abortActive":{"type":"boolean"},"confirmed":{"const":true}}}]},"PlatformCircuitResetOperation":{"type":"object","additionalProperties":false,"required":["workload","reason","confirmed"],"properties":{"workload":{"type":"string","enum":["runtime","ai","voice_video","mcp","crawl","export"]},"dependencyKey":{"type":"string","pattern":"^[a-z0-9][a-z0-9._:-]{0,127}$"},"reason":{"type":"string","minLength":3,"maxLength":500},"confirmed":{"const":true}}},"PublicHealth":{"type":"object","additionalProperties":false,"required":["status","ready"],"properties":{"status":{"type":"string","enum":["ok","degraded","failed"]},"ready":{"type":"boolean"}}},"Health":{"type":"object","additionalProperties":false,"required":["status","service","version","probe","live","ready","time","uptimeSeconds","trace","dependencies","slos","metrics"],"properties":{"status":{"type":"string","enum":["ok","degraded","failed"]},"service":{"const":"knowledgeworker-practice-control-plane"},"version":{"type":"string"},"probe":{"const":"full"},"live":{"const":true},"ready":{"type":"boolean"},"time":{"type":"string","format":"date-time"},"uptimeSeconds":{"type":"integer","minimum":0},"trace":{"type":"object","additionalProperties":false,"required":["correlationId","traceId"],"properties":{"correlationId":{"type":"string"},"traceId":{"type":"string","pattern":"^[0-9a-f]{32}$"}}},"dependencies":{"type":"object","additionalProperties":false,"required":["database","providerRuntime","queues","costLedger"],"properties":{"database":{"type":"object","additionalProperties":false,"required":["status","required"],"properties":{"status":{"type":"string","enum":["ok","degraded","failed"]},"required":{"const":true},"latencyMs":{"type":"number","minimum":0}}},"providerRuntime":{"type":"object","additionalProperties":false,"required":["status","required","mode","configuredProviders"],"properties":{"status":{"type":"string","enum":["ok","degraded","failed"]},"required":{"type":"boolean"},"mode":{"type":"string","enum":["mock","mixed","live"]},"configuredProviders":{"type":"integer","minimum":0}}},"queues":{"$ref":"#/components/schemas/HealthDependency"},"costLedger":{"$ref":"#/components/schemas/HealthDependency"}}},"slos":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["name","status","observed","unit"],"properties":{"name":{"type":"string"},"status":{"type":"string","enum":["ok","degraded","failed"]},"observed":{"type":"number"},"warningThreshold":{"type":"number"},"criticalThreshold":{"type":"number"},"unit":{"type":"string","enum":["milliseconds","seconds","items","errors"]}}}},"metrics":{"type":"object","additionalProperties":false,"required":["queues","costs"],"properties":{"queues":{"type":"object","additionalProperties":false,"required":["provider","domainOutbox","xapi","webhook"],"properties":{"provider":{"$ref":"#/components/schemas/HealthQueueMetric"},"domainOutbox":{"$ref":"#/components/schemas/HealthQueueMetric"},"xapi":{"$ref":"#/components/schemas/HealthQueueMetric"},"webhook":{"$ref":"#/components/schemas/HealthQueueMetric"}}},"costs":{"type":"object","additionalProperties":false,"required":["ledgerEntries","activeReservations","reconciliationErrors","currencies","settlementState"],"properties":{"ledgerEntries":{"type":"integer","minimum":0},"activeReservations":{"type":"integer","minimum":0},"reconciliationErrors":{"type":"integer","minimum":0},"currencies":{"type":"array","items":{"type":"string"}},"settlementState":{"type":"string","enum":["balanced","reconciliation_required"]}}}}}}},"HealthDependency":{"type":"object","additionalProperties":false,"required":["status","required"],"properties":{"status":{"type":"string","enum":["ok","degraded","failed"]},"required":{"const":true}}},"HealthQueueMetric":{"type":"object","additionalProperties":false,"required":["depth","inFlight","waitingApproval","failed","deadLetter","oldestAgeSeconds"],"properties":{"depth":{"type":"integer","minimum":0},"inFlight":{"type":"integer","minimum":0},"waitingApproval":{"type":"integer","minimum":0},"failed":{"type":"integer","minimum":0},"deadLetter":{"type":"integer","minimum":0},"oldestAgeSeconds":{"type":"integer","minimum":0}}},"IdentityContext":{"title":"Server-authenticated identity context","type":"object","additionalProperties":false,"required":["tenantId","actor","workspaceIds","roles","scopes","purposes"],"properties":{"tenantId":{"type":"string","format":"uuid"},"actor":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["human","service","mcp_client"]},"displayName":{"type":"string","minLength":1,"maxLength":255}}},"workspaceIds":{"type":"array","uniqueItems":true,"items":{"type":"string","format":"uuid"}},"roles":{"type":"array","uniqueItems":true,"items":{"type":"string","enum":["learner","author","mentor","hr_ld_admin","tenant_admin","platform_operator","connector_admin","billing_admin","works_council_reviewer","data_protection_reviewer"]}},"scopes":{"type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":255}},"purposes":{"type":"array","uniqueItems":true,"items":{"type":"string","enum":["platform_administration","experience_authoring","learning_delivery","learning_evaluation","human_review","tenant_analytics","billing","connector_synchronization","compliance_review"]}}}},"CapabilityDefinition":{"title":"Capability definition","type":"object","additionalProperties":false,"required":["id","version","group","title","description","mutation","ui","api","mcp","security","events","audit","tests"],"properties":{"id":{"type":"string","pattern":"^(tenant|workspace|experience|attempt|session|asset|provider|budget|connector|context|group|audience|program|assignment|enrollment|skill|role_profile|qualification|result|certificate|mentor|analytics|delivery|commercial|trial|billing|onboarding|governance|privacy|enterprise|reaction|operations|job|command)\\.[a-z][a-z0-9_]*$"},"version":{"const":1},"group":{"type":"string","enum":["tenant","workspace","experience","attempt","session","asset","provider","budget","connector","context","group","audience","program","assignment","enrollment","skill","role_profile","qualification","result","certificate","mentor","analytics","delivery","commercial","trial","billing","onboarding","governance","privacy","enterprise","reaction","operations","job","command"]},"title":{"type":"string","minLength":1,"maxLength":255},"description":{"type":"string","minLength":1,"maxLength":255},"mutation":{"type":"boolean"},"commandType":{"type":"string","enum":["tenant.create","tenant.update","workspace.create","workspace.update","experience.create","experience.update","experience.validate","experience.review.submit","experience.review.approve","experience.review.reject","experience.publish","attempt.start","attempt.resume","attempt.turn.submit","attempt.action.submit","attempt.checkpoint.save","attempt.complete","attempt.abandon","attempt.consent.withdraw","asset.create","asset.upload.prepare","asset.version.register","asset.slot.bind","asset.review.submit","asset.review.decide","provider.connection.create","provider.connection.update","provider.connection.test","provider.routing.upsert","provider.cost.estimate","provider.job.submit","provider.job.approve","budget.reservation.create","budget.reservation.release","connector.binding.create","connector.binding.update","connector.binding.test","context.preview","context.snapshot.create","context.live.resolve","job.cancel","job.retry"]},"acceptedCommandTypes":{"type":"array","uniqueItems":true,"items":{"type":"string","enum":["tenant.create","tenant.update","workspace.create","workspace.update","experience.create","experience.update","experience.validate","experience.review.submit","experience.review.approve","experience.review.reject","experience.publish","attempt.start","attempt.resume","attempt.turn.submit","attempt.action.submit","attempt.checkpoint.save","attempt.complete","attempt.abandon","attempt.consent.withdraw","asset.create","asset.upload.prepare","asset.version.register","asset.slot.bind","asset.review.submit","asset.review.decide","provider.connection.create","provider.connection.update","provider.connection.test","provider.routing.upsert","provider.cost.estimate","provider.job.submit","provider.job.approve","budget.reservation.create","budget.reservation.release","connector.binding.create","connector.binding.update","connector.binding.test","context.preview","context.snapshot.create","context.live.resolve","job.cancel","job.retry"]}},"ui":{"type":"object"},"api":{"type":"object"},"mcp":{"type":"object"},"security":{"type":"object"},"events":{"type":"object"},"audit":{"type":"object"},"tests":{"type":"array","uniqueItems":true,"items":{"type":"string","enum":["unit","contract","integration","headless_e2e","ui_e2e"]}}}},"PracticeExperience":{"title":"Practice experience with editable draft","type":"object","additionalProperties":false,"required":["metadata","workspaceId","key","kind","title","status","currentDraftRevision","tags","draft"],"properties":{"metadata":{"type":"object","additionalProperties":false,"required":["id","tenantId","createdAt","createdBy","updatedAt","updatedBy","revision"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"createdAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["human","service","mcp_client"]},"displayName":{"type":"string","minLength":1,"maxLength":255}}},"updatedAt":{"type":"string","format":"date-time"},"updatedBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["human","service","mcp_client"]},"displayName":{"type":"string","minLength":1,"maxLength":255}}},"revision":{"type":"integer","minimum":0}}},"workspaceId":{"type":"string","format":"uuid"},"key":{"type":"string","pattern":"^[a-z][a-z0-9_-]{1,127}$"},"kind":{"type":"string","enum":["conversation","technical_diagnosis","hybrid_service","performance_submission"]},"title":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"values":{"type":"object","minProperties":1,"propertyNames":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"additionalProperties":{"type":"string"}}}},"description":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"values":{"type":"object","minProperties":1,"propertyNames":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"additionalProperties":{"type":"string"}}}},"status":{"type":"string","enum":["draft","in_review","approved","published","archived"]},"currentDraftRevision":{"type":"integer","minimum":0},"latestReleaseId":{"type":"string","format":"uuid"},"authoring":{"type":"object","additionalProperties":false,"required":["schemaVersion","defaultGuidanceMode","enabledGuidanceModes"],"properties":{"schemaVersion":{"const":2},"defaultGuidanceMode":{"type":"string","enum":["guided","guardrailed","free"]},"enabledGuidanceModes":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"string","enum":["guided","guardrailed","free"]}},"currentDraftVersionId":{"type":"string","format":"uuid"},"currentDraftVersionNumber":{"type":"integer","minimum":1},"currentValidationStatus":{"type":"string","enum":["not_validated","passed","failed"]},"latestApprovedDraftVersionId":{"type":"string","format":"uuid"}}},"tags":{"type":"array","uniqueItems":true,"maxItems":50,"items":{"type":"string","minLength":1,"maxLength":64}},"draft":{"type":"object","additionalProperties":false,"required":["objective","situation","source","sourceDetail"],"properties":{"objective":{"type":"string"},"situation":{"type":"string"},"source":{"type":"string","enum":["brief","website","document"]},"sourceDetail":{"type":"string"}}}}},"CreateExperienceInput":{"type":"object","additionalProperties":false,"required":["workspaceId","title","objective","situation"],"anyOf":[{"required":["kind"]},{"required":["type"]}],"properties":{"workspaceId":{"type":"string","format":"uuid"},"key":{"type":"string","minLength":3,"maxLength":100,"pattern":"^[a-z0-9-]+$"},"kind":{"type":"string","enum":["conversation","technical_diagnosis","hybrid_service","performance_submission"]},"type":{"type":"string","enum":["conversation","equipment","process","performance"]},"locale":{"type":"string","minLength":2,"maxLength":20,"default":"de-DE"},"title":{"type":"string","minLength":3,"maxLength":180},"description":{"type":"string","maxLength":600},"objective":{"type":"string","minLength":3,"maxLength":800},"situation":{"type":"string","minLength":3,"maxLength":4000},"source":{"type":"string","enum":["brief","website","document"],"default":"brief"},"sourceDetail":{"type":"string","maxLength":2000}}},"UpdateExperienceInput":{"type":"object","additionalProperties":false,"required":["changeReason"],"properties":{"expectedRevision":{"type":"integer","minimum":1},"locale":{"type":"string","minLength":2,"maxLength":20},"title":{"type":"string","minLength":3,"maxLength":180},"description":{"type":"string","maxLength":600},"objective":{"type":"string","minLength":3,"maxLength":800},"situation":{"type":"string","minLength":3,"maxLength":4000},"source":{"type":"string","enum":["brief","website","document"]},"sourceDetail":{"type":"string","maxLength":2000},"status":{"type":"string","enum":["draft","in_review","archived"]},"changeReason":{"type":"string","minLength":3,"maxLength":500}}},"ExperienceAuthoringSpec":{"title":"Versioned Experience authoring specification","type":"object","additionalProperties":false,"required":["schemaVersion","experienceKind","sourceLocale","supportedLocales","title","learningObjectives","guidance","entryNodeId","entities","phases","nodes","transitions","rubricCriteria","translations"],"properties":{"schemaVersion":{"const":2},"experienceKind":{"type":"string","enum":["conversation","technical_diagnosis","hybrid_service","performance_submission"]},"sourceLocale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"supportedLocales":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"}},"title":{"type":"string","minLength":1,"maxLength":500},"description":{"type":"string","maxLength":10000},"learningObjectives":{"type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":1000},"minItems":1},"guidance":{"type":"object","additionalProperties":false,"required":["defaultMode","enabledModes","policies"],"properties":{"defaultMode":{"type":"string","enum":["guided","guardrailed","free"]},"enabledModes":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"string","enum":["guided","guardrailed","free"]}},"policies":{"type":"array","minItems":1,"items":{"type":"object","additionalProperties":false,"required":["mode","hintLevel","allowBacktracking","revealGoals","enforceTransitionConditions"],"properties":{"mode":{"type":"string","enum":["guided","guardrailed","free"]},"hintLevel":{"type":"string","enum":["none","on_request","proactive"]},"allowBacktracking":{"type":"boolean"},"revealGoals":{"type":"boolean"},"enforceTransitionConditions":{"type":"boolean"},"maxHints":{"type":"integer","minimum":0}}}}}},"entryNodeId":{"type":"string","format":"uuid"},"entities":{"type":"array","items":{"oneOf":[{"type":"object","additionalProperties":false,"required":["id","key","type","name","properties","tags","assetSlotIds"],"properties":{"id":{"type":"string","format":"uuid"},"key":{"type":"string","pattern":"^[a-z][a-z0-9_.-]{0,127}$"},"name":{"type":"string","minLength":1,"maxLength":500},"description":{"type":"string","maxLength":10000},"tags":{"type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":1000},"maxItems":100},"assetSlotIds":{"type":"array","uniqueItems":true,"items":{"type":"string","format":"uuid"}},"type":{"const":"person"},"properties":{"type":"object","additionalProperties":false,"required":["role","goals","concerns"],"properties":{"role":{"type":"string","enum":["learner","counterpart","observer","expert"]},"goals":{"type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":1000}},"concerns":{"type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":1000}},"communicationStyle":{"type":"string","maxLength":2000},"initialEmotionalState":{"type":"string","maxLength":500}}}}},{"type":"object","additionalProperties":false,"required":["id","key","type","name","properties","tags","assetSlotIds"],"properties":{"id":{"type":"string","format":"uuid"},"key":{"type":"string","pattern":"^[a-z][a-z0-9_.-]{0,127}$"},"name":{"type":"string","minLength":1,"maxLength":500},"description":{"type":"string","maxLength":10000},"tags":{"type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":1000},"maxItems":100},"assetSlotIds":{"type":"array","uniqueItems":true,"items":{"type":"string","format":"uuid"}},"type":{"const":"device"},"properties":{"type":"object","additionalProperties":false,"required":["deviceType","components","initialState","hazards"],"properties":{"deviceType":{"type":"string","minLength":1,"maxLength":500},"manufacturer":{"type":"string","maxLength":500},"model":{"type":"string","maxLength":500},"components":{"type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":1000}},"initialState":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":255},"additionalProperties":{"type":["string","number","boolean","null"]}},"hazards":{"type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":1000}}}}}},{"type":"object","additionalProperties":false,"required":["id","key","type","name","properties","tags","assetSlotIds"],"properties":{"id":{"type":"string","format":"uuid"},"key":{"type":"string","pattern":"^[a-z][a-z0-9_.-]{0,127}$"},"name":{"type":"string","minLength":1,"maxLength":500},"description":{"type":"string","maxLength":10000},"tags":{"type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":1000},"maxItems":100},"assetSlotIds":{"type":"array","uniqueItems":true,"items":{"type":"string","format":"uuid"}},"type":{"const":"software"},"properties":{"type":"object","additionalProperties":false,"required":["systemName","interfaceMode","initialState","permissions"],"properties":{"systemName":{"type":"string","minLength":1,"maxLength":500},"version":{"type":"string","maxLength":255},"interfaceMode":{"type":"string","enum":["graphical","command_line","api","embedded"]},"initialState":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":255},"additionalProperties":{"type":["string","number","boolean","null"]}},"permissions":{"type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":1000}}}}}},{"type":"object","additionalProperties":false,"required":["id","key","type","name","properties","tags","assetSlotIds"],"properties":{"id":{"type":"string","format":"uuid"},"key":{"type":"string","pattern":"^[a-z][a-z0-9_.-]{0,127}$"},"name":{"type":"string","minLength":1,"maxLength":500},"description":{"type":"string","maxLength":10000},"tags":{"type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":1000},"maxItems":100},"assetSlotIds":{"type":"array","uniqueItems":true,"items":{"type":"string","format":"uuid"}},"type":{"const":"process"},"properties":{"type":"object","additionalProperties":false,"required":["processType","steps","successState"],"properties":{"processType":{"type":"string","minLength":1,"maxLength":500},"steps":{"type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":1000},"minItems":1},"currentStep":{"type":"string","maxLength":1000},"successState":{"type":"string","minLength":1,"maxLength":2000}}}}},{"type":"object","additionalProperties":false,"required":["id","key","type","name","properties","tags","assetSlotIds"],"properties":{"id":{"type":"string","format":"uuid"},"key":{"type":"string","pattern":"^[a-z][a-z0-9_.-]{0,127}$"},"name":{"type":"string","minLength":1,"maxLength":500},"description":{"type":"string","maxLength":10000},"tags":{"type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":1000},"maxItems":100},"assetSlotIds":{"type":"array","uniqueItems":true,"items":{"type":"string","format":"uuid"}},"type":{"const":"environment"},"properties":{"type":"object","additionalProperties":false,"required":["locationType","constraints","availableTools","hazards"],"properties":{"locationType":{"type":"string","minLength":1,"maxLength":500},"constraints":{"type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":1000}},"availableTools":{"type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":1000}},"hazards":{"type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":1000}}}}}}]}},"phases":{"type":"array","minItems":1,"items":{"type":"object","additionalProperties":false,"required":["id","key","order","title","required"],"properties":{"id":{"type":"string","format":"uuid"},"key":{"type":"string","pattern":"^[a-z][a-z0-9_.-]{0,127}$"},"order":{"type":"integer","minimum":0},"title":{"type":"string","minLength":1,"maxLength":500},"description":{"type":"string","maxLength":10000},"objective":{"type":"string","maxLength":5000},"required":{"type":"boolean"}}}},"nodes":{"type":"array","minItems":1,"items":{"type":"object","additionalProperties":false,"required":["id","key","phaseId","kind","title","expectedActionKeys","modeBehaviors","terminal"],"properties":{"id":{"type":"string","format":"uuid"},"key":{"type":"string","pattern":"^[a-z][a-z0-9_.-]{0,127}$"},"phaseId":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["instruction","dialogue","observation","decision","action","diagnosis","feedback","end"]},"title":{"type":"string","minLength":1,"maxLength":500},"instruction":{"type":"string","maxLength":20000},"contentFormat":{"type":"string","enum":["plain_text","markdown"]},"mediaSlots":{"type":"array","uniqueItems":true,"items":{"type":"object","additionalProperties":false,"required":["slotKey","label","purpose","acceptedKinds","required"],"properties":{"slotKey":{"type":"string","pattern":"^[a-z][a-z0-9_.-]{0,127}$"},"label":{"type":"string","minLength":1,"maxLength":500},"purpose":{"type":"string","enum":["hero","counterpart","environment","device","instruction","feedback","voice","subtitle"]},"acceptedKinds":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"string","enum":["image","video","audio","model_3d","document","subtitle","avatar_scene","scene_360"]}},"required":{"type":"boolean"},"altText":{"type":"string","maxLength":2000}}}},"speakerEntityId":{"type":"string","format":"uuid"},"targetEntityId":{"type":"string","format":"uuid"},"expectedActionKeys":{"type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":1000}},"modeBehaviors":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["mode"],"properties":{"mode":{"type":"string","enum":["guided","guardrailed","free"]},"prompt":{"type":"string","maxLength":10000},"hint":{"type":"string","maxLength":10000},"availableActionKeys":{"type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":1000}},"forbiddenActionKeys":{"type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":1000}}}}},"terminal":{"type":"boolean"},"statePatch":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":255},"additionalProperties":{"type":["string","number","boolean","null"]}}}}},"transitions":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["id","key","fromNodeId","toNodeId","trigger","priority","enabledModes","conditions"],"properties":{"id":{"type":"string","format":"uuid"},"key":{"type":"string","pattern":"^[a-z][a-z0-9_.-]{0,127}$"},"fromNodeId":{"type":"string","format":"uuid"},"toNodeId":{"type":"string","format":"uuid"},"trigger":{"type":"string","enum":["always","learner_choice","intent","state_change","evidence","timeout","manual"]},"label":{"type":"string","maxLength":1000},"score":{"type":"number","minimum":0,"maximum":1},"revisitPolicy":{"type":"object","additionalProperties":false,"minProperties":1,"properties":{"maxTraversals":{"type":"integer","minimum":1,"maximum":100},"hideAfterTraversal":{"type":"boolean"}}},"priority":{"type":"integer","minimum":0},"enabledModes":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"string","enum":["guided","guardrailed","free"]}},"conditions":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["factKey","operator"],"properties":{"factKey":{"type":"string","minLength":1,"maxLength":255},"operator":{"type":"string","enum":["equals","not_equals","greater_than","less_than","contains","exists"]},"value":{"type":["string","number","boolean","null"]}}}}}}},"rubricCriteria":{"type":"array","minItems":1,"items":{"type":"object","additionalProperties":false,"required":["id","key","kind","title","description","evaluator","weight","maxScore","passThreshold","mandatory","safetyCritical","appliesToNodeIds","evidenceTypes"],"properties":{"id":{"type":"string","format":"uuid"},"key":{"type":"string","pattern":"^[a-z][a-z0-9_.-]{0,127}$"},"kind":{"type":"string","enum":["conversation","diagnosis","procedure","safety","outcome"]},"title":{"type":"string","minLength":1,"maxLength":500},"description":{"type":"string","minLength":1,"maxLength":10000},"evaluator":{"type":"string","enum":["rule","ai","human","hybrid"]},"weight":{"type":"number","exclusiveMinimum":0,"maximum":1000},"maxScore":{"type":"number","exclusiveMinimum":0,"maximum":1000000},"passThreshold":{"type":"number","minimum":0,"maximum":1000000},"mandatory":{"type":"boolean"},"safetyCritical":{"type":"boolean"},"appliesToNodeIds":{"type":"array","uniqueItems":true,"items":{"type":"string","format":"uuid"}},"evidenceTypes":{"type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":1000}}}}},"translations":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["id","objectType","objectId","fieldPath","locale","value","status","sourceHash","sourceRevision","translatedAt"],"properties":{"id":{"type":"string","format":"uuid"},"objectType":{"type":"string","enum":["experience","phase","entity","node","transition","rubric_criterion"]},"objectId":{"anyOf":[{"type":"string","format":"uuid"},{"const":"root"}]},"fieldPath":{"type":"string","pattern":"^/[A-Za-z0-9_.~/-]+$","maxLength":500},"locale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"value":{"type":"string","maxLength":1000000},"status":{"type":"string","enum":["machine_draft","human_draft","reviewed","stale"]},"sourceHash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"sourceRevision":{"type":"integer","minimum":0},"staleReason":{"type":"string","enum":["source_changed","object_changed","provider_changed","manual"]},"translatedAt":{"type":"string","format":"date-time"},"translatedBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["human","service","mcp_client"]},"displayName":{"type":"string","minLength":1,"maxLength":255}}},"provider":{"type":"string","minLength":1,"maxLength":255}},"allOf":[{"if":{"properties":{"status":{"const":"stale"}},"required":["status"]},"then":{"required":["staleReason"]}}]}},"authoringMetadata":{"type":"object","additionalProperties":false,"required":["nodes"],"properties":{"nodes":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["nodeId","interactionType","branches"],"properties":{"nodeId":{"type":"string","format":"uuid"},"interactionType":{"type":"string","enum":["dialogue","choice","inspect","measure","action","document"]},"coachRule":{"type":"string","minLength":1,"maxLength":20000},"branches":{"type":"array","items":{"oneOf":[{"type":"object","additionalProperties":false,"required":["kind","id","actionKey"],"properties":{"kind":{"const":"choice"},"id":{"type":"string","pattern":"^[a-z][a-z0-9_.-]{0,127}$"},"actionKey":{"type":"string","minLength":1,"maxLength":500},"reactionId":{"type":"string","pattern":"^[a-z][a-z0-9_.-]{0,127}$"},"reactionLibraryRef":{"type":"object","additionalProperties":false,"required":["entryId","versionId","versionNumber","contentHash"],"properties":{"entryId":{"type":"string","format":"uuid"},"versionId":{"type":"string","format":"uuid"},"versionNumber":{"type":"integer","minimum":1},"contentHash":{"type":"string","pattern":"^[0-9a-f]{64}$"}}}}},{"type":"object","additionalProperties":false,"required":["kind","id","actionKey","actionKind","targetEntityId","evidenceType"],"properties":{"kind":{"const":"technical_action"},"id":{"type":"string","pattern":"^[a-z][a-z0-9_.-]{0,127}$"},"actionKey":{"type":"string","minLength":1,"maxLength":500},"reactionId":{"type":"string","pattern":"^[a-z][a-z0-9_.-]{0,127}$"},"reactionLibraryRef":{"type":"object","additionalProperties":false,"required":["entryId","versionId","versionNumber","contentHash"],"properties":{"entryId":{"type":"string","format":"uuid"},"versionId":{"type":"string","format":"uuid"},"versionNumber":{"type":"integer","minimum":1},"contentHash":{"type":"string","pattern":"^[0-9a-f]{64}$"}}},"actionKind":{"type":"string","enum":["inspect","measure","perform","document"]},"targetEntityId":{"type":"string","format":"uuid"},"evidenceType":{"type":"string","minLength":1,"maxLength":2000},"expectedValue":{"type":"string","minLength":1,"maxLength":2000}}}]}}}}},"reactions":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["id","label","feedback","contentFormat","score","mediaSlots","tags"],"properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9_.-]{0,127}$"},"label":{"type":"string","minLength":1,"maxLength":500},"response":{"type":"string","maxLength":20000},"feedback":{"type":"string","maxLength":20000},"contentFormat":{"type":"string","enum":["plain_text","markdown"]},"score":{"type":"number","minimum":0,"maximum":1},"mediaSlots":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["slotKey","label","purpose","acceptedKinds","required"],"properties":{"slotKey":{"type":"string","pattern":"^[a-z][a-z0-9_.-]{0,127}$"},"label":{"type":"string","minLength":1,"maxLength":500},"purpose":{"type":"string","enum":["hero","counterpart","environment","device","instruction","feedback","voice","subtitle"]},"acceptedKinds":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"string","enum":["image","video","audio","model_3d","document","subtitle","avatar_scene","scene_360"]}},"required":{"type":"boolean"},"altText":{"type":"string","maxLength":2000}}}},"tags":{"type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":1000},"maxItems":100}}}}}},"deliveryConfiguration":{"type":"object","additionalProperties":false,"required":["targetGroups","prerequisites","estimatedMinutes","assignmentMode"],"properties":{"targetGroups":{"type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":1000},"minItems":1,"maxItems":100},"prerequisites":{"type":"string","maxLength":10000},"estimatedMinutes":{"type":"integer","minimum":1,"maximum":100000},"assignmentMode":{"type":"string","enum":["self_enrolment","manager_assignment","learning_campaign"]}}}}},"DraftValidationResult":{"title":"Immutable draft validation result","type":"object","additionalProperties":false,"required":["id","tenantId","experienceId","draftVersionId","draftRevision","profile","status","issues","contentHash","validatorVersion","checkedAt","checkedBy"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"experienceId":{"type":"string","format":"uuid"},"draftVersionId":{"type":"string","format":"uuid"},"draftRevision":{"type":"integer","minimum":0},"profile":{"type":"string","enum":["draft","review","publish"]},"status":{"type":"string","enum":["passed","failed"]},"issues":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["code","severity","category","path","message","blocking"],"properties":{"code":{"type":"string","pattern":"^[a-z][a-z0-9_.-]{0,127}$"},"severity":{"type":"string","enum":["error","warning","info"]},"category":{"type":"string","enum":["schema","graph","entity","rubric","locale","safety","privacy","delivery"]},"path":{"type":"string","pattern":"^/","maxLength":1000},"message":{"type":"string","minLength":1,"maxLength":10000},"blocking":{"type":"boolean"},"objectType":{"type":"string","enum":["experience","phase","entity","node","transition","rubric_criterion"]},"objectId":{"anyOf":[{"type":"string","format":"uuid"},{"const":"root"}]}}}},"contentHash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"validatorVersion":{"type":"string","minLength":1,"maxLength":100},"checkedAt":{"type":"string","format":"date-time"},"checkedBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["human","service","mcp_client"]},"displayName":{"type":"string","minLength":1,"maxLength":255}}}}},"ExperienceReview":{"title":"Immutable evidence-bound authoring review","type":"object","additionalProperties":false,"required":["id","tenantId","workspaceId","experienceId","draftVersionId","validationResultId","contentHash","status","submittedBy","submittedAt","requestedChanges","revision"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"workspaceId":{"type":"string","format":"uuid"},"experienceId":{"type":"string","format":"uuid"},"draftVersionId":{"type":"string","format":"uuid"},"validationResultId":{"type":"string","format":"uuid"},"contentHash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"status":{"type":"string","enum":["pending","approved","rejected","cancelled"]},"submissionNote":{"type":"string","minLength":1,"maxLength":4000},"submittedBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["human","service","mcp_client"]},"displayName":{"type":"string","minLength":1,"maxLength":255}}},"submittedAt":{"type":"string","format":"date-time"},"decidedBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["human","service","mcp_client"]},"displayName":{"type":"string","minLength":1,"maxLength":255}}},"decidedAt":{"type":"string","format":"date-time"},"decisionReason":{"type":"string","minLength":3,"maxLength":4000},"requestedChanges":{"type":"array","uniqueItems":true,"maxItems":100,"items":{"type":"string","minLength":1,"maxLength":4000}},"revision":{"type":"integer","minimum":1}}},"ExperienceRelease":{"title":"Immutable published Experience release","type":"object","additionalProperties":false,"required":["id","tenantId","workspaceId","experienceId","sourceDraftVersionId","validationResultId","reviewId","releaseNumber","releaseKey","schemaVersion","sourceLocale","locales","guidanceModes","snapshot","sourceContentHash","releaseHash","releasedAt","releasedBy"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"workspaceId":{"type":"string","format":"uuid"},"experienceId":{"type":"string","format":"uuid"},"sourceDraftVersionId":{"type":"string","format":"uuid"},"validationResultId":{"type":"string","format":"uuid"},"reviewId":{"type":"string","format":"uuid"},"releaseNumber":{"type":"integer","minimum":1},"releaseKey":{"type":"string","pattern":"^[a-z0-9][a-z0-9._-]{7,127}$"},"schemaVersion":{"const":2},"sourceLocale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"locales":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"}},"guidanceModes":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"string","enum":["guided","guardrailed","free"]}},"snapshot":{"$ref":"https://schemas.knowledgeworker.com/practice/v1/experience-authoring-spec.schema.json"},"mediaManifest":{"$ref":"https://schemas.knowledgeworker.com/practice/v1/experience-media-manifest.schema.json"},"sourceContentHash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"releaseHash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"releaseNotes":{"type":"object","propertyNames":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"additionalProperties":{"type":"string","maxLength":10000}},"releasedAt":{"type":"string","format":"date-time"},"releasedBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["human","service","mcp_client"]},"displayName":{"type":"string","minLength":1,"maxLength":255}}}}},"ExperienceAttempt":{"title":"Release-bound learning attempt","type":"object","additionalProperties":false,"required":["id","tenantId","workspaceId","experienceId","releaseId","releaseHash","experienceKind","learner","guidanceMode","locale","attemptNumber","status","privacy","currentConsentDecision","startedAt","lastActivityAt","revision"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"workspaceId":{"type":"string","format":"uuid"},"experienceId":{"type":"string","format":"uuid"},"releaseId":{"type":"string","format":"uuid"},"releaseHash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"experienceKind":{"type":"string","enum":["conversation","technical_diagnosis","hybrid_service","performance_submission"]},"learner":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["human","service","mcp_client"]},"displayName":{"type":"string","minLength":1,"maxLength":255}}},"guidanceMode":{"type":"string","enum":["guided","guardrailed","free"]},"locale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"attemptNumber":{"type":"integer","minimum":1},"status":{"type":"string","enum":["in_progress","paused","submitted","evaluating","completed","abandoned","expired"]},"privacy":{"type":"object","additionalProperties":false,"required":["noticeId","noticeVersion","locale","purposes","dataCategories","retentionDays","aiEvaluation","humanReview","visibleToRoles","contentHash","presentedAt","acknowledgedAt"],"properties":{"noticeId":{"type":"string","format":"uuid"},"noticeVersion":{"type":"string","minLength":1,"maxLength":100},"locale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"purposes":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"string","enum":["platform_administration","experience_authoring","learning_delivery","learning_evaluation","human_review","tenant_analytics","billing","connector_synchronization","compliance_review"]}},"dataCategories":{"type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":4000}},"retentionDays":{"type":"integer","minimum":1,"maximum":36500},"aiEvaluation":{"type":"boolean"},"humanReview":{"type":"boolean"},"visibleToRoles":{"type":"array","uniqueItems":true,"items":{"type":"string","enum":["learner","author","mentor","hr_ld_admin","tenant_admin","platform_operator","connector_admin","billing_admin","works_council_reviewer","data_protection_reviewer"]}},"contentHash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"presentedAt":{"type":"string","format":"date-time"},"acknowledgedAt":{"type":"string","format":"date-time"}}},"currentConsentDecision":{"type":"string","enum":["not_required","granted","withdrawn"]},"currentSessionId":{"type":"string","format":"uuid"},"latestCheckpointId":{"type":"string","format":"uuid"},"startedAt":{"type":"string","format":"date-time"},"lastActivityAt":{"type":"string","format":"date-time"},"submittedAt":{"type":"string","format":"date-time"},"completedAt":{"type":"string","format":"date-time"},"abandonedAt":{"type":"string","format":"date-time"},"revision":{"type":"integer","minimum":1}},"allOf":[{"if":{"properties":{"status":{"const":"completed"}},"required":["status"]},"then":{"required":["submittedAt","completedAt"]}},{"if":{"properties":{"status":{"const":"abandoned"}},"required":["status"]},"then":{"required":["abandonedAt"]}},{"if":{"properties":{"currentConsentDecision":{"const":"withdrawn"}},"required":["currentConsentDecision"]},"then":{"properties":{"status":{"const":"abandoned"}}}}]},"AttemptConsentReceipt":{"title":"Immutable attempt consent receipt","type":"object","additionalProperties":false,"required":["id","tenantId","attemptId","noticeId","noticeVersion","decision","purposes","decidedAt","decidedBy","evidenceHash"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"attemptId":{"type":"string","format":"uuid"},"noticeId":{"type":"string","format":"uuid"},"noticeVersion":{"type":"string","minLength":1,"maxLength":100},"decision":{"type":"string","enum":["not_required","granted","withdrawn"]},"purposes":{"type":"array","uniqueItems":true,"items":{"type":"string","enum":["platform_administration","experience_authoring","learning_delivery","learning_evaluation","human_review","tenant_analytics","billing","connector_synchronization","compliance_review"]}},"reason":{"type":"string","minLength":1,"maxLength":4000},"decidedAt":{"type":"string","format":"date-time"},"decidedBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["human","service","mcp_client"]},"displayName":{"type":"string","minLength":1,"maxLength":255}}},"evidenceHash":{"type":"string","pattern":"^[0-9a-f]{64}$"}},"allOf":[{"if":{"properties":{"decision":{"const":"withdrawn"}},"required":["decision"]},"then":{"required":["reason"]}}]},"AttemptSession":{"title":"Attempt execution session","type":"object","additionalProperties":false,"required":["id","tenantId","attemptId","releaseId","releaseHash","sequenceNumber","status","clientInstanceId","startedAt","lastActivityAt","revision"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"attemptId":{"type":"string","format":"uuid"},"releaseId":{"type":"string","format":"uuid"},"releaseHash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"sequenceNumber":{"type":"integer","minimum":1},"status":{"type":"string","enum":["active","paused","ended","expired"]},"clientInstanceId":{"type":"string","minLength":1,"maxLength":255},"resumedFromCheckpointId":{"type":"string","format":"uuid"},"startedAt":{"type":"string","format":"date-time"},"lastActivityAt":{"type":"string","format":"date-time"},"endedAt":{"type":"string","format":"date-time"},"endReason":{"type":"string","enum":["checkpoint_saved","completed","abandoned","timeout","replaced"]},"revision":{"type":"integer","minimum":1}},"allOf":[{"if":{"properties":{"status":{"const":"active"}},"required":["status"]},"then":{"not":{"anyOf":[{"required":["endedAt"]},{"required":["endReason"]}]}},"else":{"required":["endedAt","endReason"]}}]},"ResumeCheckpoint":{"title":"Immutable attempt resume checkpoint","type":"object","additionalProperties":false,"required":["id","tenantId","attemptId","sessionId","releaseId","releaseHash","sequenceNumber","interactionSequence","stateSnapshot","reason","checksum","createdAt"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"attemptId":{"type":"string","format":"uuid"},"releaseId":{"type":"string","format":"uuid"},"releaseHash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"sessionId":{"type":"string","format":"uuid"},"sequenceNumber":{"type":"integer","minimum":1},"interactionSequence":{"type":"integer","minimum":0},"phaseId":{"type":"string","format":"uuid"},"nodeId":{"type":"string","format":"uuid"},"stateSnapshot":{"type":"object"},"reason":{"type":"string","enum":["automatic","learner_requested","session_end","connectivity_loss"]},"checksum":{"type":"string","pattern":"^[0-9a-f]{64}$"},"createdAt":{"type":"string","format":"date-time"}}},"ConversationTurn":{"title":"Immutable conversation turn","type":"object","additionalProperties":false,"required":["id","tenantId","attemptId","sessionId","releaseId","releaseHash","sequenceNumber","actor","modality","content","occurredAt"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"attemptId":{"type":"string","format":"uuid"},"releaseId":{"type":"string","format":"uuid"},"releaseHash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"sessionId":{"type":"string","format":"uuid"},"sequenceNumber":{"type":"integer","minimum":1},"actor":{"type":"string","enum":["learner","simulation","coach","system"]},"modality":{"type":"string","enum":["text","voice","video"]},"phaseId":{"type":"string","format":"uuid"},"nodeId":{"type":"string","format":"uuid"},"counterpartEntityId":{"type":"string","format":"uuid"},"content":{"type":"object","additionalProperties":false,"required":["locale"],"properties":{"text":{"type":"string","maxLength":100000},"transcript":{"type":"string","maxLength":100000},"audioAssetId":{"type":"string","format":"uuid"},"videoAssetId":{"type":"string","format":"uuid"},"durationMs":{"type":"integer","minimum":0},"locale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"}},"anyOf":[{"required":["text"]},{"required":["transcript"]},{"required":["audioAssetId"]},{"required":["videoAssetId"]}]},"correlationTurnId":{"type":"string","format":"uuid"},"occurredAt":{"type":"string","format":"date-time"},"latencyMs":{"type":"integer","minimum":0}}},"TechnicalAction":{"title":"Immutable technical learner action","type":"object","additionalProperties":false,"required":["id","tenantId","attemptId","sessionId","releaseId","releaseHash","sequenceNumber","actionKey","targetEntityId","parameters","safetyGateState","occurredAt"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"attemptId":{"type":"string","format":"uuid"},"releaseId":{"type":"string","format":"uuid"},"releaseHash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"sessionId":{"type":"string","format":"uuid"},"sequenceNumber":{"type":"integer","minimum":1},"phaseId":{"type":"string","format":"uuid"},"nodeId":{"type":"string","format":"uuid"},"actionKey":{"type":"string","pattern":"^[a-z][a-z0-9_.-]{0,127}$"},"targetEntityId":{"type":"string","format":"uuid"},"toolEntityId":{"type":"string","format":"uuid"},"parameters":{"type":"object"},"safetyGateState":{"type":"string","enum":["clear","warning","blocked","overridden"]},"occurredAt":{"type":"string","format":"date-time"}}},"RuntimeObservation":{"title":"Immutable runtime observation","type":"object","additionalProperties":false,"required":["id","tenantId","attemptId","sessionId","releaseId","releaseHash","sequenceNumber","type","source","severity","data","observedAt"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"attemptId":{"type":"string","format":"uuid"},"releaseId":{"type":"string","format":"uuid"},"releaseHash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"sessionId":{"type":"string","format":"uuid"},"sequenceNumber":{"type":"integer","minimum":1},"type":{"type":"string","enum":["state_change","measurement","visual","audio","message","safety_alert","tool_result"]},"source":{"type":"string","enum":["device","software","environment","simulation","system","evaluator"]},"severity":{"type":"string","enum":["info","warning","critical"]},"entityId":{"type":"string","format":"uuid"},"causedByTurnId":{"type":"string","format":"uuid"},"causedByActionId":{"type":"string","format":"uuid"},"data":{"type":"object"},"observedAt":{"type":"string","format":"date-time"}},"allOf":[{"not":{"required":["causedByTurnId","causedByActionId"]}}]},"AttemptEvidence":{"title":"Immutable attempt evidence","type":"object","additionalProperties":false,"required":["id","tenantId","attemptId","releaseId","releaseHash","type","sources","criterionIds","payload","provenance","contentHash","collectedAt"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"attemptId":{"type":"string","format":"uuid"},"releaseId":{"type":"string","format":"uuid"},"releaseHash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"type":{"type":"string","enum":["transcript_span","action_sequence","state_transition","measurement","observation","media","evaluator_signal"]},"sources":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"type":"string","enum":["turn","action","observation","checkpoint"]},"id":{"type":"string","format":"uuid"}}}},"criterionIds":{"type":"array","uniqueItems":true,"items":{"type":"string","format":"uuid"}},"payload":{"type":"object"},"provenance":{"type":"object","additionalProperties":false,"required":["collector","collectorVersion"],"properties":{"collector":{"type":"string","enum":["runtime","rule_evaluator","ai_evaluator","human_reviewer"]},"collectorVersion":{"type":"string","minLength":1,"maxLength":100},"modelProvider":{"type":"string","minLength":1,"maxLength":255},"modelName":{"type":"string","minLength":1,"maxLength":255}}},"contentHash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"collectedAt":{"type":"string","format":"date-time"}}},"CriterionScore":{"title":"Immutable rubric criterion score","type":"object","additionalProperties":false,"required":["id","tenantId","attemptId","releaseId","releaseHash","criterionId","kind","evaluator","score","maxScore","passThreshold","passed","evidenceIds","evaluationVersion","evaluatedAt","evaluatedBy"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"attemptId":{"type":"string","format":"uuid"},"releaseId":{"type":"string","format":"uuid"},"releaseHash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"criterionId":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["formative","final","override"]},"evaluator":{"type":"string","enum":["rule","ai","human","hybrid"]},"score":{"type":"number","minimum":0},"maxScore":{"type":"number","exclusiveMinimum":0},"passThreshold":{"type":"number","minimum":0},"passed":{"type":"boolean"},"confidence":{"type":"number","minimum":0,"maximum":1},"evidenceIds":{"type":"array","uniqueItems":true,"items":{"type":"string","format":"uuid"}},"rationale":{"type":"string","maxLength":10000},"evaluationVersion":{"type":"string","minLength":1,"maxLength":100},"replacesScoreId":{"type":"string","format":"uuid"},"evaluatedAt":{"type":"string","format":"date-time"},"evaluatedBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["human","service","mcp_client"]},"displayName":{"type":"string","minLength":1,"maxLength":255}}}}},"AttemptEvaluation":{"title":"Immutable attempt evaluation","type":"object","additionalProperties":false,"required":["id","tenantId","attemptId","releaseId","releaseHash","scope","outcome","score","maxScore","criterionScoreIds","evaluationVersion","evaluatedAt","evaluatedBy"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"attemptId":{"type":"string","format":"uuid"},"releaseId":{"type":"string","format":"uuid"},"releaseHash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"scope":{"type":"string","enum":["formative","final"]},"outcome":{"type":"string","enum":["passed","failed","incomplete"]},"score":{"type":"number","minimum":0},"maxScore":{"type":"number","exclusiveMinimum":0},"criterionScoreIds":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"string","format":"uuid"}},"evaluationVersion":{"type":"string","minLength":1,"maxLength":100},"evaluatedAt":{"type":"string","format":"date-time"},"evaluatedBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["human","service","mcp_client"]},"displayName":{"type":"string","minLength":1,"maxLength":255}}}}},"LearningFeedback":{"title":"Immutable learner feedback","type":"object","additionalProperties":false,"required":["id","tenantId","attemptId","releaseId","releaseHash","kind","trigger","locale","message","strengths","growthAreas","recommendations","visibleAt","generatedAt","generatedBy"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"attemptId":{"type":"string","format":"uuid"},"releaseId":{"type":"string","format":"uuid"},"releaseHash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"kind":{"type":"string","enum":["formative","final"]},"trigger":{"type":"string","enum":["after_turn","after_action","on_request","completion"]},"locale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"message":{"type":"string","minLength":1,"maxLength":100000},"strengths":{"type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":4000}},"growthAreas":{"type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":4000}},"recommendations":{"type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":4000}},"relatedTurnId":{"type":"string","format":"uuid"},"relatedActionId":{"type":"string","format":"uuid"},"evaluationId":{"type":"string","format":"uuid"},"visibleAt":{"type":"string","format":"date-time"},"generatedAt":{"type":"string","format":"date-time"},"generatedBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["human","service","mcp_client"]},"displayName":{"type":"string","minLength":1,"maxLength":255}}}},"allOf":[{"not":{"required":["relatedTurnId","relatedActionId"]}},{"if":{"properties":{"kind":{"const":"final"}},"required":["kind"]},"then":{"required":["evaluationId"],"properties":{"trigger":{"const":"completion"}}}}]},"LearnerRunBundle":{"title":"Complete release-bound learner run","type":"object","additionalProperties":false,"required":["attempt","consentReceipts","sessions","checkpoints","turns","actions","observations","evidence","criterionScores","evaluations","feedback"],"properties":{"attempt":{"$ref":"https://schemas.knowledgeworker.com/practice/v1/experience-attempt.schema.json"},"consentReceipts":{"type":"array","items":{"$ref":"https://schemas.knowledgeworker.com/practice/v1/attempt-consent-receipt.schema.json"}},"sessions":{"type":"array","items":{"$ref":"https://schemas.knowledgeworker.com/practice/v1/attempt-session.schema.json"}},"checkpoints":{"type":"array","items":{"$ref":"https://schemas.knowledgeworker.com/practice/v1/resume-checkpoint.schema.json"}},"turns":{"type":"array","items":{"$ref":"https://schemas.knowledgeworker.com/practice/v1/conversation-turn.schema.json"}},"actions":{"type":"array","items":{"$ref":"https://schemas.knowledgeworker.com/practice/v1/technical-action.schema.json"}},"observations":{"type":"array","items":{"$ref":"https://schemas.knowledgeworker.com/practice/v1/runtime-observation.schema.json"}},"evidence":{"type":"array","items":{"$ref":"https://schemas.knowledgeworker.com/practice/v1/attempt-evidence.schema.json"}},"criterionScores":{"type":"array","items":{"$ref":"https://schemas.knowledgeworker.com/practice/v1/criterion-score.schema.json"}},"evaluations":{"type":"array","items":{"$ref":"https://schemas.knowledgeworker.com/practice/v1/attempt-evaluation.schema.json"}},"feedback":{"type":"array","items":{"$ref":"https://schemas.knowledgeworker.com/practice/v1/learning-feedback.schema.json"}}}},"PrivacyNoticeSnapshot":{"type":"object","additionalProperties":false,"required":["noticeId","noticeVersion","locale","purposes","dataCategories","retentionDays","aiEvaluation","humanReview","visibleToRoles","contentHash","presentedAt","acknowledgedAt"],"properties":{"noticeId":{"type":"string","format":"uuid"},"noticeVersion":{"type":"string"},"locale":{"type":"string"},"purposes":{"type":"array","items":{"type":"string"}},"dataCategories":{"type":"array","items":{"type":"string"}},"retentionDays":{"type":"integer","minimum":1},"aiEvaluation":{"type":"boolean","const":false},"humanReview":{"type":"boolean"},"visibleToRoles":{"type":"array","items":{"type":"string"}},"contentHash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"presentedAt":{"type":"string","format":"date-time"},"acknowledgedAt":{"type":"string","format":"date-time"}}},"LearnerReleaseCatalogEntry":{"type":"object","additionalProperties":false,"required":["release","experience","privacyNotice"],"properties":{"release":{"$ref":"#/components/schemas/ExperienceRelease"},"experience":{"$ref":"#/components/schemas/PracticeExperience"},"privacyNotice":{"$ref":"#/components/schemas/PrivacyNoticeSnapshot"}}},"RuntimeView":{"type":"object","required":["attempt","session","release","currentNode","progress","observations","evidence","feedback"],"properties":{"attempt":{"$ref":"#/components/schemas/ExperienceAttempt"},"session":{"$ref":"#/components/schemas/AttemptSession"},"release":{"$ref":"#/components/schemas/ExperienceRelease"},"currentNode":{"type":"object","required":["id","phaseId","phaseTitle","kind","title","availableActions","inspectTargets","terminal"],"properties":{"id":{"type":"string","format":"uuid"},"phaseId":{"type":"string","format":"uuid"},"phaseTitle":{"type":"string"},"phaseObjective":{"type":"string"},"kind":{"type":"string"},"title":{"type":"string"},"instruction":{"type":"string"},"prompt":{"type":"string"},"stimulus":{"type":"string"},"hint":{"type":"string"},"counterpartText":{"type":"string"},"counterpartLabel":{"type":"string"},"availableActions":{"type":"array","items":{"type":"object","required":["key","label","kind"],"properties":{"key":{"type":"string"},"label":{"type":"string"},"kind":{"type":"string"},"targetEntityId":{"type":"string","format":"uuid"},"safetyCritical":{"type":"boolean"}}}},"inspectTargets":{"type":"array","items":{"type":"object"}},"measurement":{"type":"object"},"terminal":{"type":"boolean"}}},"progress":{"type":"object"},"latestCheckpoint":{"$ref":"#/components/schemas/ResumeCheckpoint"},"observations":{"type":"array","items":{"$ref":"#/components/schemas/RuntimeObservation"}},"evidence":{"type":"array","items":{"$ref":"#/components/schemas/AttemptEvidence"}},"feedback":{"type":"array","items":{"$ref":"#/components/schemas/LearningFeedback"}},"evaluation":{"type":"object"},"redacted":{"type":"boolean"},"redaction":{"type":"object"}}},"StartAttemptInput":{"type":"object","additionalProperties":false,"required":["releaseId","guidanceMode","locale","clientInstanceId","privacyAcknowledgement"],"properties":{"releaseId":{"type":"string","format":"uuid"},"guidanceMode":{"type":"string","enum":["guided","guardrailed","free"]},"locale":{"type":"string"},"clientInstanceId":{"type":"string","minLength":1,"maxLength":255},"privacyAcknowledgement":{"type":"object","additionalProperties":false,"required":["noticeId","noticeVersion","acknowledgedAt","consentDecision","consentPurposes"],"properties":{"noticeId":{"type":"string","format":"uuid"},"noticeVersion":{"type":"string"},"acknowledgedAt":{"type":"string","format":"date-time"},"consentDecision":{"type":"string","enum":["not_required","granted"]},"consentPurposes":{"type":"array","items":{"type":"string","enum":["learning_delivery"]}}}}}},"ResumeAttemptInput":{"type":"object","additionalProperties":false,"required":["clientInstanceId"],"properties":{"expectedRevision":{"type":"integer","minimum":1},"checkpointId":{"type":"string","format":"uuid"},"clientInstanceId":{"type":"string","minLength":1,"maxLength":255}}},"SubmitTurnInput":{"type":"object","additionalProperties":false,"required":["sessionId","expectedInteractionSequence","modality","content","occurredAt"],"properties":{"sessionId":{"type":"string","format":"uuid"},"expectedRevision":{"type":"integer","minimum":1},"expectedInteractionSequence":{"type":"integer","minimum":0},"nodeId":{"type":"string","format":"uuid"},"modality":{"type":"string","enum":["text","voice","video"]},"content":{"type":"object"},"occurredAt":{"type":"string","format":"date-time"}}},"SubmitActionInput":{"type":"object","additionalProperties":false,"required":["sessionId","expectedInteractionSequence","actionKey","targetEntityId","parameters","occurredAt"],"properties":{"sessionId":{"type":"string","format":"uuid"},"expectedRevision":{"type":"integer","minimum":1},"expectedInteractionSequence":{"type":"integer","minimum":0},"nodeId":{"type":"string","format":"uuid"},"actionKey":{"type":"string","pattern":"^[a-z][a-z0-9_.-]{0,127}$"},"targetEntityId":{"type":"string","format":"uuid"},"toolEntityId":{"type":"string","format":"uuid"},"parameters":{"type":"object"},"occurredAt":{"type":"string","format":"date-time"}}},"SaveCheckpointInput":{"type":"object","additionalProperties":false,"required":["sessionId","interactionSequence","reason"],"properties":{"sessionId":{"type":"string","format":"uuid"},"expectedRevision":{"type":"integer","minimum":1},"interactionSequence":{"type":"integer","minimum":0},"phaseId":{"type":"string","format":"uuid"},"nodeId":{"type":"string","format":"uuid"},"stateSnapshot":{"type":"object","description":"Optional client echo; the server persists its authoritative state."},"reason":{"type":"string","enum":["automatic","learner_requested","session_end","connectivity_loss"]}}},"CompleteAttemptInput":{"type":"object","additionalProperties":false,"required":["sessionId"],"properties":{"sessionId":{"type":"string","format":"uuid"},"expectedRevision":{"type":"integer","minimum":1}}},"AbandonAttemptInput":{"type":"object","additionalProperties":false,"required":["reason"],"properties":{"sessionId":{"type":"string","format":"uuid"},"expectedRevision":{"type":"integer","minimum":1},"reason":{"type":"string","minLength":3,"maxLength":4000}}},"WithdrawConsentInput":{"type":"object","additionalProperties":false,"required":["reason"],"properties":{"expectedRevision":{"type":"integer","minimum":1},"reason":{"type":"string","minLength":3,"maxLength":4000}}},"AuthoringSpecEnvelope":{"type":"object","required":["experienceId","experienceRevision","spec","contentHash"],"properties":{"experienceId":{"type":"string","format":"uuid"},"experienceRevision":{"type":"integer","minimum":1},"status":{"type":"string","enum":["draft","in_review","approved","published","archived"]},"spec":{"$ref":"#/components/schemas/ExperienceAuthoringSpec"},"contentHash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"draftVersionId":{"type":"string","format":"uuid"},"draftVersionNumber":{"type":"integer","minimum":1}}},"UpdateAuthoringSpecInput":{"type":"object","additionalProperties":false,"required":["spec","changeReason"],"properties":{"expectedRevision":{"type":"integer","minimum":1},"spec":{"$ref":"#/components/schemas/ExperienceAuthoringSpec"},"changeReason":{"type":"string","minLength":3,"maxLength":500}}},"ValidateAuthoringSpecInput":{"type":"object","additionalProperties":false,"properties":{"expectedRevision":{"type":"integer","minimum":1},"profile":{"type":"string","enum":["draft","review","publish"],"default":"draft"},"submitForReview":{"type":"boolean","default":false},"submissionNote":{"type":"string","minLength":1,"maxLength":4000}}},"ApproveExperienceReviewInput":{"type":"object","additionalProperties":false,"required":["reason"],"properties":{"expectedRevision":{"type":"integer","minimum":1},"reason":{"type":"string","minLength":3,"maxLength":4000}}},"RejectExperienceReviewInput":{"type":"object","additionalProperties":false,"required":["reason","requestedChanges"],"properties":{"expectedRevision":{"type":"integer","minimum":1},"reason":{"type":"string","minLength":3,"maxLength":4000},"requestedChanges":{"type":"array","minItems":1,"maxItems":100,"uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":4000}}}},"UpdateTranslationsInput":{"type":"object","additionalProperties":false,"required":["translations","changeReason"],"properties":{"expectedRevision":{"type":"integer","minimum":1},"translations":{"type":"array","items":{"description":"ObjectTranslation from the ExperienceAuthoringSpec contract.","type":"object"}},"changeReason":{"type":"string","minLength":3,"maxLength":500}}},"PublishExperienceInput":{"type":"object","additionalProperties":false,"required":["reviewId"],"properties":{"expectedRevision":{"type":"integer","minimum":1},"reviewId":{"type":"string","format":"uuid"},"releaseNotes":{"type":"object","additionalProperties":{"type":"string","maxLength":10000}},"changeReason":{"type":"string","minLength":3,"maxLength":500}}},"CommandEnvelope":{"title":"Command envelope","type":"object","additionalProperties":false,"required":["apiVersion","kind","metadata","spec"],"properties":{"apiVersion":{"const":"practice.knowledgeworker.com/v1"},"kind":{"const":"Command"},"metadata":{"type":"object","additionalProperties":false,"required":["commandId","tenantId","idempotencyKey","correlationId","requestedAt","requestedBy","purpose"],"properties":{"commandId":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"workspaceId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":255},"correlationId":{"type":"string","format":"uuid"},"causationId":{"type":"string","format":"uuid"},"requestedAt":{"type":"string","format":"date-time"},"requestedBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["human","service","mcp_client"]},"displayName":{"type":"string","minLength":1,"maxLength":255}}},"purpose":{"type":"string","enum":["platform_administration","experience_authoring","learning_delivery","learning_evaluation","human_review","tenant_analytics","billing","connector_synchronization","compliance_review"]},"locale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"dryRun":{"type":"boolean"}}},"spec":{"oneOf":[{"type":"object","additionalProperties":false,"required":["type","payload"],"properties":{"type":{"const":"tenant.create"},"payload":{"type":"object","additionalProperties":false,"required":["slug","displayName","defaultLocale","allowedLocales","dataRegion"],"properties":{"slug":{"type":"string","pattern":"^[a-z][a-z0-9-]{2,62}$"},"displayName":{"type":"string","minLength":1},"defaultLocale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"allowedLocales":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"}},"dataRegion":{"const":"eu"}}}}},{"type":"object","additionalProperties":false,"required":["type","payload"],"properties":{"type":{"const":"tenant.update"},"payload":{"type":"object","additionalProperties":false,"required":["tenantId","expectedRevision","patch"],"properties":{"tenantId":{"type":"string","format":"uuid"},"expectedRevision":{"type":"integer","minimum":0},"patch":{"type":"object","minProperties":1,"additionalProperties":false,"properties":{"displayName":{"type":"string","minLength":1},"defaultLocale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"allowedLocales":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"}},"featureFlags":{"type":"object","additionalProperties":{"type":"boolean"}}}}}}}},{"type":"object","additionalProperties":false,"required":["type","payload"],"properties":{"type":{"const":"workspace.create"},"payload":{"type":"object","additionalProperties":false,"required":["key","name","defaultLocale"],"properties":{"key":{"type":"string","minLength":1,"maxLength":255},"name":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"values":{"type":"object","minProperties":1,"propertyNames":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"additionalProperties":{"type":"string"}}}},"description":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"values":{"type":"object","minProperties":1,"propertyNames":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"additionalProperties":{"type":"string"}}}},"defaultLocale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"}}}}},{"type":"object","additionalProperties":false,"required":["type","payload"],"properties":{"type":{"const":"workspace.update"},"payload":{"type":"object","additionalProperties":false,"required":["workspaceId","expectedRevision","patch"],"properties":{"workspaceId":{"type":"string","format":"uuid"},"expectedRevision":{"type":"integer","minimum":0},"patch":{"type":"object","minProperties":1,"additionalProperties":false,"properties":{"name":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"values":{"type":"object","minProperties":1,"propertyNames":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"additionalProperties":{"type":"string"}}}},"description":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"values":{"type":"object","minProperties":1,"propertyNames":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"additionalProperties":{"type":"string"}}}},"status":{"type":"string","enum":["active","archived"]},"defaultLocale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"}}}}}}},{"type":"object","additionalProperties":false,"required":["type","payload"],"properties":{"type":{"const":"experience.create"},"payload":{"type":"object","additionalProperties":false,"required":["workspaceId","key","kind","title"],"properties":{"workspaceId":{"type":"string","format":"uuid"},"key":{"type":"string","minLength":1,"maxLength":255},"kind":{"type":"string","enum":["conversation","technical_diagnosis","hybrid_service","performance_submission"]},"title":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"values":{"type":"object","minProperties":1,"propertyNames":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"additionalProperties":{"type":"string"}}}},"description":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"values":{"type":"object","minProperties":1,"propertyNames":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"additionalProperties":{"type":"string"}}}}}}}},{"type":"object","additionalProperties":false,"required":["type","payload"],"properties":{"type":{"const":"experience.update"},"payload":{"type":"object","additionalProperties":false,"required":["experienceId","expectedRevision","changes","changeReason"],"properties":{"experienceId":{"type":"string","format":"uuid"},"expectedRevision":{"type":"integer","minimum":0},"changes":{"type":"object","minProperties":1},"changeReason":{"type":"string","minLength":1,"maxLength":1000}}}}},{"type":"object","additionalProperties":false,"required":["type","payload"],"properties":{"type":{"const":"experience.validate"},"payload":{"type":"object","additionalProperties":false,"required":["experienceId","revision","validationProfile"],"properties":{"experienceId":{"type":"string","format":"uuid"},"revision":{"type":"integer","minimum":0},"validationProfile":{"type":"string","enum":["draft","review","publish"]}}}}},{"type":"object","additionalProperties":false,"required":["type","payload"],"properties":{"type":{"const":"experience.review.submit"},"payload":{"type":"object","additionalProperties":false,"required":["experienceId","draftVersionId","expectedRevision","validationResultId"],"properties":{"experienceId":{"type":"string","format":"uuid"},"draftVersionId":{"type":"string","format":"uuid"},"expectedRevision":{"type":"integer","minimum":0},"validationResultId":{"type":"string","format":"uuid"},"note":{"type":"string","minLength":1,"maxLength":4000}}}}},{"type":"object","additionalProperties":false,"required":["type","payload"],"properties":{"type":{"const":"experience.review.approve"},"payload":{"type":"object","additionalProperties":false,"required":["experienceId","draftVersionId","reviewId","expectedRevision","decisionReason"],"properties":{"experienceId":{"type":"string","format":"uuid"},"draftVersionId":{"type":"string","format":"uuid"},"reviewId":{"type":"string","format":"uuid"},"expectedRevision":{"type":"integer","minimum":0},"decisionReason":{"type":"string","minLength":1,"maxLength":4000}}}}},{"type":"object","additionalProperties":false,"required":["type","payload"],"properties":{"type":{"const":"experience.review.reject"},"payload":{"type":"object","additionalProperties":false,"required":["experienceId","draftVersionId","reviewId","expectedRevision","reason","requestedChanges"],"properties":{"experienceId":{"type":"string","format":"uuid"},"draftVersionId":{"type":"string","format":"uuid"},"reviewId":{"type":"string","format":"uuid"},"expectedRevision":{"type":"integer","minimum":0},"reason":{"type":"string","minLength":1,"maxLength":4000},"requestedChanges":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":4000}}}}}},{"type":"object","additionalProperties":false,"required":["type","payload"],"properties":{"type":{"const":"experience.publish"},"payload":{"type":"object","additionalProperties":false,"required":["experienceId","expectedRevision","reviewId"],"properties":{"experienceId":{"type":"string","format":"uuid"},"expectedRevision":{"type":"integer","minimum":0},"draftVersionId":{"type":"string","format":"uuid"},"validationResultId":{"type":"string","format":"uuid"},"reviewId":{"type":"string","format":"uuid"},"releaseKey":{"type":"string","pattern":"^[a-z0-9][a-z0-9._-]{7,127}$"},"releaseNotes":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"values":{"type":"object","minProperties":1,"propertyNames":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"additionalProperties":{"type":"string"}}}}}}}},{"type":"object","additionalProperties":false,"required":["type","payload"],"properties":{"type":{"const":"attempt.start"},"payload":{"type":"object","additionalProperties":false,"required":["releaseId","guidanceMode","locale","clientInstanceId","privacyAcknowledgement"],"properties":{"releaseId":{"type":"string","format":"uuid"},"guidanceMode":{"type":"string","enum":["guided","guardrailed","free"]},"locale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"clientInstanceId":{"type":"string","minLength":1,"maxLength":255},"privacyAcknowledgement":{"type":"object","additionalProperties":false,"required":["noticeId","noticeVersion","acknowledgedAt","consentDecision","consentPurposes"],"properties":{"noticeId":{"type":"string","format":"uuid"},"noticeVersion":{"type":"string","minLength":1,"maxLength":100},"acknowledgedAt":{"type":"string","format":"date-time"},"consentDecision":{"type":"string","enum":["not_required","granted"]},"consentPurposes":{"type":"array","uniqueItems":true,"items":{"type":"string","enum":["platform_administration","experience_authoring","learning_delivery","learning_evaluation","human_review","tenant_analytics","billing","connector_synchronization","compliance_review"]}}}}}}}},{"type":"object","additionalProperties":false,"required":["type","payload"],"properties":{"type":{"const":"attempt.resume"},"payload":{"type":"object","additionalProperties":false,"required":["attemptId","expectedRevision","clientInstanceId"],"properties":{"attemptId":{"type":"string","format":"uuid"},"expectedRevision":{"type":"integer","minimum":0},"checkpointId":{"type":"string","format":"uuid"},"clientInstanceId":{"type":"string","minLength":1,"maxLength":255}}}}},{"type":"object","additionalProperties":false,"required":["type","payload"],"properties":{"type":{"const":"attempt.turn.submit"},"payload":{"type":"object","additionalProperties":false,"required":["attemptId","sessionId","expectedRevision","expectedInteractionSequence","modality","content","occurredAt"],"properties":{"attemptId":{"type":"string","format":"uuid"},"sessionId":{"type":"string","format":"uuid"},"expectedRevision":{"type":"integer","minimum":0},"expectedInteractionSequence":{"type":"integer","minimum":0},"nodeId":{"type":"string","format":"uuid"},"modality":{"type":"string","enum":["text","voice","video"]},"content":{"type":"object","additionalProperties":false,"required":["locale"],"minProperties":2,"properties":{"text":{"type":"string","maxLength":100000},"transcript":{"type":"string","maxLength":100000},"audioAssetId":{"type":"string","format":"uuid"},"videoAssetId":{"type":"string","format":"uuid"},"durationMs":{"type":"integer","minimum":0},"locale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"}}},"occurredAt":{"type":"string","format":"date-time"}}}}},{"type":"object","additionalProperties":false,"required":["type","payload"],"properties":{"type":{"const":"attempt.action.submit"},"payload":{"type":"object","additionalProperties":false,"required":["attemptId","sessionId","expectedRevision","expectedInteractionSequence","actionKey","targetEntityId","parameters","occurredAt"],"properties":{"attemptId":{"type":"string","format":"uuid"},"sessionId":{"type":"string","format":"uuid"},"expectedRevision":{"type":"integer","minimum":0},"expectedInteractionSequence":{"type":"integer","minimum":0},"nodeId":{"type":"string","format":"uuid"},"actionKey":{"type":"string","pattern":"^[a-z][a-z0-9_.-]{0,127}$"},"targetEntityId":{"type":"string","format":"uuid"},"toolEntityId":{"type":"string","format":"uuid"},"parameters":{"type":"object"},"occurredAt":{"type":"string","format":"date-time"}}}}},{"type":"object","additionalProperties":false,"required":["type","payload"],"properties":{"type":{"const":"attempt.checkpoint.save"},"payload":{"type":"object","additionalProperties":false,"required":["attemptId","sessionId","expectedRevision","interactionSequence","stateSnapshot","reason"],"properties":{"attemptId":{"type":"string","format":"uuid"},"sessionId":{"type":"string","format":"uuid"},"expectedRevision":{"type":"integer","minimum":0},"interactionSequence":{"type":"integer","minimum":0},"phaseId":{"type":"string","format":"uuid"},"nodeId":{"type":"string","format":"uuid"},"stateSnapshot":{"type":"object"},"reason":{"type":"string","enum":["automatic","learner_requested","session_end","connectivity_loss"]}}}}},{"type":"object","additionalProperties":false,"required":["type","payload"],"properties":{"type":{"const":"attempt.complete"},"payload":{"type":"object","additionalProperties":false,"required":["attemptId","sessionId","expectedRevision"],"properties":{"attemptId":{"type":"string","format":"uuid"},"sessionId":{"type":"string","format":"uuid"},"expectedRevision":{"type":"integer","minimum":0}}}}},{"type":"object","additionalProperties":false,"required":["type","payload"],"properties":{"type":{"const":"attempt.abandon"},"payload":{"type":"object","additionalProperties":false,"required":["attemptId","expectedRevision","reason"],"properties":{"attemptId":{"type":"string","format":"uuid"},"sessionId":{"type":"string","format":"uuid"},"expectedRevision":{"type":"integer","minimum":0},"reason":{"type":"string","minLength":1,"maxLength":4000}}}}},{"type":"object","additionalProperties":false,"required":["type","payload"],"properties":{"type":{"const":"attempt.consent.withdraw"},"payload":{"type":"object","additionalProperties":false,"required":["attemptId","expectedRevision","reason"],"properties":{"attemptId":{"type":"string","format":"uuid"},"expectedRevision":{"type":"integer","minimum":0},"reason":{"type":"string","minLength":1,"maxLength":4000}}}}},{"type":"object","additionalProperties":false,"required":["type","payload"],"properties":{"type":{"const":"asset.create"},"payload":{"type":"object","additionalProperties":false,"required":["workspaceId","key","kind","title","defaultLocale"],"properties":{"workspaceId":{"type":"string","format":"uuid"},"key":{"type":"string","pattern":"^[a-z][a-z0-9._-]{1,127}$"},"kind":{"type":"string","enum":["image","video","audio","model_3d","document","subtitle","avatar_scene","scene_360"]},"title":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"values":{"type":"object","minProperties":1,"additionalProperties":{"type":"string"}}}},"description":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"values":{"type":"object","minProperties":1,"additionalProperties":{"type":"string"}}}},"defaultLocale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"tags":{"type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":2048}}}}}},{"type":"object","additionalProperties":false,"required":["type","payload"],"properties":{"type":{"const":"asset.upload.prepare"},"payload":{"type":"object","additionalProperties":false,"required":["assetId","locale","mimeType","byteSize"],"properties":{"assetId":{"type":"string","format":"uuid"},"locale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"mimeType":{"type":"string","minLength":3,"maxLength":255},"byteSize":{"type":"integer","minimum":1},"sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"rights":{"type":"object","propertyNames":{"pattern":"^(?!.*(?:api[_-]?key|access[_-]?token|refresh[_-]?token|password|secret(?:value)?|credential)).+$"}},"consent":{"type":"object","propertyNames":{"pattern":"^(?!.*(?:api[_-]?key|access[_-]?token|refresh[_-]?token|password|secret(?:value)?|credential)).+$"}},"provenance":{"type":"object","propertyNames":{"pattern":"^(?!.*(?:api[_-]?key|access[_-]?token|refresh[_-]?token|password|secret(?:value)?|credential)).+$"}}}}}},{"type":"object","additionalProperties":false,"required":["type","payload"],"properties":{"type":{"const":"asset.version.register"},"payload":{"type":"object","additionalProperties":false,"required":["assetId","locale","mimeType","byteSize","sha256","rights","consent"],"properties":{"assetId":{"type":"string","format":"uuid"},"uploadSessionId":{"type":"string","format":"uuid"},"locale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"mimeType":{"type":"string","minLength":3,"maxLength":255},"byteSize":{"type":"integer","minimum":1},"sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"storageObjectKey":{"type":"string","minLength":1,"maxLength":1024},"sourceAssetVersionIds":{"type":"array","uniqueItems":true,"items":{"type":"string","format":"uuid"}},"providerJobId":{"type":"string","format":"uuid"},"contextSnapshotIds":{"type":"array","uniqueItems":true,"items":{"type":"string","format":"uuid"}},"rights":{"type":"object","additionalProperties":false,"required":["basis","allowedPurposes","territories","evidenceHash"],"properties":{"basis":{"type":"string","enum":["tenant_owned","licensed","public_domain","provider_terms","subject_consent"]},"allowedPurposes":{"type":"array","uniqueItems":true,"items":{"type":"string","enum":["platform_administration","experience_authoring","learning_delivery","learning_evaluation","human_review","tenant_analytics","billing","connector_synchronization","compliance_review"]}},"territories":{"type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":2048}},"validUntil":{"type":"string","format":"date-time"},"evidenceHash":{"type":"string","pattern":"^[0-9a-f]{64}$"}}},"consent":{"type":"object","additionalProperties":false,"required":["decision","purposes"],"properties":{"decision":{"type":"string","enum":["not_required","granted"]},"purposes":{"type":"array","uniqueItems":true,"items":{"type":"string","enum":["platform_administration","experience_authoring","learning_delivery","learning_evaluation","human_review","tenant_analytics","billing","connector_synchronization","compliance_review"]}},"noticeVersion":{"type":"string","minLength":1,"maxLength":100},"evidenceHash":{"type":"string","pattern":"^[0-9a-f]{64}$"}}}}}}},{"type":"object","additionalProperties":false,"required":["type","payload"],"properties":{"type":{"const":"asset.slot.bind"},"payload":{"type":"object","additionalProperties":false,"required":["workspaceId","experienceId","experienceVersionId","ownerType","ownerId","slotKey","purpose","assetId","assetVersionId","altText","expectedRevision"],"properties":{"workspaceId":{"type":"string","format":"uuid"},"experienceId":{"type":"string","format":"uuid"},"experienceVersionId":{"type":"string","format":"uuid"},"ownerType":{"type":"string","enum":["experience","entity","phase","node"]},"ownerId":{"type":"string","format":"uuid"},"slotKey":{"type":"string","minLength":1,"maxLength":128},"purpose":{"type":"string","enum":["hero","counterpart","environment","device","instruction","feedback","voice","subtitle"]},"locale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"selector":{"type":"object","additionalProperties":false,"required":[],"properties":{"locale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"state":{"type":"object","maxProperties":20,"propertyNames":{"pattern":"^(?!.*(?:[Aa][Pp][Ii][_-]?[Kk][Ee][Yy]|[Aa][Cc][Cc][Ee][Ss][Ss][_-]?[Tt][Oo][Kk][Ee][Nn]|[Rr][Ee][Ff][Rr][Ee][Ss][Hh][_-]?[Tt][Oo][Kk][Ee][Nn]|[Pp][Aa][Ss][Ss][Ww][Oo][Rr][Dd]|[Ss][Ee][Cc][Rr][Ee][Tt]|[Cc][Rr][Ee][Dd][Ee][Nn][Tt][Ii][Aa][Ll]))[A-Za-z][A-Za-z0-9_.-]{0,127}$"},"additionalProperties":{"type":["string","number","boolean","null"]}}}},"assetId":{"type":"string","format":"uuid"},"assetVersionId":{"type":"string","format":"uuid"},"altText":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"values":{"type":"object","minProperties":1,"additionalProperties":{"type":"string"}}}},"presentation":{"type":"object","propertyNames":{"pattern":"^(?!.*(?:api[_-]?key|access[_-]?token|refresh[_-]?token|password|secret(?:value)?|credential)).+$"}},"expectedRevision":{"type":"integer","minimum":0}}}}},{"type":"object","additionalProperties":false,"required":["type","payload"],"properties":{"type":{"const":"asset.review.submit"},"payload":{"type":"object","additionalProperties":false,"required":["assetId","assetVersionId","checklist"],"properties":{"assetId":{"type":"string","format":"uuid"},"assetVersionId":{"type":"string","format":"uuid"},"checklist":{"type":"object","minProperties":1,"additionalProperties":{"type":"boolean"}},"comment":{"type":"string","minLength":1,"maxLength":4000}}}}},{"type":"object","additionalProperties":false,"required":["type","payload"],"properties":{"type":{"const":"asset.review.decide"},"payload":{"type":"object","additionalProperties":false,"required":["assetId","assetVersionId","decision","checklist"],"properties":{"assetId":{"type":"string","format":"uuid"},"assetVersionId":{"type":"string","format":"uuid"},"decision":{"type":"string","enum":["approved","rejected"]},"checklist":{"type":"object","minProperties":1,"additionalProperties":{"type":"boolean"}},"comment":{"type":"string","minLength":1,"maxLength":4000}}}}},{"type":"object","additionalProperties":false,"required":["type","payload"],"properties":{"type":{"const":"provider.connection.create"},"payload":{"type":"object","additionalProperties":false,"required":["profileId","displayName","dataRegion","secretRef","zeroRetentionRequired","allowedDataClasses","allowedPurposes"],"properties":{"profileId":{"type":"string","format":"uuid"},"displayName":{"type":"string","minLength":1,"maxLength":255},"dataRegion":{"type":"string","minLength":2},"secretRef":{"type":"string","minLength":8,"maxLength":1024},"zeroRetentionRequired":{"type":"boolean"},"allowedDataClasses":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"string","enum":["public","internal","confidential","personal","special_category","secret"]}},"allowedPurposes":{"type":"array","uniqueItems":true,"items":{"type":"string","enum":["platform_administration","experience_authoring","learning_delivery","learning_evaluation","human_review","tenant_analytics","billing","connector_synchronization","compliance_review"]}},"configuration":{"type":"object","propertyNames":{"pattern":"^(?!.*(?:api[_-]?key|access[_-]?token|refresh[_-]?token|password|secret(?:value)?|credential)).+$"}}}}}},{"type":"object","additionalProperties":false,"required":["type","payload"],"properties":{"type":{"const":"provider.connection.update"},"payload":{"type":"object","additionalProperties":false,"required":["connectionId","expectedRevision","patch"],"properties":{"connectionId":{"type":"string","format":"uuid"},"expectedRevision":{"type":"integer","minimum":0},"patch":{"type":"object","propertyNames":{"pattern":"^(?!.*(?:api[_-]?key|access[_-]?token|refresh[_-]?token|password|secret(?:value)?|credential)).+$"},"minProperties":1}}}}},{"type":"object","additionalProperties":false,"required":["type","payload"],"properties":{"type":{"const":"provider.connection.test"},"payload":{"type":"object","additionalProperties":false,"required":["connectionId"],"properties":{"connectionId":{"type":"string","format":"uuid"}}}}},{"type":"object","additionalProperties":false,"required":["type","payload"],"properties":{"type":{"const":"provider.routing.upsert"},"payload":{"type":"object","additionalProperties":false,"required":["key","capabilityKind","dataRegion","allowedDataClasses","steps","active"],"properties":{"routingPlanId":{"type":"string","format":"uuid"},"workspaceId":{"type":"string","format":"uuid"},"expectedRevision":{"type":"integer","minimum":0},"key":{"type":"string","minLength":2,"maxLength":128},"capabilityKind":{"type":"string","enum":["text.generate","image.generate","image.edit","video.generate","audio.synthesize","audio.transcribe","avatar.generate","translation.translate","scene_360.generate","model_3d.generate","document.generate","embedding.create","moderation.classify"]},"dataRegion":{"type":"string","minLength":2},"allowedDataClasses":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"string","enum":["public","internal","confidential","personal","special_category","secret"]}},"steps":{"type":"array","minItems":1,"maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["sequence","providerConnectionId","capabilityId","fallbackOn"],"properties":{"sequence":{"type":"integer","minimum":1},"providerConnectionId":{"type":"string","format":"uuid"},"capabilityId":{"type":"string","format":"uuid"},"condition":{"type":"object","propertyNames":{"pattern":"^(?!.*(?:api[_-]?key|access[_-]?token|refresh[_-]?token|password|secret(?:value)?|credential)).+$"}},"fallbackOn":{"type":"array","uniqueItems":true,"items":{"type":"string","enum":["rate_limited","timeout","policy_denied","provider_error"]}}}}},"active":{"type":"boolean"}}}}},{"type":"object","additionalProperties":false,"required":["type","payload"],"properties":{"type":{"const":"provider.cost.estimate"},"payload":{"type":"object","additionalProperties":false,"required":["capabilityKind","outputLocale","routingPlanId","prompt","parameters","sourceAssetVersionIds","contextSnapshotIds","dataClass","budgetAccountId"],"properties":{"workspaceId":{"type":"string","format":"uuid"},"assetId":{"type":"string","format":"uuid"},"capabilityKind":{"type":"string","enum":["text.generate","image.generate","image.edit","video.generate","audio.synthesize","audio.transcribe","avatar.generate","translation.translate","scene_360.generate","model_3d.generate","document.generate","embedding.create","moderation.classify"]},"outputLocale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"routingPlanId":{"type":"string","format":"uuid"},"prompt":{"type":"string","minLength":1,"maxLength":200000},"parameters":{"type":"object","propertyNames":{"pattern":"^(?!.*(?:api[_-]?key|access[_-]?token|refresh[_-]?token|password|secret(?:value)?|credential)).+$"}},"sourceAssetVersionIds":{"type":"array","uniqueItems":true,"items":{"type":"string","format":"uuid"}},"contextSnapshotIds":{"type":"array","uniqueItems":true,"items":{"type":"string","format":"uuid"}},"dataClass":{"type":"string","enum":["public","internal","confidential","personal","special_category","secret"]},"budgetAccountId":{"type":"string","format":"uuid"}}}}},{"type":"object","additionalProperties":false,"required":["type","payload"],"properties":{"type":{"const":"provider.job.submit"},"payload":{"type":"object","additionalProperties":false,"required":["capabilityKind","outputLocale","routingPlanId","prompt","parameters","sourceAssetVersionIds","contextSnapshotIds","dataClass","estimateId","budgetAccountId"],"properties":{"workspaceId":{"type":"string","format":"uuid"},"assetId":{"type":"string","format":"uuid"},"capabilityKind":{"type":"string","enum":["text.generate","image.generate","image.edit","video.generate","audio.synthesize","audio.transcribe","avatar.generate","translation.translate","scene_360.generate","model_3d.generate","document.generate","embedding.create","moderation.classify"]},"outputLocale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"routingPlanId":{"type":"string","format":"uuid"},"prompt":{"type":"string","minLength":1,"maxLength":200000},"parameters":{"type":"object","propertyNames":{"pattern":"^(?!.*(?:api[_-]?key|access[_-]?token|refresh[_-]?token|password|secret(?:value)?|credential)).+$"}},"sourceAssetVersionIds":{"type":"array","uniqueItems":true,"items":{"type":"string","format":"uuid"}},"contextSnapshotIds":{"type":"array","uniqueItems":true,"items":{"type":"string","format":"uuid"}},"dataClass":{"type":"string","enum":["public","internal","confidential","personal","special_category","secret"]},"budgetAccountId":{"type":"string","format":"uuid"},"estimateId":{"type":"string","format":"uuid"},"reservationId":{"type":"string","format":"uuid"}}}}},{"type":"object","additionalProperties":false,"required":["type","payload"],"properties":{"type":{"const":"provider.job.approve"},"payload":{"type":"object","additionalProperties":false,"required":["jobId","approvalId","estimateId","budgetAccountId","rationale"],"properties":{"jobId":{"type":"string","format":"uuid"},"approvalId":{"type":"string","format":"uuid"},"estimateId":{"type":"string","format":"uuid"},"budgetAccountId":{"type":"string","format":"uuid"},"rationale":{"type":"string","minLength":1,"maxLength":4000}}}}},{"type":"object","additionalProperties":false,"required":["type","payload"],"properties":{"type":{"const":"budget.reservation.create"},"payload":{"type":"object","additionalProperties":false,"required":["budgetAccountId","estimateId","amountMinor","currency","expiresAt"],"properties":{"budgetAccountId":{"type":"string","format":"uuid"},"estimateId":{"type":"string","format":"uuid"},"amountMinor":{"type":"integer","minimum":1},"currency":{"type":"string","pattern":"^[A-Z]{3}$"},"expiresAt":{"type":"string","format":"date-time"}}}}},{"type":"object","additionalProperties":false,"required":["type","payload"],"properties":{"type":{"const":"budget.reservation.release"},"payload":{"type":"object","additionalProperties":false,"required":["reservationId","reason"],"properties":{"reservationId":{"type":"string","format":"uuid"},"reason":{"type":"string","minLength":1,"maxLength":1000}}}}},{"type":"object","additionalProperties":false,"required":["type","payload"],"properties":{"type":{"const":"connector.binding.create"},"payload":{"type":"object","additionalProperties":false,"required":["connectorDefinitionId","displayName","endpointOrigin","dataRegion","allowedHosts","grantedScopes","allowedPurposes","maximumDataClass"],"properties":{"workspaceId":{"type":"string","format":"uuid"},"connectorDefinitionId":{"type":"string","format":"uuid"},"displayName":{"type":"string","minLength":1,"maxLength":255},"endpointOrigin":{"type":"string","format":"uri"},"secretRef":{"type":"string","minLength":8,"maxLength":1024},"dataRegion":{"type":"string","minLength":2},"allowedHosts":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"string","format":"hostname"}},"grantedScopes":{"type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":2048}},"allowedPurposes":{"type":"array","uniqueItems":true,"items":{"type":"string","enum":["platform_administration","experience_authoring","learning_delivery","learning_evaluation","human_review","tenant_analytics","billing","connector_synchronization","compliance_review"]}},"maximumDataClass":{"type":"string","enum":["public","internal","confidential","personal","special_category","secret"]},"configuration":{"type":"object","propertyNames":{"pattern":"^(?!.*(?:api[_-]?key|access[_-]?token|refresh[_-]?token|password|secret(?:value)?|credential)).+$"}}}}}},{"type":"object","additionalProperties":false,"required":["type","payload"],"properties":{"type":{"const":"connector.binding.update"},"payload":{"type":"object","additionalProperties":false,"required":["bindingId","expectedRevision","patch"],"properties":{"bindingId":{"type":"string","format":"uuid"},"expectedRevision":{"type":"integer","minimum":0},"patch":{"type":"object","propertyNames":{"pattern":"^(?!.*(?:api[_-]?key|access[_-]?token|refresh[_-]?token|password|secret(?:value)?|credential)).+$"},"minProperties":1}}}}},{"type":"object","additionalProperties":false,"required":["type","payload"],"properties":{"type":{"const":"connector.binding.test"},"payload":{"type":"object","additionalProperties":false,"required":["bindingId"],"properties":{"bindingId":{"type":"string","format":"uuid"}}}}},{"type":"object","additionalProperties":false,"required":["type","payload"],"properties":{"type":{"const":"context.preview"},"payload":{"type":"object","additionalProperties":false,"required":["bindingId","policyId","query","locale","purpose","requestedScopes","maxItems"],"properties":{"bindingId":{"type":"string","format":"uuid"},"policyId":{"type":"string","format":"uuid"},"query":{"type":"string","minLength":1,"maxLength":100000},"locale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"purpose":{"type":"string","enum":["platform_administration","experience_authoring","learning_delivery","learning_evaluation","human_review","tenant_analytics","billing","connector_synchronization","compliance_review"]},"requestedScopes":{"type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":2048}},"maxItems":{"type":"integer","minimum":1,"maximum":1000}}}}},{"type":"object","additionalProperties":false,"required":["type","payload"],"properties":{"type":{"const":"context.snapshot.create"},"payload":{"type":"object","additionalProperties":false,"required":["previewId","expectedPreviewHash"],"properties":{"previewId":{"type":"string","format":"uuid"},"expectedPreviewHash":{"type":"string","pattern":"^[0-9a-f]{64}$"}}}}},{"type":"object","additionalProperties":false,"required":["type","payload"],"properties":{"type":{"const":"context.live.resolve"},"payload":{"type":"object","additionalProperties":false,"required":["bindingId","policyId","query","locale","purpose","requestedScopes","maxItems"],"properties":{"bindingId":{"type":"string","format":"uuid"},"policyId":{"type":"string","format":"uuid"},"query":{"type":"string","minLength":1,"maxLength":100000},"locale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"purpose":{"type":"string","enum":["platform_administration","experience_authoring","learning_delivery","learning_evaluation","human_review","tenant_analytics","billing","connector_synchronization","compliance_review"]},"requestedScopes":{"type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":2048}},"maxItems":{"type":"integer","minimum":1,"maximum":1000},"fallbackSnapshotId":{"type":"string","format":"uuid"}}}}},{"type":"object","additionalProperties":false,"required":["type","payload"],"properties":{"type":{"const":"job.cancel"},"payload":{"type":"object","additionalProperties":false,"required":["jobId","reason"],"properties":{"jobId":{"type":"string","format":"uuid"},"reason":{"type":"string","minLength":1,"maxLength":1000}}}}},{"type":"object","additionalProperties":false,"required":["type","payload"],"properties":{"type":{"const":"job.retry"},"payload":{"type":"object","additionalProperties":false,"required":["jobId","reason"],"properties":{"jobId":{"type":"string","format":"uuid"},"reason":{"type":"string","minLength":1,"maxLength":1000}}}}}]}}},"CommandPreview":{"title":"Command preview","type":"object","additionalProperties":false,"required":["commandId","type","accepted","requiresApproval","approvalReasons","effects","warnings","expiresAt"],"properties":{"commandId":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["tenant.create","tenant.update","workspace.create","workspace.update","experience.create","experience.update","experience.validate","experience.review.submit","experience.review.approve","experience.review.reject","experience.publish","attempt.start","attempt.resume","attempt.turn.submit","attempt.action.submit","attempt.checkpoint.save","attempt.complete","attempt.abandon","attempt.consent.withdraw","asset.create","asset.upload.prepare","asset.version.register","asset.slot.bind","asset.review.submit","asset.review.decide","provider.connection.create","provider.connection.update","provider.connection.test","provider.routing.upsert","provider.cost.estimate","provider.job.submit","provider.job.approve","budget.reservation.create","budget.reservation.release","connector.binding.create","connector.binding.update","connector.binding.test","context.preview","context.snapshot.create","context.live.resolve","job.cancel","job.retry"]},"accepted":{"type":"boolean"},"requiresApproval":{"type":"boolean"},"approvalReasons":{"type":"array","items":{"type":"string"}},"estimatedCostMinor":{"type":"integer","minimum":0},"currency":{"type":"string","pattern":"^[A-Z]{3}$"},"effects":{"type":"array","items":{"type":"object"}},"warnings":{"type":"array","items":{"type":"string"}},"expiresAt":{"type":"string","format":"date-time"}}},"CommandReceipt":{"title":"Command receipt","type":"object","additionalProperties":false,"required":["commandId","type","status","correlationId","submittedAt"],"properties":{"commandId":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["tenant.create","tenant.update","workspace.create","workspace.update","experience.create","experience.update","experience.validate","experience.review.submit","experience.review.approve","experience.review.reject","experience.publish","attempt.start","attempt.resume","attempt.turn.submit","attempt.action.submit","attempt.checkpoint.save","attempt.complete","attempt.abandon","attempt.consent.withdraw","asset.create","asset.upload.prepare","asset.version.register","asset.slot.bind","asset.review.submit","asset.review.decide","provider.connection.create","provider.connection.update","provider.connection.test","provider.routing.upsert","provider.cost.estimate","provider.job.submit","provider.job.approve","budget.reservation.create","budget.reservation.release","connector.binding.create","connector.binding.update","connector.binding.test","context.preview","context.snapshot.create","context.live.resolve","job.cancel","job.retry"]},"status":{"type":"string","enum":["accepted","rejected","running","succeeded","failed","waiting_for_approval"]},"correlationId":{"type":"string","format":"uuid"},"submittedAt":{"type":"string","format":"date-time"},"completedAt":{"type":"string","format":"date-time"},"result":{"type":"object"},"problem":{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://schemas.knowledgeworker.com/practice/v1/problem-details.schema.json","title":"RFC 9457 Problem Details","type":"object","additionalProperties":false,"required":["type","title","status","code","traceId","retryable"],"properties":{"type":{"type":"string","format":"uri-reference"},"title":{"type":"string","minLength":1,"maxLength":255},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string","maxLength":4000},"instance":{"type":"string","format":"uri-reference"},"code":{"type":"string","enum":["invalid_request","schema_validation_failed","authentication_required","permission_denied","purpose_not_allowed","tenant_boundary_violation","resource_not_found","revision_conflict","idempotency_conflict","rate_limit_exceeded","budget_exceeded","approval_required","command_not_supported","command_rejected","job_not_cancellable","dependency_unavailable","internal_error"]},"traceId":{"type":"string","minLength":1,"maxLength":255},"correlationId":{"type":"string","format":"uuid"},"commandId":{"type":"string","format":"uuid"},"retryable":{"type":"boolean"},"retryAfterSeconds":{"type":"integer","minimum":0},"invalidParams":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["name","location","reason"],"properties":{"name":{"type":"string","minLength":1,"maxLength":255},"location":{"type":"string","enum":["path","query","header","body"]},"reason":{"type":"string","minLength":1},"code":{"type":"string","minLength":1,"maxLength":255}}}},"meta":{"type":"object"}}}}},"ProblemDetails":{"title":"RFC 9457 Problem Details","type":"object","additionalProperties":false,"required":["type","title","status","code","traceId","retryable"],"properties":{"type":{"type":"string","format":"uri-reference"},"title":{"type":"string","minLength":1,"maxLength":255},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string","maxLength":4000},"instance":{"type":"string","format":"uri-reference"},"code":{"type":"string","enum":["invalid_request","schema_validation_failed","authentication_required","permission_denied","purpose_not_allowed","tenant_boundary_violation","resource_not_found","revision_conflict","idempotency_conflict","rate_limit_exceeded","budget_exceeded","approval_required","command_not_supported","command_rejected","job_not_cancellable","dependency_unavailable","internal_error"]},"traceId":{"type":"string","minLength":1,"maxLength":255},"correlationId":{"type":"string","format":"uuid"},"commandId":{"type":"string","format":"uuid"},"retryable":{"type":"boolean"},"retryAfterSeconds":{"type":"integer","minimum":0},"invalidParams":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["name","location","reason"],"properties":{"name":{"type":"string","minLength":1,"maxLength":255},"location":{"type":"string","enum":["path","query","header","body"]},"reason":{"type":"string","minLength":1},"code":{"type":"string","minLength":1,"maxLength":255}}}},"meta":{"type":"object"}}},"LicenseManagementEvent":{"oneOf":[{"type":"object","properties":{"contractVersion":{"type":"string","const":"2026-09-12"},"eventId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"productKey":{"type":"string","const":"knowledgeworker-practice"},"externalTenantId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"occurredAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"resourceRevision":{"type":"integer","minimum":0,"maximum":9007199254740991},"replaySequence":{"type":"integer","minimum":0,"maximum":9007199254740991},"eventType":{"type":"string","const":"entitlement.changed"},"payload":{"type":"object","properties":{"entitlementId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"status":{"type":"string","minLength":1,"maxLength":100}},"required":["entitlementId","status"],"additionalProperties":false}},"required":["contractVersion","eventId","productKey","externalTenantId","occurredAt","resourceRevision","replaySequence","eventType","payload"],"additionalProperties":false},{"type":"object","properties":{"contractVersion":{"type":"string","const":"2026-09-12"},"eventId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"productKey":{"type":"string","const":"knowledgeworker-practice"},"externalTenantId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"occurredAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"resourceRevision":{"type":"integer","minimum":0,"maximum":9007199254740991},"replaySequence":{"type":"integer","minimum":0,"maximum":9007199254740991},"eventType":{"type":"string","const":"contract.changed"},"payload":{"type":"object","properties":{"contractId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"status":{"type":"string","minLength":1,"maxLength":100}},"required":["contractId","status"],"additionalProperties":false}},"required":["contractVersion","eventId","productKey","externalTenantId","occurredAt","resourceRevision","replaySequence","eventType","payload"],"additionalProperties":false},{"type":"object","properties":{"contractVersion":{"type":"string","const":"2026-09-12"},"eventId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"productKey":{"type":"string","const":"knowledgeworker-practice"},"externalTenantId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"occurredAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"resourceRevision":{"type":"integer","minimum":0,"maximum":9007199254740991},"replaySequence":{"type":"integer","minimum":0,"maximum":9007199254740991},"eventType":{"type":"string","const":"credit.changed"},"payload":{"type":"object","properties":{"creditAccountId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"availableMicros":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"reservedMicros":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["creditAccountId","availableMicros","reservedMicros"],"additionalProperties":false}},"required":["contractVersion","eventId","productKey","externalTenantId","occurredAt","resourceRevision","replaySequence","eventType","payload"],"additionalProperties":false},{"type":"object","properties":{"contractVersion":{"type":"string","const":"2026-09-12"},"eventId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"productKey":{"type":"string","const":"knowledgeworker-practice"},"externalTenantId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"occurredAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"resourceRevision":{"type":"integer","minimum":0,"maximum":9007199254740991},"replaySequence":{"type":"integer","minimum":0,"maximum":9007199254740991},"eventType":{"type":"string","const":"seat.changed"},"payload":{"type":"object","properties":{"assignmentId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"status":{"type":"string","enum":["assigned","released"]}},"required":["assignmentId","status"],"additionalProperties":false}},"required":["contractVersion","eventId","productKey","externalTenantId","occurredAt","resourceRevision","replaySequence","eventType","payload"],"additionalProperties":false},{"type":"object","properties":{"contractVersion":{"type":"string","const":"2026-09-12"},"eventId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"productKey":{"type":"string","const":"knowledgeworker-practice"},"externalTenantId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"occurredAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"resourceRevision":{"type":"integer","minimum":0,"maximum":9007199254740991},"replaySequence":{"type":"integer","minimum":0,"maximum":9007199254740991},"eventType":{"type":"string","const":"lease.revoked"},"payload":{"type":"object","properties":{"leaseId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"generation":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"reasonCode":{"type":"string","minLength":1,"maxLength":100}},"required":["leaseId","generation","reasonCode"],"additionalProperties":false}},"required":["contractVersion","eventId","productKey","externalTenantId","occurredAt","resourceRevision","replaySequence","eventType","payload"],"additionalProperties":false},{"type":"object","properties":{"contractVersion":{"type":"string","const":"2026-09-12"},"eventId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"productKey":{"type":"string","const":"knowledgeworker-practice"},"externalTenantId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"occurredAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"resourceRevision":{"type":"integer","minimum":0,"maximum":9007199254740991},"replaySequence":{"type":"integer","minimum":0,"maximum":9007199254740991},"eventType":{"type":"string","const":"commercial_account.suspended"},"payload":{"type":"object","properties":{"commercialAccountId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"reasonCode":{"type":"string","minLength":1,"maxLength":100}},"required":["commercialAccountId","reasonCode"],"additionalProperties":false}},"required":["contractVersion","eventId","productKey","externalTenantId","occurredAt","resourceRevision","replaySequence","eventType","payload"],"additionalProperties":false}]},"LicenseManagementEventReceipt":{"type":"object","additionalProperties":false,"required":["eventId","externalTenantId","eventType","disposition","resourceRevision","cacheGeneration","receivedAt"],"properties":{"eventId":{"type":"string","format":"uuid"},"externalTenantId":{"type":"string","format":"uuid"},"eventType":{"type":"string","enum":["entitlement.changed","contract.changed","credit.changed","seat.changed","lease.revoked","commercial_account.suspended"]},"disposition":{"type":"string","enum":["accepted","duplicate","stale"]},"resourceRevision":{"type":"integer","minimum":0},"cacheGeneration":{"type":"integer","minimum":1},"receivedAt":{"type":"string","format":"date-time"}}},"MediaAsset":{"title":"Media asset","type":"object","additionalProperties":false,"required":["metadata","workspaceId","key","kind","source","title","defaultLocale","availableLocales","lifecycle","rightsStatus","consentStatus","tags"],"properties":{"metadata":{"type":"object","additionalProperties":false,"required":["id","tenantId","createdAt","createdBy","updatedAt","updatedBy","revision"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"createdAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["human","service","mcp_client"]},"displayName":{"type":"string","minLength":1,"maxLength":255}}},"updatedAt":{"type":"string","format":"date-time"},"updatedBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["human","service","mcp_client"]},"displayName":{"type":"string","minLength":1,"maxLength":255}}},"revision":{"type":"integer","minimum":1}}},"workspaceId":{"type":"string","format":"uuid"},"key":{"type":"string","pattern":"^[a-z][a-z0-9._-]{1,127}$"},"kind":{"type":"string","enum":["image","video","audio","model_3d","document","subtitle","avatar_scene","scene_360"]},"source":{"type":"string","enum":["upload","generated","imported","derived"]},"title":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"values":{"type":"object","minProperties":1,"additionalProperties":{"type":"string"}}}},"description":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"values":{"type":"object","minProperties":1,"additionalProperties":{"type":"string"}}}},"defaultLocale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"availableLocales":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"}},"lifecycle":{"type":"string","enum":["draft","processing","review_required","approved","rejected","archived"]},"currentVersionId":{"type":"string","format":"uuid"},"rightsStatus":{"type":"string","enum":["missing","valid","expired","restricted"]},"consentStatus":{"type":"string","enum":["not_required","granted","withdrawn","expired"]},"tags":{"type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":2048}}}},"MediaAssetVersion":{"title":"Immutable media asset version","type":"object","additionalProperties":false,"required":["id","tenantId","workspaceId","assetId","versionNumber","locale","mimeType","byteSize","sha256","storageObjectKey","lifecycle","provenance","rightsGrantIds","consentRecordIds","createdAt","createdBy"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"workspaceId":{"type":"string","format":"uuid"},"assetId":{"type":"string","format":"uuid"},"versionNumber":{"type":"integer","minimum":1},"locale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"mimeType":{"type":"string","pattern":"^[a-z0-9.+-]+/[a-z0-9.+-]+$"},"byteSize":{"type":"integer","minimum":1},"sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"storageObjectKey":{"type":"string","minLength":1,"maxLength":1024},"width":{"type":"integer","minimum":1},"height":{"type":"integer","minimum":1},"durationMs":{"type":"integer","minimum":0},"lifecycle":{"type":"string","enum":["draft","processing","review_required","approved","rejected","archived"]},"provenance":{"type":"object","additionalProperties":false,"required":["source","createdBy","createdAt","sourceAssetVersionIds","contextSnapshotIds"],"properties":{"source":{"type":"string","enum":["upload","generated","imported","derived"]},"createdBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["human","service","mcp_client"]},"displayName":{"type":"string","minLength":1,"maxLength":255}}},"createdAt":{"type":"string","format":"date-time"},"providerConnectionId":{"type":"string","format":"uuid"},"providerJobId":{"type":"string","format":"uuid"},"sourceAssetVersionIds":{"type":"array","uniqueItems":true,"items":{"type":"string","format":"uuid"}},"contextSnapshotIds":{"type":"array","uniqueItems":true,"items":{"type":"string","format":"uuid"}},"promptHash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"model":{"type":"string","minLength":1,"maxLength":255},"modelVersion":{"type":"string","minLength":1,"maxLength":255},"generationParameters":{"type":"object","propertyNames":{"pattern":"^(?!.*(?:api[_-]?key|access[_-]?token|refresh[_-]?token|password|secret(?:value)?|credential)).+$"}},"contentCredentials":{"type":"object","additionalProperties":{"type":"string","maxLength":2048}}}},"rightsGrantIds":{"type":"array","uniqueItems":true,"items":{"type":"string","format":"uuid"}},"consentRecordIds":{"type":"array","uniqueItems":true,"items":{"type":"string","format":"uuid"}},"reviewDecisionId":{"type":"string","format":"uuid"},"createdAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["human","service","mcp_client"]},"displayName":{"type":"string","minLength":1,"maxLength":255}}}}},"MediaSlotBinding":{"title":"Version-pinned media slot binding","type":"object","additionalProperties":false,"required":["metadata","workspaceId","experienceId","experienceVersionId","ownerType","ownerId","slotKey","purpose","assetId","assetVersionId","altText","presentation"],"properties":{"metadata":{"type":"object","additionalProperties":false,"required":["id","tenantId","createdAt","createdBy","updatedAt","updatedBy","revision"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"createdAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["human","service","mcp_client"]},"displayName":{"type":"string","minLength":1,"maxLength":255}}},"updatedAt":{"type":"string","format":"date-time"},"updatedBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["human","service","mcp_client"]},"displayName":{"type":"string","minLength":1,"maxLength":255}}},"revision":{"type":"integer","minimum":1}}},"workspaceId":{"type":"string","format":"uuid"},"experienceId":{"type":"string","format":"uuid"},"experienceVersionId":{"type":"string","format":"uuid"},"ownerType":{"type":"string","enum":["experience","entity","phase","node"]},"ownerId":{"type":"string","format":"uuid"},"slotKey":{"type":"string","pattern":"^[a-z][a-z0-9._-]{0,127}$"},"purpose":{"type":"string","enum":["hero","counterpart","environment","device","instruction","feedback","voice","subtitle"]},"locale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"selector":{"type":"object","additionalProperties":false,"required":[],"properties":{"locale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"state":{"type":"object","maxProperties":20,"propertyNames":{"pattern":"^(?!.*(?:[Aa][Pp][Ii][_-]?[Kk][Ee][Yy]|[Aa][Cc][Cc][Ee][Ss][Ss][_-]?[Tt][Oo][Kk][Ee][Nn]|[Rr][Ee][Ff][Rr][Ee][Ss][Hh][_-]?[Tt][Oo][Kk][Ee][Nn]|[Pp][Aa][Ss][Ss][Ww][Oo][Rr][Dd]|[Ss][Ee][Cc][Rr][Ee][Tt]|[Cc][Rr][Ee][Dd][Ee][Nn][Tt][Ii][Aa][Ll]))[A-Za-z][A-Za-z0-9_.-]{0,127}$"},"additionalProperties":{"type":["string","number","boolean","null"]}}}},"assetId":{"type":"string","format":"uuid"},"assetVersionId":{"type":"string","format":"uuid"},"altText":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"values":{"type":"object","minProperties":1,"additionalProperties":{"type":"string"}}}},"presentation":{"type":"object","propertyNames":{"pattern":"^(?!.*(?:api[_-]?key|access[_-]?token|refresh[_-]?token|password|secret(?:value)?|credential)).+$"}}}},"ReleasedMediaVariant":{"title":"Version-pinned released media variant","type":"object","additionalProperties":false,"required":["sourceBindingId","ownerType","ownerId","slotKey","purpose","selector","assetId","assetVersionId","assetVersionNumber","assetLocale","kind","mimeType","sha256","altText","presentation"],"properties":{"sourceBindingId":{"type":"string","format":"uuid"},"ownerType":{"type":"string","enum":["experience","entity","phase","node"]},"ownerId":{"type":"string","format":"uuid"},"slotKey":{"type":"string","pattern":"^[a-z][a-z0-9._-]{0,127}$"},"purpose":{"type":"string","enum":["hero","counterpart","environment","device","instruction","feedback","voice","subtitle"]},"selector":{"type":"object","additionalProperties":false,"required":[],"properties":{"locale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"state":{"type":"object","maxProperties":20,"propertyNames":{"pattern":"^(?!.*(?:[Aa][Pp][Ii][_-]?[Kk][Ee][Yy]|[Aa][Cc][Cc][Ee][Ss][Ss][_-]?[Tt][Oo][Kk][Ee][Nn]|[Rr][Ee][Ff][Rr][Ee][Ss][Hh][_-]?[Tt][Oo][Kk][Ee][Nn]|[Pp][Aa][Ss][Ss][Ww][Oo][Rr][Dd]|[Ss][Ee][Cc][Rr][Ee][Tt]|[Cc][Rr][Ee][Dd][Ee][Nn][Tt][Ii][Aa][Ll]))[A-Za-z][A-Za-z0-9_.-]{0,127}$"},"additionalProperties":{"type":["string","number","boolean","null"]}}}},"assetId":{"type":"string","format":"uuid"},"assetVersionId":{"type":"string","format":"uuid"},"assetVersionNumber":{"type":"integer","minimum":1},"assetLocale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"kind":{"type":"string","enum":["image","video","audio","model_3d","document","subtitle","avatar_scene","scene_360"]},"mimeType":{"type":"string","pattern":"^[a-z0-9.+-]+/[a-z0-9.+-]+$"},"byteSize":{"type":"integer","minimum":0},"sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"storageObjectKey":{"type":"string","minLength":1,"maxLength":2048},"altText":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"values":{"type":"object","minProperties":1,"additionalProperties":{"type":"string"}}}},"presentation":{"type":"object","propertyNames":{"pattern":"^(?!.*(?:api[_-]?key|access[_-]?token|refresh[_-]?token|password|secret(?:value)?|credential)).+$"}}}},"ExperienceMediaManifest":{"title":"Immutable Experience release media manifest","type":"object","additionalProperties":false,"required":["schemaVersion","sourceDraftVersionId","sourceLocale","entries","manifestHash"],"properties":{"schemaVersion":{"const":1},"sourceDraftVersionId":{"type":"string","format":"uuid"},"sourceLocale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"entries":{"type":"array","items":{"$ref":"https://schemas.knowledgeworker.com/practice/v1/released-media-variant.schema.json"}},"manifestHash":{"type":"string","pattern":"^[0-9a-f]{64}$"}}},"MediaRightsGrant":{"title":"Immutable media rights grant","type":"object","additionalProperties":false,"required":["id","tenantId","assetId","basis","allowedPurposes","territories","validFrom","restrictions","evidenceHash","recordedAt","recordedBy"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"assetId":{"type":"string","format":"uuid"},"assetVersionId":{"type":"string","format":"uuid"},"basis":{"type":"string","enum":["tenant_owned","licensed","public_domain","provider_terms","subject_consent"]},"licensor":{"type":"string","maxLength":1000},"licenseReference":{"type":"string","maxLength":2048},"allowedPurposes":{"type":"array","uniqueItems":true,"items":{"type":"string","enum":["platform_administration","experience_authoring","learning_delivery","learning_evaluation","human_review","tenant_analytics","billing","connector_synchronization","compliance_review"]}},"territories":{"type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":2048}},"validFrom":{"type":"string","format":"date-time"},"validUntil":{"type":"string","format":"date-time"},"restrictions":{"type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":2048}},"evidenceHash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"recordedAt":{"type":"string","format":"date-time"},"recordedBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["human","service","mcp_client"]},"displayName":{"type":"string","minLength":1,"maxLength":255}}}}},"MediaConsentRecord":{"title":"Immutable media subject consent record","type":"object","additionalProperties":false,"required":["id","tenantId","assetId","dataSubjectRef","decision","purposes","noticeVersion","evidenceHash","decidedAt","decidedBy"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"assetId":{"type":"string","format":"uuid"},"assetVersionId":{"type":"string","format":"uuid"},"dataSubjectRef":{"type":"string","minLength":1,"maxLength":255},"decision":{"type":"string","enum":["not_required","granted","withdrawn","expired"]},"purposes":{"type":"array","uniqueItems":true,"items":{"type":"string","enum":["platform_administration","experience_authoring","learning_delivery","learning_evaluation","human_review","tenant_analytics","billing","connector_synchronization","compliance_review"]}},"noticeVersion":{"type":"string","minLength":1,"maxLength":100},"validUntil":{"type":"string","format":"date-time"},"reason":{"type":"string","minLength":1,"maxLength":4000},"evidenceHash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"decidedAt":{"type":"string","format":"date-time"},"decidedBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["human","service","mcp_client"]},"displayName":{"type":"string","minLength":1,"maxLength":255}}}}},"MediaReviewDecision":{"title":"Immutable media review decision","type":"object","additionalProperties":false,"required":["id","tenantId","assetId","assetVersionId","decision","checklist","decidedAt","decidedBy"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"assetId":{"type":"string","format":"uuid"},"assetVersionId":{"type":"string","format":"uuid"},"decision":{"type":"string","enum":["submitted","approved","rejected"]},"checklist":{"type":"object","minProperties":1,"additionalProperties":{"type":"boolean"}},"comment":{"type":"string","minLength":1,"maxLength":4000},"decidedAt":{"type":"string","format":"date-time"},"decidedBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["human","service","mcp_client"]},"displayName":{"type":"string","minLength":1,"maxLength":255}}}}},"UploadSession":{"title":"Ephemeral signed upload session","type":"object","additionalProperties":false,"required":["id","tenantId","workspaceId","assetId","objectKey","mimeType","status","signedRequest","createdAt","createdBy"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"workspaceId":{"type":"string","format":"uuid"},"assetId":{"type":"string","format":"uuid"},"objectKey":{"type":"string","minLength":1,"maxLength":1024},"mimeType":{"type":"string","minLength":3,"maxLength":255},"status":{"type":"string","enum":["prepared","uploading","uploaded","verified","expired","cancelled"]},"signedRequest":{"type":"object","additionalProperties":false,"required":["url","method","expiresAt","requiredHeaders","maximumBytes"],"properties":{"url":{"type":"string","format":"uri"},"method":{"type":"string","enum":["PUT","POST"]},"expiresAt":{"type":"string","format":"date-time"},"requiredHeaders":{"type":"object","additionalProperties":{"type":"string"}},"maximumBytes":{"type":"integer","minimum":1},"expectedSha256":{"type":"string","pattern":"^[0-9a-f]{64}$"}}},"uploadedBytes":{"type":"integer","minimum":0},"observedSha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"createdAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["human","service","mcp_client"]},"displayName":{"type":"string","minLength":1,"maxLength":255}}},"completedAt":{"type":"string","format":"date-time"}}},"ProviderProfile":{"title":"Credential-free provider profile","type":"object","additionalProperties":false,"required":["id","key","displayName","providerKinds","dataRegions","supportsCustomerCredentials","supportsZeroRetention","capabilityIds"],"properties":{"id":{"type":"string","format":"uuid"},"key":{"type":"string","pattern":"^[a-z][a-z0-9._-]{1,127}$"},"displayName":{"type":"string","minLength":1,"maxLength":255},"providerKinds":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"string","enum":["text","image","video","audio","avatar","translation","embedding","moderation","multimodal","model_3d","document"]}},"dataRegions":{"type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":2048}},"supportsCustomerCredentials":{"type":"boolean"},"supportsZeroRetention":{"type":"boolean"},"privacyDocumentationUrl":{"type":"string","format":"uri"},"termsUrl":{"type":"string","format":"uri"},"capabilityIds":{"type":"array","uniqueItems":true,"items":{"type":"string","format":"uuid"}}}},"ProviderConnection":{"title":"Secret-free tenant provider connection","type":"object","additionalProperties":false,"required":["metadata","profileId","displayName","status","dataRegion","secretRef","zeroRetentionRequired","allowedDataClasses","allowedPurposes","configuration"],"properties":{"metadata":{"type":"object","additionalProperties":false,"required":["id","tenantId","createdAt","createdBy","updatedAt","updatedBy","revision"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"createdAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["human","service","mcp_client"]},"displayName":{"type":"string","minLength":1,"maxLength":255}}},"updatedAt":{"type":"string","format":"date-time"},"updatedBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["human","service","mcp_client"]},"displayName":{"type":"string","minLength":1,"maxLength":255}}},"revision":{"type":"integer","minimum":1}}},"profileId":{"type":"string","format":"uuid"},"displayName":{"type":"string","minLength":1,"maxLength":255},"status":{"type":"string","enum":["draft","active","degraded","disabled","invalid"]},"dataRegion":{"type":"string","minLength":2,"maxLength":64},"secretRef":{"type":"string","pattern":"^(vault|secret-manager|kms)://[A-Za-z0-9._/-]+$","maxLength":1024},"zeroRetentionRequired":{"type":"boolean"},"allowedDataClasses":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"string","enum":["public","internal","confidential","personal","special_category","secret"]}},"allowedPurposes":{"type":"array","uniqueItems":true,"items":{"type":"string","enum":["platform_administration","experience_authoring","learning_delivery","learning_evaluation","human_review","tenant_analytics","billing","connector_synchronization","compliance_review"]}},"configuration":{"type":"object","propertyNames":{"pattern":"^(?!.*(?:api[_-]?key|access[_-]?token|refresh[_-]?token|password|secret(?:value)?|credential)).+$"}},"lastTestedAt":{"type":"string","format":"date-time"},"lastTestStatus":{"type":"string","enum":["passed","failed"]}}},"ProviderCapability":{"title":"Provider model capability and price","type":"object","additionalProperties":false,"required":["id","profileId","kind","model","inputMimeTypes","outputMimeTypes","supportedLocales","synchronous","cancellable","unit","unitPriceMinor","currency","limits"],"properties":{"id":{"type":"string","format":"uuid"},"profileId":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["text.generate","image.generate","image.edit","video.generate","audio.synthesize","audio.transcribe","avatar.generate","translation.translate","scene_360.generate","model_3d.generate","document.generate","embedding.create","moderation.classify"]},"model":{"type":"string","minLength":1,"maxLength":255},"modelVersion":{"type":"string","maxLength":255},"inputMimeTypes":{"type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":2048}},"outputMimeTypes":{"type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":2048}},"supportedLocales":{"type":"array","uniqueItems":true,"items":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"}},"synchronous":{"type":"boolean"},"cancellable":{"type":"boolean"},"unit":{"type":"string","enum":["request","token","character","second","image","minute"]},"unitPriceMinor":{"type":"integer","minimum":0},"currency":{"type":"string","pattern":"^[A-Z]{3}$"},"limits":{"type":"object","additionalProperties":{"type":"number","minimum":0}}}},"ProviderRoutingPlan":{"title":"Policy-constrained provider routing plan","type":"object","additionalProperties":false,"required":["metadata","key","capabilityKind","dataRegion","allowedDataClasses","steps","active","currentVersionId","currentVersionNumber"],"properties":{"metadata":{"type":"object","additionalProperties":false,"required":["id","tenantId","createdAt","createdBy","updatedAt","updatedBy","revision"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"createdAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["human","service","mcp_client"]},"displayName":{"type":"string","minLength":1,"maxLength":255}}},"updatedAt":{"type":"string","format":"date-time"},"updatedBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["human","service","mcp_client"]},"displayName":{"type":"string","minLength":1,"maxLength":255}}},"revision":{"type":"integer","minimum":1}}},"workspaceId":{"type":"string","format":"uuid"},"key":{"type":"string","pattern":"^[a-z][a-z0-9._-]{1,127}$"},"capabilityKind":{"type":"string","enum":["text.generate","image.generate","image.edit","video.generate","audio.synthesize","audio.transcribe","avatar.generate","translation.translate","scene_360.generate","model_3d.generate","document.generate","embedding.create","moderation.classify"]},"dataRegion":{"type":"string","minLength":2,"maxLength":64},"allowedDataClasses":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"string","enum":["public","internal","confidential","personal","special_category","secret"]}},"steps":{"type":"array","minItems":1,"maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["sequence","providerConnectionId","capabilityId","fallbackOn"],"properties":{"sequence":{"type":"integer","minimum":1},"providerConnectionId":{"type":"string","format":"uuid"},"capabilityId":{"type":"string","format":"uuid"},"condition":{"type":"object","propertyNames":{"pattern":"^(?!.*(?:api[_-]?key|access[_-]?token|refresh[_-]?token|password|secret(?:value)?|credential)).+$"}},"fallbackOn":{"type":"array","uniqueItems":true,"items":{"type":"string","enum":["rate_limited","timeout","policy_denied","provider_error"]}}}}},"active":{"type":"boolean"},"currentVersionId":{"type":"string","format":"uuid"},"currentVersionNumber":{"type":"integer","minimum":1}}},"ProviderCostEstimate":{"title":"Immutable provider cost estimate","type":"object","additionalProperties":false,"required":["id","tenantId","routingPlanId","routingPlanVersionId","routingPlanVersion","routeHash","requestHash","currency","lines","providerCostMinor","markupMinor","customerCostMinor","requiresApproval","approvalReasons","validUntil","createdAt"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"workspaceId":{"type":"string","format":"uuid"},"routingPlanId":{"type":"string","format":"uuid"},"routingPlanVersionId":{"type":"string","format":"uuid"},"routingPlanVersion":{"type":"integer","minimum":1},"routeHash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"requestHash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"currency":{"type":"string","pattern":"^[A-Z]{3}$"},"lines":{"type":"array","minItems":1,"items":{"type":"object","additionalProperties":false,"required":["providerConnectionId","capabilityId","quantity","unit","providerCostMinor","markupMinor","customerCostMinor"],"properties":{"providerConnectionId":{"type":"string","format":"uuid"},"capabilityId":{"type":"string","format":"uuid"},"quantity":{"type":"number","exclusiveMinimum":0},"unit":{"type":"string","enum":["request","token","character","second","image","minute"]},"providerCostMinor":{"type":"integer","minimum":0},"markupMinor":{"type":"integer","minimum":0},"customerCostMinor":{"type":"integer","minimum":0}}}},"providerCostMinor":{"type":"integer","minimum":0},"markupMinor":{"type":"integer","minimum":0},"customerCostMinor":{"type":"integer","minimum":0},"requiresApproval":{"type":"boolean"},"approvalReasons":{"type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":2048}},"validUntil":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"BudgetAccount":{"title":"Atomic AI budget account","type":"object","additionalProperties":false,"required":["metadata","key","currency","limitMinor","spentMinor","reservedMinor","availableMinor","periodStart","periodEnd","hardLimit"],"properties":{"metadata":{"type":"object","additionalProperties":false,"required":["id","tenantId","createdAt","createdBy","updatedAt","updatedBy","revision"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"createdAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["human","service","mcp_client"]},"displayName":{"type":"string","minLength":1,"maxLength":255}}},"updatedAt":{"type":"string","format":"date-time"},"updatedBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["human","service","mcp_client"]},"displayName":{"type":"string","minLength":1,"maxLength":255}}},"revision":{"type":"integer","minimum":1}}},"workspaceId":{"type":"string","format":"uuid"},"key":{"type":"string","pattern":"^[a-z][a-z0-9._-]{1,127}$"},"currency":{"type":"string","pattern":"^[A-Z]{3}$"},"limitMinor":{"type":"integer","minimum":0},"spentMinor":{"type":"integer","minimum":0},"reservedMinor":{"type":"integer","minimum":0},"availableMinor":{"type":"integer","minimum":0},"periodStart":{"type":"string","format":"date-time"},"periodEnd":{"type":"string","format":"date-time"},"hardLimit":{"type":"boolean"}}},"BudgetReservation":{"title":"Budget reservation","type":"object","additionalProperties":false,"required":["id","tenantId","budgetAccountId","estimateId","amountMinor","currency","status","idempotencyKey","expiresAt","createdAt"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"budgetAccountId":{"type":"string","format":"uuid"},"estimateId":{"type":"string","format":"uuid"},"amountMinor":{"type":"integer","minimum":0},"currency":{"type":"string","pattern":"^[A-Z]{3}$"},"status":{"type":"string","enum":["active","captured","released","expired"]},"idempotencyKey":{"type":"string","minLength":8,"maxLength":255},"expiresAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"capturedAt":{"type":"string","format":"date-time"},"releasedAt":{"type":"string","format":"date-time"}}},"UsageLedgerEntry":{"title":"Immutable provider usage ledger entry","type":"object","additionalProperties":false,"required":["id","tenantId","budgetAccountId","providerConnectionId","providerJobId","capabilityKind","quantity","unit","providerCostMinor","markupMinor","customerCostMinor","currency","occurredAt"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"budgetAccountId":{"type":"string","format":"uuid"},"reservationId":{"type":"string","format":"uuid"},"providerConnectionId":{"type":"string","format":"uuid"},"providerJobId":{"type":"string","format":"uuid"},"capabilityKind":{"type":"string","enum":["text.generate","image.generate","image.edit","video.generate","audio.synthesize","audio.transcribe","avatar.generate","translation.translate","scene_360.generate","model_3d.generate","document.generate","embedding.create","moderation.classify"]},"quantity":{"type":"number","exclusiveMinimum":0},"unit":{"type":"string","enum":["request","token","character","second","image","minute"]},"providerCostMinor":{"type":"integer","minimum":0},"markupMinor":{"type":"integer","minimum":0},"customerCostMinor":{"type":"integer","minimum":0},"currency":{"type":"string","pattern":"^[A-Z]{3}$"},"occurredAt":{"type":"string","format":"date-time"},"providerUsageReferenceHash":{"type":"string","pattern":"^[0-9a-f]{64}$"}}},"ProviderJobBinding":{"title":"Provider-neutral asynchronous job binding","type":"object","additionalProperties":false,"required":["id","tenantId","jobId","providerConnectionId","capabilityId","routingPlanId","estimateId","reservationId","status","submittedAt"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"jobId":{"type":"string","format":"uuid"},"providerConnectionId":{"type":"string","format":"uuid"},"capabilityId":{"type":"string","format":"uuid"},"routingPlanId":{"type":"string","format":"uuid"},"estimateId":{"type":"string","format":"uuid"},"reservationId":{"type":"string","format":"uuid"},"externalJobReferenceHash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"status":{"type":"string","enum":["queued","running","waiting_for_approval","succeeded","failed","cancelling","cancelled"]},"approvalId":{"type":"string","format":"uuid"},"submittedAt":{"type":"string","format":"date-time"}}},"ConnectorDefinition":{"title":"Connector registry definition","type":"object","additionalProperties":false,"required":["id","key","displayName","kind","supportedAuthSchemes","supportedRegions","declaredScopes","supportsLiveRead","supportsSnapshot"],"properties":{"id":{"type":"string","format":"uuid"},"key":{"type":"string","pattern":"^[a-z][a-z0-9._-]{1,127}$"},"displayName":{"type":"string","minLength":1,"maxLength":255},"kind":{"type":"string","enum":["mcp","rest","graphql","database","file_store","lms","knowledge_base"]},"supportedAuthSchemes":{"type":"array","uniqueItems":true,"items":{"type":"string","enum":["oauth2","api_key","service_account","mtls","none"]}},"supportedRegions":{"type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":2048}},"declaredScopes":{"type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":2048}},"supportsLiveRead":{"type":"boolean"},"supportsSnapshot":{"type":"boolean"}}},"ConnectorBinding":{"title":"Policy-bound connector binding","type":"object","additionalProperties":false,"required":["metadata","connectorDefinitionId","displayName","status","endpointOrigin","dataRegion","allowedHosts","grantedScopes","allowedPurposes","maximumDataClass","configuration"],"properties":{"metadata":{"type":"object","additionalProperties":false,"required":["id","tenantId","createdAt","createdBy","updatedAt","updatedBy","revision"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"createdAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["human","service","mcp_client"]},"displayName":{"type":"string","minLength":1,"maxLength":255}}},"updatedAt":{"type":"string","format":"date-time"},"updatedBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["human","service","mcp_client"]},"displayName":{"type":"string","minLength":1,"maxLength":255}}},"revision":{"type":"integer","minimum":1}}},"workspaceId":{"type":"string","format":"uuid"},"connectorDefinitionId":{"type":"string","format":"uuid"},"displayName":{"type":"string","minLength":1,"maxLength":255},"status":{"type":"string","enum":["draft","active","degraded","disabled","invalid"]},"endpointOrigin":{"type":"string","format":"uri"},"secretRef":{"type":"string","pattern":"^(vault|secret-manager|kms)://[A-Za-z0-9._/-]+$","maxLength":1024},"dataRegion":{"type":"string","minLength":2,"maxLength":64},"allowedHosts":{"type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":2048}},"grantedScopes":{"type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":2048}},"allowedPurposes":{"type":"array","uniqueItems":true,"items":{"type":"string","enum":["platform_administration","experience_authoring","learning_delivery","learning_evaluation","human_review","tenant_analytics","billing","connector_synchronization","compliance_review"]}},"maximumDataClass":{"type":"string","enum":["public","internal","confidential","personal","special_category","secret"]},"configuration":{"type":"object","propertyNames":{"pattern":"^(?!.*(?:api[_-]?key|access[_-]?token|refresh[_-]?token|password|secret(?:value)?|credential)).+$"}},"lastTestedAt":{"type":"string","format":"date-time"},"lastTestStatus":{"type":"string","enum":["passed","failed"]}}},"ContextPolicy":{"title":"Context access and DLP policy","type":"object","additionalProperties":false,"required":["metadata","key","allowedBindingIds","allowedPurposes","allowedScopes","allowedRegions","maximumDataClass","dlpRules","snapshotTtlSeconds","liveFallback"],"properties":{"metadata":{"type":"object","additionalProperties":false,"required":["id","tenantId","createdAt","createdBy","updatedAt","updatedBy","revision"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"createdAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["human","service","mcp_client"]},"displayName":{"type":"string","minLength":1,"maxLength":255}}},"updatedAt":{"type":"string","format":"date-time"},"updatedBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["human","service","mcp_client"]},"displayName":{"type":"string","minLength":1,"maxLength":255}}},"revision":{"type":"integer","minimum":1}}},"workspaceId":{"type":"string","format":"uuid"},"key":{"type":"string","pattern":"^[a-z][a-z0-9._-]{1,127}$"},"allowedBindingIds":{"type":"array","uniqueItems":true,"items":{"type":"string","format":"uuid"}},"allowedPurposes":{"type":"array","uniqueItems":true,"items":{"type":"string","enum":["platform_administration","experience_authoring","learning_delivery","learning_evaluation","human_review","tenant_analytics","billing","connector_synchronization","compliance_review"]}},"allowedScopes":{"type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":2048}},"allowedRegions":{"type":"array","uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":2048}},"maximumDataClass":{"type":"string","enum":["public","internal","confidential","personal","special_category","secret"]},"dlpRules":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["id","name","detector","dataClass","action"],"properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string","minLength":1,"maxLength":255},"detector":{"type":"string","enum":["email","phone","iban","person_name","custom_regex","classification"]},"dataClass":{"type":"string","enum":["public","internal","confidential","personal","special_category","secret"]},"action":{"type":"string","enum":["allow","redact","block","require_approval"]},"pattern":{"type":"string","minLength":1,"maxLength":2000}}}},"snapshotTtlSeconds":{"type":"integer","minimum":1,"maximum":31536000},"liveFallback":{"type":"string","enum":["deny","snapshot_only","allow_if_fresh"]}}},"ContextPreview":{"title":"Ephemeral DLP-filtered context preview","type":"object","additionalProperties":false,"required":["id","tenantId","bindingId","policyId","purpose","queryHash","locale","items","dlpFindings","redacted","requiresApproval","bindingRevision","policyRevision","bindingPolicyHash","policyHash","expiresAt","createdAt"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"bindingId":{"type":"string","format":"uuid"},"policyId":{"type":"string","format":"uuid"},"purpose":{"type":"string","enum":["platform_administration","experience_authoring","learning_delivery","learning_evaluation","human_review","tenant_analytics","billing","connector_synchronization","compliance_review"]},"queryHash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"locale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"items":{"type":"array","maxItems":1000,"items":{"type":"object","additionalProperties":false,"required":["id","content","dataClass","observedAt","checksum","metadata"],"properties":{"id":{"type":"string","minLength":1,"maxLength":1024},"title":{"type":"string","maxLength":2000},"content":{"type":"string","maxLength":1000000},"sourceUri":{"type":"string","format":"uri-reference"},"dataClass":{"type":"string","enum":["public","internal","confidential","personal","special_category","secret"]},"observedAt":{"type":"string","format":"date-time"},"checksum":{"type":"string","pattern":"^[0-9a-f]{64}$"},"metadata":{"type":"object","propertyNames":{"pattern":"^(?!.*(?:api[_-]?key|access[_-]?token|refresh[_-]?token|password|secret(?:value)?|credential)).+$"}}}}},"dlpFindings":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["ruleId","dataClass","action","fieldPath","matchCount"],"properties":{"ruleId":{"type":"string","format":"uuid"},"dataClass":{"type":"string","enum":["public","internal","confidential","personal","special_category","secret"]},"action":{"type":"string","enum":["allow","redact","block","require_approval"]},"fieldPath":{"type":"string","minLength":1,"maxLength":1000},"matchCount":{"type":"integer","minimum":1}}}},"redacted":{"type":"boolean"},"requiresApproval":{"type":"boolean"},"bindingRevision":{"type":"integer","minimum":1},"policyRevision":{"type":"integer","minimum":1},"bindingPolicyHash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"policyHash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"expiresAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"ContextSnapshot":{"title":"Immutable DLP-filtered context snapshot","type":"object","additionalProperties":false,"required":["id","tenantId","bindingId","policyId","previewId","purpose","locale","items","dlpFindings","contentHash","bindingRevision","policyRevision","bindingPolicyHash","policyHash","sourceObservedAt","createdAt","createdBy","expiresAt"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"workspaceId":{"type":"string","format":"uuid"},"bindingId":{"type":"string","format":"uuid"},"policyId":{"type":"string","format":"uuid"},"previewId":{"type":"string","format":"uuid"},"purpose":{"type":"string","enum":["platform_administration","experience_authoring","learning_delivery","learning_evaluation","human_review","tenant_analytics","billing","connector_synchronization","compliance_review"]},"locale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"items":{"type":"array","maxItems":1000,"items":{"type":"object","additionalProperties":false,"required":["id","content","dataClass","observedAt","checksum","metadata"],"properties":{"id":{"type":"string","minLength":1,"maxLength":1024},"title":{"type":"string","maxLength":2000},"content":{"type":"string","maxLength":1000000},"sourceUri":{"type":"string","format":"uri-reference"},"dataClass":{"type":"string","enum":["public","internal","confidential","personal","special_category","secret"]},"observedAt":{"type":"string","format":"date-time"},"checksum":{"type":"string","pattern":"^[0-9a-f]{64}$"},"metadata":{"type":"object","propertyNames":{"pattern":"^(?!.*(?:api[_-]?key|access[_-]?token|refresh[_-]?token|password|secret(?:value)?|credential)).+$"}}}}},"dlpFindings":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["ruleId","dataClass","action","fieldPath","matchCount"],"properties":{"ruleId":{"type":"string","format":"uuid"},"dataClass":{"type":"string","enum":["public","internal","confidential","personal","special_category","secret"]},"action":{"type":"string","enum":["allow","redact","block","require_approval"]},"fieldPath":{"type":"string","minLength":1,"maxLength":1000},"matchCount":{"type":"integer","minimum":1}}}},"contentHash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"bindingRevision":{"type":"integer","minimum":1},"policyRevision":{"type":"integer","minimum":1},"bindingPolicyHash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"policyHash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"sourceObservedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["human","service","mcp_client"]},"displayName":{"type":"string","minLength":1,"maxLength":255}}},"expiresAt":{"type":"string","format":"date-time"}}},"LearningGroup":{"title":"Learning group","type":"object","additionalProperties":false,"required":["metadata","workspaceId","key","name","status","source","memberCount"],"properties":{"metadata":{"type":"object","additionalProperties":false,"required":["id","tenantId","createdAt","createdBy","updatedAt","updatedBy","revision"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"createdAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"enum":["human","service","mcp_client"]},"displayName":{"type":"string"}}},"updatedAt":{"type":"string","format":"date-time"},"updatedBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"enum":["human","service","mcp_client"]},"displayName":{"type":"string"}}},"revision":{"type":"integer","minimum":1}}},"workspaceId":{"type":"string","format":"uuid"},"key":{"type":"string","pattern":"^[a-z][a-z0-9._-]{1,127}$"},"name":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","minLength":2,"maxLength":35},"values":{"type":"object","minProperties":1,"additionalProperties":{"type":"string","minLength":1,"maxLength":4000}}}},"description":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","minLength":2,"maxLength":35},"values":{"type":"object","minProperties":1,"additionalProperties":{"type":"string","minLength":1,"maxLength":4000}}}},"status":{"enum":["active","archived"]},"source":{"enum":["manual","connector"]},"memberCount":{"type":"integer","minimum":0}}},"LearningAudience":{"title":"Learning audience","type":"object","additionalProperties":false,"required":["metadata","workspaceId","key","name","kind","groupIds","status","estimatedMemberCount"],"properties":{"metadata":{"type":"object","additionalProperties":false,"required":["id","tenantId","createdAt","createdBy","updatedAt","updatedBy","revision"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"createdAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"enum":["human","service","mcp_client"]},"displayName":{"type":"string"}}},"updatedAt":{"type":"string","format":"date-time"},"updatedBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"enum":["human","service","mcp_client"]},"displayName":{"type":"string"}}},"revision":{"type":"integer","minimum":1}}},"workspaceId":{"type":"string","format":"uuid"},"key":{"type":"string","pattern":"^[a-z][a-z0-9._-]{1,127}$"},"name":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","minLength":2,"maxLength":35},"values":{"type":"object","minProperties":1,"additionalProperties":{"type":"string","minLength":1,"maxLength":4000}}}},"description":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","minLength":2,"maxLength":35},"values":{"type":"object","minProperties":1,"additionalProperties":{"type":"string","minLength":1,"maxLength":4000}}}},"kind":{"enum":["groups","rules"]},"groupIds":{"type":"array","uniqueItems":true,"items":{"type":"string","format":"uuid"}},"rule":{"type":"object","additionalProperties":false,"required":["match","conditions"],"properties":{"match":{"enum":["all","any"]},"conditions":{"type":"array","minItems":1,"maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["attribute","operator","values"],"properties":{"attribute":{"enum":["department","country","jobFamily","location","groupId"]},"operator":{"enum":["equals","in"]},"values":{"type":"array","minItems":1,"maxItems":50,"items":{"type":"string","minLength":1,"maxLength":255}}}}}}},"status":{"enum":["active","archived"]},"estimatedMemberCount":{"type":"integer","minimum":0}}},"LearningProgram":{"title":"Learning program or journey","type":"object","additionalProperties":false,"required":["metadata","workspaceId","key","title","mode","status","version","steps","passScore","mentorReviewRequired","assignmentPolicy"],"properties":{"metadata":{"type":"object","additionalProperties":false,"required":["id","tenantId","createdAt","createdBy","updatedAt","updatedBy","revision"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"createdAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"enum":["human","service","mcp_client"]},"displayName":{"type":"string"}}},"updatedAt":{"type":"string","format":"date-time"},"updatedBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"enum":["human","service","mcp_client"]},"displayName":{"type":"string"}}},"revision":{"type":"integer","minimum":1}}},"workspaceId":{"type":"string","format":"uuid"},"key":{"type":"string","pattern":"^[a-z][a-z0-9._-]{1,127}$"},"title":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","minLength":2,"maxLength":35},"values":{"type":"object","minProperties":1,"additionalProperties":{"type":"string","minLength":1,"maxLength":4000}}}},"description":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","minLength":2,"maxLength":35},"values":{"type":"object","minProperties":1,"additionalProperties":{"type":"string","minLength":1,"maxLength":4000}}}},"mode":{"enum":["development","certification","assessment"]},"status":{"enum":["draft","published","archived"]},"version":{"type":"integer","minimum":1},"steps":{"type":"array","minItems":1,"items":{"type":"object","additionalProperties":false,"required":["id","key","sequence","title","kind","required","skillIds"],"properties":{"id":{"type":"string","format":"uuid"},"key":{"type":"string","pattern":"^[a-z][a-z0-9._-]{1,127}$"},"sequence":{"type":"integer","minimum":1},"title":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","minLength":2,"maxLength":35},"values":{"type":"object","minProperties":1,"additionalProperties":{"type":"string","minLength":1,"maxLength":4000}}}},"kind":{"enum":["experience","checkpoint"]},"required":{"type":"boolean"},"experienceId":{"type":"string","format":"uuid"},"releaseId":{"type":"string","format":"uuid"},"releaseHash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"skillIds":{"type":"array","uniqueItems":true,"items":{"type":"string","format":"uuid"}}}}},"passScore":{"type":"number","minimum":0,"maximum":100},"mentorReviewRequired":{"type":"boolean"},"assignmentPolicy":{"type":"object","additionalProperties":false,"required":["policyVersion","releasePinRequired","humanActivationRequired"],"properties":{"policyVersion":{"type":"string"},"releasePinRequired":{"const":true},"humanActivationRequired":{"const":true}}},"certificate":{"type":"object"},"publishedAt":{"type":"string","format":"date-time"}}},"LearningAssignment":{"title":"Learning assignment","type":"object","additionalProperties":false,"required":["metadata","workspaceId","programId","programVersion","audienceId","title","status","startsAt","learnerCount","notificationMode"],"properties":{"metadata":{"type":"object","additionalProperties":false,"required":["id","tenantId","createdAt","createdBy","updatedAt","updatedBy","revision"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"createdAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"enum":["human","service","mcp_client"]},"displayName":{"type":"string"}}},"updatedAt":{"type":"string","format":"date-time"},"updatedBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"enum":["human","service","mcp_client"]},"displayName":{"type":"string"}}},"revision":{"type":"integer","minimum":1}}},"workspaceId":{"type":"string","format":"uuid"},"programId":{"type":"string","format":"uuid"},"programVersion":{"type":"integer","minimum":1},"audienceId":{"type":"string","format":"uuid"},"title":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","minLength":2,"maxLength":35},"values":{"type":"object","minProperties":1,"additionalProperties":{"type":"string","minLength":1,"maxLength":4000}}}},"status":{"enum":["scheduled","activated_scheduled","active","cancelled","completed"]},"startsAt":{"type":"string","format":"date-time"},"dueAt":{"type":"string","format":"date-time"},"learnerCount":{"type":"integer","minimum":0},"openReviewCount":{"type":"integer","minimum":0},"notificationMode":{"enum":["none","email"]},"activation":{"type":"object"},"cancelledAt":{"type":"string","format":"date-time"},"cancellationReason":{"type":"string"}}},"LearningEnrollment":{"title":"Learning enrollment","type":"object","additionalProperties":false,"required":["metadata","workspaceId","assignmentId","programId","programVersion","learnerId","status","progressPercent","dueState"],"properties":{"metadata":{"type":"object","additionalProperties":false,"required":["id","tenantId","createdAt","createdBy","updatedAt","updatedBy","revision"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"createdAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"enum":["human","service","mcp_client"]},"displayName":{"type":"string"}}},"updatedAt":{"type":"string","format":"date-time"},"updatedBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"enum":["human","service","mcp_client"]},"displayName":{"type":"string"}}},"revision":{"type":"integer","minimum":1}}},"workspaceId":{"type":"string","format":"uuid"},"assignmentId":{"type":"string","format":"uuid"},"programId":{"type":"string","format":"uuid"},"programVersion":{"type":"integer","minimum":1},"learnerId":{"type":"string","format":"uuid"},"status":{"enum":["assigned","in_progress","review_pending","completed","failed","withdrawn"]},"progressPercent":{"type":"number","minimum":0,"maximum":100},"currentStepKey":{"type":"string","pattern":"^[a-z][a-z0-9._-]{1,127}$"},"scorePercent":{"type":"number","minimum":0,"maximum":100},"startedAt":{"type":"string","format":"date-time"},"completedAt":{"type":"string","format":"date-time"},"dueAt":{"type":"string","format":"date-time"},"dueState":{"enum":["none","on_track","due_soon","overdue"]},"remediation":{"type":"object","additionalProperties":false,"required":["required","nextAttemptNumber","reason","previousResultId"],"properties":{"required":{"const":true},"nextAttemptNumber":{"type":"integer","minimum":2},"reason":{"enum":["failed_result","changes_requested"]},"previousResultId":{"type":"string","format":"uuid"}}}}},"LearningSkill":{"title":"Learning skill","type":"object","additionalProperties":false,"required":["metadata","workspaceId","key","title","levelScale","status"],"properties":{"metadata":{"type":"object","additionalProperties":false,"required":["id","tenantId","createdAt","createdBy","updatedAt","updatedBy","revision"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"createdAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"enum":["human","service","mcp_client"]},"displayName":{"type":"string"}}},"updatedAt":{"type":"string","format":"date-time"},"updatedBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"enum":["human","service","mcp_client"]},"displayName":{"type":"string"}}},"revision":{"type":"integer","minimum":1}}},"workspaceId":{"type":"string","format":"uuid"},"key":{"type":"string","pattern":"^[a-z][a-z0-9._-]{1,127}$"},"title":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","minLength":2,"maxLength":35},"values":{"type":"object","minProperties":1,"additionalProperties":{"type":"string","minLength":1,"maxLength":4000}}}},"description":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","minLength":2,"maxLength":35},"values":{"type":"object","minProperties":1,"additionalProperties":{"type":"string","minLength":1,"maxLength":4000}}}},"levelScale":{"type":"array","minItems":1,"items":{"type":"object","additionalProperties":false,"required":["level","label"],"properties":{"level":{"type":"integer","minimum":1,"maximum":10},"label":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","minLength":2,"maxLength":35},"values":{"type":"object","minProperties":1,"additionalProperties":{"type":"string","minLength":1,"maxLength":4000}}}}}}},"status":{"enum":["active","archived"]}}},"QualificationRoleProfile":{"title":"Qualification role profile","type":"object","additionalProperties":false,"required":["metadata","workspaceId","key","title","requirements","status"],"properties":{"metadata":{"type":"object","additionalProperties":false,"required":["id","tenantId","createdAt","createdBy","updatedAt","updatedBy","revision"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"createdAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"enum":["human","service","mcp_client"]},"displayName":{"type":"string"}}},"updatedAt":{"type":"string","format":"date-time"},"updatedBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"enum":["human","service","mcp_client"]},"displayName":{"type":"string"}}},"revision":{"type":"integer","minimum":1}}},"workspaceId":{"type":"string","format":"uuid"},"key":{"type":"string","pattern":"^[a-z][a-z0-9._-]{1,127}$"},"title":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","minLength":2,"maxLength":35},"values":{"type":"object","minProperties":1,"additionalProperties":{"type":"string","minLength":1,"maxLength":4000}}}},"description":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","minLength":2,"maxLength":35},"values":{"type":"object","minProperties":1,"additionalProperties":{"type":"string","minLength":1,"maxLength":4000}}}},"requirements":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["skillId","targetLevel","mandatory"],"properties":{"skillId":{"type":"string","format":"uuid"},"targetLevel":{"type":"integer","minimum":1,"maximum":10},"mandatory":{"type":"boolean"}}}},"status":{"enum":["active","archived"]}}},"QualificationRequirement":{"title":"Qualification requirement","type":"object","additionalProperties":false,"required":["metadata","workspaceId","key","title","roleProfileId","programId","skillId","targetLevel","evidenceType","recertification","status"],"properties":{"metadata":{"type":"object","additionalProperties":false,"required":["id","tenantId","createdAt","createdBy","updatedAt","updatedBy","revision"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"createdAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"enum":["human","service","mcp_client"]},"displayName":{"type":"string"}}},"updatedAt":{"type":"string","format":"date-time"},"updatedBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"enum":["human","service","mcp_client"]},"displayName":{"type":"string"}}},"revision":{"type":"integer","minimum":1}}},"workspaceId":{"type":"string","format":"uuid"},"key":{"type":"string","pattern":"^[a-z][a-z0-9._-]{1,127}$"},"title":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","minLength":2,"maxLength":35},"values":{"type":"object","minProperties":1,"additionalProperties":{"type":"string","minLength":1,"maxLength":4000}}}},"roleProfileId":{"type":"string","format":"uuid"},"programId":{"type":"string","format":"uuid"},"skillId":{"type":"string","format":"uuid"},"targetLevel":{"type":"integer","minimum":1,"maximum":10},"evidenceType":{"enum":["program_result","certificate","mentor_approval"]},"validityDays":{"type":"integer","minimum":1,"maximum":36500},"recertification":{"type":"object","additionalProperties":false,"required":["required"],"properties":{"required":{"type":"boolean"},"remindBeforeDays":{"type":"integer","minimum":1,"maximum":3650}}},"status":{"enum":["active","archived"]}}},"LearningResult":{"title":"Immutable learning result","type":"object","additionalProperties":false,"required":["id","tenantId","workspaceId","enrollmentId","programId","learnerId","mode","experienceId","releaseId","releaseHash","attemptId","attemptNumber","score","maxScore","scorePercent","outcome","skillEvidence","evaluator","recordedAt","recordedBy"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"workspaceId":{"type":"string","format":"uuid"},"enrollmentId":{"type":"string","format":"uuid"},"programId":{"type":"string","format":"uuid"},"learnerId":{"type":"string","format":"uuid"},"mode":{"enum":["development","certification","assessment"]},"experienceId":{"type":"string","format":"uuid"},"releaseId":{"type":"string","format":"uuid"},"releaseHash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"attemptId":{"type":"string","format":"uuid"},"attemptNumber":{"type":"integer","minimum":1},"score":{"type":"number","minimum":0},"maxScore":{"type":"number","exclusiveMinimum":0},"scorePercent":{"type":"number","minimum":0,"maximum":100},"outcome":{"enum":["passed","failed","incomplete"]},"skillEvidence":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["skillId","level","evidenceRef"],"properties":{"skillId":{"type":"string","format":"uuid"},"level":{"type":"integer","minimum":1,"maximum":10},"evidenceRef":{"type":"string","minLength":1,"maxLength":1000}}}},"formativeFeedback":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","minLength":2,"maxLength":35},"values":{"type":"object","minProperties":1,"additionalProperties":{"type":"string","minLength":1,"maxLength":4000}}}},"evaluator":{"enum":["system","mentor"]},"recordedAt":{"type":"string","format":"date-time"},"recordedBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"enum":["human","service","mcp_client"]},"displayName":{"type":"string"}}}}},"MentorReview":{"title":"Mentor review","type":"object","additionalProperties":false,"required":["metadata","workspaceId","enrollmentId","resultId","programId","learnerId","round","final","status","evidenceRefs","comments","decisionHistory","submittedAt","allowedActions"],"properties":{"metadata":{"type":"object","additionalProperties":false,"required":["id","tenantId","createdAt","createdBy","updatedAt","updatedBy","revision"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"createdAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"enum":["human","service","mcp_client"]},"displayName":{"type":"string"}}},"updatedAt":{"type":"string","format":"date-time"},"updatedBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"enum":["human","service","mcp_client"]},"displayName":{"type":"string"}}},"revision":{"type":"integer","minimum":1}}},"workspaceId":{"type":"string","format":"uuid"},"enrollmentId":{"type":"string","format":"uuid"},"resultId":{"type":"string","format":"uuid"},"programId":{"type":"string","format":"uuid"},"learnerId":{"type":"string","format":"uuid"},"round":{"type":"integer","minimum":1},"final":{"type":"boolean"},"status":{"enum":["open","claimed","approved","changes_requested"]},"evidenceRefs":{"type":"array","items":{"type":"string"}},"comments":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["id","author","message","visibility","createdAt"],"properties":{"id":{"type":"string","format":"uuid"},"author":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"enum":["human","service","mcp_client"]},"displayName":{"type":"string"}}},"message":{"type":"string","minLength":1,"maxLength":4000},"visibility":{"enum":["learner","reviewers"]},"evidenceRef":{"type":"string","minLength":1,"maxLength":1000},"timeOffsetMs":{"type":"integer","minimum":0},"createdAt":{"type":"string","format":"date-time"}}}},"decisionHistory":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["round","decision","reason","decidedAt","decidedBy"],"properties":{"round":{"type":"integer","minimum":1},"decision":{"enum":["approved","changes_requested"]},"reason":{"type":"string","minLength":3,"maxLength":4000},"decidedAt":{"type":"string","format":"date-time"},"decidedBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"enum":["human","service","mcp_client"]},"displayName":{"type":"string"}}},"originalScorePercent":{"type":"number","minimum":0,"maximum":100},"correctedScorePercent":{"type":"number","minimum":0,"maximum":100}}}},"submittedAt":{"type":"string","format":"date-time"},"learnerDisplayName":{"type":"string"},"programTitle":{"type":"string"},"assignmentTitle":{"type":"string"},"dueAt":{"type":"string","format":"date-time"},"allowedActions":{"type":"array","uniqueItems":true,"items":{"enum":["claim","comment","decide","resubmit"]}},"assignedMentorId":{"type":"string","format":"uuid"},"claimedAt":{"type":"string","format":"date-time"},"decision":{"enum":["approved","changes_requested"]},"decisionReason":{"type":"string"},"decidedAt":{"type":"string","format":"date-time"},"correctedScorePercent":{"type":"number","minimum":0,"maximum":100}}},"LearningCertificate":{"title":"Learning certificate","type":"object","additionalProperties":false,"required":["metadata","workspaceId","certificateNumber","verificationCode","programId","programVersion","enrollmentId","learnerId","title","resultIds","status","issuedAt"],"properties":{"metadata":{"type":"object","additionalProperties":false,"required":["id","tenantId","createdAt","createdBy","updatedAt","updatedBy","revision"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"createdAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"enum":["human","service","mcp_client"]},"displayName":{"type":"string"}}},"updatedAt":{"type":"string","format":"date-time"},"updatedBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"enum":["human","service","mcp_client"]},"displayName":{"type":"string"}}},"revision":{"type":"integer","minimum":1}}},"workspaceId":{"type":"string","format":"uuid"},"certificateNumber":{"type":"string"},"verificationCode":{"type":"string"},"programId":{"type":"string","format":"uuid"},"programVersion":{"type":"integer","minimum":1},"enrollmentId":{"type":"string","format":"uuid"},"learnerId":{"type":"string","format":"uuid"},"title":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","minLength":2,"maxLength":35},"values":{"type":"object","minProperties":1,"additionalProperties":{"type":"string","minLength":1,"maxLength":4000}}}},"resultIds":{"type":"array","uniqueItems":true,"items":{"type":"string","format":"uuid"}},"status":{"enum":["valid","expired","revoked"]},"issuedAt":{"type":"string","format":"date-time"},"validUntil":{"type":"string","format":"date-time"},"recertificationDueAt":{"type":"string","format":"date-time"},"revokedAt":{"type":"string","format":"date-time"},"revocationReason":{"type":"string"}}},"RecertificationReminder":{"title":"Recertification reminder","type":"object","additionalProperties":false,"required":["certificateId","workspaceId","learnerId","programId","title","validUntil","remindAt","state","daysUntilExpiry"],"properties":{"certificateId":{"type":"string","format":"uuid"},"workspaceId":{"type":"string","format":"uuid"},"learnerId":{"type":"string","format":"uuid"},"programId":{"type":"string","format":"uuid"},"qualificationRequirementId":{"type":"string","format":"uuid"},"title":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","minLength":2,"maxLength":35},"values":{"type":"object","minProperties":1,"additionalProperties":{"type":"string","minLength":1,"maxLength":4000}}}},"validUntil":{"type":"string","format":"date-time"},"remindAt":{"type":"string","format":"date-time"},"state":{"enum":["upcoming","due","overdue"]},"daysUntilExpiry":{"type":"integer"}}},"LearningAnalytics":{"title":"Privacy-safe aggregate learning analytics","type":"object","additionalProperties":false,"required":["tenantId","workspaceId","mode","cohort","suppression","generatedAt","privacy"],"properties":{"tenantId":{"type":"string","format":"uuid"},"workspaceId":{"type":"string","format":"uuid"},"mode":{"enum":["development","certification","assessment"]},"cohort":{"type":"object","additionalProperties":false,"required":["kind","id","label","size"],"properties":{"kind":{"enum":["workspace","program","audience","group"]},"id":{"type":"string","format":"uuid"},"label":{"type":"string"},"size":{"type":"integer","minimum":0}}},"suppression":{"type":"object","additionalProperties":false,"required":["suppressed","minimumCohortSize","contributorCount"],"properties":{"suppressed":{"type":"boolean"},"minimumCohortSize":{"type":"integer","minimum":5},"contributorCount":{"type":"integer","minimum":0},"reason":{"enum":["cohort_below_minimum","no_data"]}}},"totals":{"type":"object","additionalProperties":false,"required":["assigned","started","completed","passed","certificatesValid"],"properties":{"assigned":{"type":"integer","minimum":0},"started":{"type":"integer","minimum":0},"completed":{"type":"integer","minimum":0},"passed":{"type":"integer","minimum":0},"reviewPending":{"type":"integer","minimum":0},"certificatesValid":{"type":"integer","minimum":0}}},"rates":{"type":"object","additionalProperties":false,"required":["startedPercent","completedPercent","passedPercent"],"properties":{"startedPercent":{"type":"number","minimum":0,"maximum":100},"completedPercent":{"type":"number","minimum":0,"maximum":100},"passedPercent":{"type":"number","minimum":0,"maximum":100}}},"scores":{"type":"object","additionalProperties":false,"required":["averagePercent","distribution"],"properties":{"averagePercent":{"type":"number","minimum":0,"maximum":100},"distribution":{"type":"array","minItems":4,"maxItems":4,"items":{"type":"object","additionalProperties":false,"required":["bucket","count"],"properties":{"bucket":{"enum":["0-49","50-69","70-84","85-100"]},"count":{"type":"integer","minimum":0}}}}}},"metricSuppression":{"type":"object","additionalProperties":false,"required":[],"properties":{"scores":{"type":"object","additionalProperties":false,"required":["suppressed","minimumCohortSize","contributorCount"],"properties":{"suppressed":{"const":true},"minimumCohortSize":{"type":"integer","minimum":5},"contributorCount":{"type":"integer","minimum":0},"reason":{"enum":["cohort_below_minimum","no_data"]}}},"reviewPending":{"type":"object","additionalProperties":false,"required":["suppressed","minimumCohortSize","contributorCount"],"properties":{"suppressed":{"const":true},"minimumCohortSize":{"type":"integer","minimum":5},"contributorCount":{"type":"integer","minimum":0},"reason":{"enum":["cohort_below_minimum","no_data"]}}}}},"generatedAt":{"type":"string","format":"date-time"},"privacy":{"type":"object","additionalProperties":false,"required":["aggregationOnly","lowPerformerRanking","directIdentifiersIncluded"],"properties":{"aggregationOnly":{"const":true},"lowPerformerRanking":{"const":false},"directIdentifiersIncluded":{"const":false}}}}},"LearningAnalyticsDashboard":{"title":"Privacy-safe learning analytics dashboard","type":"object","additionalProperties":false,"required":["overview","groups","audiences","programs","byMode","dimensions"],"properties":{"overview":{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://schemas.knowledgeworker.com/practice/v1/learning-analytics.schema.json","title":"Privacy-safe aggregate learning analytics","type":"object","additionalProperties":false,"required":["tenantId","workspaceId","mode","cohort","suppression","generatedAt","privacy"],"properties":{"tenantId":{"type":"string","format":"uuid"},"workspaceId":{"type":"string","format":"uuid"},"mode":{"enum":["development","certification","assessment"]},"cohort":{"type":"object","additionalProperties":false,"required":["kind","id","label","size"],"properties":{"kind":{"enum":["workspace","program","audience","group"]},"id":{"type":"string","format":"uuid"},"label":{"type":"string"},"size":{"type":"integer","minimum":0}}},"suppression":{"type":"object","additionalProperties":false,"required":["suppressed","minimumCohortSize","contributorCount"],"properties":{"suppressed":{"type":"boolean"},"minimumCohortSize":{"type":"integer","minimum":5},"contributorCount":{"type":"integer","minimum":0},"reason":{"enum":["cohort_below_minimum","no_data"]}}},"totals":{"type":"object","additionalProperties":false,"required":["assigned","started","completed","passed","certificatesValid"],"properties":{"assigned":{"type":"integer","minimum":0},"started":{"type":"integer","minimum":0},"completed":{"type":"integer","minimum":0},"passed":{"type":"integer","minimum":0},"reviewPending":{"type":"integer","minimum":0},"certificatesValid":{"type":"integer","minimum":0}}},"rates":{"type":"object","additionalProperties":false,"required":["startedPercent","completedPercent","passedPercent"],"properties":{"startedPercent":{"type":"number","minimum":0,"maximum":100},"completedPercent":{"type":"number","minimum":0,"maximum":100},"passedPercent":{"type":"number","minimum":0,"maximum":100}}},"scores":{"type":"object","additionalProperties":false,"required":["averagePercent","distribution"],"properties":{"averagePercent":{"type":"number","minimum":0,"maximum":100},"distribution":{"type":"array","minItems":4,"maxItems":4,"items":{"type":"object","additionalProperties":false,"required":["bucket","count"],"properties":{"bucket":{"enum":["0-49","50-69","70-84","85-100"]},"count":{"type":"integer","minimum":0}}}}}},"metricSuppression":{"type":"object","additionalProperties":false,"required":[],"properties":{"scores":{"type":"object","additionalProperties":false,"required":["suppressed","minimumCohortSize","contributorCount"],"properties":{"suppressed":{"const":true},"minimumCohortSize":{"type":"integer","minimum":5},"contributorCount":{"type":"integer","minimum":0},"reason":{"enum":["cohort_below_minimum","no_data"]}}},"reviewPending":{"type":"object","additionalProperties":false,"required":["suppressed","minimumCohortSize","contributorCount"],"properties":{"suppressed":{"const":true},"minimumCohortSize":{"type":"integer","minimum":5},"contributorCount":{"type":"integer","minimum":0},"reason":{"enum":["cohort_below_minimum","no_data"]}}}}},"generatedAt":{"type":"string","format":"date-time"},"privacy":{"type":"object","additionalProperties":false,"required":["aggregationOnly","lowPerformerRanking","directIdentifiersIncluded"],"properties":{"aggregationOnly":{"const":true},"lowPerformerRanking":{"const":false},"directIdentifiersIncluded":{"const":false}}}}},"groups":{"type":"array","items":{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://schemas.knowledgeworker.com/practice/v1/learning-analytics.schema.json","title":"Privacy-safe aggregate learning analytics","type":"object","additionalProperties":false,"required":["tenantId","workspaceId","mode","cohort","suppression","generatedAt","privacy"],"properties":{"tenantId":{"type":"string","format":"uuid"},"workspaceId":{"type":"string","format":"uuid"},"mode":{"enum":["development","certification","assessment"]},"cohort":{"type":"object","additionalProperties":false,"required":["kind","id","label","size"],"properties":{"kind":{"enum":["workspace","program","audience","group"]},"id":{"type":"string","format":"uuid"},"label":{"type":"string"},"size":{"type":"integer","minimum":0}}},"suppression":{"type":"object","additionalProperties":false,"required":["suppressed","minimumCohortSize","contributorCount"],"properties":{"suppressed":{"type":"boolean"},"minimumCohortSize":{"type":"integer","minimum":5},"contributorCount":{"type":"integer","minimum":0},"reason":{"enum":["cohort_below_minimum","no_data"]}}},"totals":{"type":"object","additionalProperties":false,"required":["assigned","started","completed","passed","certificatesValid"],"properties":{"assigned":{"type":"integer","minimum":0},"started":{"type":"integer","minimum":0},"completed":{"type":"integer","minimum":0},"passed":{"type":"integer","minimum":0},"reviewPending":{"type":"integer","minimum":0},"certificatesValid":{"type":"integer","minimum":0}}},"rates":{"type":"object","additionalProperties":false,"required":["startedPercent","completedPercent","passedPercent"],"properties":{"startedPercent":{"type":"number","minimum":0,"maximum":100},"completedPercent":{"type":"number","minimum":0,"maximum":100},"passedPercent":{"type":"number","minimum":0,"maximum":100}}},"scores":{"type":"object","additionalProperties":false,"required":["averagePercent","distribution"],"properties":{"averagePercent":{"type":"number","minimum":0,"maximum":100},"distribution":{"type":"array","minItems":4,"maxItems":4,"items":{"type":"object","additionalProperties":false,"required":["bucket","count"],"properties":{"bucket":{"enum":["0-49","50-69","70-84","85-100"]},"count":{"type":"integer","minimum":0}}}}}},"metricSuppression":{"type":"object","additionalProperties":false,"required":[],"properties":{"scores":{"type":"object","additionalProperties":false,"required":["suppressed","minimumCohortSize","contributorCount"],"properties":{"suppressed":{"const":true},"minimumCohortSize":{"type":"integer","minimum":5},"contributorCount":{"type":"integer","minimum":0},"reason":{"enum":["cohort_below_minimum","no_data"]}}},"reviewPending":{"type":"object","additionalProperties":false,"required":["suppressed","minimumCohortSize","contributorCount"],"properties":{"suppressed":{"const":true},"minimumCohortSize":{"type":"integer","minimum":5},"contributorCount":{"type":"integer","minimum":0},"reason":{"enum":["cohort_below_minimum","no_data"]}}}}},"generatedAt":{"type":"string","format":"date-time"},"privacy":{"type":"object","additionalProperties":false,"required":["aggregationOnly","lowPerformerRanking","directIdentifiersIncluded"],"properties":{"aggregationOnly":{"const":true},"lowPerformerRanking":{"const":false},"directIdentifiersIncluded":{"const":false}}}}}},"audiences":{"type":"array","items":{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://schemas.knowledgeworker.com/practice/v1/learning-analytics.schema.json","title":"Privacy-safe aggregate learning analytics","type":"object","additionalProperties":false,"required":["tenantId","workspaceId","mode","cohort","suppression","generatedAt","privacy"],"properties":{"tenantId":{"type":"string","format":"uuid"},"workspaceId":{"type":"string","format":"uuid"},"mode":{"enum":["development","certification","assessment"]},"cohort":{"type":"object","additionalProperties":false,"required":["kind","id","label","size"],"properties":{"kind":{"enum":["workspace","program","audience","group"]},"id":{"type":"string","format":"uuid"},"label":{"type":"string"},"size":{"type":"integer","minimum":0}}},"suppression":{"type":"object","additionalProperties":false,"required":["suppressed","minimumCohortSize","contributorCount"],"properties":{"suppressed":{"type":"boolean"},"minimumCohortSize":{"type":"integer","minimum":5},"contributorCount":{"type":"integer","minimum":0},"reason":{"enum":["cohort_below_minimum","no_data"]}}},"totals":{"type":"object","additionalProperties":false,"required":["assigned","started","completed","passed","certificatesValid"],"properties":{"assigned":{"type":"integer","minimum":0},"started":{"type":"integer","minimum":0},"completed":{"type":"integer","minimum":0},"passed":{"type":"integer","minimum":0},"reviewPending":{"type":"integer","minimum":0},"certificatesValid":{"type":"integer","minimum":0}}},"rates":{"type":"object","additionalProperties":false,"required":["startedPercent","completedPercent","passedPercent"],"properties":{"startedPercent":{"type":"number","minimum":0,"maximum":100},"completedPercent":{"type":"number","minimum":0,"maximum":100},"passedPercent":{"type":"number","minimum":0,"maximum":100}}},"scores":{"type":"object","additionalProperties":false,"required":["averagePercent","distribution"],"properties":{"averagePercent":{"type":"number","minimum":0,"maximum":100},"distribution":{"type":"array","minItems":4,"maxItems":4,"items":{"type":"object","additionalProperties":false,"required":["bucket","count"],"properties":{"bucket":{"enum":["0-49","50-69","70-84","85-100"]},"count":{"type":"integer","minimum":0}}}}}},"metricSuppression":{"type":"object","additionalProperties":false,"required":[],"properties":{"scores":{"type":"object","additionalProperties":false,"required":["suppressed","minimumCohortSize","contributorCount"],"properties":{"suppressed":{"const":true},"minimumCohortSize":{"type":"integer","minimum":5},"contributorCount":{"type":"integer","minimum":0},"reason":{"enum":["cohort_below_minimum","no_data"]}}},"reviewPending":{"type":"object","additionalProperties":false,"required":["suppressed","minimumCohortSize","contributorCount"],"properties":{"suppressed":{"const":true},"minimumCohortSize":{"type":"integer","minimum":5},"contributorCount":{"type":"integer","minimum":0},"reason":{"enum":["cohort_below_minimum","no_data"]}}}}},"generatedAt":{"type":"string","format":"date-time"},"privacy":{"type":"object","additionalProperties":false,"required":["aggregationOnly","lowPerformerRanking","directIdentifiersIncluded"],"properties":{"aggregationOnly":{"const":true},"lowPerformerRanking":{"const":false},"directIdentifiersIncluded":{"const":false}}}}}},"programs":{"type":"array","items":{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://schemas.knowledgeworker.com/practice/v1/learning-analytics.schema.json","title":"Privacy-safe aggregate learning analytics","type":"object","additionalProperties":false,"required":["tenantId","workspaceId","mode","cohort","suppression","generatedAt","privacy"],"properties":{"tenantId":{"type":"string","format":"uuid"},"workspaceId":{"type":"string","format":"uuid"},"mode":{"enum":["development","certification","assessment"]},"cohort":{"type":"object","additionalProperties":false,"required":["kind","id","label","size"],"properties":{"kind":{"enum":["workspace","program","audience","group"]},"id":{"type":"string","format":"uuid"},"label":{"type":"string"},"size":{"type":"integer","minimum":0}}},"suppression":{"type":"object","additionalProperties":false,"required":["suppressed","minimumCohortSize","contributorCount"],"properties":{"suppressed":{"type":"boolean"},"minimumCohortSize":{"type":"integer","minimum":5},"contributorCount":{"type":"integer","minimum":0},"reason":{"enum":["cohort_below_minimum","no_data"]}}},"totals":{"type":"object","additionalProperties":false,"required":["assigned","started","completed","passed","certificatesValid"],"properties":{"assigned":{"type":"integer","minimum":0},"started":{"type":"integer","minimum":0},"completed":{"type":"integer","minimum":0},"passed":{"type":"integer","minimum":0},"reviewPending":{"type":"integer","minimum":0},"certificatesValid":{"type":"integer","minimum":0}}},"rates":{"type":"object","additionalProperties":false,"required":["startedPercent","completedPercent","passedPercent"],"properties":{"startedPercent":{"type":"number","minimum":0,"maximum":100},"completedPercent":{"type":"number","minimum":0,"maximum":100},"passedPercent":{"type":"number","minimum":0,"maximum":100}}},"scores":{"type":"object","additionalProperties":false,"required":["averagePercent","distribution"],"properties":{"averagePercent":{"type":"number","minimum":0,"maximum":100},"distribution":{"type":"array","minItems":4,"maxItems":4,"items":{"type":"object","additionalProperties":false,"required":["bucket","count"],"properties":{"bucket":{"enum":["0-49","50-69","70-84","85-100"]},"count":{"type":"integer","minimum":0}}}}}},"metricSuppression":{"type":"object","additionalProperties":false,"required":[],"properties":{"scores":{"type":"object","additionalProperties":false,"required":["suppressed","minimumCohortSize","contributorCount"],"properties":{"suppressed":{"const":true},"minimumCohortSize":{"type":"integer","minimum":5},"contributorCount":{"type":"integer","minimum":0},"reason":{"enum":["cohort_below_minimum","no_data"]}}},"reviewPending":{"type":"object","additionalProperties":false,"required":["suppressed","minimumCohortSize","contributorCount"],"properties":{"suppressed":{"const":true},"minimumCohortSize":{"type":"integer","minimum":5},"contributorCount":{"type":"integer","minimum":0},"reason":{"enum":["cohort_below_minimum","no_data"]}}}}},"generatedAt":{"type":"string","format":"date-time"},"privacy":{"type":"object","additionalProperties":false,"required":["aggregationOnly","lowPerformerRanking","directIdentifiersIncluded"],"properties":{"aggregationOnly":{"const":true},"lowPerformerRanking":{"const":false},"directIdentifiersIncluded":{"const":false}}}}}},"byMode":{"type":"object","additionalProperties":false,"required":["development","certification","assessment"],"properties":{"development":{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://schemas.knowledgeworker.com/practice/v1/learning-analytics.schema.json","title":"Privacy-safe aggregate learning analytics","type":"object","additionalProperties":false,"required":["tenantId","workspaceId","mode","cohort","suppression","generatedAt","privacy"],"properties":{"tenantId":{"type":"string","format":"uuid"},"workspaceId":{"type":"string","format":"uuid"},"mode":{"enum":["development","certification","assessment"]},"cohort":{"type":"object","additionalProperties":false,"required":["kind","id","label","size"],"properties":{"kind":{"enum":["workspace","program","audience","group"]},"id":{"type":"string","format":"uuid"},"label":{"type":"string"},"size":{"type":"integer","minimum":0}}},"suppression":{"type":"object","additionalProperties":false,"required":["suppressed","minimumCohortSize","contributorCount"],"properties":{"suppressed":{"type":"boolean"},"minimumCohortSize":{"type":"integer","minimum":5},"contributorCount":{"type":"integer","minimum":0},"reason":{"enum":["cohort_below_minimum","no_data"]}}},"totals":{"type":"object","additionalProperties":false,"required":["assigned","started","completed","passed","certificatesValid"],"properties":{"assigned":{"type":"integer","minimum":0},"started":{"type":"integer","minimum":0},"completed":{"type":"integer","minimum":0},"passed":{"type":"integer","minimum":0},"reviewPending":{"type":"integer","minimum":0},"certificatesValid":{"type":"integer","minimum":0}}},"rates":{"type":"object","additionalProperties":false,"required":["startedPercent","completedPercent","passedPercent"],"properties":{"startedPercent":{"type":"number","minimum":0,"maximum":100},"completedPercent":{"type":"number","minimum":0,"maximum":100},"passedPercent":{"type":"number","minimum":0,"maximum":100}}},"scores":{"type":"object","additionalProperties":false,"required":["averagePercent","distribution"],"properties":{"averagePercent":{"type":"number","minimum":0,"maximum":100},"distribution":{"type":"array","minItems":4,"maxItems":4,"items":{"type":"object","additionalProperties":false,"required":["bucket","count"],"properties":{"bucket":{"enum":["0-49","50-69","70-84","85-100"]},"count":{"type":"integer","minimum":0}}}}}},"metricSuppression":{"type":"object","additionalProperties":false,"required":[],"properties":{"scores":{"type":"object","additionalProperties":false,"required":["suppressed","minimumCohortSize","contributorCount"],"properties":{"suppressed":{"const":true},"minimumCohortSize":{"type":"integer","minimum":5},"contributorCount":{"type":"integer","minimum":0},"reason":{"enum":["cohort_below_minimum","no_data"]}}},"reviewPending":{"type":"object","additionalProperties":false,"required":["suppressed","minimumCohortSize","contributorCount"],"properties":{"suppressed":{"const":true},"minimumCohortSize":{"type":"integer","minimum":5},"contributorCount":{"type":"integer","minimum":0},"reason":{"enum":["cohort_below_minimum","no_data"]}}}}},"generatedAt":{"type":"string","format":"date-time"},"privacy":{"type":"object","additionalProperties":false,"required":["aggregationOnly","lowPerformerRanking","directIdentifiersIncluded"],"properties":{"aggregationOnly":{"const":true},"lowPerformerRanking":{"const":false},"directIdentifiersIncluded":{"const":false}}}}},"certification":{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://schemas.knowledgeworker.com/practice/v1/learning-analytics.schema.json","title":"Privacy-safe aggregate learning analytics","type":"object","additionalProperties":false,"required":["tenantId","workspaceId","mode","cohort","suppression","generatedAt","privacy"],"properties":{"tenantId":{"type":"string","format":"uuid"},"workspaceId":{"type":"string","format":"uuid"},"mode":{"enum":["development","certification","assessment"]},"cohort":{"type":"object","additionalProperties":false,"required":["kind","id","label","size"],"properties":{"kind":{"enum":["workspace","program","audience","group"]},"id":{"type":"string","format":"uuid"},"label":{"type":"string"},"size":{"type":"integer","minimum":0}}},"suppression":{"type":"object","additionalProperties":false,"required":["suppressed","minimumCohortSize","contributorCount"],"properties":{"suppressed":{"type":"boolean"},"minimumCohortSize":{"type":"integer","minimum":5},"contributorCount":{"type":"integer","minimum":0},"reason":{"enum":["cohort_below_minimum","no_data"]}}},"totals":{"type":"object","additionalProperties":false,"required":["assigned","started","completed","passed","certificatesValid"],"properties":{"assigned":{"type":"integer","minimum":0},"started":{"type":"integer","minimum":0},"completed":{"type":"integer","minimum":0},"passed":{"type":"integer","minimum":0},"reviewPending":{"type":"integer","minimum":0},"certificatesValid":{"type":"integer","minimum":0}}},"rates":{"type":"object","additionalProperties":false,"required":["startedPercent","completedPercent","passedPercent"],"properties":{"startedPercent":{"type":"number","minimum":0,"maximum":100},"completedPercent":{"type":"number","minimum":0,"maximum":100},"passedPercent":{"type":"number","minimum":0,"maximum":100}}},"scores":{"type":"object","additionalProperties":false,"required":["averagePercent","distribution"],"properties":{"averagePercent":{"type":"number","minimum":0,"maximum":100},"distribution":{"type":"array","minItems":4,"maxItems":4,"items":{"type":"object","additionalProperties":false,"required":["bucket","count"],"properties":{"bucket":{"enum":["0-49","50-69","70-84","85-100"]},"count":{"type":"integer","minimum":0}}}}}},"metricSuppression":{"type":"object","additionalProperties":false,"required":[],"properties":{"scores":{"type":"object","additionalProperties":false,"required":["suppressed","minimumCohortSize","contributorCount"],"properties":{"suppressed":{"const":true},"minimumCohortSize":{"type":"integer","minimum":5},"contributorCount":{"type":"integer","minimum":0},"reason":{"enum":["cohort_below_minimum","no_data"]}}},"reviewPending":{"type":"object","additionalProperties":false,"required":["suppressed","minimumCohortSize","contributorCount"],"properties":{"suppressed":{"const":true},"minimumCohortSize":{"type":"integer","minimum":5},"contributorCount":{"type":"integer","minimum":0},"reason":{"enum":["cohort_below_minimum","no_data"]}}}}},"generatedAt":{"type":"string","format":"date-time"},"privacy":{"type":"object","additionalProperties":false,"required":["aggregationOnly","lowPerformerRanking","directIdentifiersIncluded"],"properties":{"aggregationOnly":{"const":true},"lowPerformerRanking":{"const":false},"directIdentifiersIncluded":{"const":false}}}}},"assessment":{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://schemas.knowledgeworker.com/practice/v1/learning-analytics.schema.json","title":"Privacy-safe aggregate learning analytics","type":"object","additionalProperties":false,"required":["tenantId","workspaceId","mode","cohort","suppression","generatedAt","privacy"],"properties":{"tenantId":{"type":"string","format":"uuid"},"workspaceId":{"type":"string","format":"uuid"},"mode":{"enum":["development","certification","assessment"]},"cohort":{"type":"object","additionalProperties":false,"required":["kind","id","label","size"],"properties":{"kind":{"enum":["workspace","program","audience","group"]},"id":{"type":"string","format":"uuid"},"label":{"type":"string"},"size":{"type":"integer","minimum":0}}},"suppression":{"type":"object","additionalProperties":false,"required":["suppressed","minimumCohortSize","contributorCount"],"properties":{"suppressed":{"type":"boolean"},"minimumCohortSize":{"type":"integer","minimum":5},"contributorCount":{"type":"integer","minimum":0},"reason":{"enum":["cohort_below_minimum","no_data"]}}},"totals":{"type":"object","additionalProperties":false,"required":["assigned","started","completed","passed","certificatesValid"],"properties":{"assigned":{"type":"integer","minimum":0},"started":{"type":"integer","minimum":0},"completed":{"type":"integer","minimum":0},"passed":{"type":"integer","minimum":0},"reviewPending":{"type":"integer","minimum":0},"certificatesValid":{"type":"integer","minimum":0}}},"rates":{"type":"object","additionalProperties":false,"required":["startedPercent","completedPercent","passedPercent"],"properties":{"startedPercent":{"type":"number","minimum":0,"maximum":100},"completedPercent":{"type":"number","minimum":0,"maximum":100},"passedPercent":{"type":"number","minimum":0,"maximum":100}}},"scores":{"type":"object","additionalProperties":false,"required":["averagePercent","distribution"],"properties":{"averagePercent":{"type":"number","minimum":0,"maximum":100},"distribution":{"type":"array","minItems":4,"maxItems":4,"items":{"type":"object","additionalProperties":false,"required":["bucket","count"],"properties":{"bucket":{"enum":["0-49","50-69","70-84","85-100"]},"count":{"type":"integer","minimum":0}}}}}},"metricSuppression":{"type":"object","additionalProperties":false,"required":[],"properties":{"scores":{"type":"object","additionalProperties":false,"required":["suppressed","minimumCohortSize","contributorCount"],"properties":{"suppressed":{"const":true},"minimumCohortSize":{"type":"integer","minimum":5},"contributorCount":{"type":"integer","minimum":0},"reason":{"enum":["cohort_below_minimum","no_data"]}}},"reviewPending":{"type":"object","additionalProperties":false,"required":["suppressed","minimumCohortSize","contributorCount"],"properties":{"suppressed":{"const":true},"minimumCohortSize":{"type":"integer","minimum":5},"contributorCount":{"type":"integer","minimum":0},"reason":{"enum":["cohort_below_minimum","no_data"]}}}}},"generatedAt":{"type":"string","format":"date-time"},"privacy":{"type":"object","additionalProperties":false,"required":["aggregationOnly","lowPerformerRanking","directIdentifiersIncluded"],"properties":{"aggregationOnly":{"const":true},"lowPerformerRanking":{"const":false},"directIdentifiersIncluded":{"const":false}}}}}}},"dimensions":{"type":"object","additionalProperties":false,"required":["content","quality","ai","cost","impact","generatedAt","privacy"],"properties":{"content":{"type":"object","additionalProperties":false,"required":["publishedPrograms","activeAssignments","publishedExperiences","immutableReleases","approvedMediaAssets"],"properties":{"publishedPrograms":{"type":"integer","minimum":0},"activeAssignments":{"type":"integer","minimum":0},"publishedExperiences":{"type":"integer","minimum":0},"immutableReleases":{"type":"integer","minimum":0},"approvedMediaAssets":{"type":"integer","minimum":0}}},"quality":{"type":"object","additionalProperties":false,"required":["suppression","validationRuns","validationPassed"],"properties":{"suppression":{"type":"object"},"validationRuns":{"type":"integer","minimum":0},"validationPassed":{"type":"integer","minimum":0},"resultsRecorded":{"type":"integer","minimum":0},"passingResults":{"type":"integer","minimum":0},"mentorReviews":{"type":"integer","minimum":0},"changesRequested":{"type":"integer","minimum":0},"evidenceLinks":{"type":"integer","minimum":0}}},"ai":{"type":"object","additionalProperties":false,"required":["providerJobs","succeeded","failed","pending","usesPersonalLearningData"],"properties":{"providerJobs":{"type":"integer","minimum":0},"succeeded":{"type":"integer","minimum":0},"failed":{"type":"integer","minimum":0},"pending":{"type":"integer","minimum":0},"usesPersonalLearningData":{"const":false}}},"cost":{"type":"object","additionalProperties":false,"required":["transparent","byCurrency"],"properties":{"transparent":{"const":true},"byCurrency":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["currency","providerCostMinor","markupMinor","customerCostMinor"],"properties":{"currency":{"type":"string","pattern":"^[A-Z]{3}$"},"providerCostMinor":{"type":"integer","minimum":0},"markupMinor":{"type":"integer","minimum":0},"customerCostMinor":{"type":"integer","minimum":0}}}}}},"impact":{"type":"object","additionalProperties":false,"required":["suppression"],"properties":{"suppression":{"type":"object"},"completedEnrollments":{"type":"integer","minimum":0},"passedEnrollments":{"type":"integer","minimum":0},"validCertificates":{"type":"integer","minimum":0},"evidencedSkills":{"type":"integer","minimum":0},"completionPercent":{"type":"number","minimum":0,"maximum":100},"passPercent":{"type":"number","minimum":0,"maximum":100}}},"generatedAt":{"type":"string","format":"date-time"},"privacy":{"type":"object","additionalProperties":false,"required":["aggregationOnly","lowPerformerRanking","directIdentifiersIncluded"],"properties":{"aggregationOnly":{"const":true},"lowPerformerRanking":{"const":false},"directIdentifiersIncluded":{"const":false}}}}}}},"CommercialPlanVersion":{"title":"Commercial plan version","type":"object","additionalProperties":false,"required":["id","planKey","version","currency","monthlyBasePriceMinor","annualBasePriceMinor","includedSeats","maximumSeats","additionalSeatMonthlyPriceMinor","includedCreditMinor","providerMarkupBps","trial","entitlements","activeFrom"],"properties":{"id":{"type":"string","pattern":"^(starter|team|business|enterprise)@[1-9][0-9]*$"},"planKey":{"type":"string","enum":["starter","team","business","enterprise"]},"version":{"type":"integer","minimum":1},"currency":{"const":"EUR"},"monthlyBasePriceMinor":{"type":["integer","null"],"minimum":0},"annualBasePriceMinor":{"type":["integer","null"],"minimum":0},"includedSeats":{"type":"integer","minimum":0},"maximumSeats":{"type":["integer","null"],"minimum":1},"additionalSeatMonthlyPriceMinor":{"type":["integer","null"],"minimum":0},"includedCreditMinor":{"type":"integer","minimum":0},"providerMarkupBps":{"type":"integer","minimum":0,"maximum":10000},"trial":{"type":"object","additionalProperties":false,"required":["days","authorSeats","learnerSeats","starterExperiences","creditMinor"],"properties":{"days":{"type":"integer","minimum":1},"authorSeats":{"type":"integer","minimum":1},"learnerSeats":{"type":"integer","minimum":1},"starterExperiences":{"type":"integer","minimum":0},"creditMinor":{"type":"integer","minimum":0}}},"entitlements":{"type":"object","additionalProperties":false,"required":["workspaces","authors","activeLearners","publishedExperiences","mentorReview","analytics","multilingualObjects","providerChoice","apiAccess","mcpAccess","scormExport","xapi","lti","cmi5","sso","customDataRetention","whiteLabel","supportLevel"],"properties":{"workspaces":{"type":["integer","null"],"minimum":1},"authors":{"type":["integer","null"],"minimum":1},"activeLearners":{"type":["integer","null"],"minimum":1},"publishedExperiences":{"type":["integer","null"],"minimum":1},"mentorReview":{"type":"boolean"},"analytics":{"type":"boolean"},"multilingualObjects":{"type":"boolean"},"providerChoice":{"type":"boolean"},"apiAccess":{"type":"boolean"},"mcpAccess":{"type":"boolean"},"scormExport":{"type":"boolean"},"xapi":{"type":"boolean"},"lti":{"type":"boolean"},"cmi5":{"type":"boolean"},"sso":{"type":"boolean"},"customDataRetention":{"type":"boolean"},"whiteLabel":{"type":"boolean"},"supportLevel":{"enum":["standard","priority","enterprise"]}}},"activeFrom":{"type":"string","format":"date-time"},"activeUntil":{"type":"string","format":"date-time"}}},"CreateSignupIntentInput":{"title":"Create signup intent input","type":"object","additionalProperties":false,"required":["email","companyName","planKey","acceptedTermsVersion","acceptedPrivacyVersion"],"properties":{"email":{"type":"string","format":"email","maxLength":254},"companyName":{"type":"string","minLength":2,"maxLength":200},"planKey":{"type":"string","enum":["starter","team","business","enterprise"]},"locale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"acceptedTermsVersion":{"type":"string","minLength":2,"maxLength":80},"acceptedPrivacyVersion":{"type":"string","minLength":2,"maxLength":80}}},"SignupIntent":{"title":"Public signup intent","type":"object","additionalProperties":false,"required":["id","emailMasked","emailDomain","companyName","planKey","planVersion","locale","status","expiresAt","attemptsRemaining","createdAt"],"properties":{"id":{"type":"string","format":"uuid"},"emailMasked":{"type":"string"},"emailDomain":{"type":"string","format":"hostname"},"companyName":{"type":"string"},"planKey":{"type":"string","enum":["starter","team","business","enterprise"]},"planVersion":{"type":"integer","minimum":1},"locale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"status":{"enum":["pending_verification","verified","locked","expired","provisioned"]},"expiresAt":{"type":"string","format":"date-time"},"attemptsRemaining":{"type":"integer","minimum":0,"maximum":5},"verifiedAt":{"type":"string","format":"date-time"},"provisionedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"VerifySignupIntentInput":{"title":"Verify signup intent input","type":"object","additionalProperties":false,"required":["code"],"properties":{"code":{"type":"string","pattern":"^[0-9]{8}$"}}},"ProvisionTrialInput":{"title":"Provision trial input","type":"object","additionalProperties":false,"required":["provisioningProof"],"properties":{"provisioningProof":{"type":"string","minLength":20,"maxLength":500}}},"ProvisionedTrial":{"title":"Provisioned product trial","type":"object","additionalProperties":false,"required":["provisioningId","tenant","workspace","adminUser","trial","creditAccountId","entitlements","sessionBootstrap"],"properties":{"provisioningId":{"type":"string","format":"uuid"},"tenant":{"type":"object","additionalProperties":false,"required":["id","slug","displayName","defaultLocale"],"properties":{"id":{"type":"string","format":"uuid"},"slug":{"type":"string","minLength":1},"displayName":{"type":"string","minLength":1},"defaultLocale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"}}},"workspace":{"type":"object","additionalProperties":false,"required":["id","key","name","defaultLocale"],"properties":{"id":{"type":"string","format":"uuid"},"key":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"defaultLocale":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"}}},"adminUser":{"type":"object","additionalProperties":false,"required":["id","emailMasked"],"properties":{"id":{"type":"string","format":"uuid"},"emailMasked":{"type":"string","minLength":3}}},"trial":{"type":"object","additionalProperties":false,"required":["id","tenantId","workspaceId","planKey","planVersion","status","authorSeats","learnerSeats","starterExperienceCount","startsAt","endsAt","createdAt"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"workspaceId":{"type":"string","format":"uuid"},"planKey":{"type":"string","enum":["starter","team","business","enterprise"]},"planVersion":{"type":"integer","minimum":1},"status":{"enum":["active","converted","expired","cancelled"]},"authorSeats":{"type":"integer","minimum":1},"learnerSeats":{"type":"integer","minimum":1},"starterExperienceCount":{"type":"integer","minimum":0},"startsAt":{"type":"string","format":"date-time"},"endsAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"creditAccountId":{"type":"string","format":"uuid"},"entitlements":{"type":"object","additionalProperties":false,"required":["workspaces","authors","activeLearners","publishedExperiences","mentorReview","analytics","multilingualObjects","providerChoice","apiAccess","mcpAccess","scormExport","xapi","lti","cmi5","sso","customDataRetention","whiteLabel","supportLevel"],"properties":{"workspaces":{"type":["integer","null"],"minimum":1},"authors":{"type":["integer","null"],"minimum":1},"activeLearners":{"type":["integer","null"],"minimum":1},"publishedExperiences":{"type":["integer","null"],"minimum":1},"mentorReview":{"type":"boolean"},"analytics":{"type":"boolean"},"multilingualObjects":{"type":"boolean"},"providerChoice":{"type":"boolean"},"apiAccess":{"type":"boolean"},"mcpAccess":{"type":"boolean"},"scormExport":{"type":"boolean"},"xapi":{"type":"boolean"},"lti":{"type":"boolean"},"cmi5":{"type":"boolean"},"sso":{"type":"boolean"},"customDataRetention":{"type":"boolean"},"whiteLabel":{"type":"boolean"},"supportLevel":{"enum":["standard","priority","enterprise"]}}},"evaluationPack":{"type":"object","additionalProperties":false,"required":["status","locale","experienceId","experienceRevision","groupId","audienceId","learnerCount","assignedLearnerUserIds","unassignedLearnerCount"],"properties":{"status":{"enum":["awaiting_content_approval","content_approved","ready_for_assignment","assignment_active","requires_reassignment"]},"locale":{"enum":["de-DE","en-GB"]},"experienceId":{"type":"string","format":"uuid"},"experienceRevision":{"type":"integer","minimum":1},"reviewId":{"type":"string","format":"uuid"},"reviewRevision":{"type":"integer","minimum":1},"releaseId":{"type":"string","format":"uuid"},"groupId":{"type":"string","format":"uuid"},"audienceId":{"type":"string","format":"uuid"},"programId":{"type":"string","format":"uuid"},"assignmentId":{"type":"string","format":"uuid"},"learnerCount":{"type":"integer","minimum":0},"assignedLearnerUserIds":{"type":"array","uniqueItems":true,"items":{"type":"string","format":"uuid"}},"unassignedLearnerCount":{"type":"integer","minimum":0}}},"sessionBootstrap":{"type":"object","additionalProperties":false,"required":["exchangePath","activationProof","expiresAt"],"properties":{"exchangePath":{"const":"/api/v1/commercial/trial-activations:exchange"},"activationProof":{"type":"string","minLength":40,"maxLength":2000},"expiresAt":{"type":"string","format":"date-time"}}}}},"RequestDomainAccessInput":{"title":"Request access to an existing company tenant","type":"object","additionalProperties":false,"required":["signupIntentId","provisioningProof","confirmationStatement"],"properties":{"signupIntentId":{"type":"string","format":"uuid"},"provisioningProof":{"type":"string","minLength":20,"maxLength":500},"confirmationStatement":{"const":true}}},"DomainAccessRequest":{"title":"Non-enumerating company access request","type":"object","additionalProperties":false,"required":["id","status","nextStep","requestedAt"],"properties":{"id":{"type":"string","format":"uuid"},"status":{"const":"pending_review"},"nextStep":{"const":"existing_tenant_admin_review"},"requestedAt":{"type":"string","format":"date-time"}}},"TrialActivationInput":{"title":"Trial activation exchange input","type":"object","additionalProperties":false,"required":["activationProof"],"properties":{"activationProof":{"type":"string","minLength":40,"maxLength":2000}}},"TrialActivationGrant":{"title":"Short-lived trial session grant","type":"object","additionalProperties":false,"required":["provisioningId","tenantId","workspaceIds","actor","roles","scopes","purposes","expiresAt"],"properties":{"provisioningId":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"workspaceIds":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"string","format":"uuid"}},"actor":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"enum":["human","service","mcp_client"]},"displayName":{"type":"string","minLength":1,"maxLength":255}}},"roles":{"type":"array","const":["tenant_admin","billing_admin","author"]},"scopes":{"type":"array","uniqueItems":true,"items":{"type":"string"}},"purposes":{"type":"array","const":["platform_administration","experience_authoring","billing"]},"expiresAt":{"type":"string","format":"date-time"}}},"CreateCheckoutSessionInput":{"title":"Create checkout session input","type":"object","additionalProperties":false,"required":["planKey","planVersion","billingCycle","seats","returnUrl"],"properties":{"planKey":{"type":"string","enum":["starter","team","business","enterprise"]},"planVersion":{"type":"integer","minimum":1},"billingCycle":{"type":"string","enum":["monthly","annual"]},"seats":{"type":"integer","minimum":1},"returnUrl":{"type":"string","format":"uri","maxLength":2000}}},"CheckoutSession":{"title":"Safe checkout session","type":"object","additionalProperties":false,"required":["id","tenantId","planKey","planVersion","billingCycle","seats","status","mode","checkoutUrl","expiresAt","createdAt"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"planKey":{"type":"string","enum":["starter","team","business","enterprise"]},"planVersion":{"type":"integer","minimum":1},"billingCycle":{"type":"string","enum":["monthly","annual"]},"seats":{"type":"integer","minimum":1},"status":{"enum":["open","returned","completed","expired","cancelled"]},"mode":{"const":"test"},"checkoutUrl":{"type":"string","format":"uri-reference"},"expiresAt":{"type":"string","format":"date-time"},"returnedAt":{"type":"string","format":"date-time"},"completedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"CheckoutReturnInput":{"title":"Checkout return input","type":"object","additionalProperties":false,"required":["state"],"properties":{"state":{"type":"string","minLength":20,"maxLength":500}}},"CommercialSubscription":{"title":"Commercial subscription projection","type":"object","additionalProperties":false,"required":["id","tenantId","planKey","planVersion","billingCycle","seats","status","entitlements","currentPeriodStart","currentPeriodEnd","cancelAtPeriodEnd","lastProviderEventAt","revision","createdAt","updatedAt"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"planKey":{"type":"string","enum":["starter","team","business","enterprise"]},"planVersion":{"type":"integer","minimum":1},"billingCycle":{"type":"string","enum":["monthly","annual"]},"seats":{"type":"integer","minimum":1},"status":{"enum":["trialing","active","past_due","cancelled"]},"entitlements":{"type":"object","additionalProperties":false,"required":["workspaces","authors","activeLearners","publishedExperiences","mentorReview","analytics","multilingualObjects","providerChoice","apiAccess","mcpAccess","scormExport","xapi","lti","cmi5","sso","customDataRetention","whiteLabel","supportLevel"],"properties":{"workspaces":{"type":["integer","null"],"minimum":1},"authors":{"type":["integer","null"],"minimum":1},"activeLearners":{"type":["integer","null"],"minimum":1},"publishedExperiences":{"type":["integer","null"],"minimum":1},"mentorReview":{"type":"boolean"},"analytics":{"type":"boolean"},"multilingualObjects":{"type":"boolean"},"providerChoice":{"type":"boolean"},"apiAccess":{"type":"boolean"},"mcpAccess":{"type":"boolean"},"scormExport":{"type":"boolean"},"xapi":{"type":"boolean"},"lti":{"type":"boolean"},"cmi5":{"type":"boolean"},"sso":{"type":"boolean"},"customDataRetention":{"type":"boolean"},"whiteLabel":{"type":"boolean"},"supportLevel":{"enum":["standard","priority","enterprise"]}}},"currentPeriodStart":{"type":"string","format":"date-time"},"currentPeriodEnd":{"type":"string","format":"date-time"},"cancelAtPeriodEnd":{"type":"boolean"},"lastProviderEventAt":{"type":"string","format":"date-time"},"revision":{"type":"integer","minimum":1},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"GrantOverageConsentInput":{"title":"Grant overage consent input","type":"object","additionalProperties":false,"required":["maxOverageMinor","termsVersion","expiresAt"],"properties":{"maxOverageMinor":{"type":"integer","minimum":100},"termsVersion":{"type":"string","minLength":2,"maxLength":80},"expiresAt":{"type":"string","format":"date-time"}}},"OverageConsent":{"title":"Bounded human overage consent","type":"object","additionalProperties":false,"required":["id","tenantId","creditAccountId","maxOverageMinor","currency","termsVersion","grantedBy","grantedAt","expiresAt"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"creditAccountId":{"type":"string","format":"uuid"},"maxOverageMinor":{"type":"integer","minimum":0},"currency":{"const":"EUR"},"termsVersion":{"type":"string"},"grantedBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"enum":["human","service","mcp_client"]},"displayName":{"type":"string","minLength":1,"maxLength":255}}},"grantedAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","format":"date-time"},"revokedAt":{"type":"string","format":"date-time"}}},"RecordProviderUsageInput":{"title":"Record provider usage input","type":"object","additionalProperties":false,"required":["providerKey","providerOperation","providerReference","inputUnits","outputUnits","purchaseCostMinor","occurredAt"],"properties":{"workspaceId":{"type":"string","format":"uuid"},"providerKey":{"type":"string","pattern":"^[a-z0-9][a-z0-9._-]+$"},"providerOperation":{"type":"string"},"providerReference":{"type":"string"},"inputUnits":{"type":"integer","minimum":0},"outputUnits":{"type":"integer","minimum":0},"purchaseCostMinor":{"type":"integer","minimum":0},"occurredAt":{"type":"string","format":"date-time"}}},"ProviderUsageEntry":{"title":"Transparent provider usage entry","type":"object","additionalProperties":false,"required":["id","tenantId","creditAccountId","providerKey","providerOperation","providerReference","inputUnits","outputUnits","purchaseCostMinor","markupBps","markupMinor","customerCostMinor","currency","occurredAt","recordedAt"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"workspaceId":{"type":"string","format":"uuid"},"creditAccountId":{"type":"string","format":"uuid"},"providerKey":{"type":"string"},"providerOperation":{"type":"string"},"providerReference":{"type":"string"},"inputUnits":{"type":"integer","minimum":0},"outputUnits":{"type":"integer","minimum":0},"purchaseCostMinor":{"type":"integer","minimum":0},"markupBps":{"type":"integer","minimum":0,"maximum":10000},"markupMinor":{"type":"integer","minimum":0},"customerCostMinor":{"type":"integer","minimum":0},"currency":{"const":"EUR"},"overageConsentId":{"type":"string","format":"uuid"},"occurredAt":{"type":"string","format":"date-time"},"recordedAt":{"type":"string","format":"date-time"}}},"PaymentWebhookEnvelope":{"title":"Signed payment webhook envelope","type":"object","additionalProperties":false,"required":["id","type","occurredAt","data"],"properties":{"id":{"type":"string","minLength":6,"maxLength":180},"type":{"enum":["checkout.completed","invoice.paid","payment.failed","subscription.updated","subscription.cancelled"]},"occurredAt":{"type":"string","format":"date-time"},"data":{"type":"object","additionalProperties":false,"required":[],"properties":{"checkoutSessionId":{"type":"string","format":"uuid"},"providerCustomerRef":{"type":"string"},"providerSubscriptionRef":{"type":"string"},"status":{"enum":["trialing","active","past_due","cancelled"]},"planKey":{"type":"string","enum":["starter","team","business","enterprise"]},"planVersion":{"type":"integer","minimum":1},"billingCycle":{"type":"string","enum":["monthly","annual"]},"seats":{"type":"integer","minimum":1},"currentPeriodStart":{"type":"string","format":"date-time"},"currentPeriodEnd":{"type":"string","format":"date-time"},"cancelAtPeriodEnd":{"type":"boolean"}}}}},"CreateTrialTestUserInput":{"title":"Create synthetic trial test user input","type":"object","additionalProperties":false,"required":["workspaceId","displayName","role"],"properties":{"workspaceId":{"type":"string","format":"uuid"},"displayName":{"type":"string","minLength":2,"maxLength":120},"role":{"type":"string","enum":["author","learner","mentor","hr_ld_admin","connector_admin","billing_admin","data_protection_reviewer","works_council_reviewer"]}}},"UpdateTrialTestUserInput":{"title":"Update synthetic trial test user lifecycle input","type":"object","additionalProperties":false,"required":[],"properties":{"role":{"type":"string","enum":["author","learner","mentor","hr_ld_admin","connector_admin","billing_admin","data_protection_reviewer","works_council_reviewer"]},"status":{"type":"string","enum":["active","suspended"]},"expectedRevision":{"type":"integer","minimum":1}},"description":"role or status is required; concurrency is supplied by expectedRevision or the HTTP If-Match header.","anyOf":[{"required":["role"]},{"required":["status"]}]},"ApproveTrialEvaluationPackInput":{"title":"Approve the governed reference content for a product trial","type":"object","additionalProperties":false,"required":["workspaceId","confirmationStatement","reason"],"properties":{"workspaceId":{"type":"string","format":"uuid"},"confirmationStatement":{"const":true},"reason":{"type":"string","minLength":8,"maxLength":1000}}},"TrialTestUser":{"title":"Synthetic trial test user","type":"object","additionalProperties":false,"required":["id","tenantId","workspaceId","trialId","userId","email","displayName","role","status","synthetic","revision","createdAt","updatedAt"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"workspaceId":{"type":"string","format":"uuid"},"trialId":{"type":"string","format":"uuid"},"userId":{"type":"string","format":"uuid"},"email":{"type":"string","maxLength":254,"pattern":"^[a-z0-9._+-]+@synthetic\\.invalid$"},"displayName":{"type":"string","minLength":2,"maxLength":120},"role":{"type":"string","enum":["author","learner","mentor","hr_ld_admin","connector_admin","billing_admin","data_protection_reviewer","works_council_reviewer"]},"status":{"type":"string","enum":["active","suspended"]},"synthetic":{"const":true},"revision":{"type":"integer","minimum":1},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"TrialSeatUsage":{"title":"Trial test-team seat usage","type":"object","additionalProperties":false,"required":["authors","learners"],"properties":{"authors":{"type":"object","additionalProperties":false,"required":["used","limit"],"properties":{"used":{"type":"integer","minimum":0},"limit":{"type":"integer","minimum":0}}},"learners":{"type":"object","additionalProperties":false,"required":["used","limit"],"properties":{"used":{"type":"integer","minimum":0},"limit":{"type":"integer","minimum":0}}}}},"TrialEvaluationPack":{"title":"Governed reference learning pack for a product trial","type":"object","additionalProperties":false,"required":["status","locale","experienceId","experienceRevision","groupId","audienceId","learnerCount","assignedLearnerUserIds","unassignedLearnerCount"],"properties":{"status":{"type":"string","enum":["awaiting_content_approval","content_approved","ready_for_assignment","assignment_active","requires_reassignment"]},"locale":{"type":"string","enum":["de-DE","en-GB"]},"experienceId":{"type":"string","format":"uuid"},"experienceRevision":{"type":"integer","minimum":1},"reviewId":{"type":"string","format":"uuid"},"reviewRevision":{"type":"integer","minimum":1},"releaseId":{"type":"string","format":"uuid"},"groupId":{"type":"string","format":"uuid"},"audienceId":{"type":"string","format":"uuid"},"programId":{"type":"string","format":"uuid"},"assignmentId":{"type":"string","format":"uuid"},"learnerCount":{"type":"integer","minimum":0},"assignedLearnerUserIds":{"type":"array","uniqueItems":true,"items":{"type":"string","format":"uuid"}},"unassignedLearnerCount":{"type":"integer","minimum":0}}},"ConfirmBusinessDomainInput":{"title":"Confirm website business domain input","type":"object","additionalProperties":false,"required":["workspaceId","domain","confirmationMethod","evidenceRef","confirmationStatement"],"properties":{"workspaceId":{"type":"string","format":"uuid"},"domain":{"type":"string","minLength":4,"maxLength":253,"pattern":"^(?=.{4,253}$)(?!.*\\.\\.)(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$"},"confirmationMethod":{"type":"string","enum":["registration_email_domain","dns_challenge","manual_tenant_admin"]},"evidenceRef":{"type":"string","minLength":8,"maxLength":500},"confirmationStatement":{"const":true}}},"GrantCrawlConsentInput":{"title":"Grant website crawl consent input","type":"object","additionalProperties":false,"required":["workspaceId","domainConfirmationId","noticeVersion","startUrl","confirmationStatement"],"properties":{"workspaceId":{"type":"string","format":"uuid"},"domainConfirmationId":{"type":"string","format":"uuid"},"noticeVersion":{"type":"string","minLength":1,"maxLength":100},"startUrl":{"type":"string","format":"uri","pattern":"^https://"},"allowSubdomains":{"const":false},"maxPages":{"type":"integer","minimum":1,"maximum":5},"confirmationStatement":{"const":true}}},"RevokeCrawlConsentInput":{"title":"Revoke website crawl consent input","type":"object","additionalProperties":false,"required":["workspaceId","reason"],"properties":{"workspaceId":{"type":"string","format":"uuid"},"reason":{"type":"string","minLength":8,"maxLength":1000}}},"RunWebsiteAnalysisInput":{"title":"Run website onboarding analysis input","type":"object","additionalProperties":false,"required":["workspaceId","consentReceiptId","startUrl","outputLocale"],"properties":{"workspaceId":{"type":"string","format":"uuid"},"consentReceiptId":{"type":"string","format":"uuid"},"startUrl":{"type":"string","format":"uri","pattern":"^https://"},"outputLocale":{"type":"string","enum":["de","en"]}}},"SelectStarterCandidatesInput":{"title":"Select website starter candidates input","type":"object","additionalProperties":false,"required":["workspaceId","candidateIds","confirmationStatement"],"properties":{"workspaceId":{"type":"string","format":"uuid"},"candidateIds":{"type":"array","minItems":1,"maxItems":3,"uniqueItems":true,"items":{"type":"string","format":"uuid"}},"confirmationStatement":{"const":true}}},"ConfirmCompanyProfileInput":{"title":"Confirm website company profile input","type":"object","additionalProperties":false,"required":["workspaceId","expectedRevision","confirmationStatement"],"properties":{"workspaceId":{"type":"string","format":"uuid"},"expectedRevision":{"type":"integer","minimum":1},"corrections":{"type":"object","additionalProperties":false,"minProperties":1,"properties":{"companyName":{"type":"string","minLength":2,"maxLength":200},"industries":{"type":"array","minItems":1,"maxItems":20,"uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":200}},"offerings":{"type":"array","minItems":1,"maxItems":20,"uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":300}},"targetAudiences":{"type":"array","minItems":1,"maxItems":20,"uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":200}},"serviceContexts":{"type":"array","minItems":1,"maxItems":20,"uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":300}},"technicalContexts":{"type":"array","minItems":1,"maxItems":20,"uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":300}},"languages":{"type":"array","minItems":1,"maxItems":20,"uniqueItems":true,"items":{"type":"string","pattern":"^[a-z]{2,3}(?:-[A-Z]{2})?$"}}}},"confirmationStatement":{"const":true}}},"WebsiteSourceFact":{"title":"Website source fact","type":"object","additionalProperties":false,"required":["id","tenantId","workspaceId","analysisId","sourceUrl","capturedAt","confidence","classification","sourceClassification","statement","valid"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"workspaceId":{"type":"string","format":"uuid"},"analysisId":{"type":"string","format":"uuid"},"sourceUrl":{"type":"string","format":"uri","pattern":"^https://"},"capturedAt":{"type":"string","format":"date-time"},"confidence":{"type":"number","minimum":0,"maximum":1},"classification":{"type":"string","enum":["company_identity","industry","offering","target_audience","service_process","technical_context","language","security_signal"]},"sourceClassification":{"type":"string","enum":["website_content","untrusted_instruction","generic_fallback"]},"statement":{"type":"string","minLength":1,"maxLength":1000},"evidenceExcerpt":{"type":"string","maxLength":500},"valid":{"type":"boolean"},"invalidatedAt":{"type":"string","format":"date-time"}}},"StarterScenarioCandidate":{"title":"Website starter scenario candidate","type":"object","additionalProperties":false,"required":["id","tenantId","workspaceId","analysisId","ordinal","outputLocale","kind","title","summary","learningObjective","targetRole","sourceFactIds","status"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"workspaceId":{"type":"string","format":"uuid"},"analysisId":{"type":"string","format":"uuid"},"ordinal":{"type":"integer","minimum":1,"maximum":6},"outputLocale":{"type":"string","enum":["de","en"]},"kind":{"type":"string","enum":["conversation","technical","hybrid"]},"title":{"type":"string","minLength":1,"maxLength":300},"summary":{"type":"string","minLength":1,"maxLength":2000},"learningObjective":{"type":"string","minLength":1,"maxLength":2000},"targetRole":{"type":"string","minLength":1,"maxLength":300},"sourceFactIds":{"type":"array","uniqueItems":true,"items":{"type":"string","format":"uuid"}},"status":{"type":"string","enum":["candidate","invalidated_by_consent"]},"invalidatedAt":{"type":"string","format":"date-time"}}},"WebsiteOnboardingAnalysis":{"title":"Website onboarding analysis","type":"object","additionalProperties":false,"required":["id","tenantId","workspaceId","consentReceiptId","consentStreamId","domainConfirmationId","businessDomain","startUrl","outputLocale","contractVersion","status","facts","companyProfile","candidates","starterDrafts","security","createdAt"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"workspaceId":{"type":"string","format":"uuid"},"consentReceiptId":{"type":"string","format":"uuid"},"consentStreamId":{"type":"string","format":"uuid"},"domainConfirmationId":{"type":"string","format":"uuid"},"businessDomain":{"type":"string","minLength":4,"maxLength":253,"pattern":"^(?=.{4,253}$)(?!.*\\.\\.)(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$"},"startUrl":{"type":"string","format":"uri","pattern":"^https://"},"outputLocale":{"type":"string","enum":["de","en"]},"contractVersion":{"const":"knowledgeworker.practice.website-onboarding/1"},"status":{"type":"string","enum":["completed","generic_sandbox","invalidated_by_consent"]},"fallbackReason":{"type":"string","enum":["source_empty","analyzer_unavailable"]},"facts":{"type":"array","minItems":1,"items":{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://schemas.knowledgeworker.com/practice/v1/website-source-fact.schema.json","title":"Website source fact","type":"object","additionalProperties":false,"required":["id","tenantId","workspaceId","analysisId","sourceUrl","capturedAt","confidence","classification","sourceClassification","statement","valid"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"workspaceId":{"type":"string","format":"uuid"},"analysisId":{"type":"string","format":"uuid"},"sourceUrl":{"type":"string","format":"uri","pattern":"^https://"},"capturedAt":{"type":"string","format":"date-time"},"confidence":{"type":"number","minimum":0,"maximum":1},"classification":{"type":"string","enum":["company_identity","industry","offering","target_audience","service_process","technical_context","language","security_signal"]},"sourceClassification":{"type":"string","enum":["website_content","untrusted_instruction","generic_fallback"]},"statement":{"type":"string","minLength":1,"maxLength":1000},"evidenceExcerpt":{"type":"string","maxLength":500},"valid":{"type":"boolean"},"invalidatedAt":{"type":"string","format":"date-time"}}}},"companyProfile":{"type":"object"},"candidates":{"type":"array","minItems":6,"maxItems":6,"items":{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://schemas.knowledgeworker.com/practice/v1/website-starter-scenario-candidate.schema.json","title":"Website starter scenario candidate","type":"object","additionalProperties":false,"required":["id","tenantId","workspaceId","analysisId","ordinal","outputLocale","kind","title","summary","learningObjective","targetRole","sourceFactIds","status"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"workspaceId":{"type":"string","format":"uuid"},"analysisId":{"type":"string","format":"uuid"},"ordinal":{"type":"integer","minimum":1,"maximum":6},"outputLocale":{"type":"string","enum":["de","en"]},"kind":{"type":"string","enum":["conversation","technical","hybrid"]},"title":{"type":"string","minLength":1,"maxLength":300},"summary":{"type":"string","minLength":1,"maxLength":2000},"learningObjective":{"type":"string","minLength":1,"maxLength":2000},"targetRole":{"type":"string","minLength":1,"maxLength":300},"sourceFactIds":{"type":"array","uniqueItems":true,"items":{"type":"string","format":"uuid"}},"status":{"type":"string","enum":["candidate","invalidated_by_consent"]},"invalidatedAt":{"type":"string","format":"date-time"}}}},"starterDrafts":{"type":"array","maxItems":3,"items":{"type":"object"}},"security":{"type":"object","additionalProperties":false,"required":["analyzerMode","sourceFetchMode","sourcePagesFetched","egressPerformed","promptInstructionsExecuted","toolInvocations","budgetReservations","publicationActions","injectionSignals"],"properties":{"analyzerMode":{"const":"deterministic_no_egress"},"sourceFetchMode":{"type":"string","enum":["secure_https","unavailable_sandbox"]},"sourcePagesFetched":{"type":"integer","minimum":0,"maximum":5},"egressPerformed":{"const":false},"promptInstructionsExecuted":{"const":false},"toolInvocations":{"type":"array","maxItems":0},"budgetReservations":{"type":"array","maxItems":0},"publicationActions":{"type":"array","maxItems":0},"injectionSignals":{"type":"integer","minimum":0}}},"createdAt":{"type":"string","format":"date-time"},"invalidatedAt":{"type":"string","format":"date-time"}}},"CrawlPolicyVersion":{"title":"Website crawl policy version","const":"knowledgeworker.practice.crawl-policy/1"},"GovernanceOverview":{"title":"Governance overview","type":"object","additionalProperties":false,"required":["workspaceId","purposes","policies","approvals","dataSubjectRequests"],"properties":{"workspaceId":{"type":"string","format":"uuid"},"purposes":{"type":"object","additionalProperties":false,"required":["total","active"],"properties":{"total":{"type":"integer","minimum":0},"active":{"type":"integer","minimum":0}}},"policies":{"type":"object","additionalProperties":false,"required":["total","draft","approved"],"properties":{"total":{"type":"integer","minimum":0},"draft":{"type":"integer","minimum":0},"approved":{"type":"integer","minimum":0}}},"approvals":{"type":"object","additionalProperties":false,"required":["pending"],"properties":{"pending":{"type":"integer","minimum":0}}},"dataSubjectRequests":{"type":"object","additionalProperties":false,"required":["open","overdue"],"properties":{"open":{"type":"integer","minimum":0},"overdue":{"type":"integer","minimum":0}}}}},"ProcessingPurpose":{"title":"Processing purpose","type":"object","additionalProperties":false,"required":["id","tenantId","workspaceId","key","title","description","legalBasis","dataCategories","dataSubjectCategories","recipients","retentionDays","status","revision","createdAt","createdBy","updatedAt","updatedBy"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"workspaceId":{"type":"string","format":"uuid"},"key":{"type":"string","pattern":"^[a-z0-9][a-z0-9_-]{1,63}$"},"title":{"type":"string","minLength":2,"maxLength":160},"description":{"type":"string","minLength":3,"maxLength":4000},"legalBasis":{"type":"string","enum":["consent","contract","legal_obligation","vital_interests","public_task","legitimate_interests"]},"dataCategories":{"type":"array","maxItems":64,"uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":160}},"dataSubjectCategories":{"type":"array","maxItems":64,"uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":160}},"recipients":{"type":"array","maxItems":64,"uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":160}},"retentionDays":{"type":"integer","minimum":0,"maximum":3650},"status":{"type":"string","enum":["active","inactive"]},"revision":{"type":"integer","minimum":1},"createdAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["human","service","mcp_client"]},"displayName":{"type":"string","minLength":1,"maxLength":255}}},"updatedAt":{"type":"string","format":"date-time"},"updatedBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["human","service","mcp_client"]},"displayName":{"type":"string","minLength":1,"maxLength":255}}}}},"CreateProcessingPurposeInput":{"title":"Create processing purpose input","type":"object","additionalProperties":false,"required":["workspaceId","key","title","description","legalBasis","dataCategories","dataSubjectCategories","recipients","retentionDays"],"properties":{"workspaceId":{"type":"string","format":"uuid"},"key":{"type":"string","pattern":"^[a-z0-9][a-z0-9_-]{1,63}$"},"title":{"type":"string","minLength":2,"maxLength":160},"description":{"type":"string","minLength":3,"maxLength":4000},"legalBasis":{"type":"string","enum":["consent","contract","legal_obligation","vital_interests","public_task","legitimate_interests"]},"dataCategories":{"type":"array","maxItems":64,"uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":160}},"dataSubjectCategories":{"type":"array","maxItems":64,"uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":160}},"recipients":{"type":"array","maxItems":64,"uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":160}},"retentionDays":{"type":"integer","minimum":0,"maximum":3650},"status":{"type":"string","enum":["active","inactive"]}}},"UpdateProcessingPurposeInput":{"title":"Update processing purpose input","type":"object","additionalProperties":false,"required":["changeReason"],"properties":{"title":{"type":"string","minLength":2,"maxLength":160},"description":{"type":"string","minLength":3,"maxLength":4000},"legalBasis":{"type":"string","enum":["consent","contract","legal_obligation","vital_interests","public_task","legitimate_interests"]},"dataCategories":{"type":"array","maxItems":64,"uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":160}},"dataSubjectCategories":{"type":"array","maxItems":64,"uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":160}},"recipients":{"type":"array","maxItems":64,"uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":160}},"retentionDays":{"type":"integer","minimum":0,"maximum":3650},"status":{"type":"string","enum":["active","inactive"]},"expectedRevision":{"type":"integer","minimum":1},"changeReason":{"type":"string","minLength":3,"maxLength":1000}}},"GovernancePolicy":{"title":"Governance policy","type":"object","additionalProperties":false,"required":["id","tenantId","workspaceId","key","title","description","kind","requiredReviewerRoles","status","currentVersion","revision","createdAt","createdBy","updatedAt","updatedBy"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"workspaceId":{"type":"string","format":"uuid"},"key":{"type":"string","pattern":"^[a-z0-9][a-z0-9_-]{1,63}$"},"title":{"type":"string","minLength":2,"maxLength":160},"description":{"type":"string","minLength":3,"maxLength":4000},"kind":{"type":"string","enum":["retention","ai_processing","learning_analytics","employee_data","data_subject_rights","custom"]},"requiredReviewerRoles":{"type":"array","maxItems":2,"uniqueItems":true,"items":{"type":"string","enum":["data_protection_reviewer","works_council_reviewer"]}},"status":{"type":"string","enum":["draft","in_review","approved","retired"]},"currentVersion":{"type":"object","additionalProperties":false,"required":["id","version","content","contentHash","changeSummary","createdAt","createdBy"],"properties":{"id":{"type":"string","format":"uuid"},"version":{"type":"integer","minimum":1},"content":{"type":"object","maxProperties":128},"contentHash":{"type":"string","pattern":"^[a-f0-9]{64}$"},"changeSummary":{"type":"string","minLength":3,"maxLength":1000},"createdAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["human","service","mcp_client"]},"displayName":{"type":"string","minLength":1,"maxLength":255}}}}},"latestApprovedVersionId":{"type":"string","format":"uuid"},"revision":{"type":"integer","minimum":1},"createdAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["human","service","mcp_client"]},"displayName":{"type":"string","minLength":1,"maxLength":255}}},"updatedAt":{"type":"string","format":"date-time"},"updatedBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["human","service","mcp_client"]},"displayName":{"type":"string","minLength":1,"maxLength":255}}}}},"CreateGovernancePolicyInput":{"title":"Create governance policy input","type":"object","additionalProperties":false,"required":["workspaceId","key","title","description","kind","requiredReviewerRoles","content","changeSummary"],"properties":{"workspaceId":{"type":"string","format":"uuid"},"key":{"type":"string","pattern":"^[a-z0-9][a-z0-9_-]{1,63}$"},"title":{"type":"string","minLength":2,"maxLength":160},"description":{"type":"string","minLength":3,"maxLength":4000},"kind":{"type":"string","enum":["retention","ai_processing","learning_analytics","employee_data","data_subject_rights","custom"]},"requiredReviewerRoles":{"type":"array","maxItems":2,"uniqueItems":true,"items":{"type":"string","enum":["data_protection_reviewer","works_council_reviewer"]}},"content":{"type":"object","maxProperties":128},"changeSummary":{"type":"string","minLength":3,"maxLength":1000}}},"UpdateGovernancePolicyInput":{"title":"Update governance policy input","type":"object","additionalProperties":false,"required":["changeSummary"],"properties":{"title":{"type":"string","minLength":2,"maxLength":160},"description":{"type":"string","minLength":3,"maxLength":4000},"requiredReviewerRoles":{"type":"array","maxItems":2,"uniqueItems":true,"items":{"type":"string","enum":["data_protection_reviewer","works_council_reviewer"]}},"status":{"type":"string","enum":["draft","retired"]},"content":{"type":"object","maxProperties":128},"changeSummary":{"type":"string","minLength":3,"maxLength":1000},"expectedRevision":{"type":"integer","minimum":1}}},"GovernanceApproval":{"title":"Governance approval","type":"object","additionalProperties":false,"required":["id","tenantId","workspaceId","policyId","policyVersionId","policyVersion","reviewerRole","status","submittedBy","submittedAt","revision"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"workspaceId":{"type":"string","format":"uuid"},"policyId":{"type":"string","format":"uuid"},"policyVersionId":{"type":"string","format":"uuid"},"policyVersion":{"type":"integer","minimum":1},"reviewerRole":{"type":"string","enum":["data_protection_reviewer","works_council_reviewer"]},"status":{"type":"string","enum":["pending","approved","rejected"]},"submittedBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["human","service","mcp_client"]},"displayName":{"type":"string","minLength":1,"maxLength":255}}},"submittedAt":{"type":"string","format":"date-time"},"decidedBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["human","service","mcp_client"]},"displayName":{"type":"string","minLength":1,"maxLength":255}}},"decidedAt":{"type":"string","format":"date-time"},"reason":{"type":"string","minLength":3,"maxLength":1000},"revision":{"type":"integer","minimum":1}}},"RequestGovernanceApprovalInput":{"title":"Request governance approval input","type":"object","additionalProperties":false,"required":["workspaceId","policyId","policyVersionId","reviewerRole","reason"],"properties":{"workspaceId":{"type":"string","format":"uuid"},"policyId":{"type":"string","format":"uuid"},"policyVersionId":{"type":"string","format":"uuid"},"reviewerRole":{"type":"string","enum":["data_protection_reviewer","works_council_reviewer"]},"reason":{"type":"string","minLength":3,"maxLength":1000}}},"DecideGovernanceApprovalInput":{"title":"Decide governance approval input","type":"object","additionalProperties":false,"required":["decision","reason"],"properties":{"decision":{"type":"string","enum":["approved","rejected"]},"reason":{"type":"string","minLength":3,"maxLength":1000},"expectedRevision":{"type":"integer","minimum":1}}},"DataSubjectRequest":{"title":"Data subject request","type":"object","additionalProperties":false,"required":["id","tenantId","workspaceId","subjectUserId","requestType","status","legalHold","receivedAt","dueAt","revision","createdAt","createdBy","updatedAt","updatedBy"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"workspaceId":{"type":"string","format":"uuid"},"subjectUserId":{"type":"string","format":"uuid"},"requestType":{"type":"string","enum":["access","rectification","erasure","restriction","portability","objection"]},"status":{"type":"string","enum":["received","identity_verification","in_progress","fulfilled","partially_fulfilled","rejected","cancelled"]},"description":{"type":"string","minLength":3,"maxLength":4000},"assignedTo":{"type":"string","format":"uuid"},"legalHold":{"type":"boolean"},"legalHoldReason":{"type":"string","minLength":3,"maxLength":2000},"receivedAt":{"type":"string","format":"date-time"},"dueAt":{"type":"string","format":"date-time"},"verifiedAt":{"type":"string","format":"date-time"},"completedAt":{"type":"string","format":"date-time"},"resolutionNotes":{"type":"string","minLength":3,"maxLength":4000},"revision":{"type":"integer","minimum":1},"createdAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["human","service","mcp_client"]},"displayName":{"type":"string","minLength":1,"maxLength":255}}},"updatedAt":{"type":"string","format":"date-time"},"updatedBy":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["human","service","mcp_client"]},"displayName":{"type":"string","minLength":1,"maxLength":255}}}}},"CreateDataSubjectRequestInput":{"title":"Create data subject request input","type":"object","additionalProperties":false,"required":["workspaceId","requestType"],"properties":{"workspaceId":{"type":"string","format":"uuid"},"subjectUserId":{"type":"string","format":"uuid"},"requestType":{"type":"string","enum":["access","rectification","erasure","restriction","portability","objection"]},"description":{"type":"string","minLength":3,"maxLength":4000},"dueAt":{"type":"string","format":"date-time"}}},"UpdateDataSubjectRequestInput":{"title":"Update data subject request input","type":"object","additionalProperties":false,"required":["changeReason"],"properties":{"status":{"type":"string","enum":["received","identity_verification","in_progress","fulfilled","partially_fulfilled","rejected","cancelled"]},"assignedTo":{"type":"string","format":"uuid"},"verifiedAt":{"type":"string","format":"date-time"},"legalHold":{"type":"boolean"},"legalHoldReason":{"type":"string","minLength":3,"maxLength":2000},"resolutionNotes":{"type":"string","minLength":3,"maxLength":4000},"expectedRevision":{"type":"integer","minimum":1},"changeReason":{"type":"string","minLength":3,"maxLength":1000}}},"EnterpriseRoleMapping":{"title":"Enterprise role mapping","type":"object","additionalProperties":false,"required":["mappingKey","source","attribute","operator","value","role"],"properties":{"mappingKey":{"type":"string","pattern":"^[a-z][a-z0-9._-]{1,63}$"},"source":{"type":"string","enum":["claim","group"]},"attribute":{"type":"string","pattern":"^[A-Za-z][A-Za-z0-9._:-]{0,127}$"},"operator":{"type":"string","enum":["equals","contains"]},"value":{"type":"string","minLength":1,"maxLength":200},"role":{"type":"string","enum":["author","learner","mentor","hr_ld_admin"]}}},"OidcEnterpriseConfiguration":{"title":"OIDC enterprise configuration","type":"object","additionalProperties":false,"required":["issuerUrl","clientId","redirectUri","scopes"],"properties":{"issuerUrl":{"type":"string","pattern":"^https://","maxLength":2048},"clientId":{"type":"string","minLength":1,"maxLength":255},"redirectUri":{"type":"string","pattern":"^https://","maxLength":2048},"scopes":{"type":"array","minItems":1,"maxItems":20,"uniqueItems":true,"contains":{"const":"openid"},"minContains":1,"items":{"type":"string","minLength":1,"maxLength":120}}}},"SamlEnterpriseConfiguration":{"title":"SAML enterprise configuration","type":"object","additionalProperties":false,"required":["entityId","metadataUrl","ssoUrl","acsUrl","audience"],"properties":{"entityId":{"type":"string","pattern":"^(https://|urn:)","maxLength":2048},"metadataUrl":{"type":"string","pattern":"^https://","maxLength":2048},"ssoUrl":{"type":"string","pattern":"^https://","maxLength":2048},"acsUrl":{"type":"string","pattern":"^https://","maxLength":2048},"audience":{"type":"string","pattern":"^(https://|urn:)","maxLength":2048}}},"ScimEnterpriseConfiguration":{"title":"SCIM enterprise configuration","type":"object","additionalProperties":false,"required":["baseUrl","deprovisioningMode","userNameAttribute","supportedOperations"],"properties":{"baseUrl":{"type":"string","pattern":"^https://","maxLength":2048},"deprovisioningMode":{"const":"suspend"},"userNameAttribute":{"type":"string","pattern":"^[A-Za-z][A-Za-z0-9._:-]{0,127}$"},"supportedOperations":{"type":"array","minItems":3,"maxItems":3,"uniqueItems":true,"items":{"type":"string","enum":["create","update","deactivate"]},"allOf":[{"contains":{"const":"create"}},{"contains":{"const":"update"}},{"contains":{"const":"deactivate"}}]}}},"EnterpriseIntegrationTestRun":{"title":"Synthetic enterprise integration test run","type":"object","additionalProperties":false,"required":["id","tenantId","integrationId","versionNumber","protocol","status","checks","mappedRoles","inputHash","createdAt","createdBy"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"integrationId":{"type":"string","format":"uuid"},"versionNumber":{"type":"integer","minimum":1},"protocol":{"type":"string","enum":["oidc","saml","scim"]},"status":{"type":"string","enum":["passed","failed"]},"checks":{"type":"array","minItems":3,"maxItems":10,"items":{"type":"object","additionalProperties":false,"required":["key","passed","message"],"properties":{"key":{"type":"string","minLength":1,"maxLength":120},"passed":{"type":"boolean"},"message":{"type":"string","minLength":1,"maxLength":1000}}}},"mappedRoles":{"type":"array","maxItems":4,"uniqueItems":true,"items":{"type":"string","enum":["author","learner","mentor","hr_ld_admin"]}},"inputHash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"createdAt":{"type":"string","format":"date-time"},"createdBy":{"type":"string","format":"uuid"}}},"EnterpriseIntegrationVersion":{"title":"Immutable enterprise integration version","type":"object","additionalProperties":false,"required":["id","tenantId","integrationId","versionNumber","protocol","configuration","roleMappings","secretConfigured","secretRefId","configurationHash","createdAt","createdBy"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"integrationId":{"type":"string","format":"uuid"},"versionNumber":{"type":"integer","minimum":1},"protocol":{"type":"string","enum":["oidc","saml","scim"]},"configuration":{"oneOf":[{"type":"object","additionalProperties":false,"required":["issuerUrl","clientId","redirectUri","scopes"],"properties":{"issuerUrl":{"type":"string","pattern":"^https://","maxLength":2048},"clientId":{"type":"string","minLength":1,"maxLength":255},"redirectUri":{"type":"string","pattern":"^https://","maxLength":2048},"scopes":{"type":"array","minItems":1,"maxItems":20,"uniqueItems":true,"contains":{"const":"openid"},"minContains":1,"items":{"type":"string","minLength":1,"maxLength":120}}}},{"type":"object","additionalProperties":false,"required":["entityId","metadataUrl","ssoUrl","acsUrl","audience"],"properties":{"entityId":{"type":"string","pattern":"^(https://|urn:)","maxLength":2048},"metadataUrl":{"type":"string","pattern":"^https://","maxLength":2048},"ssoUrl":{"type":"string","pattern":"^https://","maxLength":2048},"acsUrl":{"type":"string","pattern":"^https://","maxLength":2048},"audience":{"type":"string","pattern":"^(https://|urn:)","maxLength":2048}}},{"type":"object","additionalProperties":false,"required":["baseUrl","deprovisioningMode","userNameAttribute","supportedOperations"],"properties":{"baseUrl":{"type":"string","pattern":"^https://","maxLength":2048},"deprovisioningMode":{"const":"suspend"},"userNameAttribute":{"type":"string","pattern":"^[A-Za-z][A-Za-z0-9._:-]{0,127}$"},"supportedOperations":{"type":"array","minItems":3,"maxItems":3,"uniqueItems":true,"items":{"type":"string","enum":["create","update","deactivate"]},"allOf":[{"contains":{"const":"create"}},{"contains":{"const":"update"}},{"contains":{"const":"deactivate"}}]}}}]},"roleMappings":{"type":"array","maxItems":50,"items":{"type":"object","additionalProperties":false,"required":["mappingKey","source","attribute","operator","value","role"],"properties":{"mappingKey":{"type":"string","pattern":"^[a-z][a-z0-9._-]{1,63}$"},"source":{"type":"string","enum":["claim","group"]},"attribute":{"type":"string","pattern":"^[A-Za-z][A-Za-z0-9._:-]{0,127}$"},"operator":{"type":"string","enum":["equals","contains"]},"value":{"type":"string","minLength":1,"maxLength":200},"role":{"type":"string","enum":["author","learner","mentor","hr_ld_admin"]}}}},"secretConfigured":{"type":"boolean"},"secretRefId":{"type":"string","pattern":"^[0-9a-f]{16}$"},"configurationHash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"createdAt":{"type":"string","format":"date-time"},"createdBy":{"type":"string","format":"uuid"}},"allOf":[{"if":{"properties":{"protocol":{"const":"oidc"}},"required":["protocol"]},"then":{"properties":{"configuration":{"type":"object","additionalProperties":false,"required":["issuerUrl","clientId","redirectUri","scopes"],"properties":{"issuerUrl":{"type":"string","pattern":"^https://","maxLength":2048},"clientId":{"type":"string","minLength":1,"maxLength":255},"redirectUri":{"type":"string","pattern":"^https://","maxLength":2048},"scopes":{"type":"array","minItems":1,"maxItems":20,"uniqueItems":true,"contains":{"const":"openid"},"minContains":1,"items":{"type":"string","minLength":1,"maxLength":120}}}}}}},{"if":{"properties":{"protocol":{"const":"saml"}},"required":["protocol"]},"then":{"properties":{"configuration":{"type":"object","additionalProperties":false,"required":["entityId","metadataUrl","ssoUrl","acsUrl","audience"],"properties":{"entityId":{"type":"string","pattern":"^(https://|urn:)","maxLength":2048},"metadataUrl":{"type":"string","pattern":"^https://","maxLength":2048},"ssoUrl":{"type":"string","pattern":"^https://","maxLength":2048},"acsUrl":{"type":"string","pattern":"^https://","maxLength":2048},"audience":{"type":"string","pattern":"^(https://|urn:)","maxLength":2048}}}}}},{"if":{"properties":{"protocol":{"const":"scim"}},"required":["protocol"]},"then":{"properties":{"configuration":{"type":"object","additionalProperties":false,"required":["baseUrl","deprovisioningMode","userNameAttribute","supportedOperations"],"properties":{"baseUrl":{"type":"string","pattern":"^https://","maxLength":2048},"deprovisioningMode":{"const":"suspend"},"userNameAttribute":{"type":"string","pattern":"^[A-Za-z][A-Za-z0-9._:-]{0,127}$"},"supportedOperations":{"type":"array","minItems":3,"maxItems":3,"uniqueItems":true,"items":{"type":"string","enum":["create","update","deactivate"]},"allOf":[{"contains":{"const":"create"}},{"contains":{"const":"update"}},{"contains":{"const":"deactivate"}}]}}}}}}]},"EnterpriseIntegration":{"title":"Enterprise integration","type":"object","additionalProperties":false,"required":["id","tenantId","integrationKey","displayName","protocol","status","revision","latestVersionNumber","hasPendingChanges","configuration","roleMappings","secretConfigured","secretRefId","configurationHash","createdAt","createdBy","updatedAt","updatedBy"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"integrationKey":{"type":"string","pattern":"^[a-z][a-z0-9._-]{1,63}$"},"displayName":{"type":"string","minLength":2,"maxLength":160},"protocol":{"type":"string","enum":["oidc","saml","scim"]},"status":{"type":"string","enum":["draft","active","inactive"]},"revision":{"type":"integer","minimum":1},"latestVersionNumber":{"type":"integer","minimum":1},"activeVersionNumber":{"type":"integer","minimum":1},"hasPendingChanges":{"type":"boolean"},"configuration":{"oneOf":[{"type":"object","additionalProperties":false,"required":["issuerUrl","clientId","redirectUri","scopes"],"properties":{"issuerUrl":{"type":"string","pattern":"^https://","maxLength":2048},"clientId":{"type":"string","minLength":1,"maxLength":255},"redirectUri":{"type":"string","pattern":"^https://","maxLength":2048},"scopes":{"type":"array","minItems":1,"maxItems":20,"uniqueItems":true,"contains":{"const":"openid"},"minContains":1,"items":{"type":"string","minLength":1,"maxLength":120}}}},{"type":"object","additionalProperties":false,"required":["entityId","metadataUrl","ssoUrl","acsUrl","audience"],"properties":{"entityId":{"type":"string","pattern":"^(https://|urn:)","maxLength":2048},"metadataUrl":{"type":"string","pattern":"^https://","maxLength":2048},"ssoUrl":{"type":"string","pattern":"^https://","maxLength":2048},"acsUrl":{"type":"string","pattern":"^https://","maxLength":2048},"audience":{"type":"string","pattern":"^(https://|urn:)","maxLength":2048}}},{"type":"object","additionalProperties":false,"required":["baseUrl","deprovisioningMode","userNameAttribute","supportedOperations"],"properties":{"baseUrl":{"type":"string","pattern":"^https://","maxLength":2048},"deprovisioningMode":{"const":"suspend"},"userNameAttribute":{"type":"string","pattern":"^[A-Za-z][A-Za-z0-9._:-]{0,127}$"},"supportedOperations":{"type":"array","minItems":3,"maxItems":3,"uniqueItems":true,"items":{"type":"string","enum":["create","update","deactivate"]},"allOf":[{"contains":{"const":"create"}},{"contains":{"const":"update"}},{"contains":{"const":"deactivate"}}]}}}]},"roleMappings":{"type":"array","maxItems":50,"items":{"type":"object","additionalProperties":false,"required":["mappingKey","source","attribute","operator","value","role"],"properties":{"mappingKey":{"type":"string","pattern":"^[a-z][a-z0-9._-]{1,63}$"},"source":{"type":"string","enum":["claim","group"]},"attribute":{"type":"string","pattern":"^[A-Za-z][A-Za-z0-9._:-]{0,127}$"},"operator":{"type":"string","enum":["equals","contains"]},"value":{"type":"string","minLength":1,"maxLength":200},"role":{"type":"string","enum":["author","learner","mentor","hr_ld_admin"]}}}},"secretConfigured":{"type":"boolean"},"secretRefId":{"type":"string","pattern":"^[0-9a-f]{16}$"},"configurationHash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"lastTest":{"type":"object","additionalProperties":false,"required":["id","tenantId","integrationId","versionNumber","protocol","status","checks","mappedRoles","inputHash","createdAt","createdBy"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"integrationId":{"type":"string","format":"uuid"},"versionNumber":{"type":"integer","minimum":1},"protocol":{"type":"string","enum":["oidc","saml","scim"]},"status":{"type":"string","enum":["passed","failed"]},"checks":{"type":"array","minItems":3,"maxItems":10,"items":{"type":"object","additionalProperties":false,"required":["key","passed","message"],"properties":{"key":{"type":"string","minLength":1,"maxLength":120},"passed":{"type":"boolean"},"message":{"type":"string","minLength":1,"maxLength":1000}}}},"mappedRoles":{"type":"array","maxItems":4,"uniqueItems":true,"items":{"type":"string","enum":["author","learner","mentor","hr_ld_admin"]}},"inputHash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"createdAt":{"type":"string","format":"date-time"},"createdBy":{"type":"string","format":"uuid"}}},"createdAt":{"type":"string","format":"date-time"},"createdBy":{"type":"string","format":"uuid"},"updatedAt":{"type":"string","format":"date-time"},"updatedBy":{"type":"string","format":"uuid"}},"allOf":[{"if":{"properties":{"protocol":{"const":"oidc"}},"required":["protocol"]},"then":{"properties":{"configuration":{"type":"object","additionalProperties":false,"required":["issuerUrl","clientId","redirectUri","scopes"],"properties":{"issuerUrl":{"type":"string","pattern":"^https://","maxLength":2048},"clientId":{"type":"string","minLength":1,"maxLength":255},"redirectUri":{"type":"string","pattern":"^https://","maxLength":2048},"scopes":{"type":"array","minItems":1,"maxItems":20,"uniqueItems":true,"contains":{"const":"openid"},"minContains":1,"items":{"type":"string","minLength":1,"maxLength":120}}}}}}},{"if":{"properties":{"protocol":{"const":"saml"}},"required":["protocol"]},"then":{"properties":{"configuration":{"type":"object","additionalProperties":false,"required":["entityId","metadataUrl","ssoUrl","acsUrl","audience"],"properties":{"entityId":{"type":"string","pattern":"^(https://|urn:)","maxLength":2048},"metadataUrl":{"type":"string","pattern":"^https://","maxLength":2048},"ssoUrl":{"type":"string","pattern":"^https://","maxLength":2048},"acsUrl":{"type":"string","pattern":"^https://","maxLength":2048},"audience":{"type":"string","pattern":"^(https://|urn:)","maxLength":2048}}}}}},{"if":{"properties":{"protocol":{"const":"scim"}},"required":["protocol"]},"then":{"properties":{"configuration":{"type":"object","additionalProperties":false,"required":["baseUrl","deprovisioningMode","userNameAttribute","supportedOperations"],"properties":{"baseUrl":{"type":"string","pattern":"^https://","maxLength":2048},"deprovisioningMode":{"const":"suspend"},"userNameAttribute":{"type":"string","pattern":"^[A-Za-z][A-Za-z0-9._:-]{0,127}$"},"supportedOperations":{"type":"array","minItems":3,"maxItems":3,"uniqueItems":true,"items":{"type":"string","enum":["create","update","deactivate"]},"allOf":[{"contains":{"const":"create"}},{"contains":{"const":"update"}},{"contains":{"const":"deactivate"}}]}}}}}}]},"CreateEnterpriseIntegrationInput":{"title":"Create enterprise integration input","type":"object","additionalProperties":false,"required":["integrationKey","displayName","protocol","configuration","secretRef"],"properties":{"integrationKey":{"type":"string","pattern":"^[a-z][a-z0-9._-]{1,63}$"},"displayName":{"type":"string","minLength":2,"maxLength":160},"protocol":{"type":"string","enum":["oidc","saml","scim"]},"configuration":{"oneOf":[{"type":"object","additionalProperties":false,"required":["issuerUrl","clientId","redirectUri","scopes"],"properties":{"issuerUrl":{"type":"string","pattern":"^https://","maxLength":2048},"clientId":{"type":"string","minLength":1,"maxLength":255},"redirectUri":{"type":"string","pattern":"^https://","maxLength":2048},"scopes":{"type":"array","minItems":1,"maxItems":20,"uniqueItems":true,"contains":{"const":"openid"},"minContains":1,"items":{"type":"string","minLength":1,"maxLength":120}}}},{"type":"object","additionalProperties":false,"required":["entityId","metadataUrl","ssoUrl","acsUrl","audience"],"properties":{"entityId":{"type":"string","pattern":"^(https://|urn:)","maxLength":2048},"metadataUrl":{"type":"string","pattern":"^https://","maxLength":2048},"ssoUrl":{"type":"string","pattern":"^https://","maxLength":2048},"acsUrl":{"type":"string","pattern":"^https://","maxLength":2048},"audience":{"type":"string","pattern":"^(https://|urn:)","maxLength":2048}}},{"type":"object","additionalProperties":false,"required":["baseUrl","deprovisioningMode","userNameAttribute","supportedOperations"],"properties":{"baseUrl":{"type":"string","pattern":"^https://","maxLength":2048},"deprovisioningMode":{"const":"suspend"},"userNameAttribute":{"type":"string","pattern":"^[A-Za-z][A-Za-z0-9._:-]{0,127}$"},"supportedOperations":{"type":"array","minItems":3,"maxItems":3,"uniqueItems":true,"items":{"type":"string","enum":["create","update","deactivate"]},"allOf":[{"contains":{"const":"create"}},{"contains":{"const":"update"}},{"contains":{"const":"deactivate"}}]}}}]},"roleMappings":{"type":"array","maxItems":50,"items":{"type":"object","additionalProperties":false,"required":["source","operator","value","role"],"properties":{"mappingKey":{"type":"string","pattern":"^[a-z][a-z0-9._-]{1,63}$"},"source":{"type":"string","enum":["claim","group"]},"attribute":{"type":"string","pattern":"^[A-Za-z][A-Za-z0-9._:-]{0,127}$"},"operator":{"type":"string","enum":["equals","contains"]},"value":{"type":"string","minLength":1,"maxLength":200},"role":{"type":"string","enum":["author","learner","mentor","hr_ld_admin"]}},"allOf":[{"if":{"properties":{"source":{"const":"claim"}},"required":["source"]},"then":{"required":["attribute"]}}]}},"secretRef":{"type":"string","pattern":"^(vault|secret-manager|kms)://[A-Za-z0-9][A-Za-z0-9._/-]{2,1000}$"}},"allOf":[{"if":{"properties":{"protocol":{"const":"oidc"}},"required":["protocol"]},"then":{"properties":{"configuration":{"type":"object","additionalProperties":false,"required":["issuerUrl","clientId","redirectUri","scopes"],"properties":{"issuerUrl":{"type":"string","pattern":"^https://","maxLength":2048},"clientId":{"type":"string","minLength":1,"maxLength":255},"redirectUri":{"type":"string","pattern":"^https://","maxLength":2048},"scopes":{"type":"array","minItems":1,"maxItems":20,"uniqueItems":true,"contains":{"const":"openid"},"minContains":1,"items":{"type":"string","minLength":1,"maxLength":120}}}}}}},{"if":{"properties":{"protocol":{"const":"saml"}},"required":["protocol"]},"then":{"properties":{"configuration":{"type":"object","additionalProperties":false,"required":["entityId","metadataUrl","ssoUrl","acsUrl","audience"],"properties":{"entityId":{"type":"string","pattern":"^(https://|urn:)","maxLength":2048},"metadataUrl":{"type":"string","pattern":"^https://","maxLength":2048},"ssoUrl":{"type":"string","pattern":"^https://","maxLength":2048},"acsUrl":{"type":"string","pattern":"^https://","maxLength":2048},"audience":{"type":"string","pattern":"^(https://|urn:)","maxLength":2048}}}}}},{"if":{"properties":{"protocol":{"const":"scim"}},"required":["protocol"]},"then":{"properties":{"configuration":{"type":"object","additionalProperties":false,"required":["baseUrl","deprovisioningMode","userNameAttribute","supportedOperations"],"properties":{"baseUrl":{"type":"string","pattern":"^https://","maxLength":2048},"deprovisioningMode":{"const":"suspend"},"userNameAttribute":{"type":"string","pattern":"^[A-Za-z][A-Za-z0-9._:-]{0,127}$"},"supportedOperations":{"type":"array","minItems":3,"maxItems":3,"uniqueItems":true,"items":{"type":"string","enum":["create","update","deactivate"]},"allOf":[{"contains":{"const":"create"}},{"contains":{"const":"update"}},{"contains":{"const":"deactivate"}}]}}}}}}]},"UpdateEnterpriseIntegrationInput":{"title":"Update enterprise integration input","type":"object","additionalProperties":false,"required":[],"properties":{"displayName":{"type":"string","minLength":2,"maxLength":160},"configuration":{"oneOf":[{"type":"object","additionalProperties":false,"required":["issuerUrl","clientId","redirectUri","scopes"],"properties":{"issuerUrl":{"type":"string","pattern":"^https://","maxLength":2048},"clientId":{"type":"string","minLength":1,"maxLength":255},"redirectUri":{"type":"string","pattern":"^https://","maxLength":2048},"scopes":{"type":"array","minItems":1,"maxItems":20,"uniqueItems":true,"contains":{"const":"openid"},"minContains":1,"items":{"type":"string","minLength":1,"maxLength":120}}}},{"type":"object","additionalProperties":false,"required":["entityId","metadataUrl","ssoUrl","acsUrl","audience"],"properties":{"entityId":{"type":"string","pattern":"^(https://|urn:)","maxLength":2048},"metadataUrl":{"type":"string","pattern":"^https://","maxLength":2048},"ssoUrl":{"type":"string","pattern":"^https://","maxLength":2048},"acsUrl":{"type":"string","pattern":"^https://","maxLength":2048},"audience":{"type":"string","pattern":"^(https://|urn:)","maxLength":2048}}},{"type":"object","additionalProperties":false,"required":["baseUrl","deprovisioningMode","userNameAttribute","supportedOperations"],"properties":{"baseUrl":{"type":"string","pattern":"^https://","maxLength":2048},"deprovisioningMode":{"const":"suspend"},"userNameAttribute":{"type":"string","pattern":"^[A-Za-z][A-Za-z0-9._:-]{0,127}$"},"supportedOperations":{"type":"array","minItems":3,"maxItems":3,"uniqueItems":true,"items":{"type":"string","enum":["create","update","deactivate"]},"allOf":[{"contains":{"const":"create"}},{"contains":{"const":"update"}},{"contains":{"const":"deactivate"}}]}}}]},"roleMappings":{"type":"array","maxItems":50,"items":{"type":"object","additionalProperties":false,"required":["source","operator","value","role"],"properties":{"mappingKey":{"type":"string","pattern":"^[a-z][a-z0-9._-]{1,63}$"},"source":{"type":"string","enum":["claim","group"]},"attribute":{"type":"string","pattern":"^[A-Za-z][A-Za-z0-9._:-]{0,127}$"},"operator":{"type":"string","enum":["equals","contains"]},"value":{"type":"string","minLength":1,"maxLength":200},"role":{"type":"string","enum":["author","learner","mentor","hr_ld_admin"]}},"allOf":[{"if":{"properties":{"source":{"const":"claim"}},"required":["source"]},"then":{"required":["attribute"]}}]}},"secretRef":{"type":"string","pattern":"^(vault|secret-manager|kms)://[A-Za-z0-9][A-Za-z0-9._/-]{2,1000}$"},"expectedRevision":{"type":"integer","minimum":1}},"anyOf":[{"required":["displayName"]},{"required":["configuration"]},{"required":["roleMappings"]},{"required":["secretRef"]}]},"TestEnterpriseIntegrationInput":{"title":"Synthetic enterprise integration test input","type":"object","additionalProperties":false,"required":["synthetic"],"properties":{"synthetic":{"const":true},"claims":{"type":"object","maxProperties":50,"propertyNames":{"allOf":[{"pattern":"^[A-Za-z][A-Za-z0-9._:-]{0,127}$"},{"not":{"enum":["sub","email","email_verified","name","given_name","family_name","middle_name","nickname","preferred_username","phone_number","address","birthdate"]}}]},"additionalProperties":{"oneOf":[{"type":"string","minLength":1,"maxLength":200},{"type":"number"},{"type":"boolean"},{"type":"array","maxItems":30,"uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":120}}]}},"groups":{"type":"array","maxItems":50,"uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":120}},"expectedRoles":{"type":"array","maxItems":10,"uniqueItems":true,"items":{"type":"string","enum":["author","learner","mentor","hr_ld_admin"]}}}},"ActivateEnterpriseIntegrationInput":{"title":"Activate enterprise integration input","type":"object","additionalProperties":false,"required":[],"properties":{"expectedRevision":{"type":"integer","minimum":1},"reason":{"type":"string","minLength":8,"maxLength":500}}},"DeactivateEnterpriseIntegrationInput":{"title":"Deactivate enterprise integration input","type":"object","additionalProperties":false,"required":["reason"],"properties":{"expectedRevision":{"type":"integer","minimum":1},"reason":{"type":"string","minLength":8,"maxLength":500}}},"EnterpriseDeprovisionSimulation":{"title":"Enterprise SCIM deprovision simulation evidence","type":"object","additionalProperties":false,"required":["id","tenantId","integrationId","versionNumber","protocol","status","operation","subjectHash","beforeState","afterState","evidenceHash","createdAt","createdBy"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"integrationId":{"type":"string","format":"uuid"},"versionNumber":{"type":"integer","minimum":1},"protocol":{"const":"scim"},"status":{"const":"passed"},"operation":{"const":"scim.active_false"},"subjectHash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"beforeState":{"const":"active"},"afterState":{"const":"suspended"},"evidenceHash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"createdAt":{"type":"string","format":"date-time"},"createdBy":{"type":"string","format":"uuid"}}},"CreateEnterpriseDeprovisionSimulationInput":{"title":"Create synthetic SCIM deprovision simulation input","type":"object","additionalProperties":false,"required":["synthetic","syntheticSubject"],"properties":{"synthetic":{"const":true},"syntheticSubject":{"type":"string","minLength":12,"maxLength":120,"pattern":"^synthetic-[A-Za-z0-9._-]+$"}}},"ReactionLibraryDefinition":{"title":"Reaction library definition","type":"object","additionalProperties":false,"required":["responseKind","useCases","label","response","feedback","contentFormat","score","mediaSlots","tags"],"properties":{"responseKind":{"type":"string","enum":["counterpart","system"]},"useCases":{"type":"array","minItems":1,"maxItems":4,"uniqueItems":true,"items":{"type":"string","enum":["conversation","customer_service","leadership","technical_diagnosis"]}},"label":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","enum":["de-DE","en-GB"]},"values":{"type":"object","additionalProperties":false,"required":["de-DE","en-GB"],"properties":{"de-DE":{"type":"string","minLength":2,"maxLength":160},"en-GB":{"type":"string","minLength":2,"maxLength":160}}}}},"response":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","enum":["de-DE","en-GB"]},"values":{"type":"object","additionalProperties":false,"required":["de-DE","en-GB"],"properties":{"de-DE":{"type":"string","minLength":1,"maxLength":4000},"en-GB":{"type":"string","minLength":1,"maxLength":4000}}}}},"feedback":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","enum":["de-DE","en-GB"]},"values":{"type":"object","additionalProperties":false,"required":["de-DE","en-GB"],"properties":{"de-DE":{"type":"string","minLength":1,"maxLength":4000},"en-GB":{"type":"string","minLength":1,"maxLength":4000}}}}},"contentFormat":{"type":"string","enum":["plain_text","markdown"]},"score":{"type":"number","enum":[0,0.5,1]},"mediaSlots":{"type":"array","maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["slotKey","label","purpose","acceptedKinds","required"],"properties":{"slotKey":{"type":"string","pattern":"^[a-z][a-z0-9._-]{1,127}$"},"label":{"type":"string","minLength":2,"maxLength":160},"purpose":{"type":"string","enum":["hero","counterpart","environment","device","instruction","feedback","voice","subtitle"]},"acceptedKinds":{"type":"array","minItems":1,"maxItems":8,"uniqueItems":true,"items":{"type":"string","enum":["image","video","audio","model_3d","document","subtitle","avatar_scene","scene_360"]}},"required":{"type":"boolean"},"altText":{"type":"string","minLength":3,"maxLength":1000}}}},"tags":{"type":"array","maxItems":30,"uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":64}}}},"ReactionLibraryVersion":{"title":"Immutable reaction library version","type":"object","additionalProperties":false,"required":["id","tenantId","entryId","versionNumber","definition","contentHash","changeReason","createdAt","createdBy"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"entryId":{"type":"string","format":"uuid"},"versionNumber":{"type":"integer","minimum":1},"definition":{"type":"object","additionalProperties":false,"required":["responseKind","useCases","label","response","feedback","contentFormat","score","mediaSlots","tags"],"properties":{"responseKind":{"type":"string","enum":["counterpart","system"]},"useCases":{"type":"array","minItems":1,"maxItems":4,"uniqueItems":true,"items":{"type":"string","enum":["conversation","customer_service","leadership","technical_diagnosis"]}},"label":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","enum":["de-DE","en-GB"]},"values":{"type":"object","additionalProperties":false,"required":["de-DE","en-GB"],"properties":{"de-DE":{"type":"string","minLength":2,"maxLength":160},"en-GB":{"type":"string","minLength":2,"maxLength":160}}}}},"response":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","enum":["de-DE","en-GB"]},"values":{"type":"object","additionalProperties":false,"required":["de-DE","en-GB"],"properties":{"de-DE":{"type":"string","minLength":1,"maxLength":4000},"en-GB":{"type":"string","minLength":1,"maxLength":4000}}}}},"feedback":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","enum":["de-DE","en-GB"]},"values":{"type":"object","additionalProperties":false,"required":["de-DE","en-GB"],"properties":{"de-DE":{"type":"string","minLength":1,"maxLength":4000},"en-GB":{"type":"string","minLength":1,"maxLength":4000}}}}},"contentFormat":{"type":"string","enum":["plain_text","markdown"]},"score":{"type":"number","enum":[0,0.5,1]},"mediaSlots":{"type":"array","maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["slotKey","label","purpose","acceptedKinds","required"],"properties":{"slotKey":{"type":"string","pattern":"^[a-z][a-z0-9._-]{1,127}$"},"label":{"type":"string","minLength":2,"maxLength":160},"purpose":{"type":"string","enum":["hero","counterpart","environment","device","instruction","feedback","voice","subtitle"]},"acceptedKinds":{"type":"array","minItems":1,"maxItems":8,"uniqueItems":true,"items":{"type":"string","enum":["image","video","audio","model_3d","document","subtitle","avatar_scene","scene_360"]}},"required":{"type":"boolean"},"altText":{"type":"string","minLength":3,"maxLength":1000}}}},"tags":{"type":"array","maxItems":30,"uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":64}}}},"contentHash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"changeReason":{"type":"string","minLength":3,"maxLength":500},"createdAt":{"type":"string","format":"date-time"},"createdBy":{"type":"string","format":"uuid"}}},"ReactionLibraryPublication":{"title":"Immutable reaction library publication","type":"object","additionalProperties":false,"required":["id","tenantId","entryId","publicationNumber","versionNumber","contentHash","changeReason","publishedAt","publishedBy"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"entryId":{"type":"string","format":"uuid"},"publicationNumber":{"type":"integer","minimum":1},"versionNumber":{"type":"integer","minimum":1},"contentHash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"changeReason":{"type":"string","minLength":3,"maxLength":500},"publishedAt":{"type":"string","format":"date-time"},"publishedBy":{"type":"string","format":"uuid"}}},"ReactionLibraryEntry":{"title":"Tenant-wide reaction library entry","type":"object","additionalProperties":false,"required":["id","tenantId","entryKey","status","revision","latestVersionNumber","publicationCount","hasPendingChanges","latestVersion","createdAt","createdBy","updatedAt","updatedBy"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"entryKey":{"type":"string","pattern":"^[a-z][a-z0-9._-]{1,127}$"},"status":{"type":"string","enum":["draft","published","archived"]},"revision":{"type":"integer","minimum":1},"latestVersionNumber":{"type":"integer","minimum":1},"publishedVersionNumber":{"type":"integer","minimum":1},"publicationCount":{"type":"integer","minimum":0},"hasPendingChanges":{"type":"boolean"},"latestVersion":{"type":"object","additionalProperties":false,"required":["id","tenantId","entryId","versionNumber","definition","contentHash","changeReason","createdAt","createdBy"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"entryId":{"type":"string","format":"uuid"},"versionNumber":{"type":"integer","minimum":1},"definition":{"type":"object","additionalProperties":false,"required":["responseKind","useCases","label","response","feedback","contentFormat","score","mediaSlots","tags"],"properties":{"responseKind":{"type":"string","enum":["counterpart","system"]},"useCases":{"type":"array","minItems":1,"maxItems":4,"uniqueItems":true,"items":{"type":"string","enum":["conversation","customer_service","leadership","technical_diagnosis"]}},"label":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","enum":["de-DE","en-GB"]},"values":{"type":"object","additionalProperties":false,"required":["de-DE","en-GB"],"properties":{"de-DE":{"type":"string","minLength":2,"maxLength":160},"en-GB":{"type":"string","minLength":2,"maxLength":160}}}}},"response":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","enum":["de-DE","en-GB"]},"values":{"type":"object","additionalProperties":false,"required":["de-DE","en-GB"],"properties":{"de-DE":{"type":"string","minLength":1,"maxLength":4000},"en-GB":{"type":"string","minLength":1,"maxLength":4000}}}}},"feedback":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","enum":["de-DE","en-GB"]},"values":{"type":"object","additionalProperties":false,"required":["de-DE","en-GB"],"properties":{"de-DE":{"type":"string","minLength":1,"maxLength":4000},"en-GB":{"type":"string","minLength":1,"maxLength":4000}}}}},"contentFormat":{"type":"string","enum":["plain_text","markdown"]},"score":{"type":"number","enum":[0,0.5,1]},"mediaSlots":{"type":"array","maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["slotKey","label","purpose","acceptedKinds","required"],"properties":{"slotKey":{"type":"string","pattern":"^[a-z][a-z0-9._-]{1,127}$"},"label":{"type":"string","minLength":2,"maxLength":160},"purpose":{"type":"string","enum":["hero","counterpart","environment","device","instruction","feedback","voice","subtitle"]},"acceptedKinds":{"type":"array","minItems":1,"maxItems":8,"uniqueItems":true,"items":{"type":"string","enum":["image","video","audio","model_3d","document","subtitle","avatar_scene","scene_360"]}},"required":{"type":"boolean"},"altText":{"type":"string","minLength":3,"maxLength":1000}}}},"tags":{"type":"array","maxItems":30,"uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":64}}}},"contentHash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"changeReason":{"type":"string","minLength":3,"maxLength":500},"createdAt":{"type":"string","format":"date-time"},"createdBy":{"type":"string","format":"uuid"}}},"publishedVersion":{"type":"object","additionalProperties":false,"required":["id","tenantId","entryId","versionNumber","definition","contentHash","changeReason","createdAt","createdBy"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"entryId":{"type":"string","format":"uuid"},"versionNumber":{"type":"integer","minimum":1},"definition":{"type":"object","additionalProperties":false,"required":["responseKind","useCases","label","response","feedback","contentFormat","score","mediaSlots","tags"],"properties":{"responseKind":{"type":"string","enum":["counterpart","system"]},"useCases":{"type":"array","minItems":1,"maxItems":4,"uniqueItems":true,"items":{"type":"string","enum":["conversation","customer_service","leadership","technical_diagnosis"]}},"label":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","enum":["de-DE","en-GB"]},"values":{"type":"object","additionalProperties":false,"required":["de-DE","en-GB"],"properties":{"de-DE":{"type":"string","minLength":2,"maxLength":160},"en-GB":{"type":"string","minLength":2,"maxLength":160}}}}},"response":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","enum":["de-DE","en-GB"]},"values":{"type":"object","additionalProperties":false,"required":["de-DE","en-GB"],"properties":{"de-DE":{"type":"string","minLength":1,"maxLength":4000},"en-GB":{"type":"string","minLength":1,"maxLength":4000}}}}},"feedback":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","enum":["de-DE","en-GB"]},"values":{"type":"object","additionalProperties":false,"required":["de-DE","en-GB"],"properties":{"de-DE":{"type":"string","minLength":1,"maxLength":4000},"en-GB":{"type":"string","minLength":1,"maxLength":4000}}}}},"contentFormat":{"type":"string","enum":["plain_text","markdown"]},"score":{"type":"number","enum":[0,0.5,1]},"mediaSlots":{"type":"array","maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["slotKey","label","purpose","acceptedKinds","required"],"properties":{"slotKey":{"type":"string","pattern":"^[a-z][a-z0-9._-]{1,127}$"},"label":{"type":"string","minLength":2,"maxLength":160},"purpose":{"type":"string","enum":["hero","counterpart","environment","device","instruction","feedback","voice","subtitle"]},"acceptedKinds":{"type":"array","minItems":1,"maxItems":8,"uniqueItems":true,"items":{"type":"string","enum":["image","video","audio","model_3d","document","subtitle","avatar_scene","scene_360"]}},"required":{"type":"boolean"},"altText":{"type":"string","minLength":3,"maxLength":1000}}}},"tags":{"type":"array","maxItems":30,"uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":64}}}},"contentHash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"changeReason":{"type":"string","minLength":3,"maxLength":500},"createdAt":{"type":"string","format":"date-time"},"createdBy":{"type":"string","format":"uuid"}}},"latestPublication":{"type":"object","additionalProperties":false,"required":["id","tenantId","entryId","publicationNumber","versionNumber","contentHash","changeReason","publishedAt","publishedBy"],"properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"entryId":{"type":"string","format":"uuid"},"publicationNumber":{"type":"integer","minimum":1},"versionNumber":{"type":"integer","minimum":1},"contentHash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"changeReason":{"type":"string","minLength":3,"maxLength":500},"publishedAt":{"type":"string","format":"date-time"},"publishedBy":{"type":"string","format":"uuid"}}},"createdAt":{"type":"string","format":"date-time"},"createdBy":{"type":"string","format":"uuid"},"updatedAt":{"type":"string","format":"date-time"},"updatedBy":{"type":"string","format":"uuid"},"archivedAt":{"type":"string","format":"date-time"},"archivedBy":{"type":"string","format":"uuid"}}},"CreateReactionLibraryEntryInput":{"title":"Create reaction library entry input","type":"object","additionalProperties":false,"required":["entryKey","definition","changeReason"],"properties":{"entryKey":{"type":"string","pattern":"^[a-z][a-z0-9._-]{1,127}$"},"definition":{"type":"object","additionalProperties":false,"required":["responseKind","useCases","label","response","feedback","contentFormat","score","mediaSlots","tags"],"properties":{"responseKind":{"type":"string","enum":["counterpart","system"]},"useCases":{"type":"array","minItems":1,"maxItems":4,"uniqueItems":true,"items":{"type":"string","enum":["conversation","customer_service","leadership","technical_diagnosis"]}},"label":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","enum":["de-DE","en-GB"]},"values":{"type":"object","additionalProperties":false,"required":["de-DE","en-GB"],"properties":{"de-DE":{"type":"string","minLength":2,"maxLength":160},"en-GB":{"type":"string","minLength":2,"maxLength":160}}}}},"response":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","enum":["de-DE","en-GB"]},"values":{"type":"object","additionalProperties":false,"required":["de-DE","en-GB"],"properties":{"de-DE":{"type":"string","minLength":1,"maxLength":4000},"en-GB":{"type":"string","minLength":1,"maxLength":4000}}}}},"feedback":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","enum":["de-DE","en-GB"]},"values":{"type":"object","additionalProperties":false,"required":["de-DE","en-GB"],"properties":{"de-DE":{"type":"string","minLength":1,"maxLength":4000},"en-GB":{"type":"string","minLength":1,"maxLength":4000}}}}},"contentFormat":{"type":"string","enum":["plain_text","markdown"]},"score":{"type":"number","enum":[0,0.5,1]},"mediaSlots":{"type":"array","maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["slotKey","label","purpose","acceptedKinds","required"],"properties":{"slotKey":{"type":"string","pattern":"^[a-z][a-z0-9._-]{1,127}$"},"label":{"type":"string","minLength":2,"maxLength":160},"purpose":{"type":"string","enum":["hero","counterpart","environment","device","instruction","feedback","voice","subtitle"]},"acceptedKinds":{"type":"array","minItems":1,"maxItems":8,"uniqueItems":true,"items":{"type":"string","enum":["image","video","audio","model_3d","document","subtitle","avatar_scene","scene_360"]}},"required":{"type":"boolean"},"altText":{"type":"string","minLength":3,"maxLength":1000}}}},"tags":{"type":"array","maxItems":30,"uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":64}}}},"changeReason":{"type":"string","minLength":3,"maxLength":500}}},"UpdateReactionLibraryEntryInput":{"title":"Update reaction library entry input","type":"object","additionalProperties":false,"required":["definition","changeReason"],"properties":{"definition":{"type":"object","additionalProperties":false,"required":["responseKind","useCases","label","response","feedback","contentFormat","score","mediaSlots","tags"],"properties":{"responseKind":{"type":"string","enum":["counterpart","system"]},"useCases":{"type":"array","minItems":1,"maxItems":4,"uniqueItems":true,"items":{"type":"string","enum":["conversation","customer_service","leadership","technical_diagnosis"]}},"label":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","enum":["de-DE","en-GB"]},"values":{"type":"object","additionalProperties":false,"required":["de-DE","en-GB"],"properties":{"de-DE":{"type":"string","minLength":2,"maxLength":160},"en-GB":{"type":"string","minLength":2,"maxLength":160}}}}},"response":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","enum":["de-DE","en-GB"]},"values":{"type":"object","additionalProperties":false,"required":["de-DE","en-GB"],"properties":{"de-DE":{"type":"string","minLength":1,"maxLength":4000},"en-GB":{"type":"string","minLength":1,"maxLength":4000}}}}},"feedback":{"type":"object","additionalProperties":false,"required":["defaultLocale","values"],"properties":{"defaultLocale":{"type":"string","enum":["de-DE","en-GB"]},"values":{"type":"object","additionalProperties":false,"required":["de-DE","en-GB"],"properties":{"de-DE":{"type":"string","minLength":1,"maxLength":4000},"en-GB":{"type":"string","minLength":1,"maxLength":4000}}}}},"contentFormat":{"type":"string","enum":["plain_text","markdown"]},"score":{"type":"number","enum":[0,0.5,1]},"mediaSlots":{"type":"array","maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["slotKey","label","purpose","acceptedKinds","required"],"properties":{"slotKey":{"type":"string","pattern":"^[a-z][a-z0-9._-]{1,127}$"},"label":{"type":"string","minLength":2,"maxLength":160},"purpose":{"type":"string","enum":["hero","counterpart","environment","device","instruction","feedback","voice","subtitle"]},"acceptedKinds":{"type":"array","minItems":1,"maxItems":8,"uniqueItems":true,"items":{"type":"string","enum":["image","video","audio","model_3d","document","subtitle","avatar_scene","scene_360"]}},"required":{"type":"boolean"},"altText":{"type":"string","minLength":3,"maxLength":1000}}}},"tags":{"type":"array","maxItems":30,"uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":64}}}},"changeReason":{"type":"string","minLength":3,"maxLength":500},"expectedRevision":{"type":"integer","minimum":1}}},"ReactionLibraryLifecycleInput":{"title":"Publish or archive reaction library entry input","type":"object","additionalProperties":false,"required":["changeReason"],"properties":{"changeReason":{"type":"string","minLength":3,"maxLength":500},"expectedRevision":{"type":"integer","minimum":1}}}}}}